casa  $Rev:20696$
WVMCalRow.h
Go to the documentation of this file.
00001 
00002 /*
00003  * ALMA - Atacama Large Millimeter Array
00004  * (c) European Southern Observatory, 2002
00005  * (c) Associated Universities Inc., 2002
00006  * Copyright by ESO (in the framework of the ALMA collaboration),
00007  * Copyright by AUI (in the framework of the ALMA collaboration),
00008  * All rights reserved.
00009  * 
00010  * This library is free software; you can redistribute it and/or
00011  * modify it under the terms of the GNU Lesser General Public
00012  * License as published by the Free software Foundation; either
00013  * version 2.1 of the License, or (at your option) any later version.
00014  * 
00015  * This library is distributed in the hope that it will be useful,
00016  * but WITHOUT ANY WARRANTY, without even the implied warranty of
00017  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00018  * Lesser General Public License for more details.
00019  * 
00020  * You should have received a copy of the GNU Lesser General Public
00021  * License along with this library; if not, write to the Free Software
00022  * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
00023  * MA 02111-1307  USA
00024  *
00025  * Warning!
00026  *  -------------------------------------------------------------------- 
00027  * | This is generated code!  Do not modify this file.                  |
00028  * | If you do, all changes will be lost when the file is re-generated. |
00029  *  --------------------------------------------------------------------
00030  *
00031  * File WVMCalRow.h
00032  */
00033  
00034 #ifndef WVMCalRow_CLASS
00035 #define WVMCalRow_CLASS
00036 
00037 #include <vector>
00038 #include <string>
00039 #include <set>
00040 
00041 #ifndef WITHOUT_ACS
00042 #include <asdmIDLC.h>
00043 #endif
00044 
00045 
00046 
00047 
00048 
00049 
00050          
00051 #include <Tag.h>
00052         
00053 
00054          
00055 #include <Temperature.h>
00056         
00057 
00058          
00059 #include <Frequency.h>
00060         
00061 
00062          
00063 #include <ArrayTimeInterval.h>
00064         
00065 
00066 
00067 
00068 
00069         
00070 
00071         
00072 #include "CWVRMethod.h"
00073         
00074 
00075         
00076 
00077         
00078 
00079         
00080 
00081         
00082 
00083         
00084 
00085 
00086 
00087 #include <ConversionException.h>
00088 #include <NoSuchRow.h>
00089 #include <IllegalAccessException.h>
00090 
00091 #include <RowTransformer.h>
00092 //#include <TableStreamReader.h>
00093 
00094 /*\file WVMCal.h
00095     \brief Generated from model's revision "1.62", branch "HEAD"
00096 */
00097 
00098 namespace asdm {
00099 
00100 //class asdm::WVMCalTable;
00101 
00102 
00103 // class asdm::SpectralWindowRow;
00104 class SpectralWindowRow;
00105 
00106 // class asdm::AntennaRow;
00107 class AntennaRow;
00108         
00109 
00110 class WVMCalRow;
00111 typedef void (WVMCalRow::*WVMCalAttributeFromBin) (EndianIStream& eis);
00112 typedef void (WVMCalRow::*WVMCalAttributeFromText) (const string& s);
00113 
00120 class WVMCalRow {
00121 friend class asdm::WVMCalTable;
00122 friend class asdm::RowTransformer<WVMCalRow>;
00123 //friend class asdm::TableStreamReader<WVMCalTable, WVMCalRow>;
00124 
00125 public:
00126 
00127         virtual ~WVMCalRow();
00128 
00132         WVMCalTable &getTable() const;
00133         
00138         bool isAdded() const;
00139                 
00141         // Intrinsic Table Attributes //
00143         
00144         
00145         // ===> Attribute timeInterval
00146         
00147         
00148         
00149 
00150         
00155         ArrayTimeInterval getTimeInterval() const;
00156         
00157  
00158         
00159         
00169         void setTimeInterval (ArrayTimeInterval timeInterval);
00170                 
00171         
00172         
00173         
00174 
00175 
00176         
00177         // ===> Attribute wvrMethod
00178         
00179         
00180         
00181 
00182         
00187         WVRMethodMod::WVRMethod getWvrMethod() const;
00188         
00189  
00190         
00191         
00199         void setWvrMethod (WVRMethodMod::WVRMethod wvrMethod);
00200                 
00201         
00202         
00203         
00204 
00205 
00206         
00207         // ===> Attribute polyFreqLimits
00208         
00209         
00210         
00211 
00212         
00217         vector<Frequency > getPolyFreqLimits() const;
00218         
00219  
00220         
00221         
00229         void setPolyFreqLimits (vector<Frequency > polyFreqLimits);
00230                 
00231         
00232         
00233         
00234 
00235 
00236         
00237         // ===> Attribute numChan
00238         
00239         
00240         
00241 
00242         
00247         int getNumChan() const;
00248         
00249  
00250         
00251         
00259         void setNumChan (int numChan);
00260                 
00261         
00262         
00263         
00264 
00265 
00266         
00267         // ===> Attribute numPoly
00268         
00269         
00270         
00271 
00272         
00277         int getNumPoly() const;
00278         
00279  
00280         
00281         
00289         void setNumPoly (int numPoly);
00290                 
00291         
00292         
00293         
00294 
00295 
00296         
00297         // ===> Attribute pathCoeff
00298         
00299         
00300         
00301 
00302         
00307         vector<vector<float > > getPathCoeff() const;
00308         
00309  
00310         
00311         
00319         void setPathCoeff (vector<vector<float > > pathCoeff);
00320                 
00321         
00322         
00323         
00324 
00325 
00326         
00327         // ===> Attribute refTemp
00328         
00329         
00330         
00331 
00332         
00337         vector<Temperature > getRefTemp() const;
00338         
00339  
00340         
00341         
00349         void setRefTemp (vector<Temperature > refTemp);
00350                 
00351         
00352         
00353         
00354 
00355 
00357         // Extrinsic Table Attributes //
00359         
00360         
00361         // ===> Attribute antennaId
00362         
00363         
00364         
00365 
00366         
00371         Tag getAntennaId() const;
00372         
00373  
00374         
00375         
00385         void setAntennaId (Tag antennaId);
00386                 
00387         
00388         
00389         
00390 
00391 
00392         
00393         // ===> Attribute spectralWindowId
00394         
00395         
00396         
00397 
00398         
00403         Tag getSpectralWindowId() const;
00404         
00405  
00406         
00407         
00417         void setSpectralWindowId (Tag spectralWindowId);
00418                 
00419         
00420         
00421         
00422 
00423 
00425         // Links //
00427         
00428         
00429 
00430         
00431                 
00438          SpectralWindowRow* getSpectralWindowUsingSpectralWindowId();
00439          
00440 
00441         
00442 
00443         
00444 
00445         
00446                 
00453          AntennaRow* getAntennaUsingAntennaId();
00454          
00455 
00456         
00457 
00458         
00459         
00460         
00484         bool compareNoAutoInc(Tag antennaId, Tag spectralWindowId, ArrayTimeInterval timeInterval, WVRMethodMod::WVRMethod wvrMethod, vector<Frequency > polyFreqLimits, int numChan, int numPoly, vector<vector<float > > pathCoeff, vector<Temperature > refTemp);
00485         
00486         
00487 
00488         
00506         bool compareRequiredValue(WVRMethodMod::WVRMethod wvrMethod, vector<Frequency > polyFreqLimits, int numChan, int numPoly, vector<vector<float > > pathCoeff, vector<Temperature > refTemp); 
00507                  
00508         
00517         bool equalByRequiredValue(WVMCalRow* x) ;
00518         
00519 #ifndef WITHOUT_ACS
00520 
00524         asdmIDL::WVMCalRowIDL *toIDL() const;
00525 #endif
00526         
00527 #ifndef WITHOUT_ACS
00528 
00533         void setFromIDL (asdmIDL::WVMCalRowIDL x) ;
00534 #endif
00535         
00540         std::string toXML() const;
00541 
00548         void setFromXML (std::string rowDoc) ;
00549 
00552         // binary-deserialization material from an EndianIStream  //
00554 
00555         std::map<std::string, WVMCalAttributeFromBin> fromBinMethods;
00556 void antennaIdFromBin( EndianIStream& eis);
00557 void spectralWindowIdFromBin( EndianIStream& eis);
00558 void timeIntervalFromBin( EndianIStream& eis);
00559 void wvrMethodFromBin( EndianIStream& eis);
00560 void polyFreqLimitsFromBin( EndianIStream& eis);
00561 void numChanFromBin( EndianIStream& eis);
00562 void numPolyFromBin( EndianIStream& eis);
00563 void pathCoeffFromBin( EndianIStream& eis);
00564 void refTempFromBin( EndianIStream& eis);
00565 
00566         
00567 
00575          static WVMCalRow* fromBin(EndianIStream& eis, WVMCalTable& table, const std::vector<std::string>& attributesSeq);       
00576  
00583          void fromText(const std::string& attributeName, const std::string&  t);
00585 
00586 private:
00590         WVMCalTable &table;
00594         bool hasBeenAdded;
00595 
00596         // This method is used by the Table class when this row is added to the table.
00597         void isAdded(bool added);
00598 
00599 
00608         WVMCalRow (WVMCalTable &table);
00609 
00627          WVMCalRow (WVMCalTable &table, WVMCalRow &row);
00628                 
00630         // Intrinsic Table Attributes //
00632         
00633         
00634         // ===> Attribute timeInterval
00635         
00636         
00637 
00638         ArrayTimeInterval timeInterval;
00639 
00640         
00641         
00642         
00643 
00644         
00645         // ===> Attribute wvrMethod
00646         
00647         
00648 
00649         WVRMethodMod::WVRMethod wvrMethod;
00650 
00651         
00652         
00653         
00654 
00655         
00656         // ===> Attribute polyFreqLimits
00657         
00658         
00659 
00660         vector<Frequency > polyFreqLimits;
00661 
00662         
00663         
00664         
00665 
00666         
00667         // ===> Attribute numChan
00668         
00669         
00670 
00671         int numChan;
00672 
00673         
00674         
00675         
00676 
00677         
00678         // ===> Attribute numPoly
00679         
00680         
00681 
00682         int numPoly;
00683 
00684         
00685         
00686         
00687 
00688         
00689         // ===> Attribute pathCoeff
00690         
00691         
00692 
00693         vector<vector<float > > pathCoeff;
00694 
00695         
00696         
00697         
00698 
00699         
00700         // ===> Attribute refTemp
00701         
00702         
00703 
00704         vector<Temperature > refTemp;
00705 
00706         
00707         
00708         
00709 
00711         // Extrinsic Table Attributes //
00713         
00714         
00715         // ===> Attribute antennaId
00716         
00717         
00718 
00719         Tag antennaId;
00720 
00721         
00722         
00723         
00724 
00725         
00726         // ===> Attribute spectralWindowId
00727         
00728         
00729 
00730         Tag spectralWindowId;
00731 
00732         
00733         
00734         
00735 
00737         // Links //
00739         
00740         
00741                 
00742 
00743          
00744 
00745         
00746 
00747         
00748                 
00749 
00750          
00751 
00752         
00753 
00754         
00755 /*
00757         // binary-deserialization material from an EndianIStream  //
00759         std::map<std::string, WVMCalAttributeFromBin> fromBinMethods;
00760 void antennaIdFromBin( EndianIStream& eis);
00761 void spectralWindowIdFromBin( EndianIStream& eis);
00762 void timeIntervalFromBin( EndianIStream& eis);
00763 void wvrMethodFromBin( EndianIStream& eis);
00764 void polyFreqLimitsFromBin( EndianIStream& eis);
00765 void numChanFromBin( EndianIStream& eis);
00766 void numPolyFromBin( EndianIStream& eis);
00767 void pathCoeffFromBin( EndianIStream& eis);
00768 void refTempFromBin( EndianIStream& eis);
00769 
00770         
00771 */
00772         
00774         // text-deserialization material //
00776         std::map<std::string, WVMCalAttributeFromText> fromTextMethods;
00777         
00778 void antennaIdFromText (const string & s);
00779         
00780         
00781 void spectralWindowIdFromText (const string & s);
00782         
00783         
00784 void timeIntervalFromText (const string & s);
00785         
00786         
00787 void wvrMethodFromText (const string & s);
00788         
00789         
00790 void polyFreqLimitsFromText (const string & s);
00791         
00792         
00793 void numChanFromText (const string & s);
00794         
00795         
00796 void numPolyFromText (const string & s);
00797         
00798         
00799 void pathCoeffFromText (const string & s);
00800         
00801         
00802 void refTempFromText (const string & s);
00803         
00804 
00805                 
00806         
00811          void toBin(EndianOSStream& eoss);
00812                  
00822 };
00823 
00824 } // End namespace asdm
00825 
00826 #endif /* WVMCal_CLASS */
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines