LCOV - code coverage report
Current view: top level - alma/ASDM - CalCurveRow.cc (source / functions) Hit Total Coverage
Test: casacpp_coverage.info Lines: 0 550 0.0 %
Date: 2024-12-11 20:54:31 Functions: 0 93 0.0 %

          Line data    Source code
       1             : 
       2             : /*
       3             :  * ALMA - Atacama Large Millimeter Array
       4             :  * (c) European Southern Observatory, 2002
       5             :  * (c) Associated Universities Inc., 2002
       6             :  * Copyright by ESO (in the framework of the ALMA collaboration),
       7             :  * Copyright by AUI (in the framework of the ALMA collaboration),
       8             :  * All rights reserved.
       9             :  * 
      10             :  * This library is free software; you can redistribute it and/or
      11             :  * modify it under the terms of the GNU Lesser General Public
      12             :  * License as published by the Free software Foundation; either
      13             :  * version 2.1 of the License, or (at your option) any later version.
      14             :  * 
      15             :  * This library is distributed in the hope that it will be useful,
      16             :  * but WITHOUT ANY WARRANTY, without even the implied warranty of
      17             :  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
      18             :  * Lesser General Public License for more details.
      19             :  * 
      20             :  * You should have received a copy of the GNU Lesser General Public
      21             :  * License along with this library; if not, write to the Free Software
      22             :  * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
      23             :  * MA 02111-1307  USA
      24             :  *
      25             :  * Warning!
      26             :  *  -------------------------------------------------------------------- 
      27             :  * | This is generated code!  Do not modify this file.                  |
      28             :  * | If you do, all changes will be lost when the file is re-generated. |
      29             :  *  --------------------------------------------------------------------
      30             :  *
      31             :  * File CalCurveRow.cpp
      32             :  */
      33             :  
      34             : #include <vector>
      35             : #include <set>
      36             : 
      37             : #include <alma/ASDM/ASDM.h>
      38             : #include <alma/ASDM/CalCurveRow.h>
      39             : #include <alma/ASDM/CalCurveTable.h>
      40             : 
      41             : #include <alma/ASDM/CalDataTable.h>
      42             : #include <alma/ASDM/CalDataRow.h>
      43             : 
      44             : #include <alma/ASDM/CalReductionTable.h>
      45             : #include <alma/ASDM/CalReductionRow.h>
      46             :         
      47             : 
      48             : using asdm::ASDM;
      49             : using asdm::CalCurveRow;
      50             : using asdm::CalCurveTable;
      51             : 
      52             : using asdm::CalDataTable;
      53             : using asdm::CalDataRow;
      54             : 
      55             : using asdm::CalReductionTable;
      56             : using asdm::CalReductionRow;
      57             : 
      58             : 
      59             : #include <alma/ASDM/Parser.h>
      60             : 
      61             : #include <alma/ASDM/EnumerationParser.h>
      62             : #include <alma/ASDM/ASDMValuesParser.h>
      63             :  
      64             : #include <alma/ASDM/InvalidArgumentException.h>
      65             : 
      66             : using namespace std;
      67             : 
      68             : namespace asdm {
      69           0 :         CalCurveRow::~CalCurveRow() {
      70           0 :         }
      71             : 
      72             :         /**
      73             :          * Return the table to which this row belongs.
      74             :          */
      75           0 :         CalCurveTable &CalCurveRow::getTable() const {
      76           0 :                 return table;
      77             :         }
      78             : 
      79           0 :         bool CalCurveRow::isAdded() const {
      80           0 :                 return hasBeenAdded;
      81             :         }       
      82             : 
      83           0 :         void CalCurveRow::isAdded(bool added) {
      84           0 :                 hasBeenAdded = added;
      85           0 :         }
      86             :         
      87             : #ifndef WITHOUT_ACS
      88             :         using asdmIDL::CalCurveRowIDL;
      89             : #endif
      90             :         
      91             : #ifndef WITHOUT_ACS
      92             :         /**
      93             :          * Return this row in the form of an IDL struct.
      94             :          * @return The values of this row as a CalCurveRowIDL struct.
      95             :          */
      96             :         CalCurveRowIDL *CalCurveRow::toIDL() const {
      97             :                 CalCurveRowIDL *x = new CalCurveRowIDL ();
      98             :                 
      99             :                 // Fill the IDL structure.
     100             :         
     101             :                 
     102             :         
     103             :                 
     104             :                 
     105             :                 
     106             :                         
     107             :                                 
     108             :                 x->atmPhaseCorrection = atmPhaseCorrection;
     109             :                                 
     110             :                         
     111             :                 
     112             :         
     113             : 
     114             :         
     115             :                 
     116             :                 
     117             :                 
     118             :                         
     119             :                                 
     120             :                 x->typeCurve = typeCurve;
     121             :                                 
     122             :                         
     123             :                 
     124             :         
     125             : 
     126             :         
     127             :                 
     128             :                 
     129             :                 
     130             :                         
     131             :                                 
     132             :                 x->receiverBand = receiverBand;
     133             :                                 
     134             :                         
     135             :                 
     136             :         
     137             : 
     138             :         
     139             :                 
     140             :                 
     141             :                 
     142             :                         
     143             :                 x->startValidTime = startValidTime.toIDLArrayTime();
     144             :                         
     145             :                 
     146             :         
     147             : 
     148             :         
     149             :                 
     150             :                 
     151             :                 
     152             :                         
     153             :                 x->endValidTime = endValidTime.toIDLArrayTime();
     154             :                         
     155             :                 
     156             :         
     157             : 
     158             :         
     159             :                 
     160             :                 
     161             :                 
     162             :                         
     163             :                 x->frequencyRange.length(frequencyRange.size());
     164             :                 for (unsigned int i = 0; i < frequencyRange.size(); ++i) {
     165             :                         
     166             :                         x->frequencyRange[i] = frequencyRange.at(i).toIDLFrequency();
     167             :                         
     168             :                 }
     169             :                         
     170             :                 
     171             :         
     172             : 
     173             :         
     174             :                 
     175             :                 
     176             :                 
     177             :                         
     178             :                                 
     179             :                 x->numAntenna = numAntenna;
     180             :                                 
     181             :                         
     182             :                 
     183             :         
     184             : 
     185             :         
     186             :                 
     187             :                 
     188             :                 
     189             :                         
     190             :                                 
     191             :                 x->numPoly = numPoly;
     192             :                                 
     193             :                         
     194             :                 
     195             :         
     196             : 
     197             :         
     198             :                 
     199             :                 
     200             :                 
     201             :                         
     202             :                                 
     203             :                 x->numReceptor = numReceptor;
     204             :                                 
     205             :                         
     206             :                 
     207             :         
     208             : 
     209             :         
     210             :                 
     211             :                 
     212             :                 
     213             :                         
     214             :                 x->antennaNames.length(antennaNames.size());
     215             :                 for (unsigned int i = 0; i < antennaNames.size(); ++i) {
     216             :                         
     217             :                                 
     218             :                         x->antennaNames[i] = CORBA::string_dup(antennaNames.at(i).c_str());
     219             :                                 
     220             :                         
     221             :                 }
     222             :                         
     223             :                 
     224             :         
     225             : 
     226             :         
     227             :                 
     228             :                 
     229             :                 
     230             :                         
     231             :                                 
     232             :                 x->refAntennaName = CORBA::string_dup(refAntennaName.c_str());
     233             :                                 
     234             :                         
     235             :                 
     236             :         
     237             : 
     238             :         
     239             :                 
     240             :                 
     241             :                 
     242             :                         
     243             :                 x->polarizationTypes.length(polarizationTypes.size());
     244             :                 for (unsigned int i = 0; i < polarizationTypes.size(); ++i) {
     245             :                         
     246             :                                 
     247             :                         x->polarizationTypes[i] = polarizationTypes.at(i);
     248             :                                 
     249             :                         
     250             :                 }
     251             :                         
     252             :                 
     253             :         
     254             : 
     255             :         
     256             :                 
     257             :                 
     258             :                 
     259             :                         
     260             :                 x->curve.length(curve.size());
     261             :                 for (unsigned int i = 0; i < curve.size(); i++) {
     262             :                         x->curve[i].length(curve.at(i).size());
     263             :                         for (unsigned int j = 0; j < curve.at(i).size(); j++) {
     264             :                                 x->curve[i][j].length(curve.at(i).at(j).size());
     265             :                         }                                                       
     266             :                 }
     267             :                 
     268             :                 for (unsigned int i = 0; i < curve.size() ; i++)
     269             :                         for (unsigned int j = 0; j < curve.at(i).size(); j++)
     270             :                                 for (unsigned int k = 0; k < curve.at(i).at(j).size(); k++)
     271             :                                         
     272             :                                                 
     273             :                                         x->curve[i][j][k] = curve.at(i).at(j).at(k);
     274             :                                                 
     275             :                                                                                                 
     276             :                         
     277             :                 
     278             :         
     279             : 
     280             :         
     281             :                 
     282             :                 
     283             :                 
     284             :                         
     285             :                 x->reducedChiSquared.length(reducedChiSquared.size());
     286             :                 for (unsigned int i = 0; i < reducedChiSquared.size(); ++i) {
     287             :                         
     288             :                                 
     289             :                         x->reducedChiSquared[i] = reducedChiSquared.at(i);
     290             :                                 
     291             :                         
     292             :                 }
     293             :                         
     294             :                 
     295             :         
     296             : 
     297             :         
     298             :                 
     299             :                 
     300             :                 x->numBaselineExists = numBaselineExists;
     301             :                 
     302             :                 
     303             :                         
     304             :                                 
     305             :                 x->numBaseline = numBaseline;
     306             :                                 
     307             :                         
     308             :                 
     309             :         
     310             : 
     311             :         
     312             :                 
     313             :                 
     314             :                 x->rmsExists = rmsExists;
     315             :                 
     316             :                 
     317             :                         
     318             :                 x->rms.length(rms.size());
     319             :                 for (unsigned int i = 0; i < rms.size(); i++) {
     320             :                         x->rms[i].length(rms.at(i).size());                                  
     321             :                 }
     322             :                 
     323             :                 for (unsigned int i = 0; i < rms.size() ; i++)
     324             :                         for (unsigned int j = 0; j < rms.at(i).size(); j++)
     325             :                                         
     326             :                                                 
     327             :                                 x->rms[i][j] = rms.at(i).at(j);
     328             :                                                 
     329             :                                                                         
     330             :                 
     331             :                         
     332             :                 
     333             :         
     334             : 
     335             :         
     336             :         
     337             :                 
     338             :         
     339             :         
     340             :                 
     341             :                 
     342             :                 
     343             :                         
     344             :                 x->calDataId = calDataId.toIDLTag();
     345             :                         
     346             :                                 
     347             :         
     348             : 
     349             :         
     350             :         
     351             :                 
     352             :                 
     353             :                 
     354             :                         
     355             :                 x->calReductionId = calReductionId.toIDLTag();
     356             :                         
     357             :                                 
     358             :         
     359             : 
     360             :         
     361             :                 
     362             :         
     363             : 
     364             :         
     365             : 
     366             :                 
     367             :                 return x;
     368             :         
     369             :         }
     370             :         
     371             :         void CalCurveRow::toIDL(asdmIDL::CalCurveRowIDL& x) const {
     372             :                 // Set the x's fields.
     373             :         
     374             :                 
     375             :         
     376             :                 
     377             :                 
     378             :                 
     379             :                         
     380             :                                 
     381             :                 x.atmPhaseCorrection = atmPhaseCorrection;
     382             :                                 
     383             :                         
     384             :                 
     385             :         
     386             : 
     387             :         
     388             :                 
     389             :                 
     390             :                 
     391             :                         
     392             :                                 
     393             :                 x.typeCurve = typeCurve;
     394             :                                 
     395             :                         
     396             :                 
     397             :         
     398             : 
     399             :         
     400             :                 
     401             :                 
     402             :                 
     403             :                         
     404             :                                 
     405             :                 x.receiverBand = receiverBand;
     406             :                                 
     407             :                         
     408             :                 
     409             :         
     410             : 
     411             :         
     412             :                 
     413             :                 
     414             :                 
     415             :                         
     416             :                 x.startValidTime = startValidTime.toIDLArrayTime();
     417             :                         
     418             :                 
     419             :         
     420             : 
     421             :         
     422             :                 
     423             :                 
     424             :                 
     425             :                         
     426             :                 x.endValidTime = endValidTime.toIDLArrayTime();
     427             :                         
     428             :                 
     429             :         
     430             : 
     431             :         
     432             :                 
     433             :                 
     434             :                 
     435             :                         
     436             :                 x.frequencyRange.length(frequencyRange.size());
     437             :                 for (unsigned int i = 0; i < frequencyRange.size(); ++i) {
     438             :                         
     439             :                         x.frequencyRange[i] = frequencyRange.at(i).toIDLFrequency();
     440             :                         
     441             :                 }
     442             :                         
     443             :                 
     444             :         
     445             : 
     446             :         
     447             :                 
     448             :                 
     449             :                 
     450             :                         
     451             :                                 
     452             :                 x.numAntenna = numAntenna;
     453             :                                 
     454             :                         
     455             :                 
     456             :         
     457             : 
     458             :         
     459             :                 
     460             :                 
     461             :                 
     462             :                         
     463             :                                 
     464             :                 x.numPoly = numPoly;
     465             :                                 
     466             :                         
     467             :                 
     468             :         
     469             : 
     470             :         
     471             :                 
     472             :                 
     473             :                 
     474             :                         
     475             :                                 
     476             :                 x.numReceptor = numReceptor;
     477             :                                 
     478             :                         
     479             :                 
     480             :         
     481             : 
     482             :         
     483             :                 
     484             :                 
     485             :                 
     486             :                         
     487             :                 x.antennaNames.length(antennaNames.size());
     488             :                 for (unsigned int i = 0; i < antennaNames.size(); ++i) {
     489             :                         
     490             :                                 
     491             :                         x.antennaNames[i] = CORBA::string_dup(antennaNames.at(i).c_str());
     492             :                                 
     493             :                         
     494             :                 }
     495             :                         
     496             :                 
     497             :         
     498             : 
     499             :         
     500             :                 
     501             :                 
     502             :                 
     503             :                         
     504             :                                 
     505             :                 x.refAntennaName = CORBA::string_dup(refAntennaName.c_str());
     506             :                                 
     507             :                         
     508             :                 
     509             :         
     510             : 
     511             :         
     512             :                 
     513             :                 
     514             :                 
     515             :                         
     516             :                 x.polarizationTypes.length(polarizationTypes.size());
     517             :                 for (unsigned int i = 0; i < polarizationTypes.size(); ++i) {
     518             :                         
     519             :                                 
     520             :                         x.polarizationTypes[i] = polarizationTypes.at(i);
     521             :                                 
     522             :                         
     523             :                 }
     524             :                         
     525             :                 
     526             :         
     527             : 
     528             :         
     529             :                 
     530             :                 
     531             :                 
     532             :                         
     533             :                 x.curve.length(curve.size());
     534             :                 for (unsigned int i = 0; i < curve.size(); i++) {
     535             :                         x.curve[i].length(curve.at(i).size());
     536             :                         for (unsigned int j = 0; j < curve.at(i).size(); j++) {
     537             :                                 x.curve[i][j].length(curve.at(i).at(j).size());
     538             :                         }                                                       
     539             :                 }
     540             :                 
     541             :                 for (unsigned int i = 0; i < curve.size() ; i++)
     542             :                         for (unsigned int j = 0; j < curve.at(i).size(); j++)
     543             :                                 for (unsigned int k = 0; k < curve.at(i).at(j).size(); k++)
     544             :                                         
     545             :                                                 
     546             :                                         x.curve[i][j][k] = curve.at(i).at(j).at(k);
     547             :                                                 
     548             :                                                                                                 
     549             :                         
     550             :                 
     551             :         
     552             : 
     553             :         
     554             :                 
     555             :                 
     556             :                 
     557             :                         
     558             :                 x.reducedChiSquared.length(reducedChiSquared.size());
     559             :                 for (unsigned int i = 0; i < reducedChiSquared.size(); ++i) {
     560             :                         
     561             :                                 
     562             :                         x.reducedChiSquared[i] = reducedChiSquared.at(i);
     563             :                                 
     564             :                         
     565             :                 }
     566             :                         
     567             :                 
     568             :         
     569             : 
     570             :         
     571             :                 
     572             :                 
     573             :                 x.numBaselineExists = numBaselineExists;
     574             :                 
     575             :                 
     576             :                         
     577             :                                 
     578             :                 x.numBaseline = numBaseline;
     579             :                                 
     580             :                         
     581             :                 
     582             :         
     583             : 
     584             :         
     585             :                 
     586             :                 
     587             :                 x.rmsExists = rmsExists;
     588             :                 
     589             :                 
     590             :                         
     591             :                 x.rms.length(rms.size());
     592             :                 for (unsigned int i = 0; i < rms.size(); i++) {
     593             :                         x.rms[i].length(rms.at(i).size());                                      
     594             :                 }
     595             :                 
     596             :                 for (unsigned int i = 0; i < rms.size() ; i++)
     597             :                         for (unsigned int j = 0; j < rms.at(i).size(); j++)
     598             :                                         
     599             :                                                 
     600             :                                 x.rms[i][j] = rms.at(i).at(j);
     601             :                                                 
     602             :                                                                         
     603             :                 
     604             :                         
     605             :                 
     606             :         
     607             : 
     608             :         
     609             :         
     610             :                 
     611             :         
     612             :         
     613             :                 
     614             :                 
     615             :                 
     616             :                         
     617             :                 x.calDataId = calDataId.toIDLTag();
     618             :                         
     619             :                                 
     620             :         
     621             : 
     622             :         
     623             :         
     624             :                 
     625             :                 
     626             :                 
     627             :                         
     628             :                 x.calReductionId = calReductionId.toIDLTag();
     629             :                         
     630             :                                 
     631             :         
     632             : 
     633             :         
     634             :                 
     635             :         
     636             : 
     637             :         
     638             : 
     639             :         
     640             :         }
     641             : #endif
     642             :         
     643             : 
     644             : #ifndef WITHOUT_ACS
     645             :         /**
     646             :          * Fill the values of this row from the IDL struct CalCurveRowIDL.
     647             :          * @param x The IDL struct containing the values used to fill this row.
     648             :          */
     649             :         void CalCurveRow::setFromIDL (CalCurveRowIDL x){
     650             :                 try {
     651             :                 // Fill the values from x.
     652             :         
     653             :                 
     654             :         
     655             :                 
     656             :                 
     657             :                         
     658             :                 setAtmPhaseCorrection(x.atmPhaseCorrection);
     659             :                         
     660             :                 
     661             :                 
     662             :         
     663             : 
     664             :         
     665             :                 
     666             :                 
     667             :                         
     668             :                 setTypeCurve(x.typeCurve);
     669             :                         
     670             :                 
     671             :                 
     672             :         
     673             : 
     674             :         
     675             :                 
     676             :                 
     677             :                         
     678             :                 setReceiverBand(x.receiverBand);
     679             :                         
     680             :                 
     681             :                 
     682             :         
     683             : 
     684             :         
     685             :                 
     686             :                 
     687             :                         
     688             :                 setStartValidTime(ArrayTime (x.startValidTime));
     689             :                         
     690             :                 
     691             :                 
     692             :         
     693             : 
     694             :         
     695             :                 
     696             :                 
     697             :                         
     698             :                 setEndValidTime(ArrayTime (x.endValidTime));
     699             :                         
     700             :                 
     701             :                 
     702             :         
     703             : 
     704             :         
     705             :                 
     706             :                 
     707             :                         
     708             :                 frequencyRange .clear();
     709             :                 for (unsigned int i = 0; i <x.frequencyRange.length(); ++i) {
     710             :                         
     711             :                         frequencyRange.push_back(Frequency (x.frequencyRange[i]));
     712             :                         
     713             :                 }
     714             :                         
     715             :                 
     716             :                 
     717             :         
     718             : 
     719             :         
     720             :                 
     721             :                 
     722             :                         
     723             :                 setNumAntenna(x.numAntenna);
     724             :                         
     725             :                 
     726             :                 
     727             :         
     728             : 
     729             :         
     730             :                 
     731             :                 
     732             :                         
     733             :                 setNumPoly(x.numPoly);
     734             :                         
     735             :                 
     736             :                 
     737             :         
     738             : 
     739             :         
     740             :                 
     741             :                 
     742             :                         
     743             :                 setNumReceptor(x.numReceptor);
     744             :                         
     745             :                 
     746             :                 
     747             :         
     748             : 
     749             :         
     750             :                 
     751             :                 
     752             :                         
     753             :                 antennaNames .clear();
     754             :                 for (unsigned int i = 0; i <x.antennaNames.length(); ++i) {
     755             :                         
     756             :                         antennaNames.push_back(string (x.antennaNames[i]));
     757             :                         
     758             :                 }
     759             :                         
     760             :                 
     761             :                 
     762             :         
     763             : 
     764             :         
     765             :                 
     766             :                 
     767             :                         
     768             :                 setRefAntennaName(string (x.refAntennaName));
     769             :                         
     770             :                 
     771             :                 
     772             :         
     773             : 
     774             :         
     775             :                 
     776             :                 
     777             :                         
     778             :                 polarizationTypes .clear();
     779             :                 for (unsigned int i = 0; i <x.polarizationTypes.length(); ++i) {
     780             :                         
     781             :                         polarizationTypes.push_back(x.polarizationTypes[i]);
     782             :                         
     783             :                 }
     784             :                         
     785             :                 
     786             :                 
     787             :         
     788             : 
     789             :         
     790             :                 
     791             :                 
     792             :                         
     793             :                 curve .clear();
     794             :                 vector< vector<float> > vv_aux_curve;
     795             :                 vector<float> v_aux_curve;
     796             :                 
     797             :                 for (unsigned int i = 0; i < x.curve.length(); ++i) {
     798             :                         vv_aux_curve.clear();
     799             :                         for (unsigned int j = 0; j < x.curve[0].length(); ++j) {
     800             :                                 v_aux_curve.clear();
     801             :                                 for (unsigned int k = 0; k < x.curve[0][0].length(); ++k) {
     802             :                                         
     803             :                                         v_aux_curve.push_back(x.curve[i][j][k]);
     804             :                                         
     805             :                                 }
     806             :                                 vv_aux_curve.push_back(v_aux_curve);
     807             :                         }
     808             :                         curve.push_back(vv_aux_curve);
     809             :                 }
     810             :                         
     811             :                 
     812             :                 
     813             :         
     814             : 
     815             :         
     816             :                 
     817             :                 
     818             :                         
     819             :                 reducedChiSquared .clear();
     820             :                 for (unsigned int i = 0; i <x.reducedChiSquared.length(); ++i) {
     821             :                         
     822             :                         reducedChiSquared.push_back(x.reducedChiSquared[i]);
     823             :                         
     824             :                 }
     825             :                         
     826             :                 
     827             :                 
     828             :         
     829             : 
     830             :         
     831             :                 
     832             :                 numBaselineExists = x.numBaselineExists;
     833             :                 if (x.numBaselineExists) {
     834             :                 
     835             :                 
     836             :                         
     837             :                 setNumBaseline(x.numBaseline);
     838             :                         
     839             :                 
     840             :                 
     841             :                 }
     842             :                 
     843             :         
     844             : 
     845             :         
     846             :                 
     847             :                 rmsExists = x.rmsExists;
     848             :                 if (x.rmsExists) {
     849             :                 
     850             :                 
     851             :                         
     852             :                 rms .clear();
     853             :         
     854             :         vector<float> v_aux_rms;
     855             :         
     856             :                 for (unsigned int i = 0; i < x.rms.length(); ++i) {
     857             :                         v_aux_rms.clear();
     858             :                         for (unsigned int j = 0; j < x.rms[0].length(); ++j) {
     859             :                                 
     860             :                                 v_aux_rms.push_back(x.rms[i][j]);
     861             :                                 
     862             :                         }
     863             :                         rms.push_back(v_aux_rms);                       
     864             :                 }
     865             :                         
     866             :                 
     867             :                 
     868             :                 }
     869             :                 
     870             :         
     871             : 
     872             :         
     873             :         
     874             :                 
     875             :         
     876             :                 
     877             :                 
     878             :                         
     879             :                 setCalDataId(Tag (x.calDataId));
     880             :                         
     881             :                 
     882             :                 
     883             :         
     884             : 
     885             :         
     886             :                 
     887             :                 
     888             :                         
     889             :                 setCalReductionId(Tag (x.calReductionId));
     890             :                         
     891             :                 
     892             :                 
     893             :         
     894             : 
     895             :         
     896             :                 
     897             :         
     898             : 
     899             :         
     900             : 
     901             :                 } catch (const IllegalAccessException &err) {
     902             :                         throw ConversionException (err.getMessage(),"CalCurve");
     903             :                 }
     904             :         }
     905             : #endif
     906             :         
     907             :         /**
     908             :          * Return this row in the form of an XML string.
     909             :          * @return The values of this row as an XML string.
     910             :          */
     911           0 :         string CalCurveRow::toXML() const {
     912           0 :                 string buf;
     913           0 :                 buf.append("<row> \n");
     914             :                 
     915             :         
     916             :                 
     917             :         
     918             :                 
     919             :                 
     920           0 :                         buf.append(EnumerationParser::toXML("atmPhaseCorrection", atmPhaseCorrection));
     921             :                 
     922             :                 
     923             :         
     924             : 
     925             :         
     926             :                 
     927             :                 
     928           0 :                         buf.append(EnumerationParser::toXML("typeCurve", typeCurve));
     929             :                 
     930             :                 
     931             :         
     932             : 
     933             :         
     934             :                 
     935             :                 
     936           0 :                         buf.append(EnumerationParser::toXML("receiverBand", receiverBand));
     937             :                 
     938             :                 
     939             :         
     940             : 
     941             :         
     942             :                 
     943             :                 
     944           0 :                 Parser::toXML(startValidTime, "startValidTime", buf);
     945             :                 
     946             :                 
     947             :         
     948             : 
     949             :         
     950             :                 
     951             :                 
     952           0 :                 Parser::toXML(endValidTime, "endValidTime", buf);
     953             :                 
     954             :                 
     955             :         
     956             : 
     957             :         
     958             :                 
     959             :                 
     960           0 :                 Parser::toXML(frequencyRange, "frequencyRange", buf);
     961             :                 
     962             :                 
     963             :         
     964             : 
     965             :         
     966             :                 
     967             :                 
     968           0 :                 Parser::toXML(numAntenna, "numAntenna", buf);
     969             :                 
     970             :                 
     971             :         
     972             : 
     973             :         
     974             :                 
     975             :                 
     976           0 :                 Parser::toXML(numPoly, "numPoly", buf);
     977             :                 
     978             :                 
     979             :         
     980             : 
     981             :         
     982             :                 
     983             :                 
     984           0 :                 Parser::toXML(numReceptor, "numReceptor", buf);
     985             :                 
     986             :                 
     987             :         
     988             : 
     989             :         
     990             :                 
     991             :                 
     992           0 :                 Parser::toXML(antennaNames, "antennaNames", buf);
     993             :                 
     994             :                 
     995             :         
     996             : 
     997             :         
     998             :                 
     999             :                 
    1000           0 :                 Parser::toXML(refAntennaName, "refAntennaName", buf);
    1001             :                 
    1002             :                 
    1003             :         
    1004             : 
    1005             :         
    1006             :                 
    1007             :                 
    1008           0 :                         buf.append(EnumerationParser::toXML("polarizationTypes", polarizationTypes));
    1009             :                 
    1010             :                 
    1011             :         
    1012             : 
    1013             :         
    1014             :                 
    1015             :                 
    1016           0 :                 Parser::toXML(curve, "curve", buf);
    1017             :                 
    1018             :                 
    1019             :         
    1020             : 
    1021             :         
    1022             :                 
    1023             :                 
    1024           0 :                 Parser::toXML(reducedChiSquared, "reducedChiSquared", buf);
    1025             :                 
    1026             :                 
    1027             :         
    1028             : 
    1029             :         
    1030             :                 
    1031           0 :                 if (numBaselineExists) {
    1032             :                 
    1033             :                 
    1034           0 :                 Parser::toXML(numBaseline, "numBaseline", buf);
    1035             :                 
    1036             :                 
    1037             :                 }
    1038             :                 
    1039             :         
    1040             : 
    1041             :         
    1042             :                 
    1043           0 :                 if (rmsExists) {
    1044             :                 
    1045             :                 
    1046           0 :                 Parser::toXML(rms, "rms", buf);
    1047             :                 
    1048             :                 
    1049             :                 }
    1050             :                 
    1051             :         
    1052             : 
    1053             :         
    1054             :         
    1055             :                 
    1056             :         
    1057             :                 
    1058             :                 
    1059           0 :                 Parser::toXML(calDataId, "calDataId", buf);
    1060             :                 
    1061             :                 
    1062             :         
    1063             : 
    1064             :         
    1065             :                 
    1066             :                 
    1067           0 :                 Parser::toXML(calReductionId, "calReductionId", buf);
    1068             :                 
    1069             :                 
    1070             :         
    1071             : 
    1072             :         
    1073             :                 
    1074             :         
    1075             : 
    1076             :         
    1077             : 
    1078             :                 
    1079           0 :                 buf.append("</row>\n");
    1080           0 :                 return buf;
    1081           0 :         }
    1082             : 
    1083             :         /**
    1084             :          * Fill the values of this row from an XML string 
    1085             :          * that was produced by the toXML() method.
    1086             :          * @param x The XML string being used to set the values of this row.
    1087             :          */
    1088           0 :         void CalCurveRow::setFromXML (string rowDoc) {
    1089           0 :                 Parser row(rowDoc);
    1090           0 :                 string s = "";
    1091             :                 try {
    1092             :         
    1093             :                 
    1094             :         
    1095             :                 
    1096             :                 
    1097             :                 
    1098           0 :                 atmPhaseCorrection = EnumerationParser::getAtmPhaseCorrection("atmPhaseCorrection","CalCurve",rowDoc);
    1099             :                 
    1100             :                 
    1101             :                 
    1102             :         
    1103             : 
    1104             :         
    1105             :                 
    1106             :                 
    1107             :                 
    1108           0 :                 typeCurve = EnumerationParser::getCalCurveType("typeCurve","CalCurve",rowDoc);
    1109             :                 
    1110             :                 
    1111             :                 
    1112             :         
    1113             : 
    1114             :         
    1115             :                 
    1116             :                 
    1117             :                 
    1118           0 :                 receiverBand = EnumerationParser::getReceiverBand("receiverBand","CalCurve",rowDoc);
    1119             :                 
    1120             :                 
    1121             :                 
    1122             :         
    1123             : 
    1124             :         
    1125             :                 
    1126             :                         
    1127           0 :                 setStartValidTime(Parser::getArrayTime("startValidTime","CalCurve",rowDoc));
    1128             :                         
    1129             :                 
    1130             :         
    1131             : 
    1132             :         
    1133             :                 
    1134             :                         
    1135           0 :                 setEndValidTime(Parser::getArrayTime("endValidTime","CalCurve",rowDoc));
    1136             :                         
    1137             :                 
    1138             :         
    1139             : 
    1140             :         
    1141             :                 
    1142             :                         
    1143             :                                         
    1144           0 :                 setFrequencyRange(Parser::get1DFrequency("frequencyRange","CalCurve",rowDoc));
    1145             :                                 
    1146             :                         
    1147             :                 
    1148             :         
    1149             : 
    1150             :         
    1151             :                 
    1152             :                         
    1153           0 :                 setNumAntenna(Parser::getInteger("numAntenna","CalCurve",rowDoc));
    1154             :                         
    1155             :                 
    1156             :         
    1157             : 
    1158             :         
    1159             :                 
    1160             :                         
    1161           0 :                 setNumPoly(Parser::getInteger("numPoly","CalCurve",rowDoc));
    1162             :                         
    1163             :                 
    1164             :         
    1165             : 
    1166             :         
    1167             :                 
    1168             :                         
    1169           0 :                 setNumReceptor(Parser::getInteger("numReceptor","CalCurve",rowDoc));
    1170             :                         
    1171             :                 
    1172             :         
    1173             : 
    1174             :         
    1175             :                 
    1176             :                         
    1177             :                                         
    1178           0 :                 setAntennaNames(Parser::get1DString("antennaNames","CalCurve",rowDoc));
    1179             :                                 
    1180             :                         
    1181             :                 
    1182             :         
    1183             : 
    1184             :         
    1185             :                 
    1186             :                         
    1187           0 :                 setRefAntennaName(Parser::getString("refAntennaName","CalCurve",rowDoc));
    1188             :                         
    1189             :                 
    1190             :         
    1191             : 
    1192             :         
    1193             :                 
    1194             :                 
    1195             :                 
    1196           0 :                 polarizationTypes = EnumerationParser::getPolarizationType1D("polarizationTypes","CalCurve",rowDoc);                        
    1197             :                 
    1198             :                 
    1199             :                 
    1200             :         
    1201             : 
    1202             :         
    1203             :                 
    1204             :                         
    1205             :                                         
    1206           0 :                 setCurve(Parser::get3DFloat("curve","CalCurve",rowDoc));
    1207             :                                 
    1208             :                         
    1209             :                 
    1210             :         
    1211             : 
    1212             :         
    1213             :                 
    1214             :                         
    1215             :                                         
    1216           0 :                 setReducedChiSquared(Parser::get1DDouble("reducedChiSquared","CalCurve",rowDoc));
    1217             :                                 
    1218             :                         
    1219             :                 
    1220             :         
    1221             : 
    1222             :         
    1223             :                 
    1224           0 :         if (row.isStr("<numBaseline>")) {
    1225             :                         
    1226           0 :                         setNumBaseline(Parser::getInteger("numBaseline","CalCurve",rowDoc));
    1227             :                         
    1228             :                 }
    1229             :                 
    1230             :         
    1231             : 
    1232             :         
    1233             :                 
    1234           0 :         if (row.isStr("<rms>")) {
    1235             :                         
    1236             :                                                                 
    1237           0 :                         setRms(Parser::get2DFloat("rms","CalCurve",rowDoc));
    1238             :                                 
    1239             :                         
    1240             :                 }
    1241             :                 
    1242             :         
    1243             : 
    1244             :         
    1245             :         
    1246             :                 
    1247             :         
    1248             :                 
    1249             :                         
    1250           0 :                 setCalDataId(Parser::getTag("calDataId","CalData",rowDoc));
    1251             :                         
    1252             :                 
    1253             :         
    1254             : 
    1255             :         
    1256             :                 
    1257             :                         
    1258           0 :                 setCalReductionId(Parser::getTag("calReductionId","CalReduction",rowDoc));
    1259             :                         
    1260             :                 
    1261             :         
    1262             : 
    1263             :         
    1264             :                 
    1265             :         
    1266             : 
    1267             :         
    1268             : 
    1269           0 :                 } catch (const IllegalAccessException &err) {
    1270           0 :                         throw ConversionException (err.getMessage(),"CalCurve");
    1271           0 :                 }
    1272           0 :         }
    1273             :         
    1274           0 :         void CalCurveRow::toBin(EndianOSStream& eoss) {
    1275             :         
    1276             :         
    1277             :         
    1278             :         
    1279             :                 
    1280             :                                         
    1281           0 :                 eoss.writeString(CAtmPhaseCorrection::name(atmPhaseCorrection));
    1282             :                         /* eoss.writeInt(atmPhaseCorrection); */
    1283             :                                 
    1284             :                 
    1285             :         
    1286             : 
    1287             :         
    1288             :         
    1289             :                 
    1290             :                                         
    1291           0 :                 eoss.writeString(CCalCurveType::name(typeCurve));
    1292             :                         /* eoss.writeInt(typeCurve); */
    1293             :                                 
    1294             :                 
    1295             :         
    1296             : 
    1297             :         
    1298             :         
    1299             :                 
    1300             :                                         
    1301           0 :                 eoss.writeString(CReceiverBand::name(receiverBand));
    1302             :                         /* eoss.writeInt(receiverBand); */
    1303             :                                 
    1304             :                 
    1305             :         
    1306             : 
    1307             :         
    1308             :         
    1309             :                 
    1310           0 :         calDataId.toBin(eoss);
    1311             :                 
    1312             :         
    1313             : 
    1314             :         
    1315             :         
    1316             :                 
    1317           0 :         calReductionId.toBin(eoss);
    1318             :                 
    1319             :         
    1320             : 
    1321             :         
    1322             :         
    1323             :                 
    1324           0 :         startValidTime.toBin(eoss);
    1325             :                 
    1326             :         
    1327             : 
    1328             :         
    1329             :         
    1330             :                 
    1331           0 :         endValidTime.toBin(eoss);
    1332             :                 
    1333             :         
    1334             : 
    1335             :         
    1336             :         
    1337             :                 
    1338           0 :         Frequency::toBin(frequencyRange, eoss);
    1339             :                 
    1340             :         
    1341             : 
    1342             :         
    1343             :         
    1344             :                 
    1345             :                                                 
    1346           0 :                         eoss.writeInt(numAntenna);
    1347             :                                 
    1348             :                 
    1349             :         
    1350             : 
    1351             :         
    1352             :         
    1353             :                 
    1354             :                                                 
    1355           0 :                         eoss.writeInt(numPoly);
    1356             :                                 
    1357             :                 
    1358             :         
    1359             : 
    1360             :         
    1361             :         
    1362             :                 
    1363             :                                                 
    1364           0 :                         eoss.writeInt(numReceptor);
    1365             :                                 
    1366             :                 
    1367             :         
    1368             : 
    1369             :         
    1370             :         
    1371             :                 
    1372             :                 
    1373             :                         
    1374           0 :                 eoss.writeInt((int) antennaNames.size());
    1375           0 :                 for (unsigned int i = 0; i < antennaNames.size(); i++)
    1376             :                                 
    1377           0 :                         eoss.writeString(antennaNames.at(i));
    1378             :                                 
    1379             :                                 
    1380             :                                                 
    1381             :                 
    1382             :         
    1383             : 
    1384             :         
    1385             :         
    1386             :                 
    1387             :                                                 
    1388           0 :                         eoss.writeString(refAntennaName);
    1389             :                                 
    1390             :                 
    1391             :         
    1392             : 
    1393             :         
    1394             :         
    1395             :                 
    1396             :                 
    1397             :                         
    1398           0 :                 eoss.writeInt((int) polarizationTypes.size());
    1399           0 :                 for (unsigned int i = 0; i < polarizationTypes.size(); i++)
    1400             :                                 
    1401           0 :                         eoss.writeString(CPolarizationType::name(polarizationTypes.at(i)));
    1402             :                         /* eoss.writeInt(polarizationTypes.at(i)); */
    1403             :                                 
    1404             :                                 
    1405             :                                                 
    1406             :                 
    1407             :         
    1408             : 
    1409             :         
    1410             :         
    1411             :                 
    1412             :                 
    1413             :                         
    1414           0 :                 eoss.writeInt((int) curve.size());
    1415           0 :                 eoss.writeInt((int) curve.at(0).size());                
    1416           0 :                 eoss.writeInt((int) curve.at(0).at(0).size());
    1417           0 :                 for (unsigned int i = 0; i < curve.size(); i++) 
    1418           0 :                         for (unsigned int j = 0;  j < curve.at(0).size(); j++)
    1419           0 :                                 for (unsigned int k = 0; k <  curve.at(0).at(0).size(); k++) 
    1420             :                                                          
    1421           0 :                                         eoss.writeFloat(curve.at(i).at(j).at(k));
    1422             :                                                 
    1423             :                                                 
    1424             :                 
    1425             :         
    1426             : 
    1427             :         
    1428             :         
    1429             :                 
    1430             :                 
    1431             :                         
    1432           0 :                 eoss.writeInt((int) reducedChiSquared.size());
    1433           0 :                 for (unsigned int i = 0; i < reducedChiSquared.size(); i++)
    1434             :                                 
    1435           0 :                         eoss.writeDouble(reducedChiSquared.at(i));
    1436             :                                 
    1437             :                                 
    1438             :                                                 
    1439             :                 
    1440             :         
    1441             : 
    1442             : 
    1443             :         
    1444             :         
    1445           0 :         eoss.writeBoolean(numBaselineExists);
    1446           0 :         if (numBaselineExists) {
    1447             :         
    1448             :         
    1449             :         
    1450             :                 
    1451             :                                                 
    1452           0 :                         eoss.writeInt(numBaseline);
    1453             :                                 
    1454             :                 
    1455             :         
    1456             : 
    1457             :         }
    1458             : 
    1459           0 :         eoss.writeBoolean(rmsExists);
    1460           0 :         if (rmsExists) {
    1461             :         
    1462             :         
    1463             :         
    1464             :                 
    1465             :                 
    1466             :                         
    1467           0 :                 eoss.writeInt((int) rms.size());
    1468           0 :                 eoss.writeInt((int) rms.at(0).size());
    1469           0 :                 for (unsigned int i = 0; i < rms.size(); i++) 
    1470           0 :                         for (unsigned int j = 0;  j < rms.at(0).size(); j++) 
    1471             :                                                          
    1472           0 :                                 eoss.writeFloat(rms.at(i).at(j));
    1473             :                                 
    1474             :         
    1475             :                                                 
    1476             :                 
    1477             :         
    1478             : 
    1479             :         }
    1480             : 
    1481           0 :         }
    1482             :         
    1483           0 : void CalCurveRow::atmPhaseCorrectionFromBin(EndianIStream& eis) {
    1484             :                 
    1485             :         
    1486             :         
    1487             :                 
    1488             :                         
    1489           0 :                 atmPhaseCorrection = CAtmPhaseCorrection::literal(eis.readString());
    1490             :                         
    1491             :                 
    1492             :         
    1493             :         
    1494           0 : }
    1495           0 : void CalCurveRow::typeCurveFromBin(EndianIStream& eis) {
    1496             :                 
    1497             :         
    1498             :         
    1499             :                 
    1500             :                         
    1501           0 :                 typeCurve = CCalCurveType::literal(eis.readString());
    1502             :                         
    1503             :                 
    1504             :         
    1505             :         
    1506           0 : }
    1507           0 : void CalCurveRow::receiverBandFromBin(EndianIStream& eis) {
    1508             :                 
    1509             :         
    1510             :         
    1511             :                 
    1512             :                         
    1513           0 :                 receiverBand = CReceiverBand::literal(eis.readString());
    1514             :                         
    1515             :                 
    1516             :         
    1517             :         
    1518           0 : }
    1519           0 : void CalCurveRow::calDataIdFromBin(EndianIStream& eis) {
    1520             :                 
    1521             :         
    1522             :                 
    1523             :                 
    1524           0 :                 calDataId =  Tag::fromBin(eis);
    1525             :                 
    1526             :         
    1527             :         
    1528           0 : }
    1529           0 : void CalCurveRow::calReductionIdFromBin(EndianIStream& eis) {
    1530             :                 
    1531             :         
    1532             :                 
    1533             :                 
    1534           0 :                 calReductionId =  Tag::fromBin(eis);
    1535             :                 
    1536             :         
    1537             :         
    1538           0 : }
    1539           0 : void CalCurveRow::startValidTimeFromBin(EndianIStream& eis) {
    1540             :                 
    1541             :         
    1542             :                 
    1543             :                 
    1544           0 :                 startValidTime =  ArrayTime::fromBin(eis);
    1545             :                 
    1546             :         
    1547             :         
    1548           0 : }
    1549           0 : void CalCurveRow::endValidTimeFromBin(EndianIStream& eis) {
    1550             :                 
    1551             :         
    1552             :                 
    1553             :                 
    1554           0 :                 endValidTime =  ArrayTime::fromBin(eis);
    1555             :                 
    1556             :         
    1557             :         
    1558           0 : }
    1559           0 : void CalCurveRow::frequencyRangeFromBin(EndianIStream& eis) {
    1560             :                 
    1561             :         
    1562             :                 
    1563             :                 
    1564             :                         
    1565             :         
    1566           0 :         frequencyRange = Frequency::from1DBin(eis);     
    1567             :         
    1568             : 
    1569             :                 
    1570             :         
    1571             :         
    1572           0 : }
    1573           0 : void CalCurveRow::numAntennaFromBin(EndianIStream& eis) {
    1574             :                 
    1575             :         
    1576             :         
    1577             :                 
    1578             :                         
    1579           0 :                 numAntenna =  eis.readInt();
    1580             :                         
    1581             :                 
    1582             :         
    1583             :         
    1584           0 : }
    1585           0 : void CalCurveRow::numPolyFromBin(EndianIStream& eis) {
    1586             :                 
    1587             :         
    1588             :         
    1589             :                 
    1590             :                         
    1591           0 :                 numPoly =  eis.readInt();
    1592             :                         
    1593             :                 
    1594             :         
    1595             :         
    1596           0 : }
    1597           0 : void CalCurveRow::numReceptorFromBin(EndianIStream& eis) {
    1598             :                 
    1599             :         
    1600             :         
    1601             :                 
    1602             :                         
    1603           0 :                 numReceptor =  eis.readInt();
    1604             :                         
    1605             :                 
    1606             :         
    1607             :         
    1608           0 : }
    1609           0 : void CalCurveRow::antennaNamesFromBin(EndianIStream& eis) {
    1610             :                 
    1611             :         
    1612             :         
    1613             :                 
    1614             :                         
    1615             :         
    1616           0 :                 antennaNames.clear();
    1617             :                 
    1618           0 :                 unsigned int antennaNamesDim1 = eis.readInt();
    1619           0 :                 for (unsigned int  i = 0 ; i < antennaNamesDim1; i++)
    1620             :                         
    1621           0 :                         antennaNames.push_back(eis.readString());
    1622             :                         
    1623             :         
    1624             : 
    1625             :                 
    1626             :         
    1627             :         
    1628           0 : }
    1629           0 : void CalCurveRow::refAntennaNameFromBin(EndianIStream& eis) {
    1630             :                 
    1631             :         
    1632             :         
    1633             :                 
    1634             :                         
    1635           0 :                 refAntennaName =  eis.readString();
    1636             :                         
    1637             :                 
    1638             :         
    1639             :         
    1640           0 : }
    1641           0 : void CalCurveRow::polarizationTypesFromBin(EndianIStream& eis) {
    1642             :                 
    1643             :         
    1644             :         
    1645             :                 
    1646             :                         
    1647             :         
    1648           0 :                 polarizationTypes.clear();
    1649             :                 
    1650           0 :                 unsigned int polarizationTypesDim1 = eis.readInt();
    1651           0 :                 for (unsigned int  i = 0 ; i < polarizationTypesDim1; i++)
    1652             :                         
    1653           0 :                         polarizationTypes.push_back(CPolarizationType::literal(eis.readString()));
    1654             :                         
    1655             :         
    1656             : 
    1657             :                 
    1658             :         
    1659             :         
    1660           0 : }
    1661           0 : void CalCurveRow::curveFromBin(EndianIStream& eis) {
    1662             :                 
    1663             :         
    1664             :         
    1665             :                 
    1666             :                         
    1667             :         
    1668           0 :                 curve.clear();
    1669             :                         
    1670           0 :                 unsigned int curveDim1 = eis.readInt();
    1671           0 :                 unsigned int curveDim2 = eis.readInt();
    1672           0 :                 unsigned int curveDim3 = eis.readInt();
    1673           0 :                 vector <vector<float> > curveAux2;
    1674           0 :                 vector <float> curveAux1;
    1675           0 :                 for (unsigned int i = 0; i < curveDim1; i++) {
    1676           0 :                         curveAux2.clear();
    1677           0 :                         for (unsigned int j = 0; j < curveDim2 ; j++) {
    1678           0 :                                 curveAux1.clear();
    1679           0 :                                 for (unsigned int k = 0; k < curveDim3; k++) {
    1680             :                         
    1681           0 :                                         curveAux1.push_back(eis.readFloat());
    1682             :                         
    1683             :                                 }
    1684           0 :                                 curveAux2.push_back(curveAux1);
    1685             :                         }
    1686           0 :                         curve.push_back(curveAux2);
    1687             :                 }       
    1688             :         
    1689             : 
    1690             :                 
    1691             :         
    1692             :         
    1693           0 : }
    1694           0 : void CalCurveRow::reducedChiSquaredFromBin(EndianIStream& eis) {
    1695             :                 
    1696             :         
    1697             :         
    1698             :                 
    1699             :                         
    1700             :         
    1701           0 :                 reducedChiSquared.clear();
    1702             :                 
    1703           0 :                 unsigned int reducedChiSquaredDim1 = eis.readInt();
    1704           0 :                 for (unsigned int  i = 0 ; i < reducedChiSquaredDim1; i++)
    1705             :                         
    1706           0 :                         reducedChiSquared.push_back(eis.readDouble());
    1707             :                         
    1708             :         
    1709             : 
    1710             :                 
    1711             :         
    1712             :         
    1713           0 : }
    1714             : 
    1715           0 : void CalCurveRow::numBaselineFromBin(EndianIStream& eis) {
    1716             :                 
    1717           0 :         numBaselineExists = eis.readBoolean();
    1718           0 :         if (numBaselineExists) {
    1719             :                 
    1720             :         
    1721             :         
    1722             :                 
    1723             :                         
    1724           0 :                 numBaseline =  eis.readInt();
    1725             :                         
    1726             :                 
    1727             :         
    1728             : 
    1729             :         }
    1730             :         
    1731           0 : }
    1732           0 : void CalCurveRow::rmsFromBin(EndianIStream& eis) {
    1733             :                 
    1734           0 :         rmsExists = eis.readBoolean();
    1735           0 :         if (rmsExists) {
    1736             :                 
    1737             :         
    1738             :         
    1739             :                 
    1740             :                         
    1741             :         
    1742           0 :                 rms.clear();
    1743             :                 
    1744           0 :                 unsigned int rmsDim1 = eis.readInt();
    1745           0 :                 unsigned int rmsDim2 = eis.readInt();
    1746             :         
    1747           0 :                 vector <float> rmsAux1;
    1748             :         
    1749           0 :                 for (unsigned int i = 0; i < rmsDim1; i++) {
    1750           0 :                         rmsAux1.clear();
    1751           0 :                         for (unsigned int j = 0; j < rmsDim2 ; j++)                  
    1752             :                         
    1753           0 :                         rmsAux1.push_back(eis.readFloat());
    1754             :                         
    1755           0 :                         rms.push_back(rmsAux1);
    1756             :                 }
    1757             :         
    1758             :         
    1759             : 
    1760             :                 
    1761             :         
    1762             : 
    1763           0 :         }
    1764             :         
    1765           0 : }
    1766             :         
    1767             :         
    1768           0 :         CalCurveRow* CalCurveRow::fromBin(EndianIStream& eis, CalCurveTable& table, const vector<string>& attributesSeq) {
    1769           0 :                 CalCurveRow* row = new  CalCurveRow(table);
    1770             :                 
    1771           0 :                 map<string, CalCurveAttributeFromBin>::iterator iter ;
    1772           0 :                 for (unsigned int i = 0; i < attributesSeq.size(); i++) {
    1773           0 :                         iter = row->fromBinMethods.find(attributesSeq.at(i));
    1774           0 :                         if (iter != row->fromBinMethods.end()) {
    1775           0 :                                 (row->*(row->fromBinMethods[ attributesSeq.at(i) ] ))(eis);                       
    1776             :                         }
    1777             :                         else {
    1778           0 :                                 BinaryAttributeReaderFunctor* functorP = table.getUnknownAttributeBinaryReader(attributesSeq.at(i));
    1779           0 :                                 if (functorP)
    1780           0 :                                         (*functorP)(eis);
    1781             :                                 else
    1782           0 :                                         throw ConversionException("There is not method to read an attribute '"+attributesSeq.at(i)+"'.", "CalCurveTable");
    1783             :                         }
    1784             :                                 
    1785             :                 }                               
    1786           0 :                 return row;
    1787             :         }
    1788             : 
    1789             :         //
    1790             :         // A collection of methods to set the value of the attributes from their textual value in the XML representation
    1791             :         // of one row.
    1792             :         //
    1793             :         
    1794             :         // Convert a string into an AtmPhaseCorrection 
    1795           0 :         void CalCurveRow::atmPhaseCorrectionFromText(const string & s) {
    1796             :                  
    1797             :           
    1798           0 :                 atmPhaseCorrection = ASDMValuesParser::parse<AtmPhaseCorrectionMod::AtmPhaseCorrection>(s);
    1799             :           
    1800             :                 
    1801           0 :         }
    1802             :         
    1803             :         
    1804             :         // Convert a string into an CalCurveType 
    1805           0 :         void CalCurveRow::typeCurveFromText(const string & s) {
    1806             :                  
    1807             :           
    1808           0 :                 typeCurve = ASDMValuesParser::parse<CalCurveTypeMod::CalCurveType>(s);
    1809             :           
    1810             :                 
    1811           0 :         }
    1812             :         
    1813             :         
    1814             :         // Convert a string into an ReceiverBand 
    1815           0 :         void CalCurveRow::receiverBandFromText(const string & s) {
    1816             :                  
    1817             :           
    1818           0 :                 receiverBand = ASDMValuesParser::parse<ReceiverBandMod::ReceiverBand>(s);
    1819             :           
    1820             :                 
    1821           0 :         }
    1822             :         
    1823             :         
    1824             :         // Convert a string into an Tag 
    1825           0 :         void CalCurveRow::calDataIdFromText(const string & s) {
    1826             :                  
    1827             :           
    1828           0 :                 calDataId = ASDMValuesParser::parse<Tag>(s);
    1829             :           
    1830             :                 
    1831           0 :         }
    1832             :         
    1833             :         
    1834             :         // Convert a string into an Tag 
    1835           0 :         void CalCurveRow::calReductionIdFromText(const string & s) {
    1836             :                  
    1837             :           
    1838           0 :                 calReductionId = ASDMValuesParser::parse<Tag>(s);
    1839             :           
    1840             :                 
    1841           0 :         }
    1842             :         
    1843             :         
    1844             :         // Convert a string into an ArrayTime 
    1845           0 :         void CalCurveRow::startValidTimeFromText(const string & s) {
    1846             :                  
    1847             :           
    1848           0 :                 startValidTime = ASDMValuesParser::parse<ArrayTime>(s);
    1849             :           
    1850             :                 
    1851           0 :         }
    1852             :         
    1853             :         
    1854             :         // Convert a string into an ArrayTime 
    1855           0 :         void CalCurveRow::endValidTimeFromText(const string & s) {
    1856             :                  
    1857             :           
    1858           0 :                 endValidTime = ASDMValuesParser::parse<ArrayTime>(s);
    1859             :           
    1860             :                 
    1861           0 :         }
    1862             :         
    1863             :         
    1864             :         // Convert a string into an Frequency 
    1865           0 :         void CalCurveRow::frequencyRangeFromText(const string & s) {
    1866             :                  
    1867             :           
    1868           0 :                 frequencyRange = ASDMValuesParser::parse1D<Frequency>(s);
    1869             :           
    1870             :                 
    1871           0 :         }
    1872             :         
    1873             :         
    1874             :         // Convert a string into an int 
    1875           0 :         void CalCurveRow::numAntennaFromText(const string & s) {
    1876             :                  
    1877             :           
    1878           0 :                 numAntenna = ASDMValuesParser::parse<int>(s);
    1879             :           
    1880             :                 
    1881           0 :         }
    1882             :         
    1883             :         
    1884             :         // Convert a string into an int 
    1885           0 :         void CalCurveRow::numPolyFromText(const string & s) {
    1886             :                  
    1887             :           
    1888           0 :                 numPoly = ASDMValuesParser::parse<int>(s);
    1889             :           
    1890             :                 
    1891           0 :         }
    1892             :         
    1893             :         
    1894             :         // Convert a string into an int 
    1895           0 :         void CalCurveRow::numReceptorFromText(const string & s) {
    1896             :                  
    1897             :           
    1898           0 :                 numReceptor = ASDMValuesParser::parse<int>(s);
    1899             :           
    1900             :                 
    1901           0 :         }
    1902             :         
    1903             :         
    1904             :         // Convert a string into an String 
    1905           0 :         void CalCurveRow::antennaNamesFromText(const string & s) {
    1906             :                  
    1907             :           
    1908           0 :                 antennaNames = ASDMValuesParser::parse1D<string>(s);
    1909             :           
    1910             :                 
    1911           0 :         }
    1912             :         
    1913             :         
    1914             :         // Convert a string into an String 
    1915           0 :         void CalCurveRow::refAntennaNameFromText(const string & s) {
    1916             :                  
    1917             :           
    1918           0 :                 refAntennaName = ASDMValuesParser::parse<string>(s);
    1919             :           
    1920             :                 
    1921           0 :         }
    1922             :         
    1923             :         
    1924             :         // Convert a string into an PolarizationType 
    1925           0 :         void CalCurveRow::polarizationTypesFromText(const string & s) {
    1926             :                  
    1927             :           
    1928           0 :                 polarizationTypes = ASDMValuesParser::parse1D<PolarizationTypeMod::PolarizationType>(s);
    1929             :           
    1930             :                 
    1931           0 :         }
    1932             :         
    1933             :         
    1934             :         // Convert a string into an float 
    1935           0 :         void CalCurveRow::curveFromText(const string & s) {
    1936             :                  
    1937             :           
    1938           0 :                 curve = ASDMValuesParser::parse3D<float>(s);
    1939             :           
    1940             :                 
    1941           0 :         }
    1942             :         
    1943             :         
    1944             :         // Convert a string into an double 
    1945           0 :         void CalCurveRow::reducedChiSquaredFromText(const string & s) {
    1946             :                  
    1947             :           
    1948           0 :                 reducedChiSquared = ASDMValuesParser::parse1D<double>(s);
    1949             :           
    1950             :                 
    1951           0 :         }
    1952             :         
    1953             : 
    1954             :         
    1955             :         // Convert a string into an int 
    1956           0 :         void CalCurveRow::numBaselineFromText(const string & s) {
    1957           0 :                 numBaselineExists = true;
    1958             :                  
    1959             :           
    1960           0 :                 numBaseline = ASDMValuesParser::parse<int>(s);
    1961             :           
    1962             :                 
    1963           0 :         }
    1964             :         
    1965             :         
    1966             :         // Convert a string into an float 
    1967           0 :         void CalCurveRow::rmsFromText(const string & s) {
    1968           0 :                 rmsExists = true;
    1969             :                  
    1970             :           
    1971           0 :                 rms = ASDMValuesParser::parse2D<float>(s);
    1972             :           
    1973             :                 
    1974           0 :         }
    1975             :         
    1976             :         
    1977             :         
    1978           0 :         void CalCurveRow::fromText(const std::string& attributeName, const std::string&  t) {
    1979           0 :                 map<string, CalCurveAttributeFromText>::iterator iter;
    1980           0 :                 if ((iter = fromTextMethods.find(attributeName)) == fromTextMethods.end())
    1981           0 :                         throw ConversionException("I do not know what to do with '"+attributeName+"' and its content '"+t+"' (while parsing an XML document)", "CalCurveTable");
    1982           0 :                 (this->*(iter->second))(t);
    1983           0 :         }
    1984             :                         
    1985             :         ////////////////////////////////////////////////
    1986             :         // Intrinsic Table Attributes getters/setters //
    1987             :         ////////////////////////////////////////////////
    1988             :         
    1989             :         
    1990             : 
    1991             :         
    1992             :         /**
    1993             :          * Get atmPhaseCorrection.
    1994             :          * @return atmPhaseCorrection as AtmPhaseCorrectionMod::AtmPhaseCorrection
    1995             :          */
    1996           0 :         AtmPhaseCorrectionMod::AtmPhaseCorrection CalCurveRow::getAtmPhaseCorrection() const {
    1997             :         
    1998           0 :                 return atmPhaseCorrection;
    1999             :         }
    2000             : 
    2001             :         /**
    2002             :          * Set atmPhaseCorrection with the specified AtmPhaseCorrectionMod::AtmPhaseCorrection.
    2003             :          * @param atmPhaseCorrection The AtmPhaseCorrectionMod::AtmPhaseCorrection value to which atmPhaseCorrection is to be set.
    2004             :          
    2005             :         
    2006             :                 
    2007             :          * @throw IllegalAccessException If an attempt is made to change this field after is has been added to the table.
    2008             :                 
    2009             :          */
    2010           0 :         void CalCurveRow::setAtmPhaseCorrection (AtmPhaseCorrectionMod::AtmPhaseCorrection atmPhaseCorrection)  {
    2011             :         
    2012             :         
    2013           0 :                 if (hasBeenAdded) {
    2014             :                 
    2015           0 :                         throw IllegalAccessException("atmPhaseCorrection", "CalCurve");
    2016             :                 
    2017             :                 }
    2018             :         
    2019           0 :                 this->atmPhaseCorrection = atmPhaseCorrection;
    2020             :         
    2021           0 :         }
    2022             :         
    2023             :         
    2024             : 
    2025             :         
    2026             : 
    2027             :         
    2028             :         /**
    2029             :          * Get typeCurve.
    2030             :          * @return typeCurve as CalCurveTypeMod::CalCurveType
    2031             :          */
    2032           0 :         CalCurveTypeMod::CalCurveType CalCurveRow::getTypeCurve() const {
    2033             :         
    2034           0 :                 return typeCurve;
    2035             :         }
    2036             : 
    2037             :         /**
    2038             :          * Set typeCurve with the specified CalCurveTypeMod::CalCurveType.
    2039             :          * @param typeCurve The CalCurveTypeMod::CalCurveType value to which typeCurve is to be set.
    2040             :          
    2041             :         
    2042             :                 
    2043             :          * @throw IllegalAccessException If an attempt is made to change this field after is has been added to the table.
    2044             :                 
    2045             :          */
    2046           0 :         void CalCurveRow::setTypeCurve (CalCurveTypeMod::CalCurveType typeCurve)  {
    2047             :         
    2048             :         
    2049           0 :                 if (hasBeenAdded) {
    2050             :                 
    2051           0 :                         throw IllegalAccessException("typeCurve", "CalCurve");
    2052             :                 
    2053             :                 }
    2054             :         
    2055           0 :                 this->typeCurve = typeCurve;
    2056             :         
    2057           0 :         }
    2058             :         
    2059             :         
    2060             : 
    2061             :         
    2062             : 
    2063             :         
    2064             :         /**
    2065             :          * Get receiverBand.
    2066             :          * @return receiverBand as ReceiverBandMod::ReceiverBand
    2067             :          */
    2068           0 :         ReceiverBandMod::ReceiverBand CalCurveRow::getReceiverBand() const {
    2069             :         
    2070           0 :                 return receiverBand;
    2071             :         }
    2072             : 
    2073             :         /**
    2074             :          * Set receiverBand with the specified ReceiverBandMod::ReceiverBand.
    2075             :          * @param receiverBand The ReceiverBandMod::ReceiverBand value to which receiverBand is to be set.
    2076             :          
    2077             :         
    2078             :                 
    2079             :          * @throw IllegalAccessException If an attempt is made to change this field after is has been added to the table.
    2080             :                 
    2081             :          */
    2082           0 :         void CalCurveRow::setReceiverBand (ReceiverBandMod::ReceiverBand receiverBand)  {
    2083             :         
    2084             :         
    2085           0 :                 if (hasBeenAdded) {
    2086             :                 
    2087           0 :                         throw IllegalAccessException("receiverBand", "CalCurve");
    2088             :                 
    2089             :                 }
    2090             :         
    2091           0 :                 this->receiverBand = receiverBand;
    2092             :         
    2093           0 :         }
    2094             :         
    2095             :         
    2096             : 
    2097             :         
    2098             : 
    2099             :         
    2100             :         /**
    2101             :          * Get startValidTime.
    2102             :          * @return startValidTime as ArrayTime
    2103             :          */
    2104           0 :         ArrayTime CalCurveRow::getStartValidTime() const {
    2105             :         
    2106           0 :                 return startValidTime;
    2107             :         }
    2108             : 
    2109             :         /**
    2110             :          * Set startValidTime with the specified ArrayTime.
    2111             :          * @param startValidTime The ArrayTime value to which startValidTime is to be set.
    2112             :          
    2113             :         
    2114             :                 
    2115             :          */
    2116           0 :         void CalCurveRow::setStartValidTime (ArrayTime startValidTime)  {
    2117             :         
    2118             :         
    2119           0 :                 if (hasBeenAdded) {
    2120             :                 
    2121             :                 }
    2122             :         
    2123           0 :                 this->startValidTime = startValidTime;
    2124             :         
    2125           0 :         }
    2126             :         
    2127             :         
    2128             : 
    2129             :         
    2130             : 
    2131             :         
    2132             :         /**
    2133             :          * Get endValidTime.
    2134             :          * @return endValidTime as ArrayTime
    2135             :          */
    2136           0 :         ArrayTime CalCurveRow::getEndValidTime() const {
    2137             :         
    2138           0 :                 return endValidTime;
    2139             :         }
    2140             : 
    2141             :         /**
    2142             :          * Set endValidTime with the specified ArrayTime.
    2143             :          * @param endValidTime The ArrayTime value to which endValidTime is to be set.
    2144             :          
    2145             :         
    2146             :                 
    2147             :          */
    2148           0 :         void CalCurveRow::setEndValidTime (ArrayTime endValidTime)  {
    2149             :         
    2150             :         
    2151           0 :                 if (hasBeenAdded) {
    2152             :                 
    2153             :                 }
    2154             :         
    2155           0 :                 this->endValidTime = endValidTime;
    2156             :         
    2157           0 :         }
    2158             :         
    2159             :         
    2160             : 
    2161             :         
    2162             : 
    2163             :         
    2164             :         /**
    2165             :          * Get frequencyRange.
    2166             :          * @return frequencyRange as std::vector<Frequency >
    2167             :          */
    2168           0 :         std::vector<Frequency > CalCurveRow::getFrequencyRange() const {
    2169             :         
    2170           0 :                 return frequencyRange;
    2171             :         }
    2172             : 
    2173             :         /**
    2174             :          * Set frequencyRange with the specified std::vector<Frequency >.
    2175             :          * @param frequencyRange The std::vector<Frequency > value to which frequencyRange is to be set.
    2176             :          
    2177             :         
    2178             :                 
    2179             :          */
    2180           0 :         void CalCurveRow::setFrequencyRange (std::vector<Frequency > frequencyRange)  {
    2181             :         
    2182             :         
    2183           0 :                 if (hasBeenAdded) {
    2184             :                 
    2185             :                 }
    2186             :         
    2187           0 :                 this->frequencyRange = frequencyRange;
    2188             :         
    2189           0 :         }
    2190             :         
    2191             :         
    2192             : 
    2193             :         
    2194             : 
    2195             :         
    2196             :         /**
    2197             :          * Get numAntenna.
    2198             :          * @return numAntenna as int
    2199             :          */
    2200           0 :         int CalCurveRow::getNumAntenna() const {
    2201             :         
    2202           0 :                 return numAntenna;
    2203             :         }
    2204             : 
    2205             :         /**
    2206             :          * Set numAntenna with the specified int.
    2207             :          * @param numAntenna The int value to which numAntenna is to be set.
    2208             :          
    2209             :         
    2210             :                 
    2211             :          */
    2212           0 :         void CalCurveRow::setNumAntenna (int numAntenna)  {
    2213             :         
    2214             :         
    2215           0 :                 if (hasBeenAdded) {
    2216             :                 
    2217             :                 }
    2218             :         
    2219           0 :                 this->numAntenna = numAntenna;
    2220             :         
    2221           0 :         }
    2222             :         
    2223             :         
    2224             : 
    2225             :         
    2226             : 
    2227             :         
    2228             :         /**
    2229             :          * Get numPoly.
    2230             :          * @return numPoly as int
    2231             :          */
    2232           0 :         int CalCurveRow::getNumPoly() const {
    2233             :         
    2234           0 :                 return numPoly;
    2235             :         }
    2236             : 
    2237             :         /**
    2238             :          * Set numPoly with the specified int.
    2239             :          * @param numPoly The int value to which numPoly is to be set.
    2240             :          
    2241             :         
    2242             :                 
    2243             :          */
    2244           0 :         void CalCurveRow::setNumPoly (int numPoly)  {
    2245             :         
    2246             :         
    2247           0 :                 if (hasBeenAdded) {
    2248             :                 
    2249             :                 }
    2250             :         
    2251           0 :                 this->numPoly = numPoly;
    2252             :         
    2253           0 :         }
    2254             :         
    2255             :         
    2256             : 
    2257             :         
    2258             : 
    2259             :         
    2260             :         /**
    2261             :          * Get numReceptor.
    2262             :          * @return numReceptor as int
    2263             :          */
    2264           0 :         int CalCurveRow::getNumReceptor() const {
    2265             :         
    2266           0 :                 return numReceptor;
    2267             :         }
    2268             : 
    2269             :         /**
    2270             :          * Set numReceptor with the specified int.
    2271             :          * @param numReceptor The int value to which numReceptor is to be set.
    2272             :          
    2273             :         
    2274             :                 
    2275             :          */
    2276           0 :         void CalCurveRow::setNumReceptor (int numReceptor)  {
    2277             :         
    2278             :         
    2279           0 :                 if (hasBeenAdded) {
    2280             :                 
    2281             :                 }
    2282             :         
    2283           0 :                 this->numReceptor = numReceptor;
    2284             :         
    2285           0 :         }
    2286             :         
    2287             :         
    2288             : 
    2289             :         
    2290             : 
    2291             :         
    2292             :         /**
    2293             :          * Get antennaNames.
    2294             :          * @return antennaNames as std::vector<std::string >
    2295             :          */
    2296           0 :         std::vector<std::string > CalCurveRow::getAntennaNames() const {
    2297             :         
    2298           0 :                 return antennaNames;
    2299             :         }
    2300             : 
    2301             :         /**
    2302             :          * Set antennaNames with the specified std::vector<std::string >.
    2303             :          * @param antennaNames The std::vector<std::string > value to which antennaNames is to be set.
    2304             :          
    2305             :         
    2306             :                 
    2307             :          */
    2308           0 :         void CalCurveRow::setAntennaNames (std::vector<std::string > antennaNames)  {
    2309             :         
    2310             :         
    2311           0 :                 if (hasBeenAdded) {
    2312             :                 
    2313             :                 }
    2314             :         
    2315           0 :                 this->antennaNames = antennaNames;
    2316             :         
    2317           0 :         }
    2318             :         
    2319             :         
    2320             : 
    2321             :         
    2322             : 
    2323             :         
    2324             :         /**
    2325             :          * Get refAntennaName.
    2326             :          * @return refAntennaName as std::string
    2327             :          */
    2328           0 :         std::string CalCurveRow::getRefAntennaName() const {
    2329             :         
    2330           0 :                 return refAntennaName;
    2331             :         }
    2332             : 
    2333             :         /**
    2334             :          * Set refAntennaName with the specified std::string.
    2335             :          * @param refAntennaName The std::string value to which refAntennaName is to be set.
    2336             :          
    2337             :         
    2338             :                 
    2339             :          */
    2340           0 :         void CalCurveRow::setRefAntennaName (std::string refAntennaName)  {
    2341             :         
    2342             :         
    2343           0 :                 if (hasBeenAdded) {
    2344             :                 
    2345             :                 }
    2346             :         
    2347           0 :                 this->refAntennaName = refAntennaName;
    2348             :         
    2349           0 :         }
    2350             :         
    2351             :         
    2352             : 
    2353             :         
    2354             : 
    2355             :         
    2356             :         /**
    2357             :          * Get polarizationTypes.
    2358             :          * @return polarizationTypes as std::vector<PolarizationTypeMod::PolarizationType >
    2359             :          */
    2360           0 :         std::vector<PolarizationTypeMod::PolarizationType > CalCurveRow::getPolarizationTypes() const {
    2361             :         
    2362           0 :                 return polarizationTypes;
    2363             :         }
    2364             : 
    2365             :         /**
    2366             :          * Set polarizationTypes with the specified std::vector<PolarizationTypeMod::PolarizationType >.
    2367             :          * @param polarizationTypes The std::vector<PolarizationTypeMod::PolarizationType > value to which polarizationTypes is to be set.
    2368             :          
    2369             :         
    2370             :                 
    2371             :          */
    2372           0 :         void CalCurveRow::setPolarizationTypes (std::vector<PolarizationTypeMod::PolarizationType > polarizationTypes)  {
    2373             :         
    2374             :         
    2375           0 :                 if (hasBeenAdded) {
    2376             :                 
    2377             :                 }
    2378             :         
    2379           0 :                 this->polarizationTypes = polarizationTypes;
    2380             :         
    2381           0 :         }
    2382             :         
    2383             :         
    2384             : 
    2385             :         
    2386             : 
    2387             :         
    2388             :         /**
    2389             :          * Get curve.
    2390             :          * @return curve as std::vector<std::vector<std::vector<float > > >
    2391             :          */
    2392           0 :         std::vector<std::vector<std::vector<float > > > CalCurveRow::getCurve() const {
    2393             :         
    2394           0 :                 return curve;
    2395             :         }
    2396             : 
    2397             :         /**
    2398             :          * Set curve with the specified std::vector<std::vector<std::vector<float > > >.
    2399             :          * @param curve The std::vector<std::vector<std::vector<float > > > value to which curve is to be set.
    2400             :          
    2401             :         
    2402             :                 
    2403             :          */
    2404           0 :         void CalCurveRow::setCurve (std::vector<std::vector<std::vector<float > > > curve)  {
    2405             :         
    2406             :         
    2407           0 :                 if (hasBeenAdded) {
    2408             :                 
    2409             :                 }
    2410             :         
    2411           0 :                 this->curve = curve;
    2412             :         
    2413           0 :         }
    2414             :         
    2415             :         
    2416             : 
    2417             :         
    2418             : 
    2419             :         
    2420             :         /**
    2421             :          * Get reducedChiSquared.
    2422             :          * @return reducedChiSquared as std::vector<double >
    2423             :          */
    2424           0 :         std::vector<double > CalCurveRow::getReducedChiSquared() const {
    2425             :         
    2426           0 :                 return reducedChiSquared;
    2427             :         }
    2428             : 
    2429             :         /**
    2430             :          * Set reducedChiSquared with the specified std::vector<double >.
    2431             :          * @param reducedChiSquared The std::vector<double > value to which reducedChiSquared is to be set.
    2432             :          
    2433             :         
    2434             :                 
    2435             :          */
    2436           0 :         void CalCurveRow::setReducedChiSquared (std::vector<double > reducedChiSquared)  {
    2437             :         
    2438             :         
    2439           0 :                 if (hasBeenAdded) {
    2440             :                 
    2441             :                 }
    2442             :         
    2443           0 :                 this->reducedChiSquared = reducedChiSquared;
    2444             :         
    2445           0 :         }
    2446             :         
    2447             :         
    2448             : 
    2449             :         
    2450             :         /**
    2451             :          * The attribute numBaseline is optional. Return true if this attribute exists.
    2452             :          * @return true if and only if the numBaseline attribute exists. 
    2453             :          */
    2454           0 :         bool CalCurveRow::isNumBaselineExists() const {
    2455           0 :                 return numBaselineExists;
    2456             :         }
    2457             :         
    2458             : 
    2459             :         
    2460             :         /**
    2461             :          * Get numBaseline, which is optional.
    2462             :          * @return numBaseline as int
    2463             :          * @throw IllegalAccessException If numBaseline does not exist.
    2464             :          */
    2465           0 :         int CalCurveRow::getNumBaseline() const  {
    2466           0 :                 if (!numBaselineExists) {
    2467           0 :                         throw IllegalAccessException("numBaseline", "CalCurve");
    2468             :                 }
    2469             :         
    2470           0 :                 return numBaseline;
    2471             :         }
    2472             : 
    2473             :         /**
    2474             :          * Set numBaseline with the specified int.
    2475             :          * @param numBaseline The int value to which numBaseline is to be set.
    2476             :          
    2477             :         
    2478             :          */
    2479           0 :         void CalCurveRow::setNumBaseline (int numBaseline) {
    2480             :         
    2481           0 :                 this->numBaseline = numBaseline;
    2482             :         
    2483           0 :                 numBaselineExists = true;
    2484             :         
    2485           0 :         }
    2486             :         
    2487             :         
    2488             :         /**
    2489             :          * Mark numBaseline, which is an optional field, as non-existent.
    2490             :          */
    2491           0 :         void CalCurveRow::clearNumBaseline () {
    2492           0 :                 numBaselineExists = false;
    2493           0 :         }
    2494             :         
    2495             : 
    2496             :         
    2497             :         /**
    2498             :          * The attribute rms is optional. Return true if this attribute exists.
    2499             :          * @return true if and only if the rms attribute exists. 
    2500             :          */
    2501           0 :         bool CalCurveRow::isRmsExists() const {
    2502           0 :                 return rmsExists;
    2503             :         }
    2504             :         
    2505             : 
    2506             :         
    2507             :         /**
    2508             :          * Get rms, which is optional.
    2509             :          * @return rms as std::vector<std::vector<float > >
    2510             :          * @throw IllegalAccessException If rms does not exist.
    2511             :          */
    2512           0 :         std::vector<std::vector<float > > CalCurveRow::getRms() const  {
    2513           0 :                 if (!rmsExists) {
    2514           0 :                         throw IllegalAccessException("rms", "CalCurve");
    2515             :                 }
    2516             :         
    2517           0 :                 return rms;
    2518             :         }
    2519             : 
    2520             :         /**
    2521             :          * Set rms with the specified std::vector<std::vector<float > >.
    2522             :          * @param rms The std::vector<std::vector<float > > value to which rms is to be set.
    2523             :          
    2524             :         
    2525             :          */
    2526           0 :         void CalCurveRow::setRms (std::vector<std::vector<float > > rms) {
    2527             :         
    2528           0 :                 this->rms = rms;
    2529             :         
    2530           0 :                 rmsExists = true;
    2531             :         
    2532           0 :         }
    2533             :         
    2534             :         
    2535             :         /**
    2536             :          * Mark rms, which is an optional field, as non-existent.
    2537             :          */
    2538           0 :         void CalCurveRow::clearRms () {
    2539           0 :                 rmsExists = false;
    2540           0 :         }
    2541             :         
    2542             : 
    2543             :         
    2544             :         ///////////////////////////////////////////////
    2545             :         // Extrinsic Table Attributes getters/setters//
    2546             :         ///////////////////////////////////////////////
    2547             :         
    2548             :         
    2549             : 
    2550             :         
    2551             :         /**
    2552             :          * Get calDataId.
    2553             :          * @return calDataId as Tag
    2554             :          */
    2555           0 :         Tag CalCurveRow::getCalDataId() const {
    2556             :         
    2557           0 :                 return calDataId;
    2558             :         }
    2559             : 
    2560             :         /**
    2561             :          * Set calDataId with the specified Tag.
    2562             :          * @param calDataId The Tag value to which calDataId is to be set.
    2563             :          
    2564             :         
    2565             :                 
    2566             :          * @throw IllegalAccessException If an attempt is made to change this field after is has been added to the table.
    2567             :                 
    2568             :          */
    2569           0 :         void CalCurveRow::setCalDataId (Tag calDataId)  {
    2570             :         
    2571             :         
    2572           0 :                 if (hasBeenAdded) {
    2573             :                 
    2574           0 :                         throw IllegalAccessException("calDataId", "CalCurve");
    2575             :                 
    2576             :                 }
    2577             :         
    2578           0 :                 this->calDataId = calDataId;
    2579             :         
    2580           0 :         }
    2581             :         
    2582             :         
    2583             : 
    2584             :         
    2585             : 
    2586             :         
    2587             :         /**
    2588             :          * Get calReductionId.
    2589             :          * @return calReductionId as Tag
    2590             :          */
    2591           0 :         Tag CalCurveRow::getCalReductionId() const {
    2592             :         
    2593           0 :                 return calReductionId;
    2594             :         }
    2595             : 
    2596             :         /**
    2597             :          * Set calReductionId with the specified Tag.
    2598             :          * @param calReductionId The Tag value to which calReductionId is to be set.
    2599             :          
    2600             :         
    2601             :                 
    2602             :          * @throw IllegalAccessException If an attempt is made to change this field after is has been added to the table.
    2603             :                 
    2604             :          */
    2605           0 :         void CalCurveRow::setCalReductionId (Tag calReductionId)  {
    2606             :         
    2607             :         
    2608           0 :                 if (hasBeenAdded) {
    2609             :                 
    2610           0 :                         throw IllegalAccessException("calReductionId", "CalCurve");
    2611             :                 
    2612             :                 }
    2613             :         
    2614           0 :                 this->calReductionId = calReductionId;
    2615             :         
    2616           0 :         }
    2617             :         
    2618             :         
    2619             : 
    2620             : 
    2621             :         //////////////////////////////////////
    2622             :         // Links Attributes getters/setters //
    2623             :         //////////////////////////////////////
    2624             :         
    2625             :         
    2626             :         
    2627             :         
    2628             :                 
    2629             : 
    2630             :         /**
    2631             :          * Returns the pointer to the row in the CalData table having CalData.calDataId == calDataId
    2632             :          * @return a CalDataRow*
    2633             :          * 
    2634             :          
    2635             :          */
    2636           0 :          CalDataRow* CalCurveRow::getCalDataUsingCalDataId() {
    2637             :          
    2638           0 :                 return table.getContainer().getCalData().getRowByKey(calDataId);
    2639             :          }
    2640             :          
    2641             : 
    2642             :         
    2643             : 
    2644             :         
    2645             :         
    2646             :         
    2647             :                 
    2648             : 
    2649             :         /**
    2650             :          * Returns the pointer to the row in the CalReduction table having CalReduction.calReductionId == calReductionId
    2651             :          * @return a CalReductionRow*
    2652             :          * 
    2653             :          
    2654             :          */
    2655           0 :          CalReductionRow* CalCurveRow::getCalReductionUsingCalReductionId() {
    2656             :          
    2657           0 :                 return table.getContainer().getCalReduction().getRowByKey(calReductionId);
    2658             :          }
    2659             :          
    2660             : 
    2661             :         
    2662             : 
    2663             :         
    2664             :         /**
    2665             :          * Create a CalCurveRow.
    2666             :          * <p>
    2667             :          * This constructor is private because only the
    2668             :          * table can create rows.  All rows know the table
    2669             :          * to which they belong.
    2670             :          * @param table The table to which this row belongs.
    2671             :          */ 
    2672           0 :         CalCurveRow::CalCurveRow (CalCurveTable &t) : table(t) {
    2673           0 :                 hasBeenAdded = false;
    2674             :                 
    2675             :         
    2676             :         
    2677             : 
    2678             :         
    2679             : 
    2680             :         
    2681             : 
    2682             :         
    2683             : 
    2684             :         
    2685             : 
    2686             :         
    2687             : 
    2688             :         
    2689             : 
    2690             :         
    2691             : 
    2692             :         
    2693             : 
    2694             :         
    2695             : 
    2696             :         
    2697             : 
    2698             :         
    2699             : 
    2700             :         
    2701             : 
    2702             :         
    2703             : 
    2704             :         
    2705           0 :                 numBaselineExists = false;
    2706             :         
    2707             : 
    2708             :         
    2709           0 :                 rmsExists = false;
    2710             :         
    2711             : 
    2712             :         
    2713             :         
    2714             : 
    2715             :         
    2716             : 
    2717             :         
    2718             :         
    2719             :         
    2720             :         
    2721             : // This attribute is scalar and has an enumeration type. Let's initialize it to some valid value (the 1st of the enumeration).          
    2722           0 : atmPhaseCorrection = CAtmPhaseCorrection::from_int(0);
    2723             :         
    2724             : 
    2725             :         
    2726             : // This attribute is scalar and has an enumeration type. Let's initialize it to some valid value (the 1st of the enumeration).          
    2727           0 : typeCurve = CCalCurveType::from_int(0);
    2728             :         
    2729             : 
    2730             :         
    2731             : // This attribute is scalar and has an enumeration type. Let's initialize it to some valid value (the 1st of the enumeration).          
    2732           0 : receiverBand = CReceiverBand::from_int(0);
    2733             :         
    2734             : 
    2735             :         
    2736             : 
    2737             :         
    2738             : 
    2739             :         
    2740             : 
    2741             :         
    2742             : 
    2743             :         
    2744             : 
    2745             :         
    2746             : 
    2747             :         
    2748             : 
    2749             :         
    2750             : 
    2751             :         
    2752             : 
    2753             :         
    2754             : 
    2755             :         
    2756             : 
    2757             :         
    2758             : 
    2759             :         
    2760             : 
    2761             :         
    2762             :         
    2763           0 :          fromBinMethods["atmPhaseCorrection"] = &CalCurveRow::atmPhaseCorrectionFromBin; 
    2764           0 :          fromBinMethods["typeCurve"] = &CalCurveRow::typeCurveFromBin; 
    2765           0 :          fromBinMethods["receiverBand"] = &CalCurveRow::receiverBandFromBin; 
    2766           0 :          fromBinMethods["calDataId"] = &CalCurveRow::calDataIdFromBin; 
    2767           0 :          fromBinMethods["calReductionId"] = &CalCurveRow::calReductionIdFromBin; 
    2768           0 :          fromBinMethods["startValidTime"] = &CalCurveRow::startValidTimeFromBin; 
    2769           0 :          fromBinMethods["endValidTime"] = &CalCurveRow::endValidTimeFromBin; 
    2770           0 :          fromBinMethods["frequencyRange"] = &CalCurveRow::frequencyRangeFromBin; 
    2771           0 :          fromBinMethods["numAntenna"] = &CalCurveRow::numAntennaFromBin; 
    2772           0 :          fromBinMethods["numPoly"] = &CalCurveRow::numPolyFromBin; 
    2773           0 :          fromBinMethods["numReceptor"] = &CalCurveRow::numReceptorFromBin; 
    2774           0 :          fromBinMethods["antennaNames"] = &CalCurveRow::antennaNamesFromBin; 
    2775           0 :          fromBinMethods["refAntennaName"] = &CalCurveRow::refAntennaNameFromBin; 
    2776           0 :          fromBinMethods["polarizationTypes"] = &CalCurveRow::polarizationTypesFromBin; 
    2777           0 :          fromBinMethods["curve"] = &CalCurveRow::curveFromBin; 
    2778           0 :          fromBinMethods["reducedChiSquared"] = &CalCurveRow::reducedChiSquaredFromBin; 
    2779             :                 
    2780             :         
    2781           0 :          fromBinMethods["numBaseline"] = &CalCurveRow::numBaselineFromBin; 
    2782           0 :          fromBinMethods["rms"] = &CalCurveRow::rmsFromBin; 
    2783             :         
    2784             :         
    2785             :         
    2786             :         
    2787             :                                  
    2788           0 :         fromTextMethods["atmPhaseCorrection"] = &CalCurveRow::atmPhaseCorrectionFromText;
    2789             :                  
    2790             :         
    2791             :                                  
    2792           0 :         fromTextMethods["typeCurve"] = &CalCurveRow::typeCurveFromText;
    2793             :                  
    2794             :         
    2795             :                                  
    2796           0 :         fromTextMethods["receiverBand"] = &CalCurveRow::receiverBandFromText;
    2797             :                  
    2798             :         
    2799             :                                  
    2800           0 :         fromTextMethods["calDataId"] = &CalCurveRow::calDataIdFromText;
    2801             :                  
    2802             :         
    2803             :                                  
    2804           0 :         fromTextMethods["calReductionId"] = &CalCurveRow::calReductionIdFromText;
    2805             :                  
    2806             :         
    2807             :                                  
    2808           0 :         fromTextMethods["startValidTime"] = &CalCurveRow::startValidTimeFromText;
    2809             :                  
    2810             :         
    2811             :                                  
    2812           0 :         fromTextMethods["endValidTime"] = &CalCurveRow::endValidTimeFromText;
    2813             :                  
    2814             :         
    2815             :                                  
    2816           0 :         fromTextMethods["frequencyRange"] = &CalCurveRow::frequencyRangeFromText;
    2817             :                  
    2818             :         
    2819             :                                  
    2820           0 :         fromTextMethods["numAntenna"] = &CalCurveRow::numAntennaFromText;
    2821             :                  
    2822             :         
    2823             :                                  
    2824           0 :         fromTextMethods["numPoly"] = &CalCurveRow::numPolyFromText;
    2825             :                  
    2826             :         
    2827             :                                  
    2828           0 :         fromTextMethods["numReceptor"] = &CalCurveRow::numReceptorFromText;
    2829             :                  
    2830             :         
    2831             :                                  
    2832           0 :         fromTextMethods["antennaNames"] = &CalCurveRow::antennaNamesFromText;
    2833             :                  
    2834             :         
    2835             :                                  
    2836           0 :         fromTextMethods["refAntennaName"] = &CalCurveRow::refAntennaNameFromText;
    2837             :                  
    2838             :         
    2839             :                                  
    2840           0 :         fromTextMethods["polarizationTypes"] = &CalCurveRow::polarizationTypesFromText;
    2841             :                  
    2842             :         
    2843             :                                  
    2844           0 :         fromTextMethods["curve"] = &CalCurveRow::curveFromText;
    2845             :                  
    2846             :         
    2847             :                                  
    2848           0 :         fromTextMethods["reducedChiSquared"] = &CalCurveRow::reducedChiSquaredFromText;
    2849             :                  
    2850             :         
    2851             : 
    2852             :          
    2853             :                                 
    2854           0 :         fromTextMethods["numBaseline"] = &CalCurveRow::numBaselineFromText;
    2855             :                         
    2856             :          
    2857             :                                 
    2858           0 :         fromTextMethods["rms"] = &CalCurveRow::rmsFromText;
    2859             :                         
    2860             :                 
    2861           0 :         }
    2862             :         
    2863           0 :         CalCurveRow::CalCurveRow (CalCurveTable &t, CalCurveRow *row) : table(t) {
    2864           0 :                 hasBeenAdded = false;
    2865             :                 
    2866           0 :                 if (row == 0) {
    2867             :         
    2868             :         
    2869             :         
    2870             : 
    2871             :         
    2872             : 
    2873             :         
    2874             : 
    2875             :         
    2876             : 
    2877             :         
    2878             : 
    2879             :         
    2880             : 
    2881             :         
    2882             : 
    2883             :         
    2884             : 
    2885             :         
    2886             : 
    2887             :         
    2888             : 
    2889             :         
    2890             : 
    2891             :         
    2892             : 
    2893             :         
    2894             : 
    2895             :         
    2896             : 
    2897             :         
    2898           0 :                 numBaselineExists = false;
    2899             :         
    2900             : 
    2901             :         
    2902           0 :                 rmsExists = false;
    2903             :         
    2904             : 
    2905             :         
    2906             :         
    2907             : 
    2908             :         
    2909             :                 
    2910             :                 }
    2911             :                 else {
    2912             :         
    2913             :                 
    2914           0 :                         atmPhaseCorrection = row->atmPhaseCorrection;
    2915             :                 
    2916           0 :                         typeCurve = row->typeCurve;
    2917             :                 
    2918           0 :                         receiverBand = row->receiverBand;
    2919             :                 
    2920           0 :                         calDataId = row->calDataId;
    2921             :                 
    2922           0 :                         calReductionId = row->calReductionId;
    2923             :                 
    2924             :                 
    2925             :                 
    2926             :                 
    2927           0 :                         startValidTime = row->startValidTime;
    2928             :                 
    2929           0 :                         endValidTime = row->endValidTime;
    2930             :                 
    2931           0 :                         frequencyRange = row->frequencyRange;
    2932             :                 
    2933           0 :                         numAntenna = row->numAntenna;
    2934             :                 
    2935           0 :                         numPoly = row->numPoly;
    2936             :                 
    2937           0 :                         numReceptor = row->numReceptor;
    2938             :                 
    2939           0 :                         antennaNames = row->antennaNames;
    2940             :                 
    2941           0 :                         refAntennaName = row->refAntennaName;
    2942             :                 
    2943           0 :                         polarizationTypes = row->polarizationTypes;
    2944             :                 
    2945           0 :                         curve = row->curve;
    2946             :                 
    2947           0 :                         reducedChiSquared = row->reducedChiSquared;
    2948             :                 
    2949             :                 
    2950             :                 
    2951             :                 
    2952           0 :                 if (row->numBaselineExists) {
    2953           0 :                         numBaseline = row->numBaseline;              
    2954           0 :                         numBaselineExists = true;
    2955             :                 }
    2956             :                 else
    2957           0 :                         numBaselineExists = false;
    2958             :                 
    2959           0 :                 if (row->rmsExists) {
    2960           0 :                         rms = row->rms;              
    2961           0 :                         rmsExists = true;
    2962             :                 }
    2963             :                 else
    2964           0 :                         rmsExists = false;
    2965             :                 
    2966             :                 }
    2967             :                 
    2968           0 :                  fromBinMethods["atmPhaseCorrection"] = &CalCurveRow::atmPhaseCorrectionFromBin; 
    2969           0 :                  fromBinMethods["typeCurve"] = &CalCurveRow::typeCurveFromBin; 
    2970           0 :                  fromBinMethods["receiverBand"] = &CalCurveRow::receiverBandFromBin; 
    2971           0 :                  fromBinMethods["calDataId"] = &CalCurveRow::calDataIdFromBin; 
    2972           0 :                  fromBinMethods["calReductionId"] = &CalCurveRow::calReductionIdFromBin; 
    2973           0 :                  fromBinMethods["startValidTime"] = &CalCurveRow::startValidTimeFromBin; 
    2974           0 :                  fromBinMethods["endValidTime"] = &CalCurveRow::endValidTimeFromBin; 
    2975           0 :                  fromBinMethods["frequencyRange"] = &CalCurveRow::frequencyRangeFromBin; 
    2976           0 :                  fromBinMethods["numAntenna"] = &CalCurveRow::numAntennaFromBin; 
    2977           0 :                  fromBinMethods["numPoly"] = &CalCurveRow::numPolyFromBin; 
    2978           0 :                  fromBinMethods["numReceptor"] = &CalCurveRow::numReceptorFromBin; 
    2979           0 :                  fromBinMethods["antennaNames"] = &CalCurveRow::antennaNamesFromBin; 
    2980           0 :                  fromBinMethods["refAntennaName"] = &CalCurveRow::refAntennaNameFromBin; 
    2981           0 :                  fromBinMethods["polarizationTypes"] = &CalCurveRow::polarizationTypesFromBin; 
    2982           0 :                  fromBinMethods["curve"] = &CalCurveRow::curveFromBin; 
    2983           0 :                  fromBinMethods["reducedChiSquared"] = &CalCurveRow::reducedChiSquaredFromBin; 
    2984             :                         
    2985             :         
    2986           0 :                  fromBinMethods["numBaseline"] = &CalCurveRow::numBaselineFromBin; 
    2987           0 :                  fromBinMethods["rms"] = &CalCurveRow::rmsFromBin; 
    2988             :                         
    2989           0 :         }
    2990             : 
    2991             :         
    2992           0 :         bool CalCurveRow::compareNoAutoInc(AtmPhaseCorrectionMod::AtmPhaseCorrection atmPhaseCorrection, CalCurveTypeMod::CalCurveType typeCurve, ReceiverBandMod::ReceiverBand receiverBand, Tag calDataId, Tag calReductionId, ArrayTime startValidTime, ArrayTime endValidTime, std::vector<Frequency > frequencyRange, int numAntenna, int numPoly, int numReceptor, std::vector<std::string > antennaNames, std::string refAntennaName, std::vector<PolarizationTypeMod::PolarizationType > polarizationTypes, std::vector<std::vector<std::vector<float > > > curve, std::vector<double > reducedChiSquared) {
    2993             :                 bool result;
    2994           0 :                 result = true;
    2995             :                 
    2996             :         
    2997             :                 
    2998           0 :                 result = result && (this->atmPhaseCorrection == atmPhaseCorrection);
    2999             :                 
    3000           0 :                 if (!result) return false;
    3001             :         
    3002             : 
    3003             :         
    3004             :                 
    3005           0 :                 result = result && (this->typeCurve == typeCurve);
    3006             :                 
    3007           0 :                 if (!result) return false;
    3008             :         
    3009             : 
    3010             :         
    3011             :                 
    3012           0 :                 result = result && (this->receiverBand == receiverBand);
    3013             :                 
    3014           0 :                 if (!result) return false;
    3015             :         
    3016             : 
    3017             :         
    3018             :                 
    3019           0 :                 result = result && (this->calDataId == calDataId);
    3020             :                 
    3021           0 :                 if (!result) return false;
    3022             :         
    3023             : 
    3024             :         
    3025             :                 
    3026           0 :                 result = result && (this->calReductionId == calReductionId);
    3027             :                 
    3028           0 :                 if (!result) return false;
    3029             :         
    3030             : 
    3031             :         
    3032             :                 
    3033           0 :                 result = result && (this->startValidTime == startValidTime);
    3034             :                 
    3035           0 :                 if (!result) return false;
    3036             :         
    3037             : 
    3038             :         
    3039             :                 
    3040           0 :                 result = result && (this->endValidTime == endValidTime);
    3041             :                 
    3042           0 :                 if (!result) return false;
    3043             :         
    3044             : 
    3045             :         
    3046             :                 
    3047           0 :                 result = result && (this->frequencyRange == frequencyRange);
    3048             :                 
    3049           0 :                 if (!result) return false;
    3050             :         
    3051             : 
    3052             :         
    3053             :                 
    3054           0 :                 result = result && (this->numAntenna == numAntenna);
    3055             :                 
    3056           0 :                 if (!result) return false;
    3057             :         
    3058             : 
    3059             :         
    3060             :                 
    3061           0 :                 result = result && (this->numPoly == numPoly);
    3062             :                 
    3063           0 :                 if (!result) return false;
    3064             :         
    3065             : 
    3066             :         
    3067             :                 
    3068           0 :                 result = result && (this->numReceptor == numReceptor);
    3069             :                 
    3070           0 :                 if (!result) return false;
    3071             :         
    3072             : 
    3073             :         
    3074             :                 
    3075           0 :                 result = result && (this->antennaNames == antennaNames);
    3076             :                 
    3077           0 :                 if (!result) return false;
    3078             :         
    3079             : 
    3080             :         
    3081             :                 
    3082           0 :                 result = result && (this->refAntennaName == refAntennaName);
    3083             :                 
    3084           0 :                 if (!result) return false;
    3085             :         
    3086             : 
    3087             :         
    3088             :                 
    3089           0 :                 result = result && (this->polarizationTypes == polarizationTypes);
    3090             :                 
    3091           0 :                 if (!result) return false;
    3092             :         
    3093             : 
    3094             :         
    3095             :                 
    3096           0 :                 result = result && (this->curve == curve);
    3097             :                 
    3098           0 :                 if (!result) return false;
    3099             :         
    3100             : 
    3101             :         
    3102             :                 
    3103           0 :                 result = result && (this->reducedChiSquared == reducedChiSquared);
    3104             :                 
    3105           0 :                 if (!result) return false;
    3106             :         
    3107             : 
    3108           0 :                 return result;
    3109             :         }       
    3110             :         
    3111             :         
    3112             :         
    3113           0 :         bool CalCurveRow::compareRequiredValue(ArrayTime startValidTime, ArrayTime endValidTime, std::vector<Frequency > frequencyRange, int numAntenna, int numPoly, int numReceptor, std::vector<std::string > antennaNames, std::string refAntennaName, std::vector<PolarizationTypeMod::PolarizationType > polarizationTypes, std::vector<std::vector<std::vector<float > > > curve, std::vector<double > reducedChiSquared) {
    3114             :                 bool result;
    3115           0 :                 result = true;
    3116             :                 
    3117             :         
    3118           0 :                 if (!(this->startValidTime == startValidTime)) return false;
    3119             :         
    3120             : 
    3121             :         
    3122           0 :                 if (!(this->endValidTime == endValidTime)) return false;
    3123             :         
    3124             : 
    3125             :         
    3126           0 :                 if (!(this->frequencyRange == frequencyRange)) return false;
    3127             :         
    3128             : 
    3129             :         
    3130           0 :                 if (!(this->numAntenna == numAntenna)) return false;
    3131             :         
    3132             : 
    3133             :         
    3134           0 :                 if (!(this->numPoly == numPoly)) return false;
    3135             :         
    3136             : 
    3137             :         
    3138           0 :                 if (!(this->numReceptor == numReceptor)) return false;
    3139             :         
    3140             : 
    3141             :         
    3142           0 :                 if (!(this->antennaNames == antennaNames)) return false;
    3143             :         
    3144             : 
    3145             :         
    3146           0 :                 if (!(this->refAntennaName == refAntennaName)) return false;
    3147             :         
    3148             : 
    3149             :         
    3150           0 :                 if (!(this->polarizationTypes == polarizationTypes)) return false;
    3151             :         
    3152             : 
    3153             :         
    3154           0 :                 if (!(this->curve == curve)) return false;
    3155             :         
    3156             : 
    3157             :         
    3158           0 :                 if (!(this->reducedChiSquared == reducedChiSquared)) return false;
    3159             :         
    3160             : 
    3161           0 :                 return result;
    3162             :         }
    3163             :         
    3164             :         
    3165             :         /**
    3166             :          * Return true if all required attributes of the value part are equal to their homologues
    3167             :          * in x and false otherwise.
    3168             :          *
    3169             : 
    3170             :          * @param x a pointer on the CalCurveRow whose required attributes of the value part 
    3171             : 
    3172             :          * will be compared with those of this.
    3173             :          * @return a boolean.
    3174             :          */
    3175           0 :         bool CalCurveRow::equalByRequiredValue(CalCurveRow*  x ) {
    3176             :                 
    3177             :                         
    3178           0 :                 if (this->startValidTime != x->startValidTime) return false;
    3179             :                         
    3180           0 :                 if (this->endValidTime != x->endValidTime) return false;
    3181             :                         
    3182           0 :                 if (this->frequencyRange != x->frequencyRange) return false;
    3183             :                         
    3184           0 :                 if (this->numAntenna != x->numAntenna) return false;
    3185             :                         
    3186           0 :                 if (this->numPoly != x->numPoly) return false;
    3187             :                         
    3188           0 :                 if (this->numReceptor != x->numReceptor) return false;
    3189             :                         
    3190           0 :                 if (this->antennaNames != x->antennaNames) return false;
    3191             :                         
    3192           0 :                 if (this->refAntennaName != x->refAntennaName) return false;
    3193             :                         
    3194           0 :                 if (this->polarizationTypes != x->polarizationTypes) return false;
    3195             :                         
    3196           0 :                 if (this->curve != x->curve) return false;
    3197             :                         
    3198           0 :                 if (this->reducedChiSquared != x->reducedChiSquared) return false;
    3199             :                         
    3200             :                 
    3201           0 :                 return true;
    3202             :         }       
    3203             :         
    3204             : /*
    3205             :          map<string, CalCurveAttributeFromBin> CalCurveRow::initFromBinMethods() {
    3206             :                 map<string, CalCurveAttributeFromBin> result;
    3207             :                 
    3208             :                 result["atmPhaseCorrection"] = &CalCurveRow::atmPhaseCorrectionFromBin;
    3209             :                 result["typeCurve"] = &CalCurveRow::typeCurveFromBin;
    3210             :                 result["receiverBand"] = &CalCurveRow::receiverBandFromBin;
    3211             :                 result["calDataId"] = &CalCurveRow::calDataIdFromBin;
    3212             :                 result["calReductionId"] = &CalCurveRow::calReductionIdFromBin;
    3213             :                 result["startValidTime"] = &CalCurveRow::startValidTimeFromBin;
    3214             :                 result["endValidTime"] = &CalCurveRow::endValidTimeFromBin;
    3215             :                 result["frequencyRange"] = &CalCurveRow::frequencyRangeFromBin;
    3216             :                 result["numAntenna"] = &CalCurveRow::numAntennaFromBin;
    3217             :                 result["numPoly"] = &CalCurveRow::numPolyFromBin;
    3218             :                 result["numReceptor"] = &CalCurveRow::numReceptorFromBin;
    3219             :                 result["antennaNames"] = &CalCurveRow::antennaNamesFromBin;
    3220             :                 result["refAntennaName"] = &CalCurveRow::refAntennaNameFromBin;
    3221             :                 result["polarizationTypes"] = &CalCurveRow::polarizationTypesFromBin;
    3222             :                 result["curve"] = &CalCurveRow::curveFromBin;
    3223             :                 result["reducedChiSquared"] = &CalCurveRow::reducedChiSquaredFromBin;
    3224             :                 
    3225             :                 
    3226             :                 result["numBaseline"] = &CalCurveRow::numBaselineFromBin;
    3227             :                 result["rms"] = &CalCurveRow::rmsFromBin;
    3228             :                         
    3229             :                 
    3230             :                 return result;  
    3231             :         }
    3232             : */      
    3233             : } // End namespace asdm
    3234             :  

Generated by: LCOV version 1.16