casa  $Rev:20696$
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
PolarizationRow.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 PolarizationRow.h
00032  */
00033  
00034 #ifndef PolarizationRow_CLASS
00035 #define PolarizationRow_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 
00056 
00057         
00058 
00059         
00060 
00061         
00062 #include "CStokesParameter.h"
00063         
00064 
00065         
00066 #include "CPolarizationType.h"
00067         
00068 
00069 
00070 
00071 #include <ConversionException.h>
00072 #include <NoSuchRow.h>
00073 #include <IllegalAccessException.h>
00074 
00075 #include <RowTransformer.h>
00076 //#include <TableStreamReader.h>
00077 
00078 /*\file Polarization.h
00079     \brief Generated from model's revision "1.64", branch "HEAD"
00080 */
00081 
00082 namespace asdm {
00083 
00084 //class asdm::PolarizationTable;
00085 
00086         
00087 
00088 class PolarizationRow;
00089 typedef void (PolarizationRow::*PolarizationAttributeFromBin) (EndianIStream& eis);
00090 typedef void (PolarizationRow::*PolarizationAttributeFromText) (const string& s);
00091 
00098 class PolarizationRow {
00099 friend class asdm::PolarizationTable;
00100 friend class asdm::RowTransformer<PolarizationRow>;
00101 //friend class asdm::TableStreamReader<PolarizationTable, PolarizationRow>;
00102 
00103 public:
00104 
00105         virtual ~PolarizationRow();
00106 
00110         PolarizationTable &getTable() const;
00111         
00116         bool isAdded() const;
00117                 
00119         // Intrinsic Table Attributes //
00121         
00122         
00123         // ===> Attribute polarizationId
00124         
00125         
00126         
00127 
00128         
00133         Tag getPolarizationId() const;
00134         
00135  
00136         
00137         
00138         
00139         
00140 
00141 
00142         
00143         // ===> Attribute numCorr
00144         
00145         
00146         
00147 
00148         
00153         int getNumCorr() const;
00154         
00155  
00156         
00157         
00165         void setNumCorr (int numCorr);
00166                 
00167         
00168         
00169         
00170 
00171 
00172         
00173         // ===> Attribute corrType
00174         
00175         
00176         
00177 
00178         
00183         vector<StokesParameterMod::StokesParameter > getCorrType() const;
00184         
00185  
00186         
00187         
00195         void setCorrType (vector<StokesParameterMod::StokesParameter > corrType);
00196                 
00197         
00198         
00199         
00200 
00201 
00202         
00203         // ===> Attribute corrProduct
00204         
00205         
00206         
00207 
00208         
00213         vector<vector<PolarizationTypeMod::PolarizationType > > getCorrProduct() const;
00214         
00215  
00216         
00217         
00225         void setCorrProduct (vector<vector<PolarizationTypeMod::PolarizationType > > corrProduct);
00226                 
00227         
00228         
00229         
00230 
00231 
00233         // Extrinsic Table Attributes //
00235         
00237         // Links //
00239         
00240         
00241         
00242         
00254         bool compareNoAutoInc(int numCorr, vector<StokesParameterMod::StokesParameter > corrType, vector<vector<PolarizationTypeMod::PolarizationType > > corrProduct);
00255         
00256         
00257 
00258         
00270         bool compareRequiredValue(int numCorr, vector<StokesParameterMod::StokesParameter > corrType, vector<vector<PolarizationTypeMod::PolarizationType > > corrProduct); 
00271                  
00272         
00281         bool equalByRequiredValue(PolarizationRow* x) ;
00282         
00283 #ifndef WITHOUT_ACS
00284 
00288         asdmIDL::PolarizationRowIDL *toIDL() const;
00289         
00297          void toIDL(asdmIDL::PolarizationRowIDL& x) const;
00298 #endif
00299         
00300 #ifndef WITHOUT_ACS
00301 
00306         void setFromIDL (asdmIDL::PolarizationRowIDL x) ;
00307 #endif
00308         
00313         std::string toXML() const;
00314 
00321         void setFromXML (std::string rowDoc) ;
00322 
00325         // binary-deserialization material from an EndianIStream  //
00327 
00328         std::map<std::string, PolarizationAttributeFromBin> fromBinMethods;
00329 void polarizationIdFromBin( EndianIStream& eis);
00330 void numCorrFromBin( EndianIStream& eis);
00331 void corrTypeFromBin( EndianIStream& eis);
00332 void corrProductFromBin( EndianIStream& eis);
00333 
00334         
00335 
00343          static PolarizationRow* fromBin(EndianIStream& eis, PolarizationTable& table, const std::vector<std::string>& attributesSeq);   
00344  
00351          void fromText(const std::string& attributeName, const std::string&  t);
00353 
00354 private:
00358         PolarizationTable &table;
00362         bool hasBeenAdded;
00363 
00364         // This method is used by the Table class when this row is added to the table.
00365         void isAdded(bool added);
00366 
00367 
00376         PolarizationRow (PolarizationTable &table);
00377 
00395          PolarizationRow (PolarizationTable &table, PolarizationRow &row);
00396                 
00398         // Intrinsic Table Attributes //
00400         
00401         
00402         // ===> Attribute polarizationId
00403         
00404         
00405 
00406         Tag polarizationId;
00407 
00408         
00409         
00410         
00420         void setPolarizationId (Tag polarizationId);
00421                 
00422         
00423 
00424         
00425         // ===> Attribute numCorr
00426         
00427         
00428 
00429         int numCorr;
00430 
00431         
00432         
00433         
00434 
00435         
00436         // ===> Attribute corrType
00437         
00438         
00439 
00440         vector<StokesParameterMod::StokesParameter > corrType;
00441 
00442         
00443         
00444         
00445 
00446         
00447         // ===> Attribute corrProduct
00448         
00449         
00450 
00451         vector<vector<PolarizationTypeMod::PolarizationType > > corrProduct;
00452 
00453         
00454         
00455         
00456 
00458         // Extrinsic Table Attributes //
00460         
00462         // Links //
00464         
00465         
00466 /*
00468         // binary-deserialization material from an EndianIStream  //
00470         std::map<std::string, PolarizationAttributeFromBin> fromBinMethods;
00471 void polarizationIdFromBin( EndianIStream& eis);
00472 void numCorrFromBin( EndianIStream& eis);
00473 void corrTypeFromBin( EndianIStream& eis);
00474 void corrProductFromBin( EndianIStream& eis);
00475 
00476         
00477 */
00478         
00480         // text-deserialization material //
00482         std::map<std::string, PolarizationAttributeFromText> fromTextMethods;
00483         
00484 void polarizationIdFromText (const string & s);
00485         
00486         
00487 void numCorrFromText (const string & s);
00488         
00489         
00490 void corrTypeFromText (const string & s);
00491         
00492         
00493 void corrProductFromText (const string & s);
00494         
00495 
00496                 
00497         
00502          void toBin(EndianOSStream& eoss);
00503                  
00513 };
00514 
00515 } // End namespace asdm
00516 
00517 #endif /* Polarization_CLASS */