FeedRow.h

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 FeedRow.h 00032 */ 00033 00034 #ifndef FeedRow_CLASS 00035 #define FeedRow_CLASS 00036 00037 #include <vector> 00038 #include <string> 00039 #include <set> 00040 using std::vector; 00041 using std::string; 00042 using std::set; 00043 00044 #ifndef WITHOUT_ACS 00045 #include <asdmIDLC.h> 00046 using asdmIDL::FeedRowIDL; 00047 #endif 00048 00049 #include <Angle.h> 00050 #include <AngularRate.h> 00051 #include <ArrayTime.h> 00052 #include <ArrayTimeInterval.h> 00053 #include <Complex.h> 00054 #include <Entity.h> 00055 #include <EntityId.h> 00056 #include <EntityRef.h> 00057 #include <Flux.h> 00058 #include <Frequency.h> 00059 #include <Humidity.h> 00060 #include <Interval.h> 00061 #include <Length.h> 00062 #include <Pressure.h> 00063 #include <Speed.h> 00064 #include <Tag.h> 00065 #include <Temperature.h> 00066 #include <ConversionException.h> 00067 #include <NoSuchRow.h> 00068 #include <IllegalAccessException.h> 00069 00070 /* 00071 #include <Enumerations.h> 00072 using namespace enumerations; 00073 */ 00074 00075 00076 00077 00078 00079 00080 00081 00082 00083 00084 00085 00086 00087 00088 00089 00090 00091 00092 00093 00094 00095 #include "CPolarizationType.h" 00096 using namespace PolarizationTypeMod; 00097 00098 00099 00100 00101 00102 00103 00104 00105 00106 00107 00108 00109 00110 00111 using asdm::Angle; 00112 using asdm::AngularRate; 00113 using asdm::ArrayTime; 00114 using asdm::Complex; 00115 using asdm::Entity; 00116 using asdm::EntityId; 00117 using asdm::EntityRef; 00118 using asdm::Flux; 00119 using asdm::Frequency; 00120 using asdm::Humidity; 00121 using asdm::Interval; 00122 using asdm::Length; 00123 using asdm::Pressure; 00124 using asdm::Speed; 00125 using asdm::Tag; 00126 using asdm::Temperature; 00127 using asdm::ConversionException; 00128 using asdm::NoSuchRow; 00129 using asdm::IllegalAccessException; 00130 00131 /*\file Feed.h 00132 \brief Generated from model's revision "1.46", branch "HEAD" 00133 */ 00134 00135 namespace asdm { 00136 00137 //class asdm::FeedTable; 00138 00139 00140 // class asdm::AntennaRow; 00141 class AntennaRow; 00142 00143 // class asdm::SpectralWindowRow; 00144 class SpectralWindowRow; 00145 00146 // class asdm::ReceiverRow; 00147 class ReceiverRow; 00148 00149 // class asdm::BeamRow; 00150 class BeamRow; 00151 00152 00159 class FeedRow { 00160 friend class asdm::FeedTable; 00161 00162 public: 00163 00164 virtual ~FeedRow(); 00165 00169 FeedTable &getTable() const; 00170 00171 #ifndef WITHOUT_ACS 00172 00176 FeedRowIDL *toIDL() const; 00177 #endif 00178 00179 #ifndef WITHOUT_ACS 00180 00184 void setFromIDL (FeedRowIDL x) throw(ConversionException); 00185 #endif 00186 00191 string toXML() const; 00192 00198 void setFromXML (string rowDoc) throw(ConversionException); 00199 00201 // Intrinsic Table Attributes // 00203 00204 00205 // ===> Attribute feedId 00206 00207 00208 00209 00210 00215 int getFeedId() const; 00216 00217 00218 00219 00220 00221 00222 00223 00224 00225 // ===> Attribute timeInterval 00226 00227 00228 00229 00230 00235 ArrayTimeInterval getTimeInterval() const; 00236 00237 00238 00239 00249 void setTimeInterval (ArrayTimeInterval timeInterval); 00250 00251 00252 00253 00254 00255 00256 00257 // ===> Attribute numReceptor 00258 00259 00260 00261 00262 00267 int getNumReceptor() const; 00268 00269 00270 00271 00279 void setNumReceptor (int numReceptor); 00280 00281 00282 00283 00284 00285 00286 00287 // ===> Attribute feedNum, which is optional 00288 00289 00290 00295 bool isFeedNumExists() const; 00296 00297 00298 00304 int getFeedNum() const throw(IllegalAccessException); 00305 00306 00307 00308 00315 void setFeedNum (int feedNum); 00316 00317 00318 00319 00323 void clearFeedNum (); 00324 00325 00326 00327 00328 // ===> Attribute beamOffset 00329 00330 00331 00332 00333 00338 vector<vector<double > > getBeamOffset() const; 00339 00340 00341 00342 00350 void setBeamOffset (vector<vector<double > > beamOffset); 00351 00352 00353 00354 00355 00356 00357 00358 // ===> Attribute focusReference 00359 00360 00361 00362 00363 00368 vector<vector<Length > > getFocusReference() const; 00369 00370 00371 00372 00380 void setFocusReference (vector<vector<Length > > focusReference); 00381 00382 00383 00384 00385 00386 00387 00388 // ===> Attribute illumOffset, which is optional 00389 00390 00391 00396 bool isIllumOffsetExists() const; 00397 00398 00399 00405 float getIllumOffset() const throw(IllegalAccessException); 00406 00407 00408 00409 00416 void setIllumOffset (float illumOffset); 00417 00418 00419 00420 00424 void clearIllumOffset (); 00425 00426 00427 00428 00429 // ===> Attribute illumOffsetPa, which is optional 00430 00431 00432 00437 bool isIllumOffsetPaExists() const; 00438 00439 00440 00446 float getIllumOffsetPa() const throw(IllegalAccessException); 00447 00448 00449 00450 00457 void setIllumOffsetPa (float illumOffsetPa); 00458 00459 00460 00461 00465 void clearIllumOffsetPa (); 00466 00467 00468 00469 00470 // ===> Attribute polarizationTypes 00471 00472 00473 00474 00475 00480 vector<PolarizationTypeMod::PolarizationType > getPolarizationTypes() const; 00481 00482 00483 00484 00492 void setPolarizationTypes (vector<PolarizationTypeMod::PolarizationType > polarizationTypes); 00493 00494 00495 00496 00497 00498 00499 00500 // ===> Attribute polResponse 00501 00502 00503 00504 00505 00510 vector<vector<Complex > > getPolResponse() const; 00511 00512 00513 00514 00522 void setPolResponse (vector<vector<Complex > > polResponse); 00523 00524 00525 00526 00527 00528 00529 00530 // ===> Attribute xPosition, which is optional 00531 00532 00533 00538 bool isXPositionExists() const; 00539 00540 00541 00547 Length getXPosition() const throw(IllegalAccessException); 00548 00549 00550 00551 00558 void setXPosition (Length xPosition); 00559 00560 00561 00562 00566 void clearXPosition (); 00567 00568 00569 00570 00571 // ===> Attribute yPosition, which is optional 00572 00573 00574 00579 bool isYPositionExists() const; 00580 00581 00582 00588 Length getYPosition() const throw(IllegalAccessException); 00589 00590 00591 00592 00599 void setYPosition (Length yPosition); 00600 00601 00602 00603 00607 void clearYPosition (); 00608 00609 00610 00611 00612 // ===> Attribute zPosition, which is optional 00613 00614 00615 00620 bool isZPositionExists() const; 00621 00622 00623 00629 Length getZPosition() const throw(IllegalAccessException); 00630 00631 00632 00633 00640 void setZPosition (Length zPosition); 00641 00642 00643 00644 00648 void clearZPosition (); 00649 00650 00651 00652 00653 // ===> Attribute receptorAngle 00654 00655 00656 00657 00658 00663 vector<Angle > getReceptorAngle() const; 00664 00665 00666 00667 00675 void setReceptorAngle (vector<Angle > receptorAngle); 00676 00677 00678 00679 00680 00681 00683 // Extrinsic Table Attributes // 00685 00686 00687 // ===> Attribute antennaId 00688 00689 00690 00691 00692 00697 Tag getAntennaId() const; 00698 00699 00700 00701 00711 void setAntennaId (Tag antennaId); 00712 00713 00714 00715 00716 00717 00718 00719 // ===> Attribute beamId, which is optional 00720 00721 00722 00727 bool isBeamIdExists() const; 00728 00729 00730 00736 vector<Tag> getBeamId() const throw(IllegalAccessException); 00737 00738 00739 00740 00747 void setBeamId (vector<Tag> beamId); 00748 00749 00750 00751 00755 void clearBeamId (); 00756 00757 00758 00759 00760 // ===> Attribute receiverId 00761 00762 00763 00764 00765 00770 vector<int> getReceiverId() const; 00771 00772 00773 00774 00782 void setReceiverId (vector<int> receiverId); 00783 00784 00785 00786 00787 00788 00789 00790 // ===> Attribute spectralWindowId 00791 00792 00793 00794 00795 00800 Tag getSpectralWindowId() const; 00801 00802 00803 00804 00814 void setSpectralWindowId (Tag spectralWindowId); 00815 00816 00817 00818 00819 00820 00822 // Links // 00824 00825 00826 00827 00828 00835 AntennaRow* getAntennaUsingAntennaId(); 00836 00837 00838 00839 00840 00841 00842 00843 00850 SpectralWindowRow* getSpectralWindowUsingSpectralWindowId(); 00851 00852 00853 00854 00855 00856 00864 void setReceiverId (int i, int receiverId); 00865 00866 00867 00868 00869 00870 00871 // ===> Slices link from a row of Feed table to a collection of row of Receiver table. 00872 00877 void addReceiverId(int id); 00878 00883 void addReceiverId(vector<int> id); 00884 00885 00890 const vector <ReceiverRow *> getReceivers(int i); 00891 00892 00898 const vector <ReceiverRow *> getReceivers(); 00899 00900 00901 00902 00903 00904 00905 00912 void setBeamId (int i, Tag beamId) ; 00913 00914 00915 00916 00917 00922 void addBeamId(Tag id); 00923 00928 void addBeamId(const vector<Tag> & id); 00929 00930 00936 const Tag getBeamId(int i); 00937 00945 BeamRow* getBeam(int i); 00946 00951 vector<BeamRow *> getBeams(); 00952 00953 00954 00955 00956 00957 00958 00963 bool compareNoAutoInc(Tag antennaId, Tag spectralWindowId, ArrayTimeInterval timeInterval, vector<int> receiverId, int numReceptor, vector<vector<double > > beamOffset, vector<vector<Length > > focusReference, vector<PolarizationTypeMod::PolarizationType > polarizationTypes, vector<vector<Complex > > polResponse, vector<Angle > receptorAngle); 00964 00965 00966 00967 00968 bool compareRequiredValue(vector<int> receiverId, int numReceptor, vector<vector<double > > beamOffset, vector<vector<Length > > focusReference, vector<PolarizationTypeMod::PolarizationType > polarizationTypes, vector<vector<Complex > > polResponse, vector<Angle > receptorAngle); 00969 00970 00979 bool equalByRequiredValue(FeedRow* x) ; 00980 00981 private: 00985 FeedTable &table; 00989 bool hasBeenAdded; 00990 00991 // This method is used by the Table class when this row is added to the table. 00992 void isAdded(); 00993 00994 01003 FeedRow (FeedTable &table); 01004 01022 FeedRow (FeedTable &table, FeedRow &row); 01023 01025 // Intrinsic Table Attributes // 01027 01028 01029 // ===> Attribute feedId 01030 01031 01032 01033 int feedId; 01034 01035 01036 01037 01047 void setFeedId (int feedId); 01048 01049 01050 01051 01052 // ===> Attribute timeInterval 01053 01054 01055 01056 ArrayTimeInterval timeInterval; 01057 01058 01059 01060 01061 01062 01063 // ===> Attribute numReceptor 01064 01065 01066 01067 int numReceptor; 01068 01069 01070 01071 01072 01073 01074 // ===> Attribute feedNum, which is optional 01075 01076 01077 bool feedNumExists; 01078 01079 01080 int feedNum; 01081 01082 01083 01084 01085 01086 01087 // ===> Attribute beamOffset 01088 01089 01090 01091 vector<vector<double > > beamOffset; 01092 01093 01094 01095 01096 01097 01098 // ===> Attribute focusReference 01099 01100 01101 01102 vector<vector<Length > > focusReference; 01103 01104 01105 01106 01107 01108 01109 // ===> Attribute illumOffset, which is optional 01110 01111 01112 bool illumOffsetExists; 01113 01114 01115 float illumOffset; 01116 01117 01118 01119 01120 01121 01122 // ===> Attribute illumOffsetPa, which is optional 01123 01124 01125 bool illumOffsetPaExists; 01126 01127 01128 float illumOffsetPa; 01129 01130 01131 01132 01133 01134 01135 // ===> Attribute polarizationTypes 01136 01137 01138 01139 vector<PolarizationTypeMod::PolarizationType > polarizationTypes; 01140 01141 01142 01143 01144 01145 01146 // ===> Attribute polResponse 01147 01148 01149 01150 vector<vector<Complex > > polResponse; 01151 01152 01153 01154 01155 01156 01157 // ===> Attribute xPosition, which is optional 01158 01159 01160 bool xPositionExists; 01161 01162 01163 Length xPosition; 01164 01165 01166 01167 01168 01169 01170 // ===> Attribute yPosition, which is optional 01171 01172 01173 bool yPositionExists; 01174 01175 01176 Length yPosition; 01177 01178 01179 01180 01181 01182 01183 // ===> Attribute zPosition, which is optional 01184 01185 01186 bool zPositionExists; 01187 01188 01189 Length zPosition; 01190 01191 01192 01193 01194 01195 01196 // ===> Attribute receptorAngle 01197 01198 01199 01200 vector<Angle > receptorAngle; 01201 01202 01203 01204 01205 01207 // Extrinsic Table Attributes // 01209 01210 01211 // ===> Attribute antennaId 01212 01213 01214 01215 Tag antennaId; 01216 01217 01218 01219 01220 01221 01222 // ===> Attribute beamId, which is optional 01223 01224 01225 bool beamIdExists; 01226 01227 01228 vector<Tag> beamId; 01229 01230 01231 01232 01233 01234 01235 // ===> Attribute receiverId 01236 01237 01238 01239 vector<int> receiverId; 01240 01241 01242 01243 01244 01245 01246 // ===> Attribute spectralWindowId 01247 01248 01249 01250 Tag spectralWindowId; 01251 01252 01253 01254 01255 01257 // Links // 01259 01260 01261 01262 01263 01264 01265 01266 01267 01268 01269 01270 01271 01272 01273 01274 01275 01276 01277 01278 01279 01280 01281 01282 01283 01284 01285 01286 01287 }; 01288 01289 } // End namespace asdm 01290 01291 #endif /* Feed_CLASS */

Generated on Tue Nov 18 17:43:41 2008 for ASDM C++ Implementation by doxygen 1.3.8