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

Generated by: LCOV version 1.16