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

Generated by: LCOV version 1.16