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 #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.61", 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);       
00577 
00578 private:
00582         WVMCalTable &table;
00586         bool hasBeenAdded;
00587 
00588         // This method is used by the Table class when this row is added to the table.
00589         void isAdded(bool added);
00590 
00591 
00600         WVMCalRow (WVMCalTable &table);
00601 
00619          WVMCalRow (WVMCalTable &table, WVMCalRow &row);
00620                 
00622         // Intrinsic Table Attributes //
00624         
00625         
00626         // ===> Attribute timeInterval
00627         
00628         
00629 
00630         ArrayTimeInterval timeInterval;
00631 
00632         
00633         
00634         
00635 
00636         
00637         // ===> Attribute wvrMethod
00638         
00639         
00640 
00641         WVRMethodMod::WVRMethod wvrMethod;
00642 
00643         
00644         
00645         
00646 
00647         
00648         // ===> Attribute polyFreqLimits
00649         
00650         
00651 
00652         vector<Frequency > polyFreqLimits;
00653 
00654         
00655         
00656         
00657 
00658         
00659         // ===> Attribute numChan
00660         
00661         
00662 
00663         int numChan;
00664 
00665         
00666         
00667         
00668 
00669         
00670         // ===> Attribute numPoly
00671         
00672         
00673 
00674         int numPoly;
00675 
00676         
00677         
00678         
00679 
00680         
00681         // ===> Attribute pathCoeff
00682         
00683         
00684 
00685         vector<vector<float > > pathCoeff;
00686 
00687         
00688         
00689         
00690 
00691         
00692         // ===> Attribute refTemp
00693         
00694         
00695 
00696         vector<Temperature > refTemp;
00697 
00698         
00699         
00700         
00701 
00703         // Extrinsic Table Attributes //
00705         
00706         
00707         // ===> Attribute antennaId
00708         
00709         
00710 
00711         Tag antennaId;
00712 
00713         
00714         
00715         
00716 
00717         
00718         // ===> Attribute spectralWindowId
00719         
00720         
00721 
00722         Tag spectralWindowId;
00723 
00724         
00725         
00726         
00727 
00729         // Links //
00731         
00732         
00733                 
00734 
00735          
00736 
00737         
00738 
00739         
00740                 
00741 
00742          
00743 
00744         
00745 
00746         
00747 /*
00749         // binary-deserialization material from an EndianIStream  //
00751         std::map<std::string, WVMCalAttributeFromBin> fromBinMethods;
00752 void antennaIdFromBin( EndianIStream& eis);
00753 void spectralWindowIdFromBin( EndianIStream& eis);
00754 void timeIntervalFromBin( EndianIStream& eis);
00755 void wvrMethodFromBin( EndianIStream& eis);
00756 void polyFreqLimitsFromBin( EndianIStream& eis);
00757 void numChanFromBin( EndianIStream& eis);
00758 void numPolyFromBin( EndianIStream& eis);
00759 void pathCoeffFromBin( EndianIStream& eis);
00760 void refTempFromBin( EndianIStream& eis);
00761 
00762         
00763 */
00764         
00766         // text-deserialization material //
00768         std::map<std::string, WVMCalAttributeFromText> fromTextMethods;
00769         
00770 void antennaIdFromText (const string & s);
00771         
00772         
00773 void spectralWindowIdFromText (const string & s);
00774         
00775         
00776 void timeIntervalFromText (const string & s);
00777         
00778         
00779 void wvrMethodFromText (const string & s);
00780         
00781         
00782 void polyFreqLimitsFromText (const string & s);
00783         
00784         
00785 void numChanFromText (const string & s);
00786         
00787         
00788 void numPolyFromText (const string & s);
00789         
00790         
00791 void pathCoeffFromText (const string & s);
00792         
00793         
00794 void refTempFromText (const string & s);
00795         
00796 
00797                 
00798         
00799         void fromText(const std::string& attributeName, const std::string&  t);
00800         
00805          void toBin(EndianOSStream& eoss);
00806                  
00816 };
00817 
00818 } // End namespace asdm
00819 
00820 #endif /* WVMCal_CLASS */