casa  $Rev:20696$
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
SourceRow.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 SourceRow.h
00032  */
00033  
00034 #ifndef SourceRow_CLASS
00035 #define SourceRow_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 <ArrayTime.h>
00052         
00053 
00054          
00055 #include <AngularRate.h>
00056         
00057 
00058          
00059 #include <Angle.h>
00060         
00061 
00062          
00063 #include <Speed.h>
00064         
00065 
00066          
00067 #include <Flux.h>
00068         
00069 
00070          
00071 #include <Tag.h>
00072         
00073 
00074          
00075 #include <Length.h>
00076         
00077 
00078          
00079 #include <Frequency.h>
00080         
00081 
00082          
00083 #include <ArrayTimeInterval.h>
00084         
00085 
00086 
00087 
00088 
00089         
00090 
00091         
00092 
00093         
00094 
00095         
00096 
00097         
00098 
00099         
00100 
00101         
00102 #include "CDirectionReferenceCode.h"
00103         
00104 
00105         
00106 
00107         
00108 
00109         
00110 
00111         
00112 
00113         
00114 
00115         
00116 
00117         
00118 
00119         
00120 
00121         
00122 
00123         
00124 
00125         
00126 #include "CSourceModel.h"
00127         
00128 
00129         
00130 #include "CFrequencyReferenceCode.h"
00131         
00132 
00133         
00134 
00135         
00136 
00137         
00138 
00139         
00140 
00141         
00142 #include "CStokesParameter.h"
00143         
00144 
00145         
00146 
00147         
00148 
00149         
00150 
00151         
00152 
00153         
00154 
00155         
00156 
00157         
00158 #include "CRadialVelocityReferenceCode.h"
00159         
00160 
00161 
00162 
00163 #include <ConversionException.h>
00164 #include <NoSuchRow.h>
00165 #include <IllegalAccessException.h>
00166 
00167 #include <RowTransformer.h>
00168 //#include <TableStreamReader.h>
00169 
00170 /*\file Source.h
00171     \brief Generated from model's revision "1.61", branch "HEAD"
00172 */
00173 
00174 namespace asdm {
00175 
00176 //class asdm::SourceTable;
00177 
00178 
00179 // class asdm::SpectralWindowRow;
00180 class SpectralWindowRow;
00181         
00182 
00183 class SourceRow;
00184 typedef void (SourceRow::*SourceAttributeFromBin) (EndianIStream& eis);
00185 typedef void (SourceRow::*SourceAttributeFromText) (const string& s);
00186 
00193 class SourceRow {
00194 friend class asdm::SourceTable;
00195 friend class asdm::RowTransformer<SourceRow>;
00196 //friend class asdm::TableStreamReader<SourceTable, SourceRow>;
00197 
00198 public:
00199 
00200         virtual ~SourceRow();
00201 
00205         SourceTable &getTable() const;
00206         
00211         bool isAdded() const;
00212                 
00214         // Intrinsic Table Attributes //
00216         
00217         
00218         // ===> Attribute sourceId
00219         
00220         
00221         
00222 
00223         
00228         int getSourceId() const;
00229         
00230  
00231         
00232         
00233         
00234         
00235 
00236 
00237         
00238         // ===> Attribute timeInterval
00239         
00240         
00241         
00242 
00243         
00248         ArrayTimeInterval getTimeInterval() const;
00249         
00250  
00251         
00252         
00262         void setTimeInterval (ArrayTimeInterval timeInterval);
00263                 
00264         
00265         
00266         
00267 
00268 
00269         
00270         // ===> Attribute code
00271         
00272         
00273         
00274 
00275         
00280         string getCode() const;
00281         
00282  
00283         
00284         
00292         void setCode (string code);
00293                 
00294         
00295         
00296         
00297 
00298 
00299         
00300         // ===> Attribute direction
00301         
00302         
00303         
00304 
00305         
00310         vector<Angle > getDirection() const;
00311         
00312  
00313         
00314         
00322         void setDirection (vector<Angle > direction);
00323                 
00324         
00325         
00326         
00327 
00328 
00329         
00330         // ===> Attribute properMotion
00331         
00332         
00333         
00334 
00335         
00340         vector<AngularRate > getProperMotion() const;
00341         
00342  
00343         
00344         
00352         void setProperMotion (vector<AngularRate > properMotion);
00353                 
00354         
00355         
00356         
00357 
00358 
00359         
00360         // ===> Attribute sourceName
00361         
00362         
00363         
00364 
00365         
00370         string getSourceName() const;
00371         
00372  
00373         
00374         
00382         void setSourceName (string sourceName);
00383                 
00384         
00385         
00386         
00387 
00388 
00389         
00390         // ===> Attribute directionCode, which is optional
00391         
00392         
00393         
00398         bool isDirectionCodeExists() const;
00399         
00400 
00401         
00407         DirectionReferenceCodeMod::DirectionReferenceCode getDirectionCode() const;
00408         
00409  
00410         
00411         
00418         void setDirectionCode (DirectionReferenceCodeMod::DirectionReferenceCode directionCode);
00419                 
00420         
00421         
00422         
00426         void clearDirectionCode ();
00427         
00428 
00429 
00430         
00431         // ===> Attribute directionEquinox, which is optional
00432         
00433         
00434         
00439         bool isDirectionEquinoxExists() const;
00440         
00441 
00442         
00448         ArrayTime getDirectionEquinox() const;
00449         
00450  
00451         
00452         
00459         void setDirectionEquinox (ArrayTime directionEquinox);
00460                 
00461         
00462         
00463         
00467         void clearDirectionEquinox ();
00468         
00469 
00470 
00471         
00472         // ===> Attribute calibrationGroup, which is optional
00473         
00474         
00475         
00480         bool isCalibrationGroupExists() const;
00481         
00482 
00483         
00489         int getCalibrationGroup() const;
00490         
00491  
00492         
00493         
00500         void setCalibrationGroup (int calibrationGroup);
00501                 
00502         
00503         
00504         
00508         void clearCalibrationGroup ();
00509         
00510 
00511 
00512         
00513         // ===> Attribute catalog, which is optional
00514         
00515         
00516         
00521         bool isCatalogExists() const;
00522         
00523 
00524         
00530         string getCatalog() const;
00531         
00532  
00533         
00534         
00541         void setCatalog (string catalog);
00542                 
00543         
00544         
00545         
00549         void clearCatalog ();
00550         
00551 
00552 
00553         
00554         // ===> Attribute deltaVel, which is optional
00555         
00556         
00557         
00562         bool isDeltaVelExists() const;
00563         
00564 
00565         
00571         Speed getDeltaVel() const;
00572         
00573  
00574         
00575         
00582         void setDeltaVel (Speed deltaVel);
00583                 
00584         
00585         
00586         
00590         void clearDeltaVel ();
00591         
00592 
00593 
00594         
00595         // ===> Attribute position, which is optional
00596         
00597         
00598         
00603         bool isPositionExists() const;
00604         
00605 
00606         
00612         vector<Length > getPosition() const;
00613         
00614  
00615         
00616         
00623         void setPosition (vector<Length > position);
00624                 
00625         
00626         
00627         
00631         void clearPosition ();
00632         
00633 
00634 
00635         
00636         // ===> Attribute numLines, which is optional
00637         
00638         
00639         
00644         bool isNumLinesExists() const;
00645         
00646 
00647         
00653         int getNumLines() const;
00654         
00655  
00656         
00657         
00664         void setNumLines (int numLines);
00665                 
00666         
00667         
00668         
00672         void clearNumLines ();
00673         
00674 
00675 
00676         
00677         // ===> Attribute transition, which is optional
00678         
00679         
00680         
00685         bool isTransitionExists() const;
00686         
00687 
00688         
00694         vector<string > getTransition() const;
00695         
00696  
00697         
00698         
00705         void setTransition (vector<string > transition);
00706                 
00707         
00708         
00709         
00713         void clearTransition ();
00714         
00715 
00716 
00717         
00718         // ===> Attribute restFrequency, which is optional
00719         
00720         
00721         
00726         bool isRestFrequencyExists() const;
00727         
00728 
00729         
00735         vector<Frequency > getRestFrequency() const;
00736         
00737  
00738         
00739         
00746         void setRestFrequency (vector<Frequency > restFrequency);
00747                 
00748         
00749         
00750         
00754         void clearRestFrequency ();
00755         
00756 
00757 
00758         
00759         // ===> Attribute sysVel, which is optional
00760         
00761         
00762         
00767         bool isSysVelExists() const;
00768         
00769 
00770         
00776         vector<Speed > getSysVel() const;
00777         
00778  
00779         
00780         
00787         void setSysVel (vector<Speed > sysVel);
00788                 
00789         
00790         
00791         
00795         void clearSysVel ();
00796         
00797 
00798 
00799         
00800         // ===> Attribute rangeVel, which is optional
00801         
00802         
00803         
00808         bool isRangeVelExists() const;
00809         
00810 
00811         
00817         vector<Speed > getRangeVel() const;
00818         
00819  
00820         
00821         
00828         void setRangeVel (vector<Speed > rangeVel);
00829                 
00830         
00831         
00832         
00836         void clearRangeVel ();
00837         
00838 
00839 
00840         
00841         // ===> Attribute sourceModel, which is optional
00842         
00843         
00844         
00849         bool isSourceModelExists() const;
00850         
00851 
00852         
00858         SourceModelMod::SourceModel getSourceModel() const;
00859         
00860  
00861         
00862         
00869         void setSourceModel (SourceModelMod::SourceModel sourceModel);
00870                 
00871         
00872         
00873         
00877         void clearSourceModel ();
00878         
00879 
00880 
00881         
00882         // ===> Attribute frequencyRefCode, which is optional
00883         
00884         
00885         
00890         bool isFrequencyRefCodeExists() const;
00891         
00892 
00893         
00899         FrequencyReferenceCodeMod::FrequencyReferenceCode getFrequencyRefCode() const;
00900         
00901  
00902         
00903         
00910         void setFrequencyRefCode (FrequencyReferenceCodeMod::FrequencyReferenceCode frequencyRefCode);
00911                 
00912         
00913         
00914         
00918         void clearFrequencyRefCode ();
00919         
00920 
00921 
00922         
00923         // ===> Attribute numFreq, which is optional
00924         
00925         
00926         
00931         bool isNumFreqExists() const;
00932         
00933 
00934         
00940         int getNumFreq() const;
00941         
00942  
00943         
00944         
00951         void setNumFreq (int numFreq);
00952                 
00953         
00954         
00955         
00959         void clearNumFreq ();
00960         
00961 
00962 
00963         
00964         // ===> Attribute numStokes, which is optional
00965         
00966         
00967         
00972         bool isNumStokesExists() const;
00973         
00974 
00975         
00981         int getNumStokes() const;
00982         
00983  
00984         
00985         
00992         void setNumStokes (int numStokes);
00993                 
00994         
00995         
00996         
01000         void clearNumStokes ();
01001         
01002 
01003 
01004         
01005         // ===> Attribute frequency, which is optional
01006         
01007         
01008         
01013         bool isFrequencyExists() const;
01014         
01015 
01016         
01022         vector<Frequency > getFrequency() const;
01023         
01024  
01025         
01026         
01033         void setFrequency (vector<Frequency > frequency);
01034                 
01035         
01036         
01037         
01041         void clearFrequency ();
01042         
01043 
01044 
01045         
01046         // ===> Attribute frequencyInterval, which is optional
01047         
01048         
01049         
01054         bool isFrequencyIntervalExists() const;
01055         
01056 
01057         
01063         vector<Frequency > getFrequencyInterval() const;
01064         
01065  
01066         
01067         
01074         void setFrequencyInterval (vector<Frequency > frequencyInterval);
01075                 
01076         
01077         
01078         
01082         void clearFrequencyInterval ();
01083         
01084 
01085 
01086         
01087         // ===> Attribute stokesParameter, which is optional
01088         
01089         
01090         
01095         bool isStokesParameterExists() const;
01096         
01097 
01098         
01104         vector<StokesParameterMod::StokesParameter > getStokesParameter() const;
01105         
01106  
01107         
01108         
01115         void setStokesParameter (vector<StokesParameterMod::StokesParameter > stokesParameter);
01116                 
01117         
01118         
01119         
01123         void clearStokesParameter ();
01124         
01125 
01126 
01127         
01128         // ===> Attribute flux, which is optional
01129         
01130         
01131         
01136         bool isFluxExists() const;
01137         
01138 
01139         
01145         vector<vector<Flux > > getFlux() const;
01146         
01147  
01148         
01149         
01156         void setFlux (vector<vector<Flux > > flux);
01157                 
01158         
01159         
01160         
01164         void clearFlux ();
01165         
01166 
01167 
01168         
01169         // ===> Attribute fluxErr, which is optional
01170         
01171         
01172         
01177         bool isFluxErrExists() const;
01178         
01179 
01180         
01186         vector<vector<Flux > > getFluxErr() const;
01187         
01188  
01189         
01190         
01197         void setFluxErr (vector<vector<Flux > > fluxErr);
01198                 
01199         
01200         
01201         
01205         void clearFluxErr ();
01206         
01207 
01208 
01209         
01210         // ===> Attribute positionAngle, which is optional
01211         
01212         
01213         
01218         bool isPositionAngleExists() const;
01219         
01220 
01221         
01227         vector<Angle > getPositionAngle() const;
01228         
01229  
01230         
01231         
01238         void setPositionAngle (vector<Angle > positionAngle);
01239                 
01240         
01241         
01242         
01246         void clearPositionAngle ();
01247         
01248 
01249 
01250         
01251         // ===> Attribute positionAngleErr, which is optional
01252         
01253         
01254         
01259         bool isPositionAngleErrExists() const;
01260         
01261 
01262         
01268         vector<Angle > getPositionAngleErr() const;
01269         
01270  
01271         
01272         
01279         void setPositionAngleErr (vector<Angle > positionAngleErr);
01280                 
01281         
01282         
01283         
01287         void clearPositionAngleErr ();
01288         
01289 
01290 
01291         
01292         // ===> Attribute size, which is optional
01293         
01294         
01295         
01300         bool isSizeExists() const;
01301         
01302 
01303         
01309         vector<vector<Angle > > getSize() const;
01310         
01311  
01312         
01313         
01320         void setSize (vector<vector<Angle > > size);
01321                 
01322         
01323         
01324         
01328         void clearSize ();
01329         
01330 
01331 
01332         
01333         // ===> Attribute sizeErr, which is optional
01334         
01335         
01336         
01341         bool isSizeErrExists() const;
01342         
01343 
01344         
01350         vector<vector<Angle > > getSizeErr() const;
01351         
01352  
01353         
01354         
01361         void setSizeErr (vector<vector<Angle > > sizeErr);
01362                 
01363         
01364         
01365         
01369         void clearSizeErr ();
01370         
01371 
01372 
01373         
01374         // ===> Attribute velRefCode, which is optional
01375         
01376         
01377         
01382         bool isVelRefCodeExists() const;
01383         
01384 
01385         
01391         RadialVelocityReferenceCodeMod::RadialVelocityReferenceCode getVelRefCode() const;
01392         
01393  
01394         
01395         
01402         void setVelRefCode (RadialVelocityReferenceCodeMod::RadialVelocityReferenceCode velRefCode);
01403                 
01404         
01405         
01406         
01410         void clearVelRefCode ();
01411         
01412 
01413 
01415         // Extrinsic Table Attributes //
01417         
01418         
01419         // ===> Attribute spectralWindowId
01420         
01421         
01422         
01423 
01424         
01429         Tag getSpectralWindowId() const;
01430         
01431  
01432         
01433         
01443         void setSpectralWindowId (Tag spectralWindowId);
01444                 
01445         
01446         
01447         
01448 
01449 
01451         // Links //
01453         
01454         
01455 
01456         
01457                 
01464          SpectralWindowRow* getSpectralWindowUsingSpectralWindowId();
01465          
01466 
01467         
01468 
01469         
01470         
01471         
01489         bool compareNoAutoInc(ArrayTimeInterval timeInterval, Tag spectralWindowId, string code, vector<Angle > direction, vector<AngularRate > properMotion, string sourceName);
01490         
01491         
01492 
01493         
01507         bool compareRequiredValue(string code, vector<Angle > direction, vector<AngularRate > properMotion, string sourceName); 
01508                  
01509         
01518         bool equalByRequiredValue(SourceRow* x) ;
01519         
01520 #ifndef WITHOUT_ACS
01521 
01525         asdmIDL::SourceRowIDL *toIDL() const;
01526 #endif
01527         
01528 #ifndef WITHOUT_ACS
01529 
01534         void setFromIDL (asdmIDL::SourceRowIDL x) ;
01535 #endif
01536         
01541         std::string toXML() const;
01542 
01549         void setFromXML (std::string rowDoc) ;
01550 
01553         // binary-deserialization material from an EndianIStream  //
01555 
01556         std::map<std::string, SourceAttributeFromBin> fromBinMethods;
01557 void sourceIdFromBin( EndianIStream& eis);
01558 void timeIntervalFromBin( EndianIStream& eis);
01559 void spectralWindowIdFromBin( EndianIStream& eis);
01560 void codeFromBin( EndianIStream& eis);
01561 void directionFromBin( EndianIStream& eis);
01562 void properMotionFromBin( EndianIStream& eis);
01563 void sourceNameFromBin( EndianIStream& eis);
01564 
01565 void directionCodeFromBin( EndianIStream& eis);
01566 void directionEquinoxFromBin( EndianIStream& eis);
01567 void calibrationGroupFromBin( EndianIStream& eis);
01568 void catalogFromBin( EndianIStream& eis);
01569 void deltaVelFromBin( EndianIStream& eis);
01570 void positionFromBin( EndianIStream& eis);
01571 void numLinesFromBin( EndianIStream& eis);
01572 void transitionFromBin( EndianIStream& eis);
01573 void restFrequencyFromBin( EndianIStream& eis);
01574 void sysVelFromBin( EndianIStream& eis);
01575 void rangeVelFromBin( EndianIStream& eis);
01576 void sourceModelFromBin( EndianIStream& eis);
01577 void frequencyRefCodeFromBin( EndianIStream& eis);
01578 void numFreqFromBin( EndianIStream& eis);
01579 void numStokesFromBin( EndianIStream& eis);
01580 void frequencyFromBin( EndianIStream& eis);
01581 void frequencyIntervalFromBin( EndianIStream& eis);
01582 void stokesParameterFromBin( EndianIStream& eis);
01583 void fluxFromBin( EndianIStream& eis);
01584 void fluxErrFromBin( EndianIStream& eis);
01585 void positionAngleFromBin( EndianIStream& eis);
01586 void positionAngleErrFromBin( EndianIStream& eis);
01587 void sizeFromBin( EndianIStream& eis);
01588 void sizeErrFromBin( EndianIStream& eis);
01589 void velRefCodeFromBin( EndianIStream& eis);
01590 
01591 
01599          static SourceRow* fromBin(EndianIStream& eis, SourceTable& table, const std::vector<std::string>& attributesSeq);       
01601 
01602 private:
01606         SourceTable &table;
01610         bool hasBeenAdded;
01611 
01612         // This method is used by the Table class when this row is added to the table.
01613         void isAdded(bool added);
01614 
01615 
01624         SourceRow (SourceTable &table);
01625 
01643          SourceRow (SourceTable &table, SourceRow &row);
01644                 
01646         // Intrinsic Table Attributes //
01648         
01649         
01650         // ===> Attribute sourceId
01651         
01652         
01653 
01654         int sourceId;
01655 
01656         
01657         
01658         
01668         void setSourceId (int sourceId);
01669                 
01670         
01671 
01672         
01673         // ===> Attribute timeInterval
01674         
01675         
01676 
01677         ArrayTimeInterval timeInterval;
01678 
01679         
01680         
01681         
01682 
01683         
01684         // ===> Attribute code
01685         
01686         
01687 
01688         string code;
01689 
01690         
01691         
01692         
01693 
01694         
01695         // ===> Attribute direction
01696         
01697         
01698 
01699         vector<Angle > direction;
01700 
01701         
01702         
01703         
01704 
01705         
01706         // ===> Attribute properMotion
01707         
01708         
01709 
01710         vector<AngularRate > properMotion;
01711 
01712         
01713         
01714         
01715 
01716         
01717         // ===> Attribute sourceName
01718         
01719         
01720 
01721         string sourceName;
01722 
01723         
01724         
01725         
01726 
01727         
01728         // ===> Attribute directionCode, which is optional
01729         
01730         
01731         bool directionCodeExists;
01732         
01733 
01734         DirectionReferenceCodeMod::DirectionReferenceCode directionCode;
01735 
01736         
01737         
01738         
01739 
01740         
01741         // ===> Attribute directionEquinox, which is optional
01742         
01743         
01744         bool directionEquinoxExists;
01745         
01746 
01747         ArrayTime directionEquinox;
01748 
01749         
01750         
01751         
01752 
01753         
01754         // ===> Attribute calibrationGroup, which is optional
01755         
01756         
01757         bool calibrationGroupExists;
01758         
01759 
01760         int calibrationGroup;
01761 
01762         
01763         
01764         
01765 
01766         
01767         // ===> Attribute catalog, which is optional
01768         
01769         
01770         bool catalogExists;
01771         
01772 
01773         string catalog;
01774 
01775         
01776         
01777         
01778 
01779         
01780         // ===> Attribute deltaVel, which is optional
01781         
01782         
01783         bool deltaVelExists;
01784         
01785 
01786         Speed deltaVel;
01787 
01788         
01789         
01790         
01791 
01792         
01793         // ===> Attribute position, which is optional
01794         
01795         
01796         bool positionExists;
01797         
01798 
01799         vector<Length > position;
01800 
01801         
01802         
01803         
01804 
01805         
01806         // ===> Attribute numLines, which is optional
01807         
01808         
01809         bool numLinesExists;
01810         
01811 
01812         int numLines;
01813 
01814         
01815         
01816         
01817 
01818         
01819         // ===> Attribute transition, which is optional
01820         
01821         
01822         bool transitionExists;
01823         
01824 
01825         vector<string > transition;
01826 
01827         
01828         
01829         
01830 
01831         
01832         // ===> Attribute restFrequency, which is optional
01833         
01834         
01835         bool restFrequencyExists;
01836         
01837 
01838         vector<Frequency > restFrequency;
01839 
01840         
01841         
01842         
01843 
01844         
01845         // ===> Attribute sysVel, which is optional
01846         
01847         
01848         bool sysVelExists;
01849         
01850 
01851         vector<Speed > sysVel;
01852 
01853         
01854         
01855         
01856 
01857         
01858         // ===> Attribute rangeVel, which is optional
01859         
01860         
01861         bool rangeVelExists;
01862         
01863 
01864         vector<Speed > rangeVel;
01865 
01866         
01867         
01868         
01869 
01870         
01871         // ===> Attribute sourceModel, which is optional
01872         
01873         
01874         bool sourceModelExists;
01875         
01876 
01877         SourceModelMod::SourceModel sourceModel;
01878 
01879         
01880         
01881         
01882 
01883         
01884         // ===> Attribute frequencyRefCode, which is optional
01885         
01886         
01887         bool frequencyRefCodeExists;
01888         
01889 
01890         FrequencyReferenceCodeMod::FrequencyReferenceCode frequencyRefCode;
01891 
01892         
01893         
01894         
01895 
01896         
01897         // ===> Attribute numFreq, which is optional
01898         
01899         
01900         bool numFreqExists;
01901         
01902 
01903         int numFreq;
01904 
01905         
01906         
01907         
01908 
01909         
01910         // ===> Attribute numStokes, which is optional
01911         
01912         
01913         bool numStokesExists;
01914         
01915 
01916         int numStokes;
01917 
01918         
01919         
01920         
01921 
01922         
01923         // ===> Attribute frequency, which is optional
01924         
01925         
01926         bool frequencyExists;
01927         
01928 
01929         vector<Frequency > frequency;
01930 
01931         
01932         
01933         
01934 
01935         
01936         // ===> Attribute frequencyInterval, which is optional
01937         
01938         
01939         bool frequencyIntervalExists;
01940         
01941 
01942         vector<Frequency > frequencyInterval;
01943 
01944         
01945         
01946         
01947 
01948         
01949         // ===> Attribute stokesParameter, which is optional
01950         
01951         
01952         bool stokesParameterExists;
01953         
01954 
01955         vector<StokesParameterMod::StokesParameter > stokesParameter;
01956 
01957         
01958         
01959         
01960 
01961         
01962         // ===> Attribute flux, which is optional
01963         
01964         
01965         bool fluxExists;
01966         
01967 
01968         vector<vector<Flux > > flux;
01969 
01970         
01971         
01972         
01973 
01974         
01975         // ===> Attribute fluxErr, which is optional
01976         
01977         
01978         bool fluxErrExists;
01979         
01980 
01981         vector<vector<Flux > > fluxErr;
01982 
01983         
01984         
01985         
01986 
01987         
01988         // ===> Attribute positionAngle, which is optional
01989         
01990         
01991         bool positionAngleExists;
01992         
01993 
01994         vector<Angle > positionAngle;
01995 
01996         
01997         
01998         
01999 
02000         
02001         // ===> Attribute positionAngleErr, which is optional
02002         
02003         
02004         bool positionAngleErrExists;
02005         
02006 
02007         vector<Angle > positionAngleErr;
02008 
02009         
02010         
02011         
02012 
02013         
02014         // ===> Attribute size, which is optional
02015         
02016         
02017         bool sizeExists;
02018         
02019 
02020         vector<vector<Angle > > size;
02021 
02022         
02023         
02024         
02025 
02026         
02027         // ===> Attribute sizeErr, which is optional
02028         
02029         
02030         bool sizeErrExists;
02031         
02032 
02033         vector<vector<Angle > > sizeErr;
02034 
02035         
02036         
02037         
02038 
02039         
02040         // ===> Attribute velRefCode, which is optional
02041         
02042         
02043         bool velRefCodeExists;
02044         
02045 
02046         RadialVelocityReferenceCodeMod::RadialVelocityReferenceCode velRefCode;
02047 
02048         
02049         
02050         
02051 
02053         // Extrinsic Table Attributes //
02055         
02056         
02057         // ===> Attribute spectralWindowId
02058         
02059         
02060 
02061         Tag spectralWindowId;
02062 
02063         
02064         
02065         
02066 
02068         // Links //
02070         
02071         
02072                 
02073 
02074          
02075 
02076         
02077 
02078         
02079 /*
02081         // binary-deserialization material from an EndianIStream  //
02083         std::map<std::string, SourceAttributeFromBin> fromBinMethods;
02084 void sourceIdFromBin( EndianIStream& eis);
02085 void timeIntervalFromBin( EndianIStream& eis);
02086 void spectralWindowIdFromBin( EndianIStream& eis);
02087 void codeFromBin( EndianIStream& eis);
02088 void directionFromBin( EndianIStream& eis);
02089 void properMotionFromBin( EndianIStream& eis);
02090 void sourceNameFromBin( EndianIStream& eis);
02091 
02092 void directionCodeFromBin( EndianIStream& eis);
02093 void directionEquinoxFromBin( EndianIStream& eis);
02094 void calibrationGroupFromBin( EndianIStream& eis);
02095 void catalogFromBin( EndianIStream& eis);
02096 void deltaVelFromBin( EndianIStream& eis);
02097 void positionFromBin( EndianIStream& eis);
02098 void numLinesFromBin( EndianIStream& eis);
02099 void transitionFromBin( EndianIStream& eis);
02100 void restFrequencyFromBin( EndianIStream& eis);
02101 void sysVelFromBin( EndianIStream& eis);
02102 void rangeVelFromBin( EndianIStream& eis);
02103 void sourceModelFromBin( EndianIStream& eis);
02104 void frequencyRefCodeFromBin( EndianIStream& eis);
02105 void numFreqFromBin( EndianIStream& eis);
02106 void numStokesFromBin( EndianIStream& eis);
02107 void frequencyFromBin( EndianIStream& eis);
02108 void frequencyIntervalFromBin( EndianIStream& eis);
02109 void stokesParameterFromBin( EndianIStream& eis);
02110 void fluxFromBin( EndianIStream& eis);
02111 void fluxErrFromBin( EndianIStream& eis);
02112 void positionAngleFromBin( EndianIStream& eis);
02113 void positionAngleErrFromBin( EndianIStream& eis);
02114 void sizeFromBin( EndianIStream& eis);
02115 void sizeErrFromBin( EndianIStream& eis);
02116 void velRefCodeFromBin( EndianIStream& eis);
02117 
02118 */
02119         
02121         // text-deserialization material //
02123         std::map<std::string, SourceAttributeFromText> fromTextMethods;
02124         
02125 void sourceIdFromText (const string & s);
02126         
02127         
02128 void timeIntervalFromText (const string & s);
02129         
02130         
02131 void spectralWindowIdFromText (const string & s);
02132         
02133         
02134 void codeFromText (const string & s);
02135         
02136         
02137 void directionFromText (const string & s);
02138         
02139         
02140 void properMotionFromText (const string & s);
02141         
02142         
02143 void sourceNameFromText (const string & s);
02144         
02145 
02146         
02147 void directionCodeFromText (const string & s);
02148         
02149         
02150 void directionEquinoxFromText (const string & s);
02151         
02152         
02153 void calibrationGroupFromText (const string & s);
02154         
02155         
02156 void catalogFromText (const string & s);
02157         
02158         
02159 void deltaVelFromText (const string & s);
02160         
02161         
02162 void positionFromText (const string & s);
02163         
02164         
02165 void numLinesFromText (const string & s);
02166         
02167         
02168 void transitionFromText (const string & s);
02169         
02170         
02171 void restFrequencyFromText (const string & s);
02172         
02173         
02174 void sysVelFromText (const string & s);
02175         
02176         
02177 void rangeVelFromText (const string & s);
02178         
02179         
02180 void sourceModelFromText (const string & s);
02181         
02182         
02183 void frequencyRefCodeFromText (const string & s);
02184         
02185         
02186 void numFreqFromText (const string & s);
02187         
02188         
02189 void numStokesFromText (const string & s);
02190         
02191         
02192 void frequencyFromText (const string & s);
02193         
02194         
02195 void frequencyIntervalFromText (const string & s);
02196         
02197         
02198 void stokesParameterFromText (const string & s);
02199         
02200         
02201 void fluxFromText (const string & s);
02202         
02203         
02204 void fluxErrFromText (const string & s);
02205         
02206         
02207 void positionAngleFromText (const string & s);
02208         
02209         
02210 void positionAngleErrFromText (const string & s);
02211         
02212         
02213 void sizeFromText (const string & s);
02214         
02215         
02216 void sizeErrFromText (const string & s);
02217         
02218         
02219 void velRefCodeFromText (const string & s);
02220         
02221         
02222         
02223         void fromText(const std::string& attributeName, const std::string&  t);
02224         
02229          void toBin(EndianOSStream& eoss);
02230                  
02240 };
02241 
02242 } // End namespace asdm
02243 
02244 #endif /* Source_CLASS */