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

Generated by: LCOV version 1.16