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 PolarizationRow_CLASS
00035
#define PolarizationRow_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::PolarizationRowIDL;
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
#include "CStokesParameter.h"
00084
using namespace StokesParameterMod;
00085
00086
00087
00088
#include "CPolarizationType.h"
00089
using namespace PolarizationTypeMod;
00090
00091
00092
00093
00094
00095
00096
using asdm::Angle;
00097
using asdm::AngularRate;
00098
using asdm::ArrayTime;
00099
using asdm::Complex;
00100
using asdm::Entity;
00101
using asdm::EntityId;
00102
using asdm::EntityRef;
00103
using asdm::Flux;
00104
using asdm::Frequency;
00105
using asdm::Humidity;
00106
using asdm::Interval;
00107
using asdm::Length;
00108
using asdm::Pressure;
00109
using asdm::Speed;
00110
using asdm::Tag;
00111
using asdm::Temperature;
00112
using asdm::ConversionException;
00113
using asdm::NoSuchRow;
00114
using asdm::IllegalAccessException;
00115
00116
00117
00118
00119
00120
namespace asdm {
00121
00122
00123
00124
00125
00132 class PolarizationRow {
00133
friend class asdm::PolarizationTable;
00134
00135
public:
00136
00137
virtual ~
PolarizationRow();
00138
00142
PolarizationTable &
getTable()
const;
00143
00144
#ifndef WITHOUT_ACS
00145
00149 PolarizationRowIDL *
toIDL()
const;
00150
#endif
00151
00152
#ifndef WITHOUT_ACS
00153
00157
void setFromIDL (PolarizationRowIDL x)
throw(
ConversionException);
00158
#endif
00159
00164 string
toXML()
const;
00165
00171
void setFromXML (string rowDoc)
throw(
ConversionException);
00172
00174
00176
00177
00178
00179
00180
00181
00182
00183
00188
Tag getPolarizationId()
const;
00189
00190
00191
00192
00193
00194
00195
00196
00197
00198
00199
00200
00201
00202
00203
00208
int getNumCorr()
const;
00209
00210
00211
00212
00220
void setNumCorr (
int numCorr);
00221
00222
00223
00224
00225
00226
00227
00228
00229
00230
00231
00232
00233
00238 vector<StokesParameterMod::StokesParameter >
getCorrType()
const;
00239
00240
00241
00242
00250
void setCorrType (vector<StokesParameterMod::StokesParameter > corrType);
00251
00252
00253
00254
00255
00256
00257
00258
00259
00260
00261
00262
00263
00268 vector<vector<PolarizationTypeMod::PolarizationType > >
getCorrProduct()
const;
00269
00270
00271
00272
00280
void setCorrProduct (vector<vector<PolarizationTypeMod::PolarizationType > > corrProduct);
00281
00282
00283
00284
00285
00286
00287
00288
00289
00290
00291
00296
bool isFlagRowExists()
const;
00297
00298
00299
00305
bool getFlagRow()
const throw(
IllegalAccessException);
00306
00307
00308
00309
00316
void setFlagRow (
bool flagRow);
00317
00318
00319
00320
00324
void clearFlagRow ();
00325
00326
00327
00329
00331
00333
00335
00336
00337
00338
00343
bool compareNoAutoInc(
int numCorr, vector<StokesParameterMod::StokesParameter > corrType, vector<vector<PolarizationTypeMod::PolarizationType > > corrProduct);
00344
00345
00346
00347
00348
bool compareRequiredValue(
int numCorr, vector<StokesParameterMod::StokesParameter > corrType, vector<vector<PolarizationTypeMod::PolarizationType > > corrProduct);
00349
00350
00359
bool equalByRequiredValue(
PolarizationRow* x) ;
00360
00361
private:
00365
PolarizationTable &table;
00369
bool hasBeenAdded;
00370
00371
00372
void isAdded();
00373
00374
00383
PolarizationRow (
PolarizationTable &table);
00384
00402
PolarizationRow (
PolarizationTable &table,
PolarizationRow &row);
00403
00405
00407
00408
00409
00410
00411
00412
00413
Tag polarizationId;
00414
00415
00416
00417
00427
void setPolarizationId (
Tag polarizationId);
00428
00429
00430
00431
00432
00433
00434
00435
00436
int numCorr;
00437
00438
00439
00440
00441
00442
00443
00444
00445
00446
00447 vector<StokesParameterMod::StokesParameter > corrType;
00448
00449
00450
00451
00452
00453
00454
00455
00456
00457
00458 vector<vector<PolarizationTypeMod::PolarizationType > > corrProduct;
00459
00460
00461
00462
00463
00464
00465
00466
00467
00468
bool flagRowExists;
00469
00470
00471
bool flagRow;
00472
00473
00474
00475
00476
00478
00480
00482
00484
00485
00486 };
00487
00488 }
00489
00490
#endif