casa  $Rev:20696$
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
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 
00088 
00089 #include <ConversionException.h>
00090 #include <NoSuchRow.h>
00091 #include <IllegalAccessException.h>
00092 
00093 #include <RowTransformer.h>
00094 //#include <TableStreamReader.h>
00095 
00096 /*\file WVMCal.h
00097     \brief Generated from model's revision "1.64", branch "HEAD"
00098 */
00099 
00100 namespace asdm {
00101 
00102 //class asdm::WVMCalTable;
00103 
00104 
00105 // class asdm::SpectralWindowRow;
00106 class SpectralWindowRow;
00107 
00108 // class asdm::AntennaRow;
00109 class AntennaRow;
00110 
00111 // class asdm::AntennaRow;
00112 class AntennaRow;
00113         
00114 
00115 class WVMCalRow;
00116 typedef void (WVMCalRow::*WVMCalAttributeFromBin) (EndianIStream& eis);
00117 typedef void (WVMCalRow::*WVMCalAttributeFromText) (const string& s);
00118 
00125 class WVMCalRow {
00126 friend class asdm::WVMCalTable;
00127 friend class asdm::RowTransformer<WVMCalRow>;
00128 //friend class asdm::TableStreamReader<WVMCalTable, WVMCalRow>;
00129 
00130 public:
00131 
00132         virtual ~WVMCalRow();
00133 
00137         WVMCalTable &getTable() const;
00138         
00143         bool isAdded() const;
00144                 
00146         // Intrinsic Table Attributes //
00148         
00149         
00150         // ===> Attribute timeInterval
00151         
00152         
00153         
00154 
00155         
00160         ArrayTimeInterval getTimeInterval() const;
00161         
00162  
00163         
00164         
00174         void setTimeInterval (ArrayTimeInterval timeInterval);
00175                 
00176         
00177         
00178         
00179 
00180 
00181         
00182         // ===> Attribute wvrMethod
00183         
00184         
00185         
00186 
00187         
00192         WVRMethodMod::WVRMethod getWvrMethod() const;
00193         
00194  
00195         
00196         
00204         void setWvrMethod (WVRMethodMod::WVRMethod wvrMethod);
00205                 
00206         
00207         
00208         
00209 
00210 
00211         
00212         // ===> Attribute polyFreqLimits
00213         
00214         
00215         
00216 
00217         
00222         vector<Frequency > getPolyFreqLimits() const;
00223         
00224  
00225         
00226         
00234         void setPolyFreqLimits (vector<Frequency > polyFreqLimits);
00235                 
00236         
00237         
00238         
00239 
00240 
00241         
00242         // ===> Attribute numInputAntenna
00243         
00244         
00245         
00246 
00247         
00252         int getNumInputAntenna() const;
00253         
00254  
00255         
00256         
00264         void setNumInputAntenna (int numInputAntenna);
00265                 
00266         
00267         
00268         
00269 
00270 
00271         
00272         // ===> Attribute numChan
00273         
00274         
00275         
00276 
00277         
00282         int getNumChan() const;
00283         
00284  
00285         
00286         
00294         void setNumChan (int numChan);
00295                 
00296         
00297         
00298         
00299 
00300 
00301         
00302         // ===> Attribute numPoly
00303         
00304         
00305         
00306 
00307         
00312         int getNumPoly() const;
00313         
00314  
00315         
00316         
00324         void setNumPoly (int numPoly);
00325                 
00326         
00327         
00328         
00329 
00330 
00331         
00332         // ===> Attribute pathCoeff
00333         
00334         
00335         
00336 
00337         
00342         vector<vector<vector<float > > > getPathCoeff() const;
00343         
00344  
00345         
00346         
00354         void setPathCoeff (vector<vector<vector<float > > > pathCoeff);
00355                 
00356         
00357         
00358         
00359 
00360 
00361         
00362         // ===> Attribute refTemp
00363         
00364         
00365         
00366 
00367         
00372         vector<vector<Temperature > > getRefTemp() const;
00373         
00374  
00375         
00376         
00384         void setRefTemp (vector<vector<Temperature > > refTemp);
00385                 
00386         
00387         
00388         
00389 
00390 
00392         // Extrinsic Table Attributes //
00394         
00395         
00396         // ===> Attribute antennaId
00397         
00398         
00399         
00400 
00401         
00406         Tag getAntennaId() const;
00407         
00408  
00409         
00410         
00420         void setAntennaId (Tag antennaId);
00421                 
00422         
00423         
00424         
00425 
00426 
00427         
00428         // ===> Attribute inputAntennaId
00429         
00430         
00431         
00432 
00433         
00438         vector<Tag>  getInputAntennaId() const;
00439         
00440  
00441         
00442         
00450         void setInputAntennaId (vector<Tag>  inputAntennaId);
00451                 
00452         
00453         
00454         
00455 
00456 
00457         
00458         // ===> Attribute spectralWindowId
00459         
00460         
00461         
00462 
00463         
00468         Tag getSpectralWindowId() const;
00469         
00470  
00471         
00472         
00482         void setSpectralWindowId (Tag spectralWindowId);
00483                 
00484         
00485         
00486         
00487 
00488 
00490         // Links //
00492         
00493         
00494 
00495         
00496                 
00503          SpectralWindowRow* getSpectralWindowUsingSpectralWindowId();
00504          
00505 
00506         
00507 
00508         
00509 
00510         
00511                 
00518          AntennaRow* getAntennaUsingAntennaId();
00519          
00520 
00521         
00522 
00523         
00524                 
00532         void setInputAntennaId (int i, Tag inputAntennaId); 
00533                         
00534         
00535 
00536         
00537                  
00542  void addInputAntennaId(Tag id); 
00543 
00548  void addInputAntennaId(const vector<Tag> & id); 
00549  
00550 
00556  const Tag getInputAntennaId(int i);
00557  
00565  AntennaRow* getAntennaUsingInputAntennaId(int i); 
00566  
00571  vector<AntennaRow *> getAntennasUsingInputAntennaId(); 
00572   
00573 
00574         
00575 
00576         
00577         
00578         
00606         bool compareNoAutoInc(Tag antennaId, Tag spectralWindowId, ArrayTimeInterval timeInterval, WVRMethodMod::WVRMethod wvrMethod, vector<Frequency > polyFreqLimits, int numInputAntenna, int numChan, int numPoly, vector<vector<vector<float > > > pathCoeff, vector<vector<Temperature > > refTemp, vector<Tag>  inputAntennaId);
00607         
00608         
00609 
00610         
00632         bool compareRequiredValue(WVRMethodMod::WVRMethod wvrMethod, vector<Frequency > polyFreqLimits, int numInputAntenna, int numChan, int numPoly, vector<vector<vector<float > > > pathCoeff, vector<vector<Temperature > > refTemp, vector<Tag>  inputAntennaId); 
00633                  
00634         
00643         bool equalByRequiredValue(WVMCalRow* x) ;
00644         
00645 #ifndef WITHOUT_ACS
00646 
00650         asdmIDL::WVMCalRowIDL *toIDL() const;
00651         
00659          void toIDL(asdmIDL::WVMCalRowIDL& x) const;
00660 #endif
00661         
00662 #ifndef WITHOUT_ACS
00663 
00668         void setFromIDL (asdmIDL::WVMCalRowIDL x) ;
00669 #endif
00670         
00675         std::string toXML() const;
00676 
00683         void setFromXML (std::string rowDoc) ;
00684 
00687         // binary-deserialization material from an EndianIStream  //
00689 
00690         std::map<std::string, WVMCalAttributeFromBin> fromBinMethods;
00691 void antennaIdFromBin( EndianIStream& eis);
00692 void spectralWindowIdFromBin( EndianIStream& eis);
00693 void timeIntervalFromBin( EndianIStream& eis);
00694 void wvrMethodFromBin( EndianIStream& eis);
00695 void polyFreqLimitsFromBin( EndianIStream& eis);
00696 void numInputAntennaFromBin( EndianIStream& eis);
00697 void numChanFromBin( EndianIStream& eis);
00698 void numPolyFromBin( EndianIStream& eis);
00699 void pathCoeffFromBin( EndianIStream& eis);
00700 void refTempFromBin( EndianIStream& eis);
00701 void inputAntennaIdFromBin( EndianIStream& eis);
00702 
00703         
00704 
00712          static WVMCalRow* fromBin(EndianIStream& eis, WVMCalTable& table, const std::vector<std::string>& attributesSeq);       
00713  
00720          void fromText(const std::string& attributeName, const std::string&  t);
00722 
00723 private:
00727         WVMCalTable &table;
00731         bool hasBeenAdded;
00732 
00733         // This method is used by the Table class when this row is added to the table.
00734         void isAdded(bool added);
00735 
00736 
00745         WVMCalRow (WVMCalTable &table);
00746 
00764          WVMCalRow (WVMCalTable &table, WVMCalRow &row);
00765                 
00767         // Intrinsic Table Attributes //
00769         
00770         
00771         // ===> Attribute timeInterval
00772         
00773         
00774 
00775         ArrayTimeInterval timeInterval;
00776 
00777         
00778         
00779         
00780 
00781         
00782         // ===> Attribute wvrMethod
00783         
00784         
00785 
00786         WVRMethodMod::WVRMethod wvrMethod;
00787 
00788         
00789         
00790         
00791 
00792         
00793         // ===> Attribute polyFreqLimits
00794         
00795         
00796 
00797         vector<Frequency > polyFreqLimits;
00798 
00799         
00800         
00801         
00802 
00803         
00804         // ===> Attribute numInputAntenna
00805         
00806         
00807 
00808         int numInputAntenna;
00809 
00810         
00811         
00812         
00813 
00814         
00815         // ===> Attribute numChan
00816         
00817         
00818 
00819         int numChan;
00820 
00821         
00822         
00823         
00824 
00825         
00826         // ===> Attribute numPoly
00827         
00828         
00829 
00830         int numPoly;
00831 
00832         
00833         
00834         
00835 
00836         
00837         // ===> Attribute pathCoeff
00838         
00839         
00840 
00841         vector<vector<vector<float > > > pathCoeff;
00842 
00843         
00844         
00845         
00846 
00847         
00848         // ===> Attribute refTemp
00849         
00850         
00851 
00852         vector<vector<Temperature > > refTemp;
00853 
00854         
00855         
00856         
00857 
00859         // Extrinsic Table Attributes //
00861         
00862         
00863         // ===> Attribute antennaId
00864         
00865         
00866 
00867         Tag antennaId;
00868 
00869         
00870         
00871         
00872 
00873         
00874         // ===> Attribute inputAntennaId
00875         
00876         
00877 
00878         vector<Tag>  inputAntennaId;
00879 
00880         
00881         
00882         
00883 
00884         
00885         // ===> Attribute spectralWindowId
00886         
00887         
00888 
00889         Tag spectralWindowId;
00890 
00891         
00892         
00893         
00894 
00896         // Links //
00898         
00899         
00900                 
00901 
00902          
00903 
00904         
00905 
00906         
00907                 
00908 
00909          
00910 
00911         
00912 
00913         
00914                 
00915 
00916 
00917         
00918 
00919         
00920 /*
00922         // binary-deserialization material from an EndianIStream  //
00924         std::map<std::string, WVMCalAttributeFromBin> fromBinMethods;
00925 void antennaIdFromBin( EndianIStream& eis);
00926 void spectralWindowIdFromBin( EndianIStream& eis);
00927 void timeIntervalFromBin( EndianIStream& eis);
00928 void wvrMethodFromBin( EndianIStream& eis);
00929 void polyFreqLimitsFromBin( EndianIStream& eis);
00930 void numInputAntennaFromBin( EndianIStream& eis);
00931 void numChanFromBin( EndianIStream& eis);
00932 void numPolyFromBin( EndianIStream& eis);
00933 void pathCoeffFromBin( EndianIStream& eis);
00934 void refTempFromBin( EndianIStream& eis);
00935 void inputAntennaIdFromBin( EndianIStream& eis);
00936 
00937         
00938 */
00939         
00941         // text-deserialization material //
00943         std::map<std::string, WVMCalAttributeFromText> fromTextMethods;
00944         
00945 void antennaIdFromText (const string & s);
00946         
00947         
00948 void spectralWindowIdFromText (const string & s);
00949         
00950         
00951 void timeIntervalFromText (const string & s);
00952         
00953         
00954 void wvrMethodFromText (const string & s);
00955         
00956         
00957 void polyFreqLimitsFromText (const string & s);
00958         
00959         
00960 void numInputAntennaFromText (const string & s);
00961         
00962         
00963 void numChanFromText (const string & s);
00964         
00965         
00966 void numPolyFromText (const string & s);
00967         
00968         
00969 void pathCoeffFromText (const string & s);
00970         
00971         
00972 void refTempFromText (const string & s);
00973         
00974         
00975 void inputAntennaIdFromText (const string & s);
00976         
00977 
00978                 
00979         
00984          void toBin(EndianOSStream& eoss);
00985                  
00995 };
00996 
00997 } // End namespace asdm
00998 
00999 #endif /* WVMCal_CLASS */