LCOV - code coverage report
Current view: top level - alma/ASDM - WVMCalRow.cc (source / functions) Hit Total Coverage
Test: casa_coverage.info Lines: 0 355 0.0 %
Date: 2023-10-25 08:47:59 Functions: 0 67 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 WVMCalRow.cpp
      32             :  */
      33             :  
      34             : #include <vector>
      35             : #include <set>
      36             : 
      37             : #include <alma/ASDM/ASDM.h>
      38             : #include <alma/ASDM/WVMCalRow.h>
      39             : #include <alma/ASDM/WVMCalTable.h>
      40             : 
      41             : #include <alma/ASDM/SpectralWindowTable.h>
      42             : #include <alma/ASDM/SpectralWindowRow.h>
      43             : 
      44             : #include <alma/ASDM/AntennaTable.h>
      45             : #include <alma/ASDM/AntennaRow.h>
      46             : 
      47             : #include <alma/ASDM/AntennaTable.h>
      48             : #include <alma/ASDM/AntennaRow.h>
      49             :         
      50             : 
      51             : using asdm::ASDM;
      52             : using asdm::WVMCalRow;
      53             : using asdm::WVMCalTable;
      54             : 
      55             : using asdm::SpectralWindowTable;
      56             : using asdm::SpectralWindowRow;
      57             : 
      58             : using asdm::AntennaTable;
      59             : using asdm::AntennaRow;
      60             : 
      61             : using asdm::AntennaTable;
      62             : using asdm::AntennaRow;
      63             : 
      64             : 
      65             : #include <alma/ASDM/Parser.h>
      66             : 
      67             : #include <alma/ASDM/EnumerationParser.h>
      68             : #include <alma/ASDM/ASDMValuesParser.h>
      69             :  
      70             : #include <alma/ASDM/InvalidArgumentException.h>
      71             : 
      72             : using namespace std;
      73             : 
      74             : namespace asdm {
      75           0 :         WVMCalRow::~WVMCalRow() {
      76           0 :         }
      77             : 
      78             :         /**
      79             :          * Return the table to which this row belongs.
      80             :          */
      81           0 :         WVMCalTable &WVMCalRow::getTable() const {
      82           0 :                 return table;
      83             :         }
      84             : 
      85           0 :         bool WVMCalRow::isAdded() const {
      86           0 :                 return hasBeenAdded;
      87             :         }       
      88             : 
      89           0 :         void WVMCalRow::isAdded(bool added) {
      90           0 :                 hasBeenAdded = added;
      91           0 :         }
      92             :         
      93             : #ifndef WITHOUT_ACS
      94             :         using asdmIDL::WVMCalRowIDL;
      95             : #endif
      96             :         
      97             : #ifndef WITHOUT_ACS
      98             :         /**
      99             :          * Return this row in the form of an IDL struct.
     100             :          * @return The values of this row as a WVMCalRowIDL struct.
     101             :          */
     102             :         WVMCalRowIDL *WVMCalRow::toIDL() const {
     103             :                 WVMCalRowIDL *x = new WVMCalRowIDL ();
     104             :                 
     105             :                 // Fill the IDL structure.
     106             :         
     107             :                 
     108             :         
     109             :                 
     110             :                 
     111             :                 
     112             :                         
     113             :                 x->timeInterval = timeInterval.toIDLArrayTimeInterval();
     114             :                         
     115             :                 
     116             :         
     117             : 
     118             :         
     119             :                 
     120             :                 
     121             :                 
     122             :                         
     123             :                                 
     124             :                 x->wvrMethod = wvrMethod;
     125             :                                 
     126             :                         
     127             :                 
     128             :         
     129             : 
     130             :         
     131             :                 
     132             :                 
     133             :                 
     134             :                         
     135             :                 x->polyFreqLimits.length(polyFreqLimits.size());
     136             :                 for (unsigned int i = 0; i < polyFreqLimits.size(); ++i) {
     137             :                         
     138             :                         x->polyFreqLimits[i] = polyFreqLimits.at(i).toIDLFrequency();
     139             :                         
     140             :                 }
     141             :                         
     142             :                 
     143             :         
     144             : 
     145             :         
     146             :                 
     147             :                 
     148             :                 
     149             :                         
     150             :                                 
     151             :                 x->numInputAntenna = numInputAntenna;
     152             :                                 
     153             :                         
     154             :                 
     155             :         
     156             : 
     157             :         
     158             :                 
     159             :                 
     160             :                 
     161             :                         
     162             :                                 
     163             :                 x->numChan = numChan;
     164             :                                 
     165             :                         
     166             :                 
     167             :         
     168             : 
     169             :         
     170             :                 
     171             :                 
     172             :                 
     173             :                         
     174             :                                 
     175             :                 x->numPoly = numPoly;
     176             :                                 
     177             :                         
     178             :                 
     179             :         
     180             : 
     181             :         
     182             :                 
     183             :                 
     184             :                 
     185             :                         
     186             :                 x->pathCoeff.length(pathCoeff.size());
     187             :                 for (unsigned int i = 0; i < pathCoeff.size(); i++) {
     188             :                         x->pathCoeff[i].length(pathCoeff.at(i).size());
     189             :                         for (unsigned int j = 0; j < pathCoeff.at(i).size(); j++) {
     190             :                                 x->pathCoeff[i][j].length(pathCoeff.at(i).at(j).size());
     191             :                         }                                                       
     192             :                 }
     193             :                 
     194             :                 for (unsigned int i = 0; i < pathCoeff.size() ; i++)
     195             :                         for (unsigned int j = 0; j < pathCoeff.at(i).size(); j++)
     196             :                                 for (unsigned int k = 0; k < pathCoeff.at(i).at(j).size(); k++)
     197             :                                         
     198             :                                                 
     199             :                                         x->pathCoeff[i][j][k] = pathCoeff.at(i).at(j).at(k);
     200             :                                                 
     201             :                                                                                                 
     202             :                         
     203             :                 
     204             :         
     205             : 
     206             :         
     207             :                 
     208             :                 
     209             :                 
     210             :                         
     211             :                 x->refTemp.length(refTemp.size());
     212             :                 for (unsigned int i = 0; i < refTemp.size(); i++) {
     213             :                         x->refTemp[i].length(refTemp.at(i).size());                                  
     214             :                 }
     215             :                 
     216             :                 for (unsigned int i = 0; i < refTemp.size() ; i++)
     217             :                         for (unsigned int j = 0; j < refTemp.at(i).size(); j++)
     218             :                                         
     219             :                                 x->refTemp[i][j]= refTemp.at(i).at(j).toIDLTemperature();
     220             :                                                                         
     221             :                 
     222             :                         
     223             :                 
     224             :         
     225             : 
     226             :         
     227             :         
     228             :                 
     229             :         
     230             :         
     231             :                 
     232             :                 
     233             :                 
     234             :                         
     235             :                 x->antennaId = antennaId.toIDLTag();
     236             :                         
     237             :                                 
     238             :         
     239             : 
     240             :         
     241             :         
     242             :                 
     243             :                 
     244             :                 
     245             :                 x->inputAntennaId.length(inputAntennaId.size());
     246             :                 for (unsigned int i = 0; i < inputAntennaId.size(); ++i) {
     247             :                         
     248             :                         x->inputAntennaId[i] = inputAntennaId.at(i).toIDLTag();
     249             :                         
     250             :                 }
     251             :                                 
     252             :         
     253             : 
     254             :         
     255             :         
     256             :                 
     257             :                 
     258             :                 
     259             :                         
     260             :                 x->spectralWindowId = spectralWindowId.toIDLTag();
     261             :                         
     262             :                                 
     263             :         
     264             : 
     265             :         
     266             :                 
     267             :         
     268             : 
     269             :         
     270             : 
     271             :         
     272             : 
     273             :                 
     274             :                 return x;
     275             :         
     276             :         }
     277             :         
     278             :         void WVMCalRow::toIDL(asdmIDL::WVMCalRowIDL& x) const {
     279             :                 // Set the x's fields.
     280             :         
     281             :                 
     282             :         
     283             :                 
     284             :                 
     285             :                 
     286             :                         
     287             :                 x.timeInterval = timeInterval.toIDLArrayTimeInterval();
     288             :                         
     289             :                 
     290             :         
     291             : 
     292             :         
     293             :                 
     294             :                 
     295             :                 
     296             :                         
     297             :                                 
     298             :                 x.wvrMethod = wvrMethod;
     299             :                                 
     300             :                         
     301             :                 
     302             :         
     303             : 
     304             :         
     305             :                 
     306             :                 
     307             :                 
     308             :                         
     309             :                 x.polyFreqLimits.length(polyFreqLimits.size());
     310             :                 for (unsigned int i = 0; i < polyFreqLimits.size(); ++i) {
     311             :                         
     312             :                         x.polyFreqLimits[i] = polyFreqLimits.at(i).toIDLFrequency();
     313             :                         
     314             :                 }
     315             :                         
     316             :                 
     317             :         
     318             : 
     319             :         
     320             :                 
     321             :                 
     322             :                 
     323             :                         
     324             :                                 
     325             :                 x.numInputAntenna = numInputAntenna;
     326             :                                 
     327             :                         
     328             :                 
     329             :         
     330             : 
     331             :         
     332             :                 
     333             :                 
     334             :                 
     335             :                         
     336             :                                 
     337             :                 x.numChan = numChan;
     338             :                                 
     339             :                         
     340             :                 
     341             :         
     342             : 
     343             :         
     344             :                 
     345             :                 
     346             :                 
     347             :                         
     348             :                                 
     349             :                 x.numPoly = numPoly;
     350             :                                 
     351             :                         
     352             :                 
     353             :         
     354             : 
     355             :         
     356             :                 
     357             :                 
     358             :                 
     359             :                         
     360             :                 x.pathCoeff.length(pathCoeff.size());
     361             :                 for (unsigned int i = 0; i < pathCoeff.size(); i++) {
     362             :                         x.pathCoeff[i].length(pathCoeff.at(i).size());
     363             :                         for (unsigned int j = 0; j < pathCoeff.at(i).size(); j++) {
     364             :                                 x.pathCoeff[i][j].length(pathCoeff.at(i).at(j).size());
     365             :                         }                                                       
     366             :                 }
     367             :                 
     368             :                 for (unsigned int i = 0; i < pathCoeff.size() ; i++)
     369             :                         for (unsigned int j = 0; j < pathCoeff.at(i).size(); j++)
     370             :                                 for (unsigned int k = 0; k < pathCoeff.at(i).at(j).size(); k++)
     371             :                                         
     372             :                                                 
     373             :                                         x.pathCoeff[i][j][k] = pathCoeff.at(i).at(j).at(k);
     374             :                                                 
     375             :                                                                                                 
     376             :                         
     377             :                 
     378             :         
     379             : 
     380             :         
     381             :                 
     382             :                 
     383             :                 
     384             :                         
     385             :                 x.refTemp.length(refTemp.size());
     386             :                 for (unsigned int i = 0; i < refTemp.size(); i++) {
     387             :                         x.refTemp[i].length(refTemp.at(i).size());                                      
     388             :                 }
     389             :                 
     390             :                 for (unsigned int i = 0; i < refTemp.size() ; i++)
     391             :                         for (unsigned int j = 0; j < refTemp.at(i).size(); j++)
     392             :                                         
     393             :                                 x.refTemp[i][j]= refTemp.at(i).at(j).toIDLTemperature();
     394             :                                                                         
     395             :                 
     396             :                         
     397             :                 
     398             :         
     399             : 
     400             :         
     401             :         
     402             :                 
     403             :         
     404             :         
     405             :                 
     406             :                 
     407             :                 
     408             :                         
     409             :                 x.antennaId = antennaId.toIDLTag();
     410             :                         
     411             :                                 
     412             :         
     413             : 
     414             :         
     415             :         
     416             :                 
     417             :                 
     418             :                 
     419             :                 x.inputAntennaId.length(inputAntennaId.size());
     420             :                 for (unsigned int i = 0; i < inputAntennaId.size(); ++i) {
     421             :                         
     422             :                         x.inputAntennaId[i] = inputAntennaId.at(i).toIDLTag();
     423             :                         
     424             :                 }
     425             :                                 
     426             :         
     427             : 
     428             :         
     429             :         
     430             :                 
     431             :                 
     432             :                 
     433             :                         
     434             :                 x.spectralWindowId = spectralWindowId.toIDLTag();
     435             :                         
     436             :                                 
     437             :         
     438             : 
     439             :         
     440             :                 
     441             :         
     442             : 
     443             :         
     444             : 
     445             :         
     446             : 
     447             :         
     448             :         }
     449             : #endif
     450             :         
     451             : 
     452             : #ifndef WITHOUT_ACS
     453             :         /**
     454             :          * Fill the values of this row from the IDL struct WVMCalRowIDL.
     455             :          * @param x The IDL struct containing the values used to fill this row.
     456             :          */
     457             :         void WVMCalRow::setFromIDL (WVMCalRowIDL x){
     458             :                 try {
     459             :                 // Fill the values from x.
     460             :         
     461             :                 
     462             :         
     463             :                 
     464             :                 
     465             :                         
     466             :                 setTimeInterval(ArrayTimeInterval (x.timeInterval));
     467             :                         
     468             :                 
     469             :                 
     470             :         
     471             : 
     472             :         
     473             :                 
     474             :                 
     475             :                         
     476             :                 setWvrMethod(x.wvrMethod);
     477             :                         
     478             :                 
     479             :                 
     480             :         
     481             : 
     482             :         
     483             :                 
     484             :                 
     485             :                         
     486             :                 polyFreqLimits .clear();
     487             :                 for (unsigned int i = 0; i <x.polyFreqLimits.length(); ++i) {
     488             :                         
     489             :                         polyFreqLimits.push_back(Frequency (x.polyFreqLimits[i]));
     490             :                         
     491             :                 }
     492             :                         
     493             :                 
     494             :                 
     495             :         
     496             : 
     497             :         
     498             :                 
     499             :                 
     500             :                         
     501             :                 setNumInputAntenna(x.numInputAntenna);
     502             :                         
     503             :                 
     504             :                 
     505             :         
     506             : 
     507             :         
     508             :                 
     509             :                 
     510             :                         
     511             :                 setNumChan(x.numChan);
     512             :                         
     513             :                 
     514             :                 
     515             :         
     516             : 
     517             :         
     518             :                 
     519             :                 
     520             :                         
     521             :                 setNumPoly(x.numPoly);
     522             :                         
     523             :                 
     524             :                 
     525             :         
     526             : 
     527             :         
     528             :                 
     529             :                 
     530             :                         
     531             :                 pathCoeff .clear();
     532             :                 vector< vector<float> > vv_aux_pathCoeff;
     533             :                 vector<float> v_aux_pathCoeff;
     534             :                 
     535             :                 for (unsigned int i = 0; i < x.pathCoeff.length(); ++i) {
     536             :                         vv_aux_pathCoeff.clear();
     537             :                         for (unsigned int j = 0; j < x.pathCoeff[0].length(); ++j) {
     538             :                                 v_aux_pathCoeff.clear();
     539             :                                 for (unsigned int k = 0; k < x.pathCoeff[0][0].length(); ++k) {
     540             :                                         
     541             :                                         v_aux_pathCoeff.push_back(x.pathCoeff[i][j][k]);
     542             :                                         
     543             :                                 }
     544             :                                 vv_aux_pathCoeff.push_back(v_aux_pathCoeff);
     545             :                         }
     546             :                         pathCoeff.push_back(vv_aux_pathCoeff);
     547             :                 }
     548             :                         
     549             :                 
     550             :                 
     551             :         
     552             : 
     553             :         
     554             :                 
     555             :                 
     556             :                         
     557             :                 refTemp .clear();
     558             :         
     559             :         vector<Temperature> v_aux_refTemp;
     560             :         
     561             :                 for (unsigned int i = 0; i < x.refTemp.length(); ++i) {
     562             :                         v_aux_refTemp.clear();
     563             :                         for (unsigned int j = 0; j < x.refTemp[0].length(); ++j) {
     564             :                                 
     565             :                                 v_aux_refTemp.push_back(Temperature (x.refTemp[i][j]));
     566             :                                 
     567             :                         }
     568             :                         refTemp.push_back(v_aux_refTemp);                       
     569             :                 }
     570             :                         
     571             :                 
     572             :                 
     573             :         
     574             : 
     575             :         
     576             :         
     577             :                 
     578             :         
     579             :                 
     580             :                 
     581             :                         
     582             :                 setAntennaId(Tag (x.antennaId));
     583             :                         
     584             :                 
     585             :                 
     586             :         
     587             : 
     588             :         
     589             :                 
     590             :                 inputAntennaId .clear();
     591             :                 for (unsigned int i = 0; i <x.inputAntennaId.length(); ++i) {
     592             :                         
     593             :                         inputAntennaId.push_back(Tag (x.inputAntennaId[i]));
     594             :                         
     595             :                 }
     596             :                 
     597             :         
     598             : 
     599             :         
     600             :                 
     601             :                 
     602             :                         
     603             :                 setSpectralWindowId(Tag (x.spectralWindowId));
     604             :                         
     605             :                 
     606             :                 
     607             :         
     608             : 
     609             :         
     610             :                 
     611             :         
     612             : 
     613             :         
     614             : 
     615             :         
     616             : 
     617             :                 } catch (const IllegalAccessException &err) {
     618             :                         throw ConversionException (err.getMessage(),"WVMCal");
     619             :                 }
     620             :         }
     621             : #endif
     622             :         
     623             :         /**
     624             :          * Return this row in the form of an XML string.
     625             :          * @return The values of this row as an XML string.
     626             :          */
     627           0 :         string WVMCalRow::toXML() const {
     628           0 :                 string buf;
     629           0 :                 buf.append("<row> \n");
     630             :                 
     631             :         
     632             :                 
     633             :         
     634             :                 
     635             :                 
     636           0 :                 Parser::toXML(timeInterval, "timeInterval", buf);
     637             :                 
     638             :                 
     639             :         
     640             : 
     641             :         
     642             :                 
     643             :                 
     644           0 :                         buf.append(EnumerationParser::toXML("wvrMethod", wvrMethod));
     645             :                 
     646             :                 
     647             :         
     648             : 
     649             :         
     650             :                 
     651             :                 
     652           0 :                 Parser::toXML(polyFreqLimits, "polyFreqLimits", buf);
     653             :                 
     654             :                 
     655             :         
     656             : 
     657             :         
     658             :                 
     659             :                 
     660           0 :                 Parser::toXML(numInputAntenna, "numInputAntenna", buf);
     661             :                 
     662             :                 
     663             :         
     664             : 
     665             :         
     666             :                 
     667             :                 
     668           0 :                 Parser::toXML(numChan, "numChan", buf);
     669             :                 
     670             :                 
     671             :         
     672             : 
     673             :         
     674             :                 
     675             :                 
     676           0 :                 Parser::toXML(numPoly, "numPoly", buf);
     677             :                 
     678             :                 
     679             :         
     680             : 
     681             :         
     682             :                 
     683             :                 
     684           0 :                 Parser::toXML(pathCoeff, "pathCoeff", buf);
     685             :                 
     686             :                 
     687             :         
     688             : 
     689             :         
     690             :                 
     691             :                 
     692           0 :                 Parser::toXML(refTemp, "refTemp", buf);
     693             :                 
     694             :                 
     695             :         
     696             : 
     697             :         
     698             :         
     699             :                 
     700             :         
     701             :                 
     702             :                 
     703           0 :                 Parser::toXML(antennaId, "antennaId", buf);
     704             :                 
     705             :                 
     706             :         
     707             : 
     708             :         
     709             :                 
     710             :                 
     711           0 :                 Parser::toXML(inputAntennaId, "inputAntennaId", buf);
     712             :                 
     713             :                 
     714             :         
     715             : 
     716             :         
     717             :                 
     718             :                 
     719           0 :                 Parser::toXML(spectralWindowId, "spectralWindowId", buf);
     720             :                 
     721             :                 
     722             :         
     723             : 
     724             :         
     725             :                 
     726             :         
     727             : 
     728             :         
     729             : 
     730             :         
     731             : 
     732             :                 
     733           0 :                 buf.append("</row>\n");
     734           0 :                 return buf;
     735             :         }
     736             : 
     737             :         /**
     738             :          * Fill the values of this row from an XML string 
     739             :          * that was produced by the toXML() method.
     740             :          * @param x The XML string being used to set the values of this row.
     741             :          */
     742           0 :         void WVMCalRow::setFromXML (string rowDoc) {
     743           0 :                 Parser row(rowDoc);
     744           0 :                 string s = "";
     745             :                 try {
     746             :         
     747             :                 
     748             :         
     749             :                 
     750             :                         
     751           0 :                 setTimeInterval(Parser::getArrayTimeInterval("timeInterval","WVMCal",rowDoc));
     752             :                         
     753             :                 
     754             :         
     755             : 
     756             :         
     757             :                 
     758             :                 
     759             :                 
     760           0 :                 wvrMethod = EnumerationParser::getWVRMethod("wvrMethod","WVMCal",rowDoc);
     761             :                 
     762             :                 
     763             :                 
     764             :         
     765             : 
     766             :         
     767             :                 
     768             :                         
     769             :                                         
     770           0 :                 setPolyFreqLimits(Parser::get1DFrequency("polyFreqLimits","WVMCal",rowDoc));
     771             :                                 
     772             :                         
     773             :                 
     774             :         
     775             : 
     776             :         
     777             :                 
     778             :                         
     779           0 :                 setNumInputAntenna(Parser::getInteger("numInputAntenna","WVMCal",rowDoc));
     780             :                         
     781             :                 
     782             :         
     783             : 
     784             :         
     785             :                 
     786             :                         
     787           0 :                 setNumChan(Parser::getInteger("numChan","WVMCal",rowDoc));
     788             :                         
     789             :                 
     790             :         
     791             : 
     792             :         
     793             :                 
     794             :                         
     795           0 :                 setNumPoly(Parser::getInteger("numPoly","WVMCal",rowDoc));
     796             :                         
     797             :                 
     798             :         
     799             : 
     800             :         
     801             :                 
     802             :                         
     803             :                                         
     804           0 :                 setPathCoeff(Parser::get3DFloat("pathCoeff","WVMCal",rowDoc));
     805             :                                 
     806             :                         
     807             :                 
     808             :         
     809             : 
     810             :         
     811             :                 
     812             :                         
     813             :                                         
     814           0 :                 setRefTemp(Parser::get2DTemperature("refTemp","WVMCal",rowDoc));
     815             :                                 
     816             :                         
     817             :                 
     818             :         
     819             : 
     820             :         
     821             :         
     822             :                 
     823             :         
     824             :                 
     825             :                         
     826           0 :                 setAntennaId(Parser::getTag("antennaId","Antenna",rowDoc));
     827             :                         
     828             :                 
     829             :         
     830             : 
     831             :         
     832             :                  
     833           0 :                 setInputAntennaId(Parser::get1DTag("inputAntennaId","WVMCal",rowDoc));
     834             :                 
     835             :         
     836             : 
     837             :         
     838             :                 
     839             :                         
     840           0 :                 setSpectralWindowId(Parser::getTag("spectralWindowId","SpectralWindow",rowDoc));
     841             :                         
     842             :                 
     843             :         
     844             : 
     845             :         
     846             :                 
     847             :         
     848             : 
     849             :         
     850             : 
     851             :         
     852             : 
     853           0 :                 } catch (const IllegalAccessException &err) {
     854           0 :                         throw ConversionException (err.getMessage(),"WVMCal");
     855             :                 }
     856           0 :         }
     857             :         
     858           0 :         void WVMCalRow::toBin(EndianOSStream& eoss) {
     859             :         
     860             :         
     861             :         
     862             :         
     863             :                 
     864           0 :         antennaId.toBin(eoss);
     865             :                 
     866             :         
     867             : 
     868             :         
     869             :         
     870             :                 
     871           0 :         spectralWindowId.toBin(eoss);
     872             :                 
     873             :         
     874             : 
     875             :         
     876             :         
     877             :                 
     878           0 :         timeInterval.toBin(eoss);
     879             :                 
     880             :         
     881             : 
     882             :         
     883             :         
     884             :                 
     885             :                                         
     886           0 :                 eoss.writeString(CWVRMethod::name(wvrMethod));
     887             :                         /* eoss.writeInt(wvrMethod); */
     888             :                                 
     889             :                 
     890             :         
     891             : 
     892             :         
     893             :         
     894             :                 
     895           0 :         Frequency::toBin(polyFreqLimits, eoss);
     896             :                 
     897             :         
     898             : 
     899             :         
     900             :         
     901             :                 
     902             :                                                 
     903           0 :                         eoss.writeInt(numInputAntenna);
     904             :                                 
     905             :                 
     906             :         
     907             : 
     908             :         
     909             :         
     910             :                 
     911             :                                                 
     912           0 :                         eoss.writeInt(numChan);
     913             :                                 
     914             :                 
     915             :         
     916             : 
     917             :         
     918             :         
     919             :                 
     920             :                                                 
     921           0 :                         eoss.writeInt(numPoly);
     922             :                                 
     923             :                 
     924             :         
     925             : 
     926             :         
     927             :         
     928             :                 
     929             :                 
     930             :                         
     931           0 :                 eoss.writeInt((int) pathCoeff.size());
     932           0 :                 eoss.writeInt((int) pathCoeff.at(0).size());            
     933           0 :                 eoss.writeInt((int) pathCoeff.at(0).at(0).size());
     934           0 :                 for (unsigned int i = 0; i < pathCoeff.size(); i++) 
     935           0 :                         for (unsigned int j = 0;  j < pathCoeff.at(0).size(); j++)
     936           0 :                                 for (unsigned int k = 0; k <  pathCoeff.at(0).at(0).size(); k++)     
     937             :                                                          
     938           0 :                                         eoss.writeFloat(pathCoeff.at(i).at(j).at(k));
     939             :                                                 
     940             :                                                 
     941             :                 
     942             :         
     943             : 
     944             :         
     945             :         
     946             :                 
     947           0 :         Temperature::toBin(refTemp, eoss);
     948             :                 
     949             :         
     950             : 
     951             :         
     952             :         
     953             :                 
     954           0 :         Tag::toBin(inputAntennaId, eoss);
     955             :                 
     956             :         
     957             : 
     958             : 
     959             :         
     960             :         
     961           0 :         }
     962             :         
     963           0 : void WVMCalRow::antennaIdFromBin(EndianIStream& eis) {
     964             :                 
     965             :         
     966             :                 
     967             :                 
     968           0 :                 antennaId =  Tag::fromBin(eis);
     969             :                 
     970             :         
     971             :         
     972           0 : }
     973           0 : void WVMCalRow::spectralWindowIdFromBin(EndianIStream& eis) {
     974             :                 
     975             :         
     976             :                 
     977             :                 
     978           0 :                 spectralWindowId =  Tag::fromBin(eis);
     979             :                 
     980             :         
     981             :         
     982           0 : }
     983           0 : void WVMCalRow::timeIntervalFromBin(EndianIStream& eis) {
     984             :                 
     985             :         
     986             :                 
     987             :                 
     988           0 :                 timeInterval =  ArrayTimeInterval::fromBin(eis);
     989             :                 
     990             :         
     991             :         
     992           0 : }
     993           0 : void WVMCalRow::wvrMethodFromBin(EndianIStream& eis) {
     994             :                 
     995             :         
     996             :         
     997             :                 
     998             :                         
     999           0 :                 wvrMethod = CWVRMethod::literal(eis.readString());
    1000             :                         
    1001             :                 
    1002             :         
    1003             :         
    1004           0 : }
    1005           0 : void WVMCalRow::polyFreqLimitsFromBin(EndianIStream& eis) {
    1006             :                 
    1007             :         
    1008             :                 
    1009             :                 
    1010             :                         
    1011             :         
    1012           0 :         polyFreqLimits = Frequency::from1DBin(eis);     
    1013             :         
    1014             : 
    1015             :                 
    1016             :         
    1017             :         
    1018           0 : }
    1019           0 : void WVMCalRow::numInputAntennaFromBin(EndianIStream& eis) {
    1020             :                 
    1021             :         
    1022             :         
    1023             :                 
    1024             :                         
    1025           0 :                 numInputAntenna =  eis.readInt();
    1026             :                         
    1027             :                 
    1028             :         
    1029             :         
    1030           0 : }
    1031           0 : void WVMCalRow::numChanFromBin(EndianIStream& eis) {
    1032             :                 
    1033             :         
    1034             :         
    1035             :                 
    1036             :                         
    1037           0 :                 numChan =  eis.readInt();
    1038             :                         
    1039             :                 
    1040             :         
    1041             :         
    1042           0 : }
    1043           0 : void WVMCalRow::numPolyFromBin(EndianIStream& eis) {
    1044             :                 
    1045             :         
    1046             :         
    1047             :                 
    1048             :                         
    1049           0 :                 numPoly =  eis.readInt();
    1050             :                         
    1051             :                 
    1052             :         
    1053             :         
    1054           0 : }
    1055           0 : void WVMCalRow::pathCoeffFromBin(EndianIStream& eis) {
    1056             :                 
    1057             :         
    1058             :         
    1059             :                 
    1060             :                         
    1061             :         
    1062           0 :                 pathCoeff.clear();
    1063             :                         
    1064           0 :                 unsigned int pathCoeffDim1 = eis.readInt();
    1065           0 :                 unsigned int pathCoeffDim2 = eis.readInt();
    1066           0 :                 unsigned int pathCoeffDim3 = eis.readInt();
    1067           0 :                 vector <vector<float> > pathCoeffAux2;
    1068           0 :                 vector <float> pathCoeffAux1;
    1069           0 :                 for (unsigned int i = 0; i < pathCoeffDim1; i++) {
    1070           0 :                         pathCoeffAux2.clear();
    1071           0 :                         for (unsigned int j = 0; j < pathCoeffDim2 ; j++) {
    1072           0 :                                 pathCoeffAux1.clear();
    1073           0 :                                 for (unsigned int k = 0; k < pathCoeffDim3; k++) {
    1074             :                         
    1075           0 :                                         pathCoeffAux1.push_back(eis.readFloat());
    1076             :                         
    1077             :                                 }
    1078           0 :                                 pathCoeffAux2.push_back(pathCoeffAux1);
    1079             :                         }
    1080           0 :                         pathCoeff.push_back(pathCoeffAux2);
    1081             :                 }       
    1082             :         
    1083             : 
    1084             :                 
    1085             :         
    1086             :         
    1087           0 : }
    1088           0 : void WVMCalRow::refTempFromBin(EndianIStream& eis) {
    1089             :                 
    1090             :         
    1091             :                 
    1092             :                 
    1093             :                         
    1094             :         
    1095           0 :         refTemp = Temperature::from2DBin(eis);          
    1096             :         
    1097             : 
    1098             :                 
    1099             :         
    1100             :         
    1101           0 : }
    1102           0 : void WVMCalRow::inputAntennaIdFromBin(EndianIStream& eis) {
    1103             :                 
    1104             :         
    1105             :                 
    1106             :                 
    1107             :                         
    1108             :         
    1109           0 :         inputAntennaId = Tag::from1DBin(eis);   
    1110             :         
    1111             : 
    1112             :                 
    1113             :         
    1114             :         
    1115           0 : }
    1116             : 
    1117             :                 
    1118             :         
    1119           0 :         WVMCalRow* WVMCalRow::fromBin(EndianIStream& eis, WVMCalTable& table, const vector<string>& attributesSeq) {
    1120           0 :                 WVMCalRow* row = new  WVMCalRow(table);
    1121             :                 
    1122           0 :                 map<string, WVMCalAttributeFromBin>::iterator iter ;
    1123           0 :                 for (unsigned int i = 0; i < attributesSeq.size(); i++) {
    1124           0 :                         iter = row->fromBinMethods.find(attributesSeq.at(i));
    1125           0 :                         if (iter != row->fromBinMethods.end()) {
    1126           0 :                                 (row->*(row->fromBinMethods[ attributesSeq.at(i) ] ))(eis);                       
    1127             :                         }
    1128             :                         else {
    1129           0 :                                 BinaryAttributeReaderFunctor* functorP = table.getUnknownAttributeBinaryReader(attributesSeq.at(i));
    1130           0 :                                 if (functorP)
    1131           0 :                                         (*functorP)(eis);
    1132             :                                 else
    1133           0 :                                         throw ConversionException("There is not method to read an attribute '"+attributesSeq.at(i)+"'.", "WVMCalTable");
    1134             :                         }
    1135             :                                 
    1136             :                 }                               
    1137           0 :                 return row;
    1138             :         }
    1139             : 
    1140             :         //
    1141             :         // A collection of methods to set the value of the attributes from their textual value in the XML representation
    1142             :         // of one row.
    1143             :         //
    1144             :         
    1145             :         // Convert a string into an Tag 
    1146           0 :         void WVMCalRow::antennaIdFromText(const string & s) {
    1147             :                  
    1148             :           
    1149           0 :                 antennaId = ASDMValuesParser::parse<Tag>(s);
    1150             :           
    1151             :                 
    1152           0 :         }
    1153             :         
    1154             :         
    1155             :         // Convert a string into an Tag 
    1156           0 :         void WVMCalRow::spectralWindowIdFromText(const string & s) {
    1157             :                  
    1158             :           
    1159           0 :                 spectralWindowId = ASDMValuesParser::parse<Tag>(s);
    1160             :           
    1161             :                 
    1162           0 :         }
    1163             :         
    1164             :         
    1165             :         // Convert a string into an ArrayTimeInterval 
    1166           0 :         void WVMCalRow::timeIntervalFromText(const string & s) {
    1167             :                  
    1168             :           
    1169           0 :                 timeInterval = ASDMValuesParser::parse<ArrayTimeInterval>(s);
    1170             :           
    1171             :                 
    1172           0 :         }
    1173             :         
    1174             :         
    1175             :         // Convert a string into an WVRMethod 
    1176           0 :         void WVMCalRow::wvrMethodFromText(const string & s) {
    1177             :                  
    1178             :           
    1179           0 :                 wvrMethod = ASDMValuesParser::parse<WVRMethodMod::WVRMethod>(s);
    1180             :           
    1181             :                 
    1182           0 :         }
    1183             :         
    1184             :         
    1185             :         // Convert a string into an Frequency 
    1186           0 :         void WVMCalRow::polyFreqLimitsFromText(const string & s) {
    1187             :                  
    1188             :           
    1189           0 :                 polyFreqLimits = ASDMValuesParser::parse1D<Frequency>(s);
    1190             :           
    1191             :                 
    1192           0 :         }
    1193             :         
    1194             :         
    1195             :         // Convert a string into an int 
    1196           0 :         void WVMCalRow::numInputAntennaFromText(const string & s) {
    1197             :                  
    1198             :           
    1199           0 :                 numInputAntenna = ASDMValuesParser::parse<int>(s);
    1200             :           
    1201             :                 
    1202           0 :         }
    1203             :         
    1204             :         
    1205             :         // Convert a string into an int 
    1206           0 :         void WVMCalRow::numChanFromText(const string & s) {
    1207             :                  
    1208             :           
    1209           0 :                 numChan = ASDMValuesParser::parse<int>(s);
    1210             :           
    1211             :                 
    1212           0 :         }
    1213             :         
    1214             :         
    1215             :         // Convert a string into an int 
    1216           0 :         void WVMCalRow::numPolyFromText(const string & s) {
    1217             :                  
    1218             :           
    1219           0 :                 numPoly = ASDMValuesParser::parse<int>(s);
    1220             :           
    1221             :                 
    1222           0 :         }
    1223             :         
    1224             :         
    1225             :         // Convert a string into an float 
    1226           0 :         void WVMCalRow::pathCoeffFromText(const string & s) {
    1227             :                  
    1228             :           
    1229           0 :                 pathCoeff = ASDMValuesParser::parse3D<float>(s);
    1230             :           
    1231             :                 
    1232           0 :         }
    1233             :         
    1234             :         
    1235             :         // Convert a string into an Temperature 
    1236           0 :         void WVMCalRow::refTempFromText(const string & s) {
    1237             :                  
    1238             :           
    1239           0 :                 refTemp = ASDMValuesParser::parse2D<Temperature>(s);
    1240             :           
    1241             :                 
    1242           0 :         }
    1243             :         
    1244             :         
    1245             :         // Convert a string into an Tag 
    1246           0 :         void WVMCalRow::inputAntennaIdFromText(const string & s) {
    1247             :                  
    1248             :           
    1249           0 :                 inputAntennaId = ASDMValuesParser::parse1D<Tag>(s);
    1250             :           
    1251             :                 
    1252           0 :         }
    1253             :         
    1254             : 
    1255             :                 
    1256             :         
    1257           0 :         void WVMCalRow::fromText(const std::string& attributeName, const std::string&  t) {
    1258           0 :                 map<string, WVMCalAttributeFromText>::iterator iter;
    1259           0 :                 if ((iter = fromTextMethods.find(attributeName)) == fromTextMethods.end())
    1260           0 :                         throw ConversionException("I do not know what to do with '"+attributeName+"' and its content '"+t+"' (while parsing an XML document)", "WVMCalTable");
    1261           0 :                 (this->*(iter->second))(t);
    1262           0 :         }
    1263             :                         
    1264             :         ////////////////////////////////////////////////
    1265             :         // Intrinsic Table Attributes getters/setters //
    1266             :         ////////////////////////////////////////////////
    1267             :         
    1268             :         
    1269             : 
    1270             :         
    1271             :         /**
    1272             :          * Get timeInterval.
    1273             :          * @return timeInterval as ArrayTimeInterval
    1274             :          */
    1275           0 :         ArrayTimeInterval WVMCalRow::getTimeInterval() const {
    1276             :         
    1277           0 :                 return timeInterval;
    1278             :         }
    1279             : 
    1280             :         /**
    1281             :          * Set timeInterval with the specified ArrayTimeInterval.
    1282             :          * @param timeInterval The ArrayTimeInterval value to which timeInterval is to be set.
    1283             :          
    1284             :         
    1285             :                 
    1286             :          * @throw IllegalAccessException If an attempt is made to change this field after is has been added to the table.
    1287             :                 
    1288             :          */
    1289           0 :         void WVMCalRow::setTimeInterval (ArrayTimeInterval timeInterval)  {
    1290             :         
    1291             :         
    1292           0 :                 if (hasBeenAdded) {
    1293             :                 
    1294           0 :                         throw IllegalAccessException("timeInterval", "WVMCal");
    1295             :                 
    1296             :                 }
    1297             :         
    1298           0 :                 this->timeInterval = timeInterval;
    1299             :         
    1300           0 :         }
    1301             :         
    1302             :         
    1303             : 
    1304             :         
    1305             : 
    1306             :         
    1307             :         /**
    1308             :          * Get wvrMethod.
    1309             :          * @return wvrMethod as WVRMethodMod::WVRMethod
    1310             :          */
    1311           0 :         WVRMethodMod::WVRMethod WVMCalRow::getWvrMethod() const {
    1312             :         
    1313           0 :                 return wvrMethod;
    1314             :         }
    1315             : 
    1316             :         /**
    1317             :          * Set wvrMethod with the specified WVRMethodMod::WVRMethod.
    1318             :          * @param wvrMethod The WVRMethodMod::WVRMethod value to which wvrMethod is to be set.
    1319             :          
    1320             :         
    1321             :                 
    1322             :          */
    1323           0 :         void WVMCalRow::setWvrMethod (WVRMethodMod::WVRMethod wvrMethod)  {
    1324             :         
    1325             :         
    1326           0 :                 if (hasBeenAdded) {
    1327             :                 
    1328             :                 }
    1329             :         
    1330           0 :                 this->wvrMethod = wvrMethod;
    1331             :         
    1332           0 :         }
    1333             :         
    1334             :         
    1335             : 
    1336             :         
    1337             : 
    1338             :         
    1339             :         /**
    1340             :          * Get polyFreqLimits.
    1341             :          * @return polyFreqLimits as std::vector<Frequency >
    1342             :          */
    1343           0 :         std::vector<Frequency > WVMCalRow::getPolyFreqLimits() const {
    1344             :         
    1345           0 :                 return polyFreqLimits;
    1346             :         }
    1347             : 
    1348             :         /**
    1349             :          * Set polyFreqLimits with the specified std::vector<Frequency >.
    1350             :          * @param polyFreqLimits The std::vector<Frequency > value to which polyFreqLimits is to be set.
    1351             :          
    1352             :         
    1353             :                 
    1354             :          */
    1355           0 :         void WVMCalRow::setPolyFreqLimits (std::vector<Frequency > polyFreqLimits)  {
    1356             :         
    1357             :         
    1358           0 :                 if (hasBeenAdded) {
    1359             :                 
    1360             :                 }
    1361             :         
    1362           0 :                 this->polyFreqLimits = polyFreqLimits;
    1363             :         
    1364           0 :         }
    1365             :         
    1366             :         
    1367             : 
    1368             :         
    1369             : 
    1370             :         
    1371             :         /**
    1372             :          * Get numInputAntenna.
    1373             :          * @return numInputAntenna as int
    1374             :          */
    1375           0 :         int WVMCalRow::getNumInputAntenna() const {
    1376             :         
    1377           0 :                 return numInputAntenna;
    1378             :         }
    1379             : 
    1380             :         /**
    1381             :          * Set numInputAntenna with the specified int.
    1382             :          * @param numInputAntenna The int value to which numInputAntenna is to be set.
    1383             :          
    1384             :         
    1385             :                 
    1386             :          */
    1387           0 :         void WVMCalRow::setNumInputAntenna (int numInputAntenna)  {
    1388             :         
    1389             :         
    1390           0 :                 if (hasBeenAdded) {
    1391             :                 
    1392             :                 }
    1393             :         
    1394           0 :                 this->numInputAntenna = numInputAntenna;
    1395             :         
    1396           0 :         }
    1397             :         
    1398             :         
    1399             : 
    1400             :         
    1401             : 
    1402             :         
    1403             :         /**
    1404             :          * Get numChan.
    1405             :          * @return numChan as int
    1406             :          */
    1407           0 :         int WVMCalRow::getNumChan() const {
    1408             :         
    1409           0 :                 return numChan;
    1410             :         }
    1411             : 
    1412             :         /**
    1413             :          * Set numChan with the specified int.
    1414             :          * @param numChan The int value to which numChan is to be set.
    1415             :          
    1416             :         
    1417             :                 
    1418             :          */
    1419           0 :         void WVMCalRow::setNumChan (int numChan)  {
    1420             :         
    1421             :         
    1422           0 :                 if (hasBeenAdded) {
    1423             :                 
    1424             :                 }
    1425             :         
    1426           0 :                 this->numChan = numChan;
    1427             :         
    1428           0 :         }
    1429             :         
    1430             :         
    1431             : 
    1432             :         
    1433             : 
    1434             :         
    1435             :         /**
    1436             :          * Get numPoly.
    1437             :          * @return numPoly as int
    1438             :          */
    1439           0 :         int WVMCalRow::getNumPoly() const {
    1440             :         
    1441           0 :                 return numPoly;
    1442             :         }
    1443             : 
    1444             :         /**
    1445             :          * Set numPoly with the specified int.
    1446             :          * @param numPoly The int value to which numPoly is to be set.
    1447             :          
    1448             :         
    1449             :                 
    1450             :          */
    1451           0 :         void WVMCalRow::setNumPoly (int numPoly)  {
    1452             :         
    1453             :         
    1454           0 :                 if (hasBeenAdded) {
    1455             :                 
    1456             :                 }
    1457             :         
    1458           0 :                 this->numPoly = numPoly;
    1459             :         
    1460           0 :         }
    1461             :         
    1462             :         
    1463             : 
    1464             :         
    1465             : 
    1466             :         
    1467             :         /**
    1468             :          * Get pathCoeff.
    1469             :          * @return pathCoeff as std::vector<std::vector<std::vector<float > > >
    1470             :          */
    1471           0 :         std::vector<std::vector<std::vector<float > > > WVMCalRow::getPathCoeff() const {
    1472             :         
    1473           0 :                 return pathCoeff;
    1474             :         }
    1475             : 
    1476             :         /**
    1477             :          * Set pathCoeff with the specified std::vector<std::vector<std::vector<float > > >.
    1478             :          * @param pathCoeff The std::vector<std::vector<std::vector<float > > > value to which pathCoeff is to be set.
    1479             :          
    1480             :         
    1481             :                 
    1482             :          */
    1483           0 :         void WVMCalRow::setPathCoeff (std::vector<std::vector<std::vector<float > > > pathCoeff)  {
    1484             :         
    1485             :         
    1486           0 :                 if (hasBeenAdded) {
    1487             :                 
    1488             :                 }
    1489             :         
    1490           0 :                 this->pathCoeff = pathCoeff;
    1491             :         
    1492           0 :         }
    1493             :         
    1494             :         
    1495             : 
    1496             :         
    1497             : 
    1498             :         
    1499             :         /**
    1500             :          * Get refTemp.
    1501             :          * @return refTemp as std::vector<std::vector<Temperature > >
    1502             :          */
    1503           0 :         std::vector<std::vector<Temperature > > WVMCalRow::getRefTemp() const {
    1504             :         
    1505           0 :                 return refTemp;
    1506             :         }
    1507             : 
    1508             :         /**
    1509             :          * Set refTemp with the specified std::vector<std::vector<Temperature > >.
    1510             :          * @param refTemp The std::vector<std::vector<Temperature > > value to which refTemp is to be set.
    1511             :          
    1512             :         
    1513             :                 
    1514             :          */
    1515           0 :         void WVMCalRow::setRefTemp (std::vector<std::vector<Temperature > > refTemp)  {
    1516             :         
    1517             :         
    1518           0 :                 if (hasBeenAdded) {
    1519             :                 
    1520             :                 }
    1521             :         
    1522           0 :                 this->refTemp = refTemp;
    1523             :         
    1524           0 :         }
    1525             :         
    1526             :         
    1527             : 
    1528             :         
    1529             :         ///////////////////////////////////////////////
    1530             :         // Extrinsic Table Attributes getters/setters//
    1531             :         ///////////////////////////////////////////////
    1532             :         
    1533             :         
    1534             : 
    1535             :         
    1536             :         /**
    1537             :          * Get antennaId.
    1538             :          * @return antennaId as Tag
    1539             :          */
    1540           0 :         Tag WVMCalRow::getAntennaId() const {
    1541             :         
    1542           0 :                 return antennaId;
    1543             :         }
    1544             : 
    1545             :         /**
    1546             :          * Set antennaId with the specified Tag.
    1547             :          * @param antennaId The Tag value to which antennaId is to be set.
    1548             :          
    1549             :         
    1550             :                 
    1551             :          * @throw IllegalAccessException If an attempt is made to change this field after is has been added to the table.
    1552             :                 
    1553             :          */
    1554           0 :         void WVMCalRow::setAntennaId (Tag antennaId)  {
    1555             :         
    1556             :         
    1557           0 :                 if (hasBeenAdded) {
    1558             :                 
    1559           0 :                         throw IllegalAccessException("antennaId", "WVMCal");
    1560             :                 
    1561             :                 }
    1562             :         
    1563           0 :                 this->antennaId = antennaId;
    1564             :         
    1565           0 :         }
    1566             :         
    1567             :         
    1568             : 
    1569             :         
    1570             : 
    1571             :         
    1572             :         /**
    1573             :          * Get inputAntennaId.
    1574             :          * @return inputAntennaId as std::vector<Tag> 
    1575             :          */
    1576           0 :         std::vector<Tag>  WVMCalRow::getInputAntennaId() const {
    1577             :         
    1578           0 :                 return inputAntennaId;
    1579             :         }
    1580             : 
    1581             :         /**
    1582             :          * Set inputAntennaId with the specified std::vector<Tag> .
    1583             :          * @param inputAntennaId The std::vector<Tag>  value to which inputAntennaId is to be set.
    1584             :          
    1585             :         
    1586             :                 
    1587             :          */
    1588           0 :         void WVMCalRow::setInputAntennaId (std::vector<Tag>  inputAntennaId)  {
    1589             :         
    1590             :         
    1591           0 :                 if (hasBeenAdded) {
    1592             :                 
    1593             :                 }
    1594             :         
    1595           0 :                 this->inputAntennaId = inputAntennaId;
    1596             :         
    1597           0 :         }
    1598             :         
    1599             :         
    1600             : 
    1601             :         
    1602             : 
    1603             :         
    1604             :         /**
    1605             :          * Get spectralWindowId.
    1606             :          * @return spectralWindowId as Tag
    1607             :          */
    1608           0 :         Tag WVMCalRow::getSpectralWindowId() const {
    1609             :         
    1610           0 :                 return spectralWindowId;
    1611             :         }
    1612             : 
    1613             :         /**
    1614             :          * Set spectralWindowId with the specified Tag.
    1615             :          * @param spectralWindowId The Tag value to which spectralWindowId is to be set.
    1616             :          
    1617             :         
    1618             :                 
    1619             :          * @throw IllegalAccessException If an attempt is made to change this field after is has been added to the table.
    1620             :                 
    1621             :          */
    1622           0 :         void WVMCalRow::setSpectralWindowId (Tag spectralWindowId)  {
    1623             :         
    1624             :         
    1625           0 :                 if (hasBeenAdded) {
    1626             :                 
    1627           0 :                         throw IllegalAccessException("spectralWindowId", "WVMCal");
    1628             :                 
    1629             :                 }
    1630             :         
    1631           0 :                 this->spectralWindowId = spectralWindowId;
    1632             :         
    1633           0 :         }
    1634             :         
    1635             :         
    1636             : 
    1637             : 
    1638             :         //////////////////////////////////////
    1639             :         // Links Attributes getters/setters //
    1640             :         //////////////////////////////////////
    1641             :         
    1642             :         
    1643             :         
    1644             :         
    1645             :                 
    1646             : 
    1647             :         /**
    1648             :          * Returns the pointer to the row in the SpectralWindow table having SpectralWindow.spectralWindowId == spectralWindowId
    1649             :          * @return a SpectralWindowRow*
    1650             :          * 
    1651             :          
    1652             :          */
    1653           0 :          SpectralWindowRow* WVMCalRow::getSpectralWindowUsingSpectralWindowId() {
    1654             :          
    1655           0 :                 return table.getContainer().getSpectralWindow().getRowByKey(spectralWindowId);
    1656             :          }
    1657             :          
    1658             : 
    1659             :         
    1660             : 
    1661             :         
    1662             :         
    1663             :         
    1664             :                 
    1665             : 
    1666             :         /**
    1667             :          * Returns the pointer to the row in the Antenna table having Antenna.antennaId == antennaId
    1668             :          * @return a AntennaRow*
    1669             :          * 
    1670             :          
    1671             :          */
    1672           0 :          AntennaRow* WVMCalRow::getAntennaUsingAntennaId() {
    1673             :          
    1674           0 :                 return table.getContainer().getAntenna().getRowByKey(antennaId);
    1675             :          }
    1676             :          
    1677             : 
    1678             :         
    1679             : 
    1680             :         
    1681             :                 
    1682             :         /**
    1683             :          * Set inputAntennaId[i] with the specified Tag.
    1684             :          * @param i The index in inputAntennaId where to set the Tag value.
    1685             :          * @param inputAntennaId The Tag value to which inputAntennaId[i] is to be set. 
    1686             :                         
    1687             :          * @throws IndexOutOfBoundsException
    1688             :          */
    1689           0 :         void WVMCalRow::setInputAntennaId (int i, Tag inputAntennaId)  {
    1690           0 :                 if (hasBeenAdded) {
    1691             :                         
    1692             :                 }
    1693           0 :                 if ((i < 0) || (i > ((int) this->inputAntennaId.size())))
    1694           0 :                         throw OutOfBoundsException("Index out of bounds during a set operation on attribute inputAntennaId in table WVMCalTable");
    1695           0 :                 std::vector<Tag> ::iterator iter = this->inputAntennaId.begin();
    1696           0 :                 int j = 0;
    1697           0 :                 while (j < i) {
    1698           0 :                         j++; iter++;
    1699             :                 }
    1700           0 :                 this->inputAntennaId.insert(this->inputAntennaId.erase(iter), inputAntennaId); 
    1701           0 :         }       
    1702             :                         
    1703             :         
    1704             :         
    1705             :         
    1706             :                 
    1707             : /**
    1708             :  * Append a Tag to inputAntennaId.
    1709             :  * @param id the Tag to be appended to inputAntennaId
    1710             :  */
    1711           0 :  void WVMCalRow::addInputAntennaId(Tag id){
    1712           0 :         inputAntennaId.push_back(id);
    1713           0 : }
    1714             : 
    1715             : /**
    1716             :  * Append an array of Tag to inputAntennaId.
    1717             :  * @param id an array of Tag to be appended to inputAntennaId
    1718             :  */
    1719           0 :  void WVMCalRow::addInputAntennaId(const std::vector<Tag> & id) {
    1720           0 :         for (unsigned int i=0; i < id.size(); i++)
    1721           0 :                 inputAntennaId.push_back(id.at(i));
    1722           0 :  }
    1723             :  
    1724             : 
    1725             :  /**
    1726             :   * Returns the Tag stored in inputAntennaId at position i.
    1727             :   *
    1728             :   */
    1729           0 :  const Tag WVMCalRow::getInputAntennaId(int i) {
    1730           0 :         return inputAntennaId.at(i);
    1731             :  }
    1732             :  
    1733             :  /**
    1734             :   * Returns the AntennaRow linked to this row via the Tag stored in inputAntennaId
    1735             :   * at position i.
    1736             :   */
    1737           0 :  AntennaRow* WVMCalRow::getAntennaUsingInputAntennaId(int i) {
    1738           0 :         return table.getContainer().getAntenna().getRowByKey(inputAntennaId.at(i));
    1739             :  } 
    1740             :  
    1741             :  /**
    1742             :   * Returns the vector of AntennaRow* linked to this row via the Tags stored in inputAntennaId
    1743             :   *
    1744             :   */
    1745           0 :  vector<AntennaRow *> WVMCalRow::getAntennasUsingInputAntennaId() {
    1746           0 :         vector<AntennaRow *> result;
    1747           0 :         for (unsigned int i = 0; i < inputAntennaId.size(); i++)
    1748           0 :                 result.push_back(table.getContainer().getAntenna().getRowByKey(inputAntennaId.at(i)));
    1749             :                 
    1750           0 :         return result;
    1751             :  }
    1752             :   
    1753             : 
    1754             :         
    1755             : 
    1756             :         
    1757             :         /**
    1758             :          * Create a WVMCalRow.
    1759             :          * <p>
    1760             :          * This constructor is private because only the
    1761             :          * table can create rows.  All rows know the table
    1762             :          * to which they belong.
    1763             :          * @param table The table to which this row belongs.
    1764             :          */ 
    1765           0 :         WVMCalRow::WVMCalRow (WVMCalTable &t) : table(t) {
    1766           0 :                 hasBeenAdded = false;
    1767             :                 
    1768             :         
    1769             :         
    1770             : 
    1771             :         
    1772             : 
    1773             :         
    1774             : 
    1775             :         
    1776             : 
    1777             :         
    1778             : 
    1779             :         
    1780             : 
    1781             :         
    1782             : 
    1783             :         
    1784             : 
    1785             :         
    1786             :         
    1787             : 
    1788             :         
    1789             : 
    1790             :         
    1791             : 
    1792             :         
    1793             :         
    1794             :         
    1795             :         
    1796             : 
    1797             :         
    1798             : // This attribute is scalar and has an enumeration type. Let's initialize it to some valid value (the 1st of the enumeration).          
    1799           0 : wvrMethod = CWVRMethod::from_int(0);
    1800             :         
    1801             : 
    1802             :         
    1803             : 
    1804             :         
    1805             : 
    1806             :         
    1807             : 
    1808             :         
    1809             : 
    1810             :         
    1811             : 
    1812             :         
    1813             : 
    1814             :         
    1815             :         
    1816           0 :          fromBinMethods["antennaId"] = &WVMCalRow::antennaIdFromBin; 
    1817           0 :          fromBinMethods["spectralWindowId"] = &WVMCalRow::spectralWindowIdFromBin; 
    1818           0 :          fromBinMethods["timeInterval"] = &WVMCalRow::timeIntervalFromBin; 
    1819           0 :          fromBinMethods["wvrMethod"] = &WVMCalRow::wvrMethodFromBin; 
    1820           0 :          fromBinMethods["polyFreqLimits"] = &WVMCalRow::polyFreqLimitsFromBin; 
    1821           0 :          fromBinMethods["numInputAntenna"] = &WVMCalRow::numInputAntennaFromBin; 
    1822           0 :          fromBinMethods["numChan"] = &WVMCalRow::numChanFromBin; 
    1823           0 :          fromBinMethods["numPoly"] = &WVMCalRow::numPolyFromBin; 
    1824           0 :          fromBinMethods["pathCoeff"] = &WVMCalRow::pathCoeffFromBin; 
    1825           0 :          fromBinMethods["refTemp"] = &WVMCalRow::refTempFromBin; 
    1826           0 :          fromBinMethods["inputAntennaId"] = &WVMCalRow::inputAntennaIdFromBin; 
    1827             :                 
    1828             :         
    1829             :         
    1830             :         
    1831             :         
    1832             :         
    1833             :                                  
    1834           0 :         fromTextMethods["antennaId"] = &WVMCalRow::antennaIdFromText;
    1835             :                  
    1836             :         
    1837             :                                  
    1838           0 :         fromTextMethods["spectralWindowId"] = &WVMCalRow::spectralWindowIdFromText;
    1839             :                  
    1840             :         
    1841             :                                  
    1842           0 :         fromTextMethods["timeInterval"] = &WVMCalRow::timeIntervalFromText;
    1843             :                  
    1844             :         
    1845             :                                  
    1846           0 :         fromTextMethods["wvrMethod"] = &WVMCalRow::wvrMethodFromText;
    1847             :                  
    1848             :         
    1849             :                                  
    1850           0 :         fromTextMethods["polyFreqLimits"] = &WVMCalRow::polyFreqLimitsFromText;
    1851             :                  
    1852             :         
    1853             :                                  
    1854           0 :         fromTextMethods["numInputAntenna"] = &WVMCalRow::numInputAntennaFromText;
    1855             :                  
    1856             :         
    1857             :                                  
    1858           0 :         fromTextMethods["numChan"] = &WVMCalRow::numChanFromText;
    1859             :                  
    1860             :         
    1861             :                                  
    1862           0 :         fromTextMethods["numPoly"] = &WVMCalRow::numPolyFromText;
    1863             :                  
    1864             :         
    1865             :                                  
    1866           0 :         fromTextMethods["pathCoeff"] = &WVMCalRow::pathCoeffFromText;
    1867             :                  
    1868             :         
    1869             :                                  
    1870           0 :         fromTextMethods["refTemp"] = &WVMCalRow::refTempFromText;
    1871             :                  
    1872             :         
    1873             :                                  
    1874           0 :         fromTextMethods["inputAntennaId"] = &WVMCalRow::inputAntennaIdFromText;
    1875             :                  
    1876             :         
    1877             : 
    1878             :                 
    1879           0 :         }
    1880             :         
    1881           0 :         WVMCalRow::WVMCalRow (WVMCalTable &t, WVMCalRow *row) : table(t) {
    1882           0 :                 hasBeenAdded = false;
    1883             :                 
    1884           0 :                 if (row == 0) {
    1885             :         
    1886             :         
    1887             :         
    1888             : 
    1889             :         
    1890             : 
    1891             :         
    1892             : 
    1893             :         
    1894             : 
    1895             :         
    1896             : 
    1897             :         
    1898             : 
    1899             :         
    1900             : 
    1901             :         
    1902             : 
    1903             :         
    1904             :         
    1905             : 
    1906             :         
    1907             : 
    1908             :         
    1909             :                 
    1910             :                 }
    1911             :                 else {
    1912             :         
    1913             :                 
    1914           0 :                         antennaId = row->antennaId;
    1915             :                 
    1916           0 :                         spectralWindowId = row->spectralWindowId;
    1917             :                 
    1918           0 :                         timeInterval = row->timeInterval;
    1919             :                 
    1920             :                 
    1921             :                 
    1922             :                 
    1923           0 :                         wvrMethod = row->wvrMethod;
    1924             :                 
    1925           0 :                         polyFreqLimits = row->polyFreqLimits;
    1926             :                 
    1927           0 :                         numInputAntenna = row->numInputAntenna;
    1928             :                 
    1929           0 :                         numChan = row->numChan;
    1930             :                 
    1931           0 :                         numPoly = row->numPoly;
    1932             :                 
    1933           0 :                         pathCoeff = row->pathCoeff;
    1934             :                 
    1935           0 :                         refTemp = row->refTemp;
    1936             :                 
    1937           0 :                         inputAntennaId = row->inputAntennaId;
    1938             :                 
    1939             :                 
    1940             :                 
    1941             :                 
    1942             :                 }
    1943             :                 
    1944           0 :                  fromBinMethods["antennaId"] = &WVMCalRow::antennaIdFromBin; 
    1945           0 :                  fromBinMethods["spectralWindowId"] = &WVMCalRow::spectralWindowIdFromBin; 
    1946           0 :                  fromBinMethods["timeInterval"] = &WVMCalRow::timeIntervalFromBin; 
    1947           0 :                  fromBinMethods["wvrMethod"] = &WVMCalRow::wvrMethodFromBin; 
    1948           0 :                  fromBinMethods["polyFreqLimits"] = &WVMCalRow::polyFreqLimitsFromBin; 
    1949           0 :                  fromBinMethods["numInputAntenna"] = &WVMCalRow::numInputAntennaFromBin; 
    1950           0 :                  fromBinMethods["numChan"] = &WVMCalRow::numChanFromBin; 
    1951           0 :                  fromBinMethods["numPoly"] = &WVMCalRow::numPolyFromBin; 
    1952           0 :                  fromBinMethods["pathCoeff"] = &WVMCalRow::pathCoeffFromBin; 
    1953           0 :                  fromBinMethods["refTemp"] = &WVMCalRow::refTempFromBin; 
    1954           0 :                  fromBinMethods["inputAntennaId"] = &WVMCalRow::inputAntennaIdFromBin; 
    1955             :                         
    1956             :         
    1957             :                         
    1958           0 :         }
    1959             : 
    1960             :         
    1961           0 :         bool WVMCalRow::compareNoAutoInc(Tag antennaId, Tag spectralWindowId, ArrayTimeInterval timeInterval, WVRMethodMod::WVRMethod wvrMethod, std::vector<Frequency > polyFreqLimits, int numInputAntenna, int numChan, int numPoly, std::vector<std::vector<std::vector<float > > > pathCoeff, std::vector<std::vector<Temperature > > refTemp, std::vector<Tag>  inputAntennaId) {
    1962             :                 bool result;
    1963           0 :                 result = true;
    1964             :                 
    1965             :         
    1966             :                 
    1967           0 :                 result = result && (this->antennaId == antennaId);
    1968             :                 
    1969           0 :                 if (!result) return false;
    1970             :         
    1971             : 
    1972             :         
    1973             :                 
    1974           0 :                 result = result && (this->spectralWindowId == spectralWindowId);
    1975             :                 
    1976           0 :                 if (!result) return false;
    1977             :         
    1978             : 
    1979             :         
    1980             :                 
    1981           0 :                 result = result && (this->timeInterval.overlaps(timeInterval));
    1982             :                 
    1983           0 :                 if (!result) return false;
    1984             :         
    1985             : 
    1986             :         
    1987             :                 
    1988           0 :                 result = result && (this->wvrMethod == wvrMethod);
    1989             :                 
    1990           0 :                 if (!result) return false;
    1991             :         
    1992             : 
    1993             :         
    1994             :                 
    1995           0 :                 result = result && (this->polyFreqLimits == polyFreqLimits);
    1996             :                 
    1997           0 :                 if (!result) return false;
    1998             :         
    1999             : 
    2000             :         
    2001             :                 
    2002           0 :                 result = result && (this->numInputAntenna == numInputAntenna);
    2003             :                 
    2004           0 :                 if (!result) return false;
    2005             :         
    2006             : 
    2007             :         
    2008             :                 
    2009           0 :                 result = result && (this->numChan == numChan);
    2010             :                 
    2011           0 :                 if (!result) return false;
    2012             :         
    2013             : 
    2014             :         
    2015             :                 
    2016           0 :                 result = result && (this->numPoly == numPoly);
    2017             :                 
    2018           0 :                 if (!result) return false;
    2019             :         
    2020             : 
    2021             :         
    2022             :                 
    2023           0 :                 result = result && (this->pathCoeff == pathCoeff);
    2024             :                 
    2025           0 :                 if (!result) return false;
    2026             :         
    2027             : 
    2028             :         
    2029             :                 
    2030           0 :                 result = result && (this->refTemp == refTemp);
    2031             :                 
    2032           0 :                 if (!result) return false;
    2033             :         
    2034             : 
    2035             :         
    2036             :                 
    2037           0 :                 result = result && (this->inputAntennaId == inputAntennaId);
    2038             :                 
    2039           0 :                 if (!result) return false;
    2040             :         
    2041             : 
    2042           0 :                 return result;
    2043             :         }       
    2044             :         
    2045             :         
    2046             :         
    2047           0 :         bool WVMCalRow::compareRequiredValue(WVRMethodMod::WVRMethod wvrMethod, std::vector<Frequency > polyFreqLimits, int numInputAntenna, int numChan, int numPoly, std::vector<std::vector<std::vector<float > > > pathCoeff, std::vector<std::vector<Temperature > > refTemp, std::vector<Tag>  inputAntennaId) {
    2048             :                 bool result;
    2049           0 :                 result = true;
    2050             :                 
    2051             :         
    2052           0 :                 if (!(this->wvrMethod == wvrMethod)) return false;
    2053             :         
    2054             : 
    2055             :         
    2056           0 :                 if (!(this->polyFreqLimits == polyFreqLimits)) return false;
    2057             :         
    2058             : 
    2059             :         
    2060           0 :                 if (!(this->numInputAntenna == numInputAntenna)) return false;
    2061             :         
    2062             : 
    2063             :         
    2064           0 :                 if (!(this->numChan == numChan)) return false;
    2065             :         
    2066             : 
    2067             :         
    2068           0 :                 if (!(this->numPoly == numPoly)) return false;
    2069             :         
    2070             : 
    2071             :         
    2072           0 :                 if (!(this->pathCoeff == pathCoeff)) return false;
    2073             :         
    2074             : 
    2075             :         
    2076           0 :                 if (!(this->refTemp == refTemp)) return false;
    2077             :         
    2078             : 
    2079             :         
    2080           0 :                 if (!(this->inputAntennaId == inputAntennaId)) return false;
    2081             :         
    2082             : 
    2083           0 :                 return result;
    2084             :         }
    2085             :         
    2086             :         
    2087             :         /**
    2088             :          * Return true if all required attributes of the value part are equal to their homologues
    2089             :          * in x and false otherwise.
    2090             :          *
    2091             : 
    2092             :          * @param x a pointer on the WVMCalRow whose required attributes of the value part 
    2093             : 
    2094             :          * will be compared with those of this.
    2095             :          * @return a boolean.
    2096             :          */
    2097           0 :         bool WVMCalRow::equalByRequiredValue(WVMCalRow*  x ) {
    2098             :                 
    2099             :                         
    2100           0 :                 if (this->wvrMethod != x->wvrMethod) return false;
    2101             :                         
    2102           0 :                 if (this->polyFreqLimits != x->polyFreqLimits) return false;
    2103             :                         
    2104           0 :                 if (this->numInputAntenna != x->numInputAntenna) return false;
    2105             :                         
    2106           0 :                 if (this->numChan != x->numChan) return false;
    2107             :                         
    2108           0 :                 if (this->numPoly != x->numPoly) return false;
    2109             :                         
    2110           0 :                 if (this->pathCoeff != x->pathCoeff) return false;
    2111             :                         
    2112           0 :                 if (this->refTemp != x->refTemp) return false;
    2113             :                         
    2114           0 :                 if (this->inputAntennaId != x->inputAntennaId) return false;
    2115             :                         
    2116             :                 
    2117           0 :                 return true;
    2118             :         }       
    2119             :         
    2120             : /*
    2121             :          map<string, WVMCalAttributeFromBin> WVMCalRow::initFromBinMethods() {
    2122             :                 map<string, WVMCalAttributeFromBin> result;
    2123             :                 
    2124             :                 result["antennaId"] = &WVMCalRow::antennaIdFromBin;
    2125             :                 result["spectralWindowId"] = &WVMCalRow::spectralWindowIdFromBin;
    2126             :                 result["timeInterval"] = &WVMCalRow::timeIntervalFromBin;
    2127             :                 result["wvrMethod"] = &WVMCalRow::wvrMethodFromBin;
    2128             :                 result["polyFreqLimits"] = &WVMCalRow::polyFreqLimitsFromBin;
    2129             :                 result["numInputAntenna"] = &WVMCalRow::numInputAntennaFromBin;
    2130             :                 result["numChan"] = &WVMCalRow::numChanFromBin;
    2131             :                 result["numPoly"] = &WVMCalRow::numPolyFromBin;
    2132             :                 result["pathCoeff"] = &WVMCalRow::pathCoeffFromBin;
    2133             :                 result["refTemp"] = &WVMCalRow::refTempFromBin;
    2134             :                 result["inputAntennaId"] = &WVMCalRow::inputAntennaIdFromBin;
    2135             :                 
    2136             :                 
    2137             :                         
    2138             :                 
    2139             :                 return result;  
    2140             :         }
    2141             : */      
    2142             : } // End namespace asdm
    2143             :  

Generated by: LCOV version 1.16