00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
#ifndef WVMCalRow_CLASS
00035
#define WVMCalRow_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::WVMCalRowIDL;
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
00072
00073
00074
00075
00076
00077
00078
00079
00080
00081
00082
00083
00084
00085
00086
00087
00088
00089
00090
00091
00092
00093
00094
using asdm::Angle;
00095
using asdm::AngularRate;
00096
using asdm::ArrayTime;
00097
using asdm::Complex;
00098
using asdm::Entity;
00099
using asdm::EntityId;
00100
using asdm::EntityRef;
00101
using asdm::Flux;
00102
using asdm::Frequency;
00103
using asdm::Humidity;
00104
using asdm::Interval;
00105
using asdm::Length;
00106
using asdm::Pressure;
00107
using asdm::Speed;
00108
using asdm::Tag;
00109
using asdm::Temperature;
00110
using asdm::ConversionException;
00111
using asdm::NoSuchRow;
00112
using asdm::IllegalAccessException;
00113
00114
00115
00116
00117
00118
namespace asdm {
00119
00120
00121
00122
00123
00124
class SpectralWindowRow;
00125
00126
00127
class AntennaRow;
00128
00129
00136 class WVMCalRow {
00137
friend class asdm::WVMCalTable;
00138
00139
public:
00140
00141
virtual ~
WVMCalRow();
00142
00146
WVMCalTable &
getTable()
const;
00147
00148
#ifndef WITHOUT_ACS
00149
00153 WVMCalRowIDL *
toIDL()
const;
00154
#endif
00155
00156
#ifndef WITHOUT_ACS
00157
00161
void setFromIDL (WVMCalRowIDL x)
throw(
ConversionException);
00162
#endif
00163
00168 string
toXML()
const;
00169
00175
void setFromXML (string rowDoc)
throw(
ConversionException);
00176
00178
00180
00181
00182
00183
00184
00185
00190
bool isOperationModeExists()
const;
00191
00192
00193
00199 string
getOperationMode()
const throw(
IllegalAccessException);
00200
00201
00202
00203
00210
void setOperationMode (string operationMode);
00211
00212
00213
00214
00218
void clearOperationMode ();
00219
00220
00221
00222
00223
00224
00225
00226
00227
00228
00233
int getNumPoly()
const;
00234
00235
00236
00237
00245
void setNumPoly (
int numPoly);
00246
00247
00248
00249
00250
00251
00252
00253
00254
00255
00256
00257
00258
00263
Frequency getFreqOrigin()
const;
00264
00265
00266
00267
00275
void setFreqOrigin (
Frequency freqOrigin);
00276
00277
00278
00279
00280
00281
00282
00283
00284
00285
00286
00287
00288
00293
ArrayTimeInterval getTimeInterval()
const;
00294
00295
00296
00297
00307
void setTimeInterval (
ArrayTimeInterval timeInterval);
00308
00309
00310
00311
00312
00313
00314
00315
00316
00317
00318
00319
00320
00325 vector<double >
getPathCoeff()
const;
00326
00327
00328
00329
00337
void setPathCoeff (vector<double > pathCoeff);
00338
00339
00340
00341
00342
00343
00344
00345
00346
00347
00348
00349
00350
00355 string
getCalibrationMode()
const;
00356
00357
00358
00359
00367
void setCalibrationMode (string calibrationMode);
00368
00369
00370
00371
00372
00373
00374
00375
00376
00377
00378
00383
bool isWvrefModelExists()
const;
00384
00385
00386
00392
float getWvrefModel()
const throw(
IllegalAccessException);
00393
00394
00395
00396
00403
void setWvrefModel (
float wvrefModel);
00404
00405
00406
00407
00411
void clearWvrefModel ();
00412
00413
00414
00416
00418
00419
00420
00421
00422
00423
00424
00425
00430
Tag getAntennaId()
const;
00431
00432
00433
00434
00444
void setAntennaId (
Tag antennaId);
00445
00446
00447
00448
00449
00450
00451
00452
00453
00454
00455
00456
00457
00462
Tag getSpectralWindowId()
const;
00463
00464
00465
00466
00476
void setSpectralWindowId (
Tag spectralWindowId);
00477
00478
00479
00480
00481
00482
00484
00486
00487
00488
00489
00490
00497
SpectralWindowRow*
getSpectralWindowUsingSpectralWindowId();
00498
00499
00500
00501
00502
00503
00504
00505
00512
AntennaRow*
getAntennaUsingAntennaId();
00513
00514
00515
00516
00517
00518
00519
00524
bool compareNoAutoInc(
Tag antennaId,
Tag spectralWindowId,
ArrayTimeInterval timeInterval,
int numPoly,
Frequency freqOrigin, vector<double > pathCoeff, string calibrationMode);
00525
00526
00527
00528
00529
bool compareRequiredValue(
int numPoly,
Frequency freqOrigin, vector<double > pathCoeff, string calibrationMode);
00530
00531
00540
bool equalByRequiredValue(
WVMCalRow* x) ;
00541
00542
private:
00546
WVMCalTable &table;
00550
bool hasBeenAdded;
00551
00552
00553
void isAdded();
00554
00555
00564
WVMCalRow (
WVMCalTable &table);
00565
00583
WVMCalRow (
WVMCalTable &table,
WVMCalRow &row);
00584
00586
00588
00589
00590
00591
00592
00593
bool operationModeExists;
00594
00595
00596 string operationMode;
00597
00598
00599
00600
00601
00602
00603
00604
00605
00606
00607
int numPoly;
00608
00609
00610
00611
00612
00613
00614
00615
00616
00617
00618
Frequency freqOrigin;
00619
00620
00621
00622
00623
00624
00625
00626
00627
00628
00629
ArrayTimeInterval timeInterval;
00630
00631
00632
00633
00634
00635
00636
00637
00638
00639
00640 vector<double > pathCoeff;
00641
00642
00643
00644
00645
00646
00647
00648
00649
00650
00651 string calibrationMode;
00652
00653
00654
00655
00656
00657
00658
00659
00660
00661
bool wvrefModelExists;
00662
00663
00664
float wvrefModel;
00665
00666
00667
00668
00669
00671
00673
00674
00675
00676
00677
00678
00679
Tag antennaId;
00680
00681
00682
00683
00684
00685
00686
00687
00688
00689
00690
Tag spectralWindowId;
00691
00692
00693
00694
00695
00697
00699
00700
00701
00702
00703
00704
00705
00706
00707
00708
00709
00710
00711
00712
00713
00714
00715 };
00716
00717 }
00718
00719
#endif