LCOV - code coverage report
Current view: top level - alma/ASDM - SysPowerRow.cc (source / functions) Hit Total Coverage
Test: casa_coverage.info Lines: 96 301 31.9 %
Date: 2023-10-25 08:47:59 Functions: 23 56 41.1 %

          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 SysPowerRow.cpp
      32             :  */
      33             :  
      34             : #include <vector>
      35             : #include <set>
      36             : 
      37             : #include <alma/ASDM/ASDM.h>
      38             : #include <alma/ASDM/SysPowerRow.h>
      39             : #include <alma/ASDM/SysPowerTable.h>
      40             : 
      41             : #include <alma/ASDM/AntennaTable.h>
      42             : #include <alma/ASDM/AntennaRow.h>
      43             : 
      44             : #include <alma/ASDM/SpectralWindowTable.h>
      45             : #include <alma/ASDM/SpectralWindowRow.h>
      46             : 
      47             : #include <alma/ASDM/FeedTable.h>
      48             : #include <alma/ASDM/FeedRow.h>
      49             :         
      50             : 
      51             : using asdm::ASDM;
      52             : using asdm::SysPowerRow;
      53             : using asdm::SysPowerTable;
      54             : 
      55             : using asdm::AntennaTable;
      56             : using asdm::AntennaRow;
      57             : 
      58             : using asdm::SpectralWindowTable;
      59             : using asdm::SpectralWindowRow;
      60             : 
      61             : using asdm::FeedTable;
      62             : using asdm::FeedRow;
      63             : 
      64             : 
      65             : #include <alma/ASDM/Parser.h>
      66             : 
      67             : #include <alma/ASDM/EnumerationParser.h>
      68             : #include <alma/ASDM/ASDMValuesParser.h>
      69             :  
      70             : #include <alma/ASDM/InvalidArgumentException.h>
      71             : 
      72             : using namespace std;
      73             : 
      74             : namespace asdm {
      75     9087328 :         SysPowerRow::~SysPowerRow() {
      76     9087328 :         }
      77             : 
      78             :         /**
      79             :          * Return the table to which this row belongs.
      80             :          */
      81           0 :         SysPowerTable &SysPowerRow::getTable() const {
      82           0 :                 return table;
      83             :         }
      84             : 
      85           0 :         bool SysPowerRow::isAdded() const {
      86           0 :                 return hasBeenAdded;
      87             :         }       
      88             : 
      89           0 :         void SysPowerRow::isAdded(bool added) {
      90           0 :                 hasBeenAdded = added;
      91           0 :         }
      92             :         
      93             : #ifndef WITHOUT_ACS
      94             :         using asdmIDL::SysPowerRowIDL;
      95             : #endif
      96             :         
      97             : #ifndef WITHOUT_ACS
      98             :         /**
      99             :          * Return this row in the form of an IDL struct.
     100             :          * @return The values of this row as a SysPowerRowIDL struct.
     101             :          */
     102             :         SysPowerRowIDL *SysPowerRow::toIDL() const {
     103             :                 SysPowerRowIDL *x = new SysPowerRowIDL ();
     104             :                 
     105             :                 // Fill the IDL structure.
     106             :         
     107             :                 
     108             :         
     109             :                 
     110             :                 
     111             :                 
     112             :                         
     113             :                 x->timeInterval = timeInterval.toIDLArrayTimeInterval();
     114             :                         
     115             :                 
     116             :         
     117             : 
     118             :         
     119             :                 
     120             :                 
     121             :                 
     122             :                         
     123             :                                 
     124             :                 x->numReceptor = numReceptor;
     125             :                                 
     126             :                         
     127             :                 
     128             :         
     129             : 
     130             :         
     131             :                 
     132             :                 
     133             :                 x->switchedPowerDifferenceExists = switchedPowerDifferenceExists;
     134             :                 
     135             :                 
     136             :                         
     137             :                 x->switchedPowerDifference.length(switchedPowerDifference.size());
     138             :                 for (unsigned int i = 0; i < switchedPowerDifference.size(); ++i) {
     139             :                         
     140             :                                 
     141             :                         x->switchedPowerDifference[i] = switchedPowerDifference.at(i);
     142             :                                 
     143             :                         
     144             :                 }
     145             :                         
     146             :                 
     147             :         
     148             : 
     149             :         
     150             :                 
     151             :                 
     152             :                 x->switchedPowerSumExists = switchedPowerSumExists;
     153             :                 
     154             :                 
     155             :                         
     156             :                 x->switchedPowerSum.length(switchedPowerSum.size());
     157             :                 for (unsigned int i = 0; i < switchedPowerSum.size(); ++i) {
     158             :                         
     159             :                                 
     160             :                         x->switchedPowerSum[i] = switchedPowerSum.at(i);
     161             :                                 
     162             :                         
     163             :                 }
     164             :                         
     165             :                 
     166             :         
     167             : 
     168             :         
     169             :                 
     170             :                 
     171             :                 x->requantizerGainExists = requantizerGainExists;
     172             :                 
     173             :                 
     174             :                         
     175             :                 x->requantizerGain.length(requantizerGain.size());
     176             :                 for (unsigned int i = 0; i < requantizerGain.size(); ++i) {
     177             :                         
     178             :                                 
     179             :                         x->requantizerGain[i] = requantizerGain.at(i);
     180             :                                 
     181             :                         
     182             :                 }
     183             :                         
     184             :                 
     185             :         
     186             : 
     187             :         
     188             :         
     189             :                 
     190             :         
     191             :         
     192             :                 
     193             :                 
     194             :                 
     195             :                         
     196             :                 x->antennaId = antennaId.toIDLTag();
     197             :                         
     198             :                                 
     199             :         
     200             : 
     201             :         
     202             :         
     203             :                 
     204             :                 
     205             :                 
     206             :                         
     207             :                                 
     208             :                 x->feedId = feedId;
     209             :                                 
     210             :                         
     211             :                                 
     212             :         
     213             : 
     214             :         
     215             :         
     216             :                 
     217             :                 
     218             :                 
     219             :                         
     220             :                 x->spectralWindowId = spectralWindowId.toIDLTag();
     221             :                         
     222             :                                 
     223             :         
     224             : 
     225             :         
     226             :                 
     227             :         
     228             : 
     229             :         
     230             : 
     231             :         
     232             : 
     233             :                 
     234             :                 return x;
     235             :         
     236             :         }
     237             :         
     238             :         void SysPowerRow::toIDL(asdmIDL::SysPowerRowIDL& x) const {
     239             :                 // Set the x's fields.
     240             :         
     241             :                 
     242             :         
     243             :                 
     244             :                 
     245             :                 
     246             :                         
     247             :                 x.timeInterval = timeInterval.toIDLArrayTimeInterval();
     248             :                         
     249             :                 
     250             :         
     251             : 
     252             :         
     253             :                 
     254             :                 
     255             :                 
     256             :                         
     257             :                                 
     258             :                 x.numReceptor = numReceptor;
     259             :                                 
     260             :                         
     261             :                 
     262             :         
     263             : 
     264             :         
     265             :                 
     266             :                 
     267             :                 x.switchedPowerDifferenceExists = switchedPowerDifferenceExists;
     268             :                 
     269             :                 
     270             :                         
     271             :                 x.switchedPowerDifference.length(switchedPowerDifference.size());
     272             :                 for (unsigned int i = 0; i < switchedPowerDifference.size(); ++i) {
     273             :                         
     274             :                                 
     275             :                         x.switchedPowerDifference[i] = switchedPowerDifference.at(i);
     276             :                                 
     277             :                         
     278             :                 }
     279             :                         
     280             :                 
     281             :         
     282             : 
     283             :         
     284             :                 
     285             :                 
     286             :                 x.switchedPowerSumExists = switchedPowerSumExists;
     287             :                 
     288             :                 
     289             :                         
     290             :                 x.switchedPowerSum.length(switchedPowerSum.size());
     291             :                 for (unsigned int i = 0; i < switchedPowerSum.size(); ++i) {
     292             :                         
     293             :                                 
     294             :                         x.switchedPowerSum[i] = switchedPowerSum.at(i);
     295             :                                 
     296             :                         
     297             :                 }
     298             :                         
     299             :                 
     300             :         
     301             : 
     302             :         
     303             :                 
     304             :                 
     305             :                 x.requantizerGainExists = requantizerGainExists;
     306             :                 
     307             :                 
     308             :                         
     309             :                 x.requantizerGain.length(requantizerGain.size());
     310             :                 for (unsigned int i = 0; i < requantizerGain.size(); ++i) {
     311             :                         
     312             :                                 
     313             :                         x.requantizerGain[i] = requantizerGain.at(i);
     314             :                                 
     315             :                         
     316             :                 }
     317             :                         
     318             :                 
     319             :         
     320             : 
     321             :         
     322             :         
     323             :                 
     324             :         
     325             :         
     326             :                 
     327             :                 
     328             :                 
     329             :                         
     330             :                 x.antennaId = antennaId.toIDLTag();
     331             :                         
     332             :                                 
     333             :         
     334             : 
     335             :         
     336             :         
     337             :                 
     338             :                 
     339             :                 
     340             :                         
     341             :                                 
     342             :                 x.feedId = feedId;
     343             :                                 
     344             :                         
     345             :                                 
     346             :         
     347             : 
     348             :         
     349             :         
     350             :                 
     351             :                 
     352             :                 
     353             :                         
     354             :                 x.spectralWindowId = spectralWindowId.toIDLTag();
     355             :                         
     356             :                                 
     357             :         
     358             : 
     359             :         
     360             :                 
     361             :         
     362             : 
     363             :         
     364             : 
     365             :         
     366             : 
     367             :         
     368             :         }
     369             : #endif
     370             :         
     371             : 
     372             : #ifndef WITHOUT_ACS
     373             :         /**
     374             :          * Fill the values of this row from the IDL struct SysPowerRowIDL.
     375             :          * @param x The IDL struct containing the values used to fill this row.
     376             :          */
     377             :         void SysPowerRow::setFromIDL (SysPowerRowIDL x){
     378             :                 try {
     379             :                 // Fill the values from x.
     380             :         
     381             :                 
     382             :         
     383             :                 
     384             :                 
     385             :                         
     386             :                 setTimeInterval(ArrayTimeInterval (x.timeInterval));
     387             :                         
     388             :                 
     389             :                 
     390             :         
     391             : 
     392             :         
     393             :                 
     394             :                 
     395             :                         
     396             :                 setNumReceptor(x.numReceptor);
     397             :                         
     398             :                 
     399             :                 
     400             :         
     401             : 
     402             :         
     403             :                 
     404             :                 switchedPowerDifferenceExists = x.switchedPowerDifferenceExists;
     405             :                 if (x.switchedPowerDifferenceExists) {
     406             :                 
     407             :                 
     408             :                         
     409             :                 switchedPowerDifference .clear();
     410             :                 for (unsigned int i = 0; i <x.switchedPowerDifference.length(); ++i) {
     411             :                         
     412             :                         switchedPowerDifference.push_back(x.switchedPowerDifference[i]);
     413             :                         
     414             :                 }
     415             :                         
     416             :                 
     417             :                 
     418             :                 }
     419             :                 
     420             :         
     421             : 
     422             :         
     423             :                 
     424             :                 switchedPowerSumExists = x.switchedPowerSumExists;
     425             :                 if (x.switchedPowerSumExists) {
     426             :                 
     427             :                 
     428             :                         
     429             :                 switchedPowerSum .clear();
     430             :                 for (unsigned int i = 0; i <x.switchedPowerSum.length(); ++i) {
     431             :                         
     432             :                         switchedPowerSum.push_back(x.switchedPowerSum[i]);
     433             :                         
     434             :                 }
     435             :                         
     436             :                 
     437             :                 
     438             :                 }
     439             :                 
     440             :         
     441             : 
     442             :         
     443             :                 
     444             :                 requantizerGainExists = x.requantizerGainExists;
     445             :                 if (x.requantizerGainExists) {
     446             :                 
     447             :                 
     448             :                         
     449             :                 requantizerGain .clear();
     450             :                 for (unsigned int i = 0; i <x.requantizerGain.length(); ++i) {
     451             :                         
     452             :                         requantizerGain.push_back(x.requantizerGain[i]);
     453             :                         
     454             :                 }
     455             :                         
     456             :                 
     457             :                 
     458             :                 }
     459             :                 
     460             :         
     461             : 
     462             :         
     463             :         
     464             :                 
     465             :         
     466             :                 
     467             :                 
     468             :                         
     469             :                 setAntennaId(Tag (x.antennaId));
     470             :                         
     471             :                 
     472             :                 
     473             :         
     474             : 
     475             :         
     476             :                 
     477             :                 
     478             :                         
     479             :                 setFeedId(x.feedId);
     480             :                         
     481             :                 
     482             :                 
     483             :         
     484             : 
     485             :         
     486             :                 
     487             :                 
     488             :                         
     489             :                 setSpectralWindowId(Tag (x.spectralWindowId));
     490             :                         
     491             :                 
     492             :                 
     493             :         
     494             : 
     495             :         
     496             :                 
     497             :         
     498             : 
     499             :         
     500             : 
     501             :         
     502             : 
     503             :                 } catch (const IllegalAccessException &err) {
     504             :                         throw ConversionException (err.getMessage(),"SysPower");
     505             :                 }
     506             :         }
     507             : #endif
     508             :         
     509             :         /**
     510             :          * Return this row in the form of an XML string.
     511             :          * @return The values of this row as an XML string.
     512             :          */
     513           0 :         string SysPowerRow::toXML() const {
     514           0 :                 string buf;
     515           0 :                 buf.append("<row> \n");
     516             :                 
     517             :         
     518             :                 
     519             :         
     520             :                 
     521             :                 
     522           0 :                 Parser::toXML(timeInterval, "timeInterval", buf);
     523             :                 
     524             :                 
     525             :         
     526             : 
     527             :         
     528             :                 
     529             :                 
     530           0 :                 Parser::toXML(numReceptor, "numReceptor", buf);
     531             :                 
     532             :                 
     533             :         
     534             : 
     535             :         
     536             :                 
     537           0 :                 if (switchedPowerDifferenceExists) {
     538             :                 
     539             :                 
     540           0 :                 Parser::toXML(switchedPowerDifference, "switchedPowerDifference", buf);
     541             :                 
     542             :                 
     543             :                 }
     544             :                 
     545             :         
     546             : 
     547             :         
     548             :                 
     549           0 :                 if (switchedPowerSumExists) {
     550             :                 
     551             :                 
     552           0 :                 Parser::toXML(switchedPowerSum, "switchedPowerSum", buf);
     553             :                 
     554             :                 
     555             :                 }
     556             :                 
     557             :         
     558             : 
     559             :         
     560             :                 
     561           0 :                 if (requantizerGainExists) {
     562             :                 
     563             :                 
     564           0 :                 Parser::toXML(requantizerGain, "requantizerGain", buf);
     565             :                 
     566             :                 
     567             :                 }
     568             :                 
     569             :         
     570             : 
     571             :         
     572             :         
     573             :                 
     574             :         
     575             :                 
     576             :                 
     577           0 :                 Parser::toXML(antennaId, "antennaId", buf);
     578             :                 
     579             :                 
     580             :         
     581             : 
     582             :         
     583             :                 
     584             :                 
     585           0 :                 Parser::toXML(feedId, "feedId", buf);
     586             :                 
     587             :                 
     588             :         
     589             : 
     590             :         
     591             :                 
     592             :                 
     593           0 :                 Parser::toXML(spectralWindowId, "spectralWindowId", buf);
     594             :                 
     595             :                 
     596             :         
     597             : 
     598             :         
     599             :                 
     600             :         
     601             : 
     602             :         
     603             : 
     604             :         
     605             : 
     606             :                 
     607           0 :                 buf.append("</row>\n");
     608           0 :                 return buf;
     609             :         }
     610             : 
     611             :         /**
     612             :          * Fill the values of this row from an XML string 
     613             :          * that was produced by the toXML() method.
     614             :          * @param x The XML string being used to set the values of this row.
     615             :          */
     616           0 :         void SysPowerRow::setFromXML (string rowDoc) {
     617           0 :                 Parser row(rowDoc);
     618           0 :                 string s = "";
     619             :                 try {
     620             :         
     621             :                 
     622             :         
     623             :                 
     624             :                         
     625           0 :                 setTimeInterval(Parser::getArrayTimeInterval("timeInterval","SysPower",rowDoc));
     626             :                         
     627             :                 
     628             :         
     629             : 
     630             :         
     631             :                 
     632             :                         
     633           0 :                 setNumReceptor(Parser::getInteger("numReceptor","SysPower",rowDoc));
     634             :                         
     635             :                 
     636             :         
     637             : 
     638             :         
     639             :                 
     640           0 :         if (row.isStr("<switchedPowerDifference>")) {
     641             :                         
     642             :                                                                 
     643           0 :                         setSwitchedPowerDifference(Parser::get1DFloat("switchedPowerDifference","SysPower",rowDoc));
     644             :                                 
     645             :                         
     646             :                 }
     647             :                 
     648             :         
     649             : 
     650             :         
     651             :                 
     652           0 :         if (row.isStr("<switchedPowerSum>")) {
     653             :                         
     654             :                                                                 
     655           0 :                         setSwitchedPowerSum(Parser::get1DFloat("switchedPowerSum","SysPower",rowDoc));
     656             :                                 
     657             :                         
     658             :                 }
     659             :                 
     660             :         
     661             : 
     662             :         
     663             :                 
     664           0 :         if (row.isStr("<requantizerGain>")) {
     665             :                         
     666             :                                                                 
     667           0 :                         setRequantizerGain(Parser::get1DFloat("requantizerGain","SysPower",rowDoc));
     668             :                                 
     669             :                         
     670             :                 }
     671             :                 
     672             :         
     673             : 
     674             :         
     675             :         
     676             :                 
     677             :         
     678             :                 
     679             :                         
     680           0 :                 setAntennaId(Parser::getTag("antennaId","Antenna",rowDoc));
     681             :                         
     682             :                 
     683             :         
     684             : 
     685             :         
     686             :                 
     687             :                         
     688           0 :                 setFeedId(Parser::getInteger("feedId","Feed",rowDoc));
     689             :                         
     690             :                 
     691             :         
     692             : 
     693             :         
     694             :                 
     695             :                         
     696           0 :                 setSpectralWindowId(Parser::getTag("spectralWindowId","SpectralWindow",rowDoc));
     697             :                         
     698             :                 
     699             :         
     700             : 
     701             :         
     702             :                 
     703             :         
     704             : 
     705             :         
     706             : 
     707             :         
     708             : 
     709           0 :                 } catch (const IllegalAccessException &err) {
     710           0 :                         throw ConversionException (err.getMessage(),"SysPower");
     711             :                 }
     712           0 :         }
     713             :         
     714           0 :         void SysPowerRow::toBin(EndianOSStream& eoss) {
     715             :         
     716             :         
     717             :         
     718             :         
     719             :                 
     720           0 :         antennaId.toBin(eoss);
     721             :                 
     722             :         
     723             : 
     724             :         
     725             :         
     726             :                 
     727           0 :         spectralWindowId.toBin(eoss);
     728             :                 
     729             :         
     730             : 
     731             :         
     732             :         
     733             :                 
     734             :                                                 
     735           0 :                         eoss.writeInt(feedId);
     736             :                                 
     737             :                 
     738             :         
     739             : 
     740             :         
     741             :         
     742             :                 
     743           0 :         timeInterval.toBin(eoss);
     744             :                 
     745             :         
     746             : 
     747             :         
     748             :         
     749             :                 
     750             :                                                 
     751           0 :                         eoss.writeInt(numReceptor);
     752             :                                 
     753             :                 
     754             :         
     755             : 
     756             : 
     757             :         
     758             :         
     759           0 :         eoss.writeBoolean(switchedPowerDifferenceExists);
     760           0 :         if (switchedPowerDifferenceExists) {
     761             :         
     762             :         
     763             :         
     764             :                 
     765             :                 
     766             :                         
     767           0 :                 eoss.writeInt((int) switchedPowerDifference.size());
     768           0 :                 for (unsigned int i = 0; i < switchedPowerDifference.size(); i++)
     769             :                                 
     770           0 :                         eoss.writeFloat(switchedPowerDifference.at(i));
     771             :                                 
     772             :                                 
     773             :                                                 
     774             :                 
     775             :         
     776             : 
     777             :         }
     778             : 
     779           0 :         eoss.writeBoolean(switchedPowerSumExists);
     780           0 :         if (switchedPowerSumExists) {
     781             :         
     782             :         
     783             :         
     784             :                 
     785             :                 
     786             :                         
     787           0 :                 eoss.writeInt((int) switchedPowerSum.size());
     788           0 :                 for (unsigned int i = 0; i < switchedPowerSum.size(); i++)
     789             :                                 
     790           0 :                         eoss.writeFloat(switchedPowerSum.at(i));
     791             :                                 
     792             :                                 
     793             :                                                 
     794             :                 
     795             :         
     796             : 
     797             :         }
     798             : 
     799           0 :         eoss.writeBoolean(requantizerGainExists);
     800           0 :         if (requantizerGainExists) {
     801             :         
     802             :         
     803             :         
     804             :                 
     805             :                 
     806             :                         
     807           0 :                 eoss.writeInt((int) requantizerGain.size());
     808           0 :                 for (unsigned int i = 0; i < requantizerGain.size(); i++)
     809             :                                 
     810           0 :                         eoss.writeFloat(requantizerGain.at(i));
     811             :                                 
     812             :                                 
     813             :                                                 
     814             :                 
     815             :         
     816             : 
     817             :         }
     818             : 
     819           0 :         }
     820             :         
     821     4543664 : void SysPowerRow::antennaIdFromBin(EndianIStream& eis) {
     822             :                 
     823             :         
     824             :                 
     825             :                 
     826     4543664 :                 antennaId =  Tag::fromBin(eis);
     827             :                 
     828             :         
     829             :         
     830     4543664 : }
     831     4543664 : void SysPowerRow::spectralWindowIdFromBin(EndianIStream& eis) {
     832             :                 
     833             :         
     834             :                 
     835             :                 
     836     4543664 :                 spectralWindowId =  Tag::fromBin(eis);
     837             :                 
     838             :         
     839             :         
     840     4543664 : }
     841     4543664 : void SysPowerRow::feedIdFromBin(EndianIStream& eis) {
     842             :                 
     843             :         
     844             :         
     845             :                 
     846             :                         
     847     4543664 :                 feedId =  eis.readInt();
     848             :                         
     849             :                 
     850             :         
     851             :         
     852     4543664 : }
     853     4543664 : void SysPowerRow::timeIntervalFromBin(EndianIStream& eis) {
     854             :                 
     855             :         
     856             :                 
     857             :                 
     858     4543664 :                 timeInterval =  ArrayTimeInterval::fromBin(eis);
     859             :                 
     860             :         
     861             :         
     862     4543664 : }
     863     4543664 : void SysPowerRow::numReceptorFromBin(EndianIStream& eis) {
     864             :                 
     865             :         
     866             :         
     867             :                 
     868             :                         
     869     4543664 :                 numReceptor =  eis.readInt();
     870             :                         
     871             :                 
     872             :         
     873             :         
     874     4543664 : }
     875             : 
     876     4543664 : void SysPowerRow::switchedPowerDifferenceFromBin(EndianIStream& eis) {
     877             :                 
     878     4543664 :         switchedPowerDifferenceExists = eis.readBoolean();
     879     4543664 :         if (switchedPowerDifferenceExists) {
     880             :                 
     881             :         
     882             :         
     883             :                 
     884             :                         
     885             :         
     886     4543664 :                 switchedPowerDifference.clear();
     887             :                 
     888     4543664 :                 unsigned int switchedPowerDifferenceDim1 = eis.readInt();
     889    13630992 :                 for (unsigned int  i = 0 ; i < switchedPowerDifferenceDim1; i++)
     890             :                         
     891     9087328 :                         switchedPowerDifference.push_back(eis.readFloat());
     892             :                         
     893             :         
     894             : 
     895             :                 
     896             :         
     897             : 
     898             :         }
     899             :         
     900     4543664 : }
     901     4543664 : void SysPowerRow::switchedPowerSumFromBin(EndianIStream& eis) {
     902             :                 
     903     4543664 :         switchedPowerSumExists = eis.readBoolean();
     904     4543664 :         if (switchedPowerSumExists) {
     905             :                 
     906             :         
     907             :         
     908             :                 
     909             :                         
     910             :         
     911     4543664 :                 switchedPowerSum.clear();
     912             :                 
     913     4543664 :                 unsigned int switchedPowerSumDim1 = eis.readInt();
     914    13630992 :                 for (unsigned int  i = 0 ; i < switchedPowerSumDim1; i++)
     915             :                         
     916     9087328 :                         switchedPowerSum.push_back(eis.readFloat());
     917             :                         
     918             :         
     919             : 
     920             :                 
     921             :         
     922             : 
     923             :         }
     924             :         
     925     4543664 : }
     926     4543664 : void SysPowerRow::requantizerGainFromBin(EndianIStream& eis) {
     927             :                 
     928     4543664 :         requantizerGainExists = eis.readBoolean();
     929     4543664 :         if (requantizerGainExists) {
     930             :                 
     931             :         
     932             :         
     933             :                 
     934             :                         
     935             :         
     936     4543664 :                 requantizerGain.clear();
     937             :                 
     938     4543664 :                 unsigned int requantizerGainDim1 = eis.readInt();
     939    13630992 :                 for (unsigned int  i = 0 ; i < requantizerGainDim1; i++)
     940             :                         
     941     9087328 :                         requantizerGain.push_back(eis.readFloat());
     942             :                         
     943             :         
     944             : 
     945             :                 
     946             :         
     947             : 
     948             :         }
     949             :         
     950     4543664 : }
     951             :         
     952             :         
     953     4543664 :         SysPowerRow* SysPowerRow::fromBin(EndianIStream& eis, SysPowerTable& table, const vector<string>& attributesSeq) {
     954     4543664 :                 SysPowerRow* row = new  SysPowerRow(table);
     955             :                 
     956     4543664 :                 map<string, SysPowerAttributeFromBin>::iterator iter ;
     957    40892976 :                 for (unsigned int i = 0; i < attributesSeq.size(); i++) {
     958    36349312 :                         iter = row->fromBinMethods.find(attributesSeq.at(i));
     959    36349312 :                         if (iter != row->fromBinMethods.end()) {
     960    36349312 :                                 (row->*(row->fromBinMethods[ attributesSeq.at(i) ] ))(eis);                       
     961             :                         }
     962             :                         else {
     963           0 :                                 BinaryAttributeReaderFunctor* functorP = table.getUnknownAttributeBinaryReader(attributesSeq.at(i));
     964           0 :                                 if (functorP)
     965           0 :                                         (*functorP)(eis);
     966             :                                 else
     967           0 :                                         throw ConversionException("There is not method to read an attribute '"+attributesSeq.at(i)+"'.", "SysPowerTable");
     968             :                         }
     969             :                                 
     970             :                 }                               
     971     4543664 :                 return row;
     972             :         }
     973             : 
     974             :         //
     975             :         // A collection of methods to set the value of the attributes from their textual value in the XML representation
     976             :         // of one row.
     977             :         //
     978             :         
     979             :         // Convert a string into an Tag 
     980           0 :         void SysPowerRow::antennaIdFromText(const string & s) {
     981             :                  
     982             :           
     983           0 :                 antennaId = ASDMValuesParser::parse<Tag>(s);
     984             :           
     985             :                 
     986           0 :         }
     987             :         
     988             :         
     989             :         // Convert a string into an Tag 
     990           0 :         void SysPowerRow::spectralWindowIdFromText(const string & s) {
     991             :                  
     992             :           
     993           0 :                 spectralWindowId = ASDMValuesParser::parse<Tag>(s);
     994             :           
     995             :                 
     996           0 :         }
     997             :         
     998             :         
     999             :         // Convert a string into an int 
    1000           0 :         void SysPowerRow::feedIdFromText(const string & s) {
    1001             :                  
    1002             :           
    1003           0 :                 feedId = ASDMValuesParser::parse<int>(s);
    1004             :           
    1005             :                 
    1006           0 :         }
    1007             :         
    1008             :         
    1009             :         // Convert a string into an ArrayTimeInterval 
    1010           0 :         void SysPowerRow::timeIntervalFromText(const string & s) {
    1011             :                  
    1012             :           
    1013           0 :                 timeInterval = ASDMValuesParser::parse<ArrayTimeInterval>(s);
    1014             :           
    1015             :                 
    1016           0 :         }
    1017             :         
    1018             :         
    1019             :         // Convert a string into an int 
    1020           0 :         void SysPowerRow::numReceptorFromText(const string & s) {
    1021             :                  
    1022             :           
    1023           0 :                 numReceptor = ASDMValuesParser::parse<int>(s);
    1024             :           
    1025             :                 
    1026           0 :         }
    1027             :         
    1028             : 
    1029             :         
    1030             :         // Convert a string into an float 
    1031           0 :         void SysPowerRow::switchedPowerDifferenceFromText(const string & s) {
    1032           0 :                 switchedPowerDifferenceExists = true;
    1033             :                  
    1034             :           
    1035           0 :                 switchedPowerDifference = ASDMValuesParser::parse1D<float>(s);
    1036             :           
    1037             :                 
    1038           0 :         }
    1039             :         
    1040             :         
    1041             :         // Convert a string into an float 
    1042           0 :         void SysPowerRow::switchedPowerSumFromText(const string & s) {
    1043           0 :                 switchedPowerSumExists = true;
    1044             :                  
    1045             :           
    1046           0 :                 switchedPowerSum = ASDMValuesParser::parse1D<float>(s);
    1047             :           
    1048             :                 
    1049           0 :         }
    1050             :         
    1051             :         
    1052             :         // Convert a string into an float 
    1053           0 :         void SysPowerRow::requantizerGainFromText(const string & s) {
    1054           0 :                 requantizerGainExists = true;
    1055             :                  
    1056             :           
    1057           0 :                 requantizerGain = ASDMValuesParser::parse1D<float>(s);
    1058             :           
    1059             :                 
    1060           0 :         }
    1061             :         
    1062             :         
    1063             :         
    1064           0 :         void SysPowerRow::fromText(const std::string& attributeName, const std::string&  t) {
    1065           0 :                 map<string, SysPowerAttributeFromText>::iterator iter;
    1066           0 :                 if ((iter = fromTextMethods.find(attributeName)) == fromTextMethods.end())
    1067           0 :                         throw ConversionException("I do not know what to do with '"+attributeName+"' and its content '"+t+"' (while parsing an XML document)", "SysPowerTable");
    1068           0 :                 (this->*(iter->second))(t);
    1069           0 :         }
    1070             :                         
    1071             :         ////////////////////////////////////////////////
    1072             :         // Intrinsic Table Attributes getters/setters //
    1073             :         ////////////////////////////////////////////////
    1074             :         
    1075             :         
    1076             : 
    1077             :         
    1078             :         /**
    1079             :          * Get timeInterval.
    1080             :          * @return timeInterval as ArrayTimeInterval
    1081             :          */
    1082    11037757 :         ArrayTimeInterval SysPowerRow::getTimeInterval() const {
    1083             :         
    1084    11037757 :                 return timeInterval;
    1085             :         }
    1086             : 
    1087             :         /**
    1088             :          * Set timeInterval with the specified ArrayTimeInterval.
    1089             :          * @param timeInterval The ArrayTimeInterval value to which timeInterval is to be set.
    1090             :          
    1091             :         
    1092             :                 
    1093             :          * @throw IllegalAccessException If an attempt is made to change this field after is has been added to the table.
    1094             :                 
    1095             :          */
    1096           0 :         void SysPowerRow::setTimeInterval (ArrayTimeInterval timeInterval)  {
    1097             :         
    1098             :         
    1099           0 :                 if (hasBeenAdded) {
    1100             :                 
    1101           0 :                         throw IllegalAccessException("timeInterval", "SysPower");
    1102             :                 
    1103             :                 }
    1104             :         
    1105           0 :                 this->timeInterval = timeInterval;
    1106             :         
    1107           0 :         }
    1108             :         
    1109             :         
    1110             : 
    1111             :         
    1112             : 
    1113             :         
    1114             :         /**
    1115             :          * Get numReceptor.
    1116             :          * @return numReceptor as int
    1117             :          */
    1118          13 :         int SysPowerRow::getNumReceptor() const {
    1119             :         
    1120          13 :                 return numReceptor;
    1121             :         }
    1122             : 
    1123             :         /**
    1124             :          * Set numReceptor with the specified int.
    1125             :          * @param numReceptor The int value to which numReceptor is to be set.
    1126             :          
    1127             :         
    1128             :                 
    1129             :          */
    1130           0 :         void SysPowerRow::setNumReceptor (int numReceptor)  {
    1131             :         
    1132             :         
    1133           0 :                 if (hasBeenAdded) {
    1134             :                 
    1135             :                 }
    1136             :         
    1137           0 :                 this->numReceptor = numReceptor;
    1138             :         
    1139           0 :         }
    1140             :         
    1141             :         
    1142             : 
    1143             :         
    1144             :         /**
    1145             :          * The attribute switchedPowerDifference is optional. Return true if this attribute exists.
    1146             :          * @return true if and only if the switchedPowerDifference attribute exists. 
    1147             :          */
    1148          13 :         bool SysPowerRow::isSwitchedPowerDifferenceExists() const {
    1149          13 :                 return switchedPowerDifferenceExists;
    1150             :         }
    1151             :         
    1152             : 
    1153             :         
    1154             :         /**
    1155             :          * Get switchedPowerDifference, which is optional.
    1156             :          * @return switchedPowerDifference as std::vector<float >
    1157             :          * @throw IllegalAccessException If switchedPowerDifference does not exist.
    1158             :          */
    1159      584159 :         std::vector<float > SysPowerRow::getSwitchedPowerDifference() const  {
    1160      584159 :                 if (!switchedPowerDifferenceExists) {
    1161           0 :                         throw IllegalAccessException("switchedPowerDifference", "SysPower");
    1162             :                 }
    1163             :         
    1164      584159 :                 return switchedPowerDifference;
    1165             :         }
    1166             : 
    1167             :         /**
    1168             :          * Set switchedPowerDifference with the specified std::vector<float >.
    1169             :          * @param switchedPowerDifference The std::vector<float > value to which switchedPowerDifference is to be set.
    1170             :          
    1171             :         
    1172             :          */
    1173           0 :         void SysPowerRow::setSwitchedPowerDifference (std::vector<float > switchedPowerDifference) {
    1174             :         
    1175           0 :                 this->switchedPowerDifference = switchedPowerDifference;
    1176             :         
    1177           0 :                 switchedPowerDifferenceExists = true;
    1178             :         
    1179           0 :         }
    1180             :         
    1181             :         
    1182             :         /**
    1183             :          * Mark switchedPowerDifference, which is an optional field, as non-existent.
    1184             :          */
    1185           0 :         void SysPowerRow::clearSwitchedPowerDifference () {
    1186           0 :                 switchedPowerDifferenceExists = false;
    1187           0 :         }
    1188             :         
    1189             : 
    1190             :         
    1191             :         /**
    1192             :          * The attribute switchedPowerSum is optional. Return true if this attribute exists.
    1193             :          * @return true if and only if the switchedPowerSum attribute exists. 
    1194             :          */
    1195          13 :         bool SysPowerRow::isSwitchedPowerSumExists() const {
    1196          13 :                 return switchedPowerSumExists;
    1197             :         }
    1198             :         
    1199             : 
    1200             :         
    1201             :         /**
    1202             :          * Get switchedPowerSum, which is optional.
    1203             :          * @return switchedPowerSum as std::vector<float >
    1204             :          * @throw IllegalAccessException If switchedPowerSum does not exist.
    1205             :          */
    1206      584159 :         std::vector<float > SysPowerRow::getSwitchedPowerSum() const  {
    1207      584159 :                 if (!switchedPowerSumExists) {
    1208           0 :                         throw IllegalAccessException("switchedPowerSum", "SysPower");
    1209             :                 }
    1210             :         
    1211      584159 :                 return switchedPowerSum;
    1212             :         }
    1213             : 
    1214             :         /**
    1215             :          * Set switchedPowerSum with the specified std::vector<float >.
    1216             :          * @param switchedPowerSum The std::vector<float > value to which switchedPowerSum is to be set.
    1217             :          
    1218             :         
    1219             :          */
    1220           0 :         void SysPowerRow::setSwitchedPowerSum (std::vector<float > switchedPowerSum) {
    1221             :         
    1222           0 :                 this->switchedPowerSum = switchedPowerSum;
    1223             :         
    1224           0 :                 switchedPowerSumExists = true;
    1225             :         
    1226           0 :         }
    1227             :         
    1228             :         
    1229             :         /**
    1230             :          * Mark switchedPowerSum, which is an optional field, as non-existent.
    1231             :          */
    1232           0 :         void SysPowerRow::clearSwitchedPowerSum () {
    1233           0 :                 switchedPowerSumExists = false;
    1234           0 :         }
    1235             :         
    1236             : 
    1237             :         
    1238             :         /**
    1239             :          * The attribute requantizerGain is optional. Return true if this attribute exists.
    1240             :          * @return true if and only if the requantizerGain attribute exists. 
    1241             :          */
    1242          13 :         bool SysPowerRow::isRequantizerGainExists() const {
    1243          13 :                 return requantizerGainExists;
    1244             :         }
    1245             :         
    1246             : 
    1247             :         
    1248             :         /**
    1249             :          * Get requantizerGain, which is optional.
    1250             :          * @return requantizerGain as std::vector<float >
    1251             :          * @throw IllegalAccessException If requantizerGain does not exist.
    1252             :          */
    1253      584159 :         std::vector<float > SysPowerRow::getRequantizerGain() const  {
    1254      584159 :                 if (!requantizerGainExists) {
    1255           0 :                         throw IllegalAccessException("requantizerGain", "SysPower");
    1256             :                 }
    1257             :         
    1258      584159 :                 return requantizerGain;
    1259             :         }
    1260             : 
    1261             :         /**
    1262             :          * Set requantizerGain with the specified std::vector<float >.
    1263             :          * @param requantizerGain The std::vector<float > value to which requantizerGain is to be set.
    1264             :          
    1265             :         
    1266             :          */
    1267           0 :         void SysPowerRow::setRequantizerGain (std::vector<float > requantizerGain) {
    1268             :         
    1269           0 :                 this->requantizerGain = requantizerGain;
    1270             :         
    1271           0 :                 requantizerGainExists = true;
    1272             :         
    1273           0 :         }
    1274             :         
    1275             :         
    1276             :         /**
    1277             :          * Mark requantizerGain, which is an optional field, as non-existent.
    1278             :          */
    1279           0 :         void SysPowerRow::clearRequantizerGain () {
    1280           0 :                 requantizerGainExists = false;
    1281           0 :         }
    1282             :         
    1283             : 
    1284             :         
    1285             :         ///////////////////////////////////////////////
    1286             :         // Extrinsic Table Attributes getters/setters//
    1287             :         ///////////////////////////////////////////////
    1288             :         
    1289             :         
    1290             : 
    1291             :         
    1292             :         /**
    1293             :          * Get antennaId.
    1294             :          * @return antennaId as Tag
    1295             :          */
    1296      584159 :         Tag SysPowerRow::getAntennaId() const {
    1297             :         
    1298      584159 :                 return antennaId;
    1299             :         }
    1300             : 
    1301             :         /**
    1302             :          * Set antennaId with the specified Tag.
    1303             :          * @param antennaId The Tag value to which antennaId is to be set.
    1304             :          
    1305             :         
    1306             :                 
    1307             :          * @throw IllegalAccessException If an attempt is made to change this field after is has been added to the table.
    1308             :                 
    1309             :          */
    1310           0 :         void SysPowerRow::setAntennaId (Tag antennaId)  {
    1311             :         
    1312             :         
    1313           0 :                 if (hasBeenAdded) {
    1314             :                 
    1315           0 :                         throw IllegalAccessException("antennaId", "SysPower");
    1316             :                 
    1317             :                 }
    1318             :         
    1319           0 :                 this->antennaId = antennaId;
    1320             :         
    1321           0 :         }
    1322             :         
    1323             :         
    1324             : 
    1325             :         
    1326             : 
    1327             :         
    1328             :         /**
    1329             :          * Get feedId.
    1330             :          * @return feedId as int
    1331             :          */
    1332      584159 :         int SysPowerRow::getFeedId() const {
    1333             :         
    1334      584159 :                 return feedId;
    1335             :         }
    1336             : 
    1337             :         /**
    1338             :          * Set feedId with the specified int.
    1339             :          * @param feedId The int value to which feedId is to be set.
    1340             :          
    1341             :         
    1342             :                 
    1343             :          * @throw IllegalAccessException If an attempt is made to change this field after is has been added to the table.
    1344             :                 
    1345             :          */
    1346           0 :         void SysPowerRow::setFeedId (int feedId)  {
    1347             :         
    1348             :         
    1349           0 :                 if (hasBeenAdded) {
    1350             :                 
    1351           0 :                         throw IllegalAccessException("feedId", "SysPower");
    1352             :                 
    1353             :                 }
    1354             :         
    1355           0 :                 this->feedId = feedId;
    1356             :         
    1357           0 :         }
    1358             :         
    1359             :         
    1360             : 
    1361             :         
    1362             : 
    1363             :         
    1364             :         /**
    1365             :          * Get spectralWindowId.
    1366             :          * @return spectralWindowId as Tag
    1367             :          */
    1368      584159 :         Tag SysPowerRow::getSpectralWindowId() const {
    1369             :         
    1370      584159 :                 return spectralWindowId;
    1371             :         }
    1372             : 
    1373             :         /**
    1374             :          * Set spectralWindowId with the specified Tag.
    1375             :          * @param spectralWindowId The Tag value to which spectralWindowId is to be set.
    1376             :          
    1377             :         
    1378             :                 
    1379             :          * @throw IllegalAccessException If an attempt is made to change this field after is has been added to the table.
    1380             :                 
    1381             :          */
    1382           0 :         void SysPowerRow::setSpectralWindowId (Tag spectralWindowId)  {
    1383             :         
    1384             :         
    1385           0 :                 if (hasBeenAdded) {
    1386             :                 
    1387           0 :                         throw IllegalAccessException("spectralWindowId", "SysPower");
    1388             :                 
    1389             :                 }
    1390             :         
    1391           0 :                 this->spectralWindowId = spectralWindowId;
    1392             :         
    1393           0 :         }
    1394             :         
    1395             :         
    1396             : 
    1397             : 
    1398             :         //////////////////////////////////////
    1399             :         // Links Attributes getters/setters //
    1400             :         //////////////////////////////////////
    1401             :         
    1402             :         
    1403             :         
    1404             :         
    1405             :                 
    1406             : 
    1407             :         /**
    1408             :          * Returns the pointer to the row in the Antenna table having Antenna.antennaId == antennaId
    1409             :          * @return a AntennaRow*
    1410             :          * 
    1411             :          
    1412             :          */
    1413           0 :          AntennaRow* SysPowerRow::getAntennaUsingAntennaId() {
    1414             :          
    1415           0 :                 return table.getContainer().getAntenna().getRowByKey(antennaId);
    1416             :          }
    1417             :          
    1418             : 
    1419             :         
    1420             : 
    1421             :         
    1422             :         
    1423             :         
    1424             :                 
    1425             : 
    1426             :         /**
    1427             :          * Returns the pointer to the row in the SpectralWindow table having SpectralWindow.spectralWindowId == spectralWindowId
    1428             :          * @return a SpectralWindowRow*
    1429             :          * 
    1430             :          
    1431             :          */
    1432           0 :          SpectralWindowRow* SysPowerRow::getSpectralWindowUsingSpectralWindowId() {
    1433             :          
    1434           0 :                 return table.getContainer().getSpectralWindow().getRowByKey(spectralWindowId);
    1435             :          }
    1436             :          
    1437             : 
    1438             :         
    1439             : 
    1440             :         
    1441             :         
    1442             :         
    1443             :                 
    1444             : 
    1445             :         // ===> Slice link from a row of SysPower table to a collection of row of Feed table.
    1446             :         
    1447             :         /**
    1448             :          * Get the collection of row in the Feed table having their attribut feedId == this->feedId
    1449             :          */
    1450           0 :         vector <FeedRow *> SysPowerRow::getFeeds() {
    1451             :                 
    1452           0 :                         return table.getContainer().getFeed().getRowByFeedId(feedId);
    1453             :                 
    1454             :         }
    1455             :         
    1456             : 
    1457             :         
    1458             : 
    1459             :         
    1460             :         /**
    1461             :          * Create a SysPowerRow.
    1462             :          * <p>
    1463             :          * This constructor is private because only the
    1464             :          * table can create rows.  All rows know the table
    1465             :          * to which they belong.
    1466             :          * @param table The table to which this row belongs.
    1467             :          */ 
    1468     4543664 :         SysPowerRow::SysPowerRow (SysPowerTable &t) : table(t) {
    1469     4543664 :                 hasBeenAdded = false;
    1470             :                 
    1471             :         
    1472             :         
    1473             : 
    1474             :         
    1475             : 
    1476             :         
    1477     4543664 :                 switchedPowerDifferenceExists = false;
    1478             :         
    1479             : 
    1480             :         
    1481     4543664 :                 switchedPowerSumExists = false;
    1482             :         
    1483             : 
    1484             :         
    1485     4543664 :                 requantizerGainExists = false;
    1486             :         
    1487             : 
    1488             :         
    1489             :         
    1490             : 
    1491             :         
    1492             : 
    1493             :         
    1494             : 
    1495             :         
    1496             :         
    1497             :         
    1498             :         
    1499             : 
    1500             :         
    1501             : 
    1502             :         
    1503             : 
    1504             :         
    1505             : 
    1506             :         
    1507             : 
    1508             :         
    1509             :         
    1510     4543664 :          fromBinMethods["antennaId"] = &SysPowerRow::antennaIdFromBin; 
    1511     4543664 :          fromBinMethods["spectralWindowId"] = &SysPowerRow::spectralWindowIdFromBin; 
    1512     4543664 :          fromBinMethods["feedId"] = &SysPowerRow::feedIdFromBin; 
    1513     4543664 :          fromBinMethods["timeInterval"] = &SysPowerRow::timeIntervalFromBin; 
    1514     4543664 :          fromBinMethods["numReceptor"] = &SysPowerRow::numReceptorFromBin; 
    1515             :                 
    1516             :         
    1517     4543664 :          fromBinMethods["switchedPowerDifference"] = &SysPowerRow::switchedPowerDifferenceFromBin; 
    1518     4543664 :          fromBinMethods["switchedPowerSum"] = &SysPowerRow::switchedPowerSumFromBin; 
    1519     4543664 :          fromBinMethods["requantizerGain"] = &SysPowerRow::requantizerGainFromBin; 
    1520             :         
    1521             :         
    1522             :         
    1523             :         
    1524             :                                  
    1525     4543664 :         fromTextMethods["antennaId"] = &SysPowerRow::antennaIdFromText;
    1526             :                  
    1527             :         
    1528             :                                  
    1529     4543664 :         fromTextMethods["spectralWindowId"] = &SysPowerRow::spectralWindowIdFromText;
    1530             :                  
    1531             :         
    1532             :                                  
    1533     4543664 :         fromTextMethods["feedId"] = &SysPowerRow::feedIdFromText;
    1534             :                  
    1535             :         
    1536             :                                  
    1537     4543664 :         fromTextMethods["timeInterval"] = &SysPowerRow::timeIntervalFromText;
    1538             :                  
    1539             :         
    1540             :                                  
    1541     4543664 :         fromTextMethods["numReceptor"] = &SysPowerRow::numReceptorFromText;
    1542             :                  
    1543             :         
    1544             : 
    1545             :          
    1546             :                                 
    1547     4543664 :         fromTextMethods["switchedPowerDifference"] = &SysPowerRow::switchedPowerDifferenceFromText;
    1548             :                         
    1549             :          
    1550             :                                 
    1551     4543664 :         fromTextMethods["switchedPowerSum"] = &SysPowerRow::switchedPowerSumFromText;
    1552             :                         
    1553             :          
    1554             :                                 
    1555     4543664 :         fromTextMethods["requantizerGain"] = &SysPowerRow::requantizerGainFromText;
    1556             :                         
    1557             :                 
    1558     4543664 :         }
    1559             :         
    1560           0 :         SysPowerRow::SysPowerRow (SysPowerTable &t, SysPowerRow *row) : table(t) {
    1561           0 :                 hasBeenAdded = false;
    1562             :                 
    1563           0 :                 if (row == 0) {
    1564             :         
    1565             :         
    1566             :         
    1567             : 
    1568             :         
    1569             : 
    1570             :         
    1571           0 :                 switchedPowerDifferenceExists = false;
    1572             :         
    1573             : 
    1574             :         
    1575           0 :                 switchedPowerSumExists = false;
    1576             :         
    1577             : 
    1578             :         
    1579           0 :                 requantizerGainExists = false;
    1580             :         
    1581             : 
    1582             :         
    1583             :         
    1584             : 
    1585             :         
    1586             : 
    1587             :         
    1588             :                 
    1589             :                 }
    1590             :                 else {
    1591             :         
    1592             :                 
    1593           0 :                         antennaId = row->antennaId;
    1594             :                 
    1595           0 :                         spectralWindowId = row->spectralWindowId;
    1596             :                 
    1597           0 :                         feedId = row->feedId;
    1598             :                 
    1599           0 :                         timeInterval = row->timeInterval;
    1600             :                 
    1601             :                 
    1602             :                 
    1603             :                 
    1604           0 :                         numReceptor = row->numReceptor;
    1605             :                 
    1606             :                 
    1607             :                 
    1608             :                 
    1609           0 :                 if (row->switchedPowerDifferenceExists) {
    1610           0 :                         switchedPowerDifference = row->switchedPowerDifference;              
    1611           0 :                         switchedPowerDifferenceExists = true;
    1612             :                 }
    1613             :                 else
    1614           0 :                         switchedPowerDifferenceExists = false;
    1615             :                 
    1616           0 :                 if (row->switchedPowerSumExists) {
    1617           0 :                         switchedPowerSum = row->switchedPowerSum;            
    1618           0 :                         switchedPowerSumExists = true;
    1619             :                 }
    1620             :                 else
    1621           0 :                         switchedPowerSumExists = false;
    1622             :                 
    1623           0 :                 if (row->requantizerGainExists) {
    1624           0 :                         requantizerGain = row->requantizerGain;              
    1625           0 :                         requantizerGainExists = true;
    1626             :                 }
    1627             :                 else
    1628           0 :                         requantizerGainExists = false;
    1629             :                 
    1630             :                 }
    1631             :                 
    1632           0 :                  fromBinMethods["antennaId"] = &SysPowerRow::antennaIdFromBin; 
    1633           0 :                  fromBinMethods["spectralWindowId"] = &SysPowerRow::spectralWindowIdFromBin; 
    1634           0 :                  fromBinMethods["feedId"] = &SysPowerRow::feedIdFromBin; 
    1635           0 :                  fromBinMethods["timeInterval"] = &SysPowerRow::timeIntervalFromBin; 
    1636           0 :                  fromBinMethods["numReceptor"] = &SysPowerRow::numReceptorFromBin; 
    1637             :                         
    1638             :         
    1639           0 :                  fromBinMethods["switchedPowerDifference"] = &SysPowerRow::switchedPowerDifferenceFromBin; 
    1640           0 :                  fromBinMethods["switchedPowerSum"] = &SysPowerRow::switchedPowerSumFromBin; 
    1641           0 :                  fromBinMethods["requantizerGain"] = &SysPowerRow::requantizerGainFromBin; 
    1642             :                         
    1643           0 :         }
    1644             : 
    1645             :         
    1646           0 :         bool SysPowerRow::compareNoAutoInc(Tag antennaId, Tag spectralWindowId, int feedId, ArrayTimeInterval timeInterval, int numReceptor) {
    1647             :                 bool result;
    1648           0 :                 result = true;
    1649             :                 
    1650             :         
    1651             :                 
    1652           0 :                 result = result && (this->antennaId == antennaId);
    1653             :                 
    1654           0 :                 if (!result) return false;
    1655             :         
    1656             : 
    1657             :         
    1658             :                 
    1659           0 :                 result = result && (this->spectralWindowId == spectralWindowId);
    1660             :                 
    1661           0 :                 if (!result) return false;
    1662             :         
    1663             : 
    1664             :         
    1665             :                 
    1666           0 :                 result = result && (this->feedId == feedId);
    1667             :                 
    1668           0 :                 if (!result) return false;
    1669             :         
    1670             : 
    1671             :         
    1672             :                 
    1673           0 :                 result = result && (this->timeInterval.overlaps(timeInterval));
    1674             :                 
    1675           0 :                 if (!result) return false;
    1676             :         
    1677             : 
    1678             :         
    1679             :                 
    1680           0 :                 result = result && (this->numReceptor == numReceptor);
    1681             :                 
    1682           0 :                 if (!result) return false;
    1683             :         
    1684             : 
    1685           0 :                 return result;
    1686             :         }       
    1687             :         
    1688             :         
    1689             :         
    1690           0 :         bool SysPowerRow::compareRequiredValue(int numReceptor) {
    1691             :                 bool result;
    1692           0 :                 result = true;
    1693             :                 
    1694             :         
    1695           0 :                 if (!(this->numReceptor == numReceptor)) return false;
    1696             :         
    1697             : 
    1698           0 :                 return result;
    1699             :         }
    1700             :         
    1701             :         
    1702             :         /**
    1703             :          * Return true if all required attributes of the value part are equal to their homologues
    1704             :          * in x and false otherwise.
    1705             :          *
    1706             : 
    1707             :          * @param x a pointer on the SysPowerRow whose required attributes of the value part 
    1708             : 
    1709             :          * will be compared with those of this.
    1710             :          * @return a boolean.
    1711             :          */
    1712           0 :         bool SysPowerRow::equalByRequiredValue(SysPowerRow*  x ) {
    1713             :                 
    1714             :                         
    1715           0 :                 if (this->numReceptor != x->numReceptor) return false;
    1716             :                         
    1717             :                 
    1718           0 :                 return true;
    1719             :         }       
    1720             :         
    1721             : /*
    1722             :          map<string, SysPowerAttributeFromBin> SysPowerRow::initFromBinMethods() {
    1723             :                 map<string, SysPowerAttributeFromBin> result;
    1724             :                 
    1725             :                 result["antennaId"] = &SysPowerRow::antennaIdFromBin;
    1726             :                 result["spectralWindowId"] = &SysPowerRow::spectralWindowIdFromBin;
    1727             :                 result["feedId"] = &SysPowerRow::feedIdFromBin;
    1728             :                 result["timeInterval"] = &SysPowerRow::timeIntervalFromBin;
    1729             :                 result["numReceptor"] = &SysPowerRow::numReceptorFromBin;
    1730             :                 
    1731             :                 
    1732             :                 result["switchedPowerDifference"] = &SysPowerRow::switchedPowerDifferenceFromBin;
    1733             :                 result["switchedPowerSum"] = &SysPowerRow::switchedPowerSumFromBin;
    1734             :                 result["requantizerGain"] = &SysPowerRow::requantizerGainFromBin;
    1735             :                         
    1736             :                 
    1737             :                 return result;  
    1738             :         }
    1739             : */      
    1740             : } // End namespace asdm
    1741             :  

Generated by: LCOV version 1.16