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

Generated by: LCOV version 1.16