Line data Source code
1 :
2 : /*
3 : * ALMA - Atacama Large Millimeter Array
4 : * (c) European Southern Observatory, 2002
5 : * (c) Associated Universities Inc., 2002
6 : * Copyright by ESO (in the framework of the ALMA collaboration),
7 : * Copyright by AUI (in the framework of the ALMA collaboration),
8 : * All rights reserved.
9 : *
10 : * This library is free software; you can redistribute it and/or
11 : * modify it under the terms of the GNU Lesser General Public
12 : * License as published by the Free software Foundation; either
13 : * version 2.1 of the License, or (at your option) any later version.
14 : *
15 : * This library is distributed in the hope that it will be useful,
16 : * but WITHOUT ANY WARRANTY, without even the implied warranty of
17 : * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18 : * Lesser General Public License for more details.
19 : *
20 : * You should have received a copy of the GNU Lesser General Public
21 : * License along with this library; if not, write to the Free Software
22 : * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
23 : * MA 02111-1307 USA
24 : *
25 : * Warning!
26 : * --------------------------------------------------------------------
27 : * | This is generated code! Do not modify this file. |
28 : * | If you do, all changes will be lost when the file is re-generated. |
29 : * --------------------------------------------------------------------
30 : *
31 : * File DelayModelRow.cpp
32 : */
33 :
34 : #include <vector>
35 : #include <set>
36 :
37 : #include <alma/ASDM/ASDM.h>
38 : #include <alma/ASDM/DelayModelRow.h>
39 : #include <alma/ASDM/DelayModelTable.h>
40 :
41 : #include <alma/ASDM/AntennaTable.h>
42 : #include <alma/ASDM/AntennaRow.h>
43 :
44 : #include <alma/ASDM/SpectralWindowTable.h>
45 : #include <alma/ASDM/SpectralWindowRow.h>
46 :
47 : #include <alma/ASDM/FieldTable.h>
48 : #include <alma/ASDM/FieldRow.h>
49 :
50 :
51 : using asdm::ASDM;
52 : using asdm::DelayModelRow;
53 : using asdm::DelayModelTable;
54 :
55 : using asdm::AntennaTable;
56 : using asdm::AntennaRow;
57 :
58 : using asdm::SpectralWindowTable;
59 : using asdm::SpectralWindowRow;
60 :
61 : using asdm::FieldTable;
62 : using asdm::FieldRow;
63 :
64 :
65 : #include <alma/ASDM/Parser.h>
66 :
67 : #include <alma/ASDM/EnumerationParser.h>
68 : #include <alma/ASDM/ASDMValuesParser.h>
69 :
70 : #include <alma/ASDM/InvalidArgumentException.h>
71 :
72 : using namespace std;
73 :
74 : namespace asdm {
75 0 : DelayModelRow::~DelayModelRow() {
76 0 : }
77 :
78 : /**
79 : * Return the table to which this row belongs.
80 : */
81 0 : DelayModelTable &DelayModelRow::getTable() const {
82 0 : return table;
83 : }
84 :
85 0 : bool DelayModelRow::isAdded() const {
86 0 : return hasBeenAdded;
87 : }
88 :
89 0 : void DelayModelRow::isAdded(bool added) {
90 0 : hasBeenAdded = added;
91 0 : }
92 :
93 : #ifndef WITHOUT_ACS
94 : using asdmIDL::DelayModelRowIDL;
95 : #endif
96 :
97 : #ifndef WITHOUT_ACS
98 : /**
99 : * Return this row in the form of an IDL struct.
100 : * @return The values of this row as a DelayModelRowIDL struct.
101 : */
102 : DelayModelRowIDL *DelayModelRow::toIDL() const {
103 : DelayModelRowIDL *x = new DelayModelRowIDL ();
104 :
105 : // Fill the IDL structure.
106 :
107 :
108 :
109 :
110 :
111 :
112 :
113 : x->timeInterval = timeInterval.toIDLArrayTimeInterval();
114 :
115 :
116 :
117 :
118 :
119 :
120 :
121 :
122 :
123 :
124 : x->numPoly = numPoly;
125 :
126 :
127 :
128 :
129 :
130 :
131 :
132 :
133 :
134 :
135 : x->phaseDelay.length(phaseDelay.size());
136 : for (unsigned int i = 0; i < phaseDelay.size(); ++i) {
137 :
138 :
139 : x->phaseDelay[i] = phaseDelay.at(i);
140 :
141 :
142 : }
143 :
144 :
145 :
146 :
147 :
148 :
149 :
150 :
151 :
152 : x->phaseDelayRate.length(phaseDelayRate.size());
153 : for (unsigned int i = 0; i < phaseDelayRate.size(); ++i) {
154 :
155 :
156 : x->phaseDelayRate[i] = phaseDelayRate.at(i);
157 :
158 :
159 : }
160 :
161 :
162 :
163 :
164 :
165 :
166 :
167 :
168 :
169 : x->groupDelay.length(groupDelay.size());
170 : for (unsigned int i = 0; i < groupDelay.size(); ++i) {
171 :
172 :
173 : x->groupDelay[i] = groupDelay.at(i);
174 :
175 :
176 : }
177 :
178 :
179 :
180 :
181 :
182 :
183 :
184 :
185 :
186 : x->groupDelayRate.length(groupDelayRate.size());
187 : for (unsigned int i = 0; i < groupDelayRate.size(); ++i) {
188 :
189 :
190 : x->groupDelayRate[i] = groupDelayRate.at(i);
191 :
192 :
193 : }
194 :
195 :
196 :
197 :
198 :
199 :
200 :
201 : x->timeOriginExists = timeOriginExists;
202 :
203 :
204 :
205 : x->timeOrigin = timeOrigin.toIDLArrayTime();
206 :
207 :
208 :
209 :
210 :
211 :
212 :
213 : x->atmosphericGroupDelayExists = atmosphericGroupDelayExists;
214 :
215 :
216 :
217 :
218 : x->atmosphericGroupDelay = atmosphericGroupDelay;
219 :
220 :
221 :
222 :
223 :
224 :
225 :
226 :
227 : x->atmosphericGroupDelayRateExists = atmosphericGroupDelayRateExists;
228 :
229 :
230 :
231 :
232 : x->atmosphericGroupDelayRate = atmosphericGroupDelayRate;
233 :
234 :
235 :
236 :
237 :
238 :
239 :
240 :
241 : x->geometricDelayExists = geometricDelayExists;
242 :
243 :
244 :
245 :
246 : x->geometricDelay = geometricDelay;
247 :
248 :
249 :
250 :
251 :
252 :
253 :
254 :
255 : x->geometricDelayRateExists = geometricDelayRateExists;
256 :
257 :
258 :
259 :
260 : x->geometricDelayRate = geometricDelayRate;
261 :
262 :
263 :
264 :
265 :
266 :
267 :
268 :
269 : x->numLOExists = numLOExists;
270 :
271 :
272 :
273 :
274 : x->numLO = numLO;
275 :
276 :
277 :
278 :
279 :
280 :
281 :
282 :
283 : x->LOOffsetExists = LOOffsetExists;
284 :
285 :
286 :
287 : x->LOOffset.length(LOOffset.size());
288 : for (unsigned int i = 0; i < LOOffset.size(); ++i) {
289 :
290 : x->LOOffset[i] = LOOffset.at(i).toIDLFrequency();
291 :
292 : }
293 :
294 :
295 :
296 :
297 :
298 :
299 :
300 : x->LOOffsetRateExists = LOOffsetRateExists;
301 :
302 :
303 :
304 : x->LOOffsetRate.length(LOOffsetRate.size());
305 : for (unsigned int i = 0; i < LOOffsetRate.size(); ++i) {
306 :
307 : x->LOOffsetRate[i] = LOOffsetRate.at(i).toIDLFrequency();
308 :
309 : }
310 :
311 :
312 :
313 :
314 :
315 :
316 :
317 : x->dispersiveDelayExists = dispersiveDelayExists;
318 :
319 :
320 :
321 :
322 : x->dispersiveDelay = dispersiveDelay;
323 :
324 :
325 :
326 :
327 :
328 :
329 :
330 :
331 : x->dispersiveDelayRateExists = dispersiveDelayRateExists;
332 :
333 :
334 :
335 :
336 : x->dispersiveDelayRate = dispersiveDelayRate;
337 :
338 :
339 :
340 :
341 :
342 :
343 :
344 :
345 : x->atmosphericDryDelayExists = atmosphericDryDelayExists;
346 :
347 :
348 :
349 :
350 : x->atmosphericDryDelay = atmosphericDryDelay;
351 :
352 :
353 :
354 :
355 :
356 :
357 :
358 :
359 : x->atmosphericWetDelayExists = atmosphericWetDelayExists;
360 :
361 :
362 :
363 :
364 : x->atmosphericWetDelay = atmosphericWetDelay;
365 :
366 :
367 :
368 :
369 :
370 :
371 :
372 :
373 : x->padDelayExists = padDelayExists;
374 :
375 :
376 :
377 :
378 : x->padDelay = padDelay;
379 :
380 :
381 :
382 :
383 :
384 :
385 :
386 :
387 : x->antennaDelayExists = antennaDelayExists;
388 :
389 :
390 :
391 :
392 : x->antennaDelay = antennaDelay;
393 :
394 :
395 :
396 :
397 :
398 :
399 :
400 :
401 : x->numReceptorExists = numReceptorExists;
402 :
403 :
404 :
405 :
406 : x->numReceptor = numReceptor;
407 :
408 :
409 :
410 :
411 :
412 :
413 :
414 :
415 : x->polarizationTypeExists = polarizationTypeExists;
416 :
417 :
418 :
419 : x->polarizationType.length(polarizationType.size());
420 : for (unsigned int i = 0; i < polarizationType.size(); ++i) {
421 :
422 :
423 : x->polarizationType[i] = polarizationType.at(i);
424 :
425 :
426 : }
427 :
428 :
429 :
430 :
431 :
432 :
433 :
434 : x->electronicDelayExists = electronicDelayExists;
435 :
436 :
437 :
438 : x->electronicDelay.length(electronicDelay.size());
439 : for (unsigned int i = 0; i < electronicDelay.size(); ++i) {
440 :
441 :
442 : x->electronicDelay[i] = electronicDelay.at(i);
443 :
444 :
445 : }
446 :
447 :
448 :
449 :
450 :
451 :
452 :
453 : x->electronicDelayRateExists = electronicDelayRateExists;
454 :
455 :
456 :
457 : x->electronicDelayRate.length(electronicDelayRate.size());
458 : for (unsigned int i = 0; i < electronicDelayRate.size(); ++i) {
459 :
460 :
461 : x->electronicDelayRate[i] = electronicDelayRate.at(i);
462 :
463 :
464 : }
465 :
466 :
467 :
468 :
469 :
470 :
471 :
472 : x->receiverDelayExists = receiverDelayExists;
473 :
474 :
475 :
476 : x->receiverDelay.length(receiverDelay.size());
477 : for (unsigned int i = 0; i < receiverDelay.size(); ++i) {
478 :
479 :
480 : x->receiverDelay[i] = receiverDelay.at(i);
481 :
482 :
483 : }
484 :
485 :
486 :
487 :
488 :
489 :
490 :
491 : x->IFDelayExists = IFDelayExists;
492 :
493 :
494 :
495 : x->IFDelay.length(IFDelay.size());
496 : for (unsigned int i = 0; i < IFDelay.size(); ++i) {
497 :
498 :
499 : x->IFDelay[i] = IFDelay.at(i);
500 :
501 :
502 : }
503 :
504 :
505 :
506 :
507 :
508 :
509 :
510 : x->LODelayExists = LODelayExists;
511 :
512 :
513 :
514 : x->LODelay.length(LODelay.size());
515 : for (unsigned int i = 0; i < LODelay.size(); ++i) {
516 :
517 :
518 : x->LODelay[i] = LODelay.at(i);
519 :
520 :
521 : }
522 :
523 :
524 :
525 :
526 :
527 :
528 :
529 : x->crossPolarizationDelayExists = crossPolarizationDelayExists;
530 :
531 :
532 :
533 :
534 : x->crossPolarizationDelay = crossPolarizationDelay;
535 :
536 :
537 :
538 :
539 :
540 :
541 :
542 :
543 :
544 :
545 :
546 :
547 :
548 :
549 : x->antennaId = antennaId.toIDLTag();
550 :
551 :
552 :
553 :
554 :
555 :
556 :
557 :
558 :
559 :
560 : x->fieldId = fieldId.toIDLTag();
561 :
562 :
563 :
564 :
565 :
566 :
567 :
568 :
569 :
570 :
571 : x->spectralWindowId = spectralWindowId.toIDLTag();
572 :
573 :
574 :
575 :
576 :
577 :
578 :
579 :
580 :
581 :
582 :
583 :
584 :
585 : return x;
586 :
587 : }
588 :
589 : void DelayModelRow::toIDL(asdmIDL::DelayModelRowIDL& x) const {
590 : // Set the x's fields.
591 :
592 :
593 :
594 :
595 :
596 :
597 :
598 : x.timeInterval = timeInterval.toIDLArrayTimeInterval();
599 :
600 :
601 :
602 :
603 :
604 :
605 :
606 :
607 :
608 :
609 : x.numPoly = numPoly;
610 :
611 :
612 :
613 :
614 :
615 :
616 :
617 :
618 :
619 :
620 : x.phaseDelay.length(phaseDelay.size());
621 : for (unsigned int i = 0; i < phaseDelay.size(); ++i) {
622 :
623 :
624 : x.phaseDelay[i] = phaseDelay.at(i);
625 :
626 :
627 : }
628 :
629 :
630 :
631 :
632 :
633 :
634 :
635 :
636 :
637 : x.phaseDelayRate.length(phaseDelayRate.size());
638 : for (unsigned int i = 0; i < phaseDelayRate.size(); ++i) {
639 :
640 :
641 : x.phaseDelayRate[i] = phaseDelayRate.at(i);
642 :
643 :
644 : }
645 :
646 :
647 :
648 :
649 :
650 :
651 :
652 :
653 :
654 : x.groupDelay.length(groupDelay.size());
655 : for (unsigned int i = 0; i < groupDelay.size(); ++i) {
656 :
657 :
658 : x.groupDelay[i] = groupDelay.at(i);
659 :
660 :
661 : }
662 :
663 :
664 :
665 :
666 :
667 :
668 :
669 :
670 :
671 : x.groupDelayRate.length(groupDelayRate.size());
672 : for (unsigned int i = 0; i < groupDelayRate.size(); ++i) {
673 :
674 :
675 : x.groupDelayRate[i] = groupDelayRate.at(i);
676 :
677 :
678 : }
679 :
680 :
681 :
682 :
683 :
684 :
685 :
686 : x.timeOriginExists = timeOriginExists;
687 :
688 :
689 :
690 : x.timeOrigin = timeOrigin.toIDLArrayTime();
691 :
692 :
693 :
694 :
695 :
696 :
697 :
698 : x.atmosphericGroupDelayExists = atmosphericGroupDelayExists;
699 :
700 :
701 :
702 :
703 : x.atmosphericGroupDelay = atmosphericGroupDelay;
704 :
705 :
706 :
707 :
708 :
709 :
710 :
711 :
712 : x.atmosphericGroupDelayRateExists = atmosphericGroupDelayRateExists;
713 :
714 :
715 :
716 :
717 : x.atmosphericGroupDelayRate = atmosphericGroupDelayRate;
718 :
719 :
720 :
721 :
722 :
723 :
724 :
725 :
726 : x.geometricDelayExists = geometricDelayExists;
727 :
728 :
729 :
730 :
731 : x.geometricDelay = geometricDelay;
732 :
733 :
734 :
735 :
736 :
737 :
738 :
739 :
740 : x.geometricDelayRateExists = geometricDelayRateExists;
741 :
742 :
743 :
744 :
745 : x.geometricDelayRate = geometricDelayRate;
746 :
747 :
748 :
749 :
750 :
751 :
752 :
753 :
754 : x.numLOExists = numLOExists;
755 :
756 :
757 :
758 :
759 : x.numLO = numLO;
760 :
761 :
762 :
763 :
764 :
765 :
766 :
767 :
768 : x.LOOffsetExists = LOOffsetExists;
769 :
770 :
771 :
772 : x.LOOffset.length(LOOffset.size());
773 : for (unsigned int i = 0; i < LOOffset.size(); ++i) {
774 :
775 : x.LOOffset[i] = LOOffset.at(i).toIDLFrequency();
776 :
777 : }
778 :
779 :
780 :
781 :
782 :
783 :
784 :
785 : x.LOOffsetRateExists = LOOffsetRateExists;
786 :
787 :
788 :
789 : x.LOOffsetRate.length(LOOffsetRate.size());
790 : for (unsigned int i = 0; i < LOOffsetRate.size(); ++i) {
791 :
792 : x.LOOffsetRate[i] = LOOffsetRate.at(i).toIDLFrequency();
793 :
794 : }
795 :
796 :
797 :
798 :
799 :
800 :
801 :
802 : x.dispersiveDelayExists = dispersiveDelayExists;
803 :
804 :
805 :
806 :
807 : x.dispersiveDelay = dispersiveDelay;
808 :
809 :
810 :
811 :
812 :
813 :
814 :
815 :
816 : x.dispersiveDelayRateExists = dispersiveDelayRateExists;
817 :
818 :
819 :
820 :
821 : x.dispersiveDelayRate = dispersiveDelayRate;
822 :
823 :
824 :
825 :
826 :
827 :
828 :
829 :
830 : x.atmosphericDryDelayExists = atmosphericDryDelayExists;
831 :
832 :
833 :
834 :
835 : x.atmosphericDryDelay = atmosphericDryDelay;
836 :
837 :
838 :
839 :
840 :
841 :
842 :
843 :
844 : x.atmosphericWetDelayExists = atmosphericWetDelayExists;
845 :
846 :
847 :
848 :
849 : x.atmosphericWetDelay = atmosphericWetDelay;
850 :
851 :
852 :
853 :
854 :
855 :
856 :
857 :
858 : x.padDelayExists = padDelayExists;
859 :
860 :
861 :
862 :
863 : x.padDelay = padDelay;
864 :
865 :
866 :
867 :
868 :
869 :
870 :
871 :
872 : x.antennaDelayExists = antennaDelayExists;
873 :
874 :
875 :
876 :
877 : x.antennaDelay = antennaDelay;
878 :
879 :
880 :
881 :
882 :
883 :
884 :
885 :
886 : x.numReceptorExists = numReceptorExists;
887 :
888 :
889 :
890 :
891 : x.numReceptor = numReceptor;
892 :
893 :
894 :
895 :
896 :
897 :
898 :
899 :
900 : x.polarizationTypeExists = polarizationTypeExists;
901 :
902 :
903 :
904 : x.polarizationType.length(polarizationType.size());
905 : for (unsigned int i = 0; i < polarizationType.size(); ++i) {
906 :
907 :
908 : x.polarizationType[i] = polarizationType.at(i);
909 :
910 :
911 : }
912 :
913 :
914 :
915 :
916 :
917 :
918 :
919 : x.electronicDelayExists = electronicDelayExists;
920 :
921 :
922 :
923 : x.electronicDelay.length(electronicDelay.size());
924 : for (unsigned int i = 0; i < electronicDelay.size(); ++i) {
925 :
926 :
927 : x.electronicDelay[i] = electronicDelay.at(i);
928 :
929 :
930 : }
931 :
932 :
933 :
934 :
935 :
936 :
937 :
938 : x.electronicDelayRateExists = electronicDelayRateExists;
939 :
940 :
941 :
942 : x.electronicDelayRate.length(electronicDelayRate.size());
943 : for (unsigned int i = 0; i < electronicDelayRate.size(); ++i) {
944 :
945 :
946 : x.electronicDelayRate[i] = electronicDelayRate.at(i);
947 :
948 :
949 : }
950 :
951 :
952 :
953 :
954 :
955 :
956 :
957 : x.receiverDelayExists = receiverDelayExists;
958 :
959 :
960 :
961 : x.receiverDelay.length(receiverDelay.size());
962 : for (unsigned int i = 0; i < receiverDelay.size(); ++i) {
963 :
964 :
965 : x.receiverDelay[i] = receiverDelay.at(i);
966 :
967 :
968 : }
969 :
970 :
971 :
972 :
973 :
974 :
975 :
976 : x.IFDelayExists = IFDelayExists;
977 :
978 :
979 :
980 : x.IFDelay.length(IFDelay.size());
981 : for (unsigned int i = 0; i < IFDelay.size(); ++i) {
982 :
983 :
984 : x.IFDelay[i] = IFDelay.at(i);
985 :
986 :
987 : }
988 :
989 :
990 :
991 :
992 :
993 :
994 :
995 : x.LODelayExists = LODelayExists;
996 :
997 :
998 :
999 : x.LODelay.length(LODelay.size());
1000 : for (unsigned int i = 0; i < LODelay.size(); ++i) {
1001 :
1002 :
1003 : x.LODelay[i] = LODelay.at(i);
1004 :
1005 :
1006 : }
1007 :
1008 :
1009 :
1010 :
1011 :
1012 :
1013 :
1014 : x.crossPolarizationDelayExists = crossPolarizationDelayExists;
1015 :
1016 :
1017 :
1018 :
1019 : x.crossPolarizationDelay = crossPolarizationDelay;
1020 :
1021 :
1022 :
1023 :
1024 :
1025 :
1026 :
1027 :
1028 :
1029 :
1030 :
1031 :
1032 :
1033 :
1034 : x.antennaId = antennaId.toIDLTag();
1035 :
1036 :
1037 :
1038 :
1039 :
1040 :
1041 :
1042 :
1043 :
1044 :
1045 : x.fieldId = fieldId.toIDLTag();
1046 :
1047 :
1048 :
1049 :
1050 :
1051 :
1052 :
1053 :
1054 :
1055 :
1056 : x.spectralWindowId = spectralWindowId.toIDLTag();
1057 :
1058 :
1059 :
1060 :
1061 :
1062 :
1063 :
1064 :
1065 :
1066 :
1067 :
1068 :
1069 :
1070 : }
1071 : #endif
1072 :
1073 :
1074 : #ifndef WITHOUT_ACS
1075 : /**
1076 : * Fill the values of this row from the IDL struct DelayModelRowIDL.
1077 : * @param x The IDL struct containing the values used to fill this row.
1078 : */
1079 : void DelayModelRow::setFromIDL (DelayModelRowIDL x){
1080 : try {
1081 : // Fill the values from x.
1082 :
1083 :
1084 :
1085 :
1086 :
1087 :
1088 : setTimeInterval(ArrayTimeInterval (x.timeInterval));
1089 :
1090 :
1091 :
1092 :
1093 :
1094 :
1095 :
1096 :
1097 :
1098 : setNumPoly(x.numPoly);
1099 :
1100 :
1101 :
1102 :
1103 :
1104 :
1105 :
1106 :
1107 :
1108 : phaseDelay .clear();
1109 : for (unsigned int i = 0; i <x.phaseDelay.length(); ++i) {
1110 :
1111 : phaseDelay.push_back(x.phaseDelay[i]);
1112 :
1113 : }
1114 :
1115 :
1116 :
1117 :
1118 :
1119 :
1120 :
1121 :
1122 :
1123 : phaseDelayRate .clear();
1124 : for (unsigned int i = 0; i <x.phaseDelayRate.length(); ++i) {
1125 :
1126 : phaseDelayRate.push_back(x.phaseDelayRate[i]);
1127 :
1128 : }
1129 :
1130 :
1131 :
1132 :
1133 :
1134 :
1135 :
1136 :
1137 :
1138 : groupDelay .clear();
1139 : for (unsigned int i = 0; i <x.groupDelay.length(); ++i) {
1140 :
1141 : groupDelay.push_back(x.groupDelay[i]);
1142 :
1143 : }
1144 :
1145 :
1146 :
1147 :
1148 :
1149 :
1150 :
1151 :
1152 :
1153 : groupDelayRate .clear();
1154 : for (unsigned int i = 0; i <x.groupDelayRate.length(); ++i) {
1155 :
1156 : groupDelayRate.push_back(x.groupDelayRate[i]);
1157 :
1158 : }
1159 :
1160 :
1161 :
1162 :
1163 :
1164 :
1165 :
1166 : timeOriginExists = x.timeOriginExists;
1167 : if (x.timeOriginExists) {
1168 :
1169 :
1170 :
1171 : setTimeOrigin(ArrayTime (x.timeOrigin));
1172 :
1173 :
1174 :
1175 : }
1176 :
1177 :
1178 :
1179 :
1180 :
1181 : atmosphericGroupDelayExists = x.atmosphericGroupDelayExists;
1182 : if (x.atmosphericGroupDelayExists) {
1183 :
1184 :
1185 :
1186 : setAtmosphericGroupDelay(x.atmosphericGroupDelay);
1187 :
1188 :
1189 :
1190 : }
1191 :
1192 :
1193 :
1194 :
1195 :
1196 : atmosphericGroupDelayRateExists = x.atmosphericGroupDelayRateExists;
1197 : if (x.atmosphericGroupDelayRateExists) {
1198 :
1199 :
1200 :
1201 : setAtmosphericGroupDelayRate(x.atmosphericGroupDelayRate);
1202 :
1203 :
1204 :
1205 : }
1206 :
1207 :
1208 :
1209 :
1210 :
1211 : geometricDelayExists = x.geometricDelayExists;
1212 : if (x.geometricDelayExists) {
1213 :
1214 :
1215 :
1216 : setGeometricDelay(x.geometricDelay);
1217 :
1218 :
1219 :
1220 : }
1221 :
1222 :
1223 :
1224 :
1225 :
1226 : geometricDelayRateExists = x.geometricDelayRateExists;
1227 : if (x.geometricDelayRateExists) {
1228 :
1229 :
1230 :
1231 : setGeometricDelayRate(x.geometricDelayRate);
1232 :
1233 :
1234 :
1235 : }
1236 :
1237 :
1238 :
1239 :
1240 :
1241 : numLOExists = x.numLOExists;
1242 : if (x.numLOExists) {
1243 :
1244 :
1245 :
1246 : setNumLO(x.numLO);
1247 :
1248 :
1249 :
1250 : }
1251 :
1252 :
1253 :
1254 :
1255 :
1256 : LOOffsetExists = x.LOOffsetExists;
1257 : if (x.LOOffsetExists) {
1258 :
1259 :
1260 :
1261 : LOOffset .clear();
1262 : for (unsigned int i = 0; i <x.LOOffset.length(); ++i) {
1263 :
1264 : LOOffset.push_back(Frequency (x.LOOffset[i]));
1265 :
1266 : }
1267 :
1268 :
1269 :
1270 : }
1271 :
1272 :
1273 :
1274 :
1275 :
1276 : LOOffsetRateExists = x.LOOffsetRateExists;
1277 : if (x.LOOffsetRateExists) {
1278 :
1279 :
1280 :
1281 : LOOffsetRate .clear();
1282 : for (unsigned int i = 0; i <x.LOOffsetRate.length(); ++i) {
1283 :
1284 : LOOffsetRate.push_back(Frequency (x.LOOffsetRate[i]));
1285 :
1286 : }
1287 :
1288 :
1289 :
1290 : }
1291 :
1292 :
1293 :
1294 :
1295 :
1296 : dispersiveDelayExists = x.dispersiveDelayExists;
1297 : if (x.dispersiveDelayExists) {
1298 :
1299 :
1300 :
1301 : setDispersiveDelay(x.dispersiveDelay);
1302 :
1303 :
1304 :
1305 : }
1306 :
1307 :
1308 :
1309 :
1310 :
1311 : dispersiveDelayRateExists = x.dispersiveDelayRateExists;
1312 : if (x.dispersiveDelayRateExists) {
1313 :
1314 :
1315 :
1316 : setDispersiveDelayRate(x.dispersiveDelayRate);
1317 :
1318 :
1319 :
1320 : }
1321 :
1322 :
1323 :
1324 :
1325 :
1326 : atmosphericDryDelayExists = x.atmosphericDryDelayExists;
1327 : if (x.atmosphericDryDelayExists) {
1328 :
1329 :
1330 :
1331 : setAtmosphericDryDelay(x.atmosphericDryDelay);
1332 :
1333 :
1334 :
1335 : }
1336 :
1337 :
1338 :
1339 :
1340 :
1341 : atmosphericWetDelayExists = x.atmosphericWetDelayExists;
1342 : if (x.atmosphericWetDelayExists) {
1343 :
1344 :
1345 :
1346 : setAtmosphericWetDelay(x.atmosphericWetDelay);
1347 :
1348 :
1349 :
1350 : }
1351 :
1352 :
1353 :
1354 :
1355 :
1356 : padDelayExists = x.padDelayExists;
1357 : if (x.padDelayExists) {
1358 :
1359 :
1360 :
1361 : setPadDelay(x.padDelay);
1362 :
1363 :
1364 :
1365 : }
1366 :
1367 :
1368 :
1369 :
1370 :
1371 : antennaDelayExists = x.antennaDelayExists;
1372 : if (x.antennaDelayExists) {
1373 :
1374 :
1375 :
1376 : setAntennaDelay(x.antennaDelay);
1377 :
1378 :
1379 :
1380 : }
1381 :
1382 :
1383 :
1384 :
1385 :
1386 : numReceptorExists = x.numReceptorExists;
1387 : if (x.numReceptorExists) {
1388 :
1389 :
1390 :
1391 : setNumReceptor(x.numReceptor);
1392 :
1393 :
1394 :
1395 : }
1396 :
1397 :
1398 :
1399 :
1400 :
1401 : polarizationTypeExists = x.polarizationTypeExists;
1402 : if (x.polarizationTypeExists) {
1403 :
1404 :
1405 :
1406 : polarizationType .clear();
1407 : for (unsigned int i = 0; i <x.polarizationType.length(); ++i) {
1408 :
1409 : polarizationType.push_back(x.polarizationType[i]);
1410 :
1411 : }
1412 :
1413 :
1414 :
1415 : }
1416 :
1417 :
1418 :
1419 :
1420 :
1421 : electronicDelayExists = x.electronicDelayExists;
1422 : if (x.electronicDelayExists) {
1423 :
1424 :
1425 :
1426 : electronicDelay .clear();
1427 : for (unsigned int i = 0; i <x.electronicDelay.length(); ++i) {
1428 :
1429 : electronicDelay.push_back(x.electronicDelay[i]);
1430 :
1431 : }
1432 :
1433 :
1434 :
1435 : }
1436 :
1437 :
1438 :
1439 :
1440 :
1441 : electronicDelayRateExists = x.electronicDelayRateExists;
1442 : if (x.electronicDelayRateExists) {
1443 :
1444 :
1445 :
1446 : electronicDelayRate .clear();
1447 : for (unsigned int i = 0; i <x.electronicDelayRate.length(); ++i) {
1448 :
1449 : electronicDelayRate.push_back(x.electronicDelayRate[i]);
1450 :
1451 : }
1452 :
1453 :
1454 :
1455 : }
1456 :
1457 :
1458 :
1459 :
1460 :
1461 : receiverDelayExists = x.receiverDelayExists;
1462 : if (x.receiverDelayExists) {
1463 :
1464 :
1465 :
1466 : receiverDelay .clear();
1467 : for (unsigned int i = 0; i <x.receiverDelay.length(); ++i) {
1468 :
1469 : receiverDelay.push_back(x.receiverDelay[i]);
1470 :
1471 : }
1472 :
1473 :
1474 :
1475 : }
1476 :
1477 :
1478 :
1479 :
1480 :
1481 : IFDelayExists = x.IFDelayExists;
1482 : if (x.IFDelayExists) {
1483 :
1484 :
1485 :
1486 : IFDelay .clear();
1487 : for (unsigned int i = 0; i <x.IFDelay.length(); ++i) {
1488 :
1489 : IFDelay.push_back(x.IFDelay[i]);
1490 :
1491 : }
1492 :
1493 :
1494 :
1495 : }
1496 :
1497 :
1498 :
1499 :
1500 :
1501 : LODelayExists = x.LODelayExists;
1502 : if (x.LODelayExists) {
1503 :
1504 :
1505 :
1506 : LODelay .clear();
1507 : for (unsigned int i = 0; i <x.LODelay.length(); ++i) {
1508 :
1509 : LODelay.push_back(x.LODelay[i]);
1510 :
1511 : }
1512 :
1513 :
1514 :
1515 : }
1516 :
1517 :
1518 :
1519 :
1520 :
1521 : crossPolarizationDelayExists = x.crossPolarizationDelayExists;
1522 : if (x.crossPolarizationDelayExists) {
1523 :
1524 :
1525 :
1526 : setCrossPolarizationDelay(x.crossPolarizationDelay);
1527 :
1528 :
1529 :
1530 : }
1531 :
1532 :
1533 :
1534 :
1535 :
1536 :
1537 :
1538 :
1539 :
1540 :
1541 : setAntennaId(Tag (x.antennaId));
1542 :
1543 :
1544 :
1545 :
1546 :
1547 :
1548 :
1549 :
1550 :
1551 : setFieldId(Tag (x.fieldId));
1552 :
1553 :
1554 :
1555 :
1556 :
1557 :
1558 :
1559 :
1560 :
1561 : setSpectralWindowId(Tag (x.spectralWindowId));
1562 :
1563 :
1564 :
1565 :
1566 :
1567 :
1568 :
1569 :
1570 :
1571 :
1572 :
1573 :
1574 :
1575 : } catch (const IllegalAccessException &err) {
1576 : throw ConversionException (err.getMessage(),"DelayModel");
1577 : }
1578 : }
1579 : #endif
1580 :
1581 : /**
1582 : * Return this row in the form of an XML string.
1583 : * @return The values of this row as an XML string.
1584 : */
1585 0 : string DelayModelRow::toXML() const {
1586 0 : string buf;
1587 0 : buf.append("<row> \n");
1588 :
1589 :
1590 :
1591 :
1592 :
1593 :
1594 0 : Parser::toXML(timeInterval, "timeInterval", buf);
1595 :
1596 :
1597 :
1598 :
1599 :
1600 :
1601 :
1602 0 : Parser::toXML(numPoly, "numPoly", buf);
1603 :
1604 :
1605 :
1606 :
1607 :
1608 :
1609 :
1610 0 : Parser::toXML(phaseDelay, "phaseDelay", buf);
1611 :
1612 :
1613 :
1614 :
1615 :
1616 :
1617 :
1618 0 : Parser::toXML(phaseDelayRate, "phaseDelayRate", buf);
1619 :
1620 :
1621 :
1622 :
1623 :
1624 :
1625 :
1626 0 : Parser::toXML(groupDelay, "groupDelay", buf);
1627 :
1628 :
1629 :
1630 :
1631 :
1632 :
1633 :
1634 0 : Parser::toXML(groupDelayRate, "groupDelayRate", buf);
1635 :
1636 :
1637 :
1638 :
1639 :
1640 :
1641 0 : if (timeOriginExists) {
1642 :
1643 :
1644 0 : Parser::toXML(timeOrigin, "timeOrigin", buf);
1645 :
1646 :
1647 : }
1648 :
1649 :
1650 :
1651 :
1652 :
1653 0 : if (atmosphericGroupDelayExists) {
1654 :
1655 :
1656 0 : Parser::toXML(atmosphericGroupDelay, "atmosphericGroupDelay", buf);
1657 :
1658 :
1659 : }
1660 :
1661 :
1662 :
1663 :
1664 :
1665 0 : if (atmosphericGroupDelayRateExists) {
1666 :
1667 :
1668 0 : Parser::toXML(atmosphericGroupDelayRate, "atmosphericGroupDelayRate", buf);
1669 :
1670 :
1671 : }
1672 :
1673 :
1674 :
1675 :
1676 :
1677 0 : if (geometricDelayExists) {
1678 :
1679 :
1680 0 : Parser::toXML(geometricDelay, "geometricDelay", buf);
1681 :
1682 :
1683 : }
1684 :
1685 :
1686 :
1687 :
1688 :
1689 0 : if (geometricDelayRateExists) {
1690 :
1691 :
1692 0 : Parser::toXML(geometricDelayRate, "geometricDelayRate", buf);
1693 :
1694 :
1695 : }
1696 :
1697 :
1698 :
1699 :
1700 :
1701 0 : if (numLOExists) {
1702 :
1703 :
1704 0 : Parser::toXML(numLO, "numLO", buf);
1705 :
1706 :
1707 : }
1708 :
1709 :
1710 :
1711 :
1712 :
1713 0 : if (LOOffsetExists) {
1714 :
1715 :
1716 0 : Parser::toXML(LOOffset, "LOOffset", buf);
1717 :
1718 :
1719 : }
1720 :
1721 :
1722 :
1723 :
1724 :
1725 0 : if (LOOffsetRateExists) {
1726 :
1727 :
1728 0 : Parser::toXML(LOOffsetRate, "LOOffsetRate", buf);
1729 :
1730 :
1731 : }
1732 :
1733 :
1734 :
1735 :
1736 :
1737 0 : if (dispersiveDelayExists) {
1738 :
1739 :
1740 0 : Parser::toXML(dispersiveDelay, "dispersiveDelay", buf);
1741 :
1742 :
1743 : }
1744 :
1745 :
1746 :
1747 :
1748 :
1749 0 : if (dispersiveDelayRateExists) {
1750 :
1751 :
1752 0 : Parser::toXML(dispersiveDelayRate, "dispersiveDelayRate", buf);
1753 :
1754 :
1755 : }
1756 :
1757 :
1758 :
1759 :
1760 :
1761 0 : if (atmosphericDryDelayExists) {
1762 :
1763 :
1764 0 : Parser::toXML(atmosphericDryDelay, "atmosphericDryDelay", buf);
1765 :
1766 :
1767 : }
1768 :
1769 :
1770 :
1771 :
1772 :
1773 0 : if (atmosphericWetDelayExists) {
1774 :
1775 :
1776 0 : Parser::toXML(atmosphericWetDelay, "atmosphericWetDelay", buf);
1777 :
1778 :
1779 : }
1780 :
1781 :
1782 :
1783 :
1784 :
1785 0 : if (padDelayExists) {
1786 :
1787 :
1788 0 : Parser::toXML(padDelay, "padDelay", buf);
1789 :
1790 :
1791 : }
1792 :
1793 :
1794 :
1795 :
1796 :
1797 0 : if (antennaDelayExists) {
1798 :
1799 :
1800 0 : Parser::toXML(antennaDelay, "antennaDelay", buf);
1801 :
1802 :
1803 : }
1804 :
1805 :
1806 :
1807 :
1808 :
1809 0 : if (numReceptorExists) {
1810 :
1811 :
1812 0 : Parser::toXML(numReceptor, "numReceptor", buf);
1813 :
1814 :
1815 : }
1816 :
1817 :
1818 :
1819 :
1820 :
1821 0 : if (polarizationTypeExists) {
1822 :
1823 :
1824 0 : buf.append(EnumerationParser::toXML("polarizationType", polarizationType));
1825 :
1826 :
1827 : }
1828 :
1829 :
1830 :
1831 :
1832 :
1833 0 : if (electronicDelayExists) {
1834 :
1835 :
1836 0 : Parser::toXML(electronicDelay, "electronicDelay", buf);
1837 :
1838 :
1839 : }
1840 :
1841 :
1842 :
1843 :
1844 :
1845 0 : if (electronicDelayRateExists) {
1846 :
1847 :
1848 0 : Parser::toXML(electronicDelayRate, "electronicDelayRate", buf);
1849 :
1850 :
1851 : }
1852 :
1853 :
1854 :
1855 :
1856 :
1857 0 : if (receiverDelayExists) {
1858 :
1859 :
1860 0 : Parser::toXML(receiverDelay, "receiverDelay", buf);
1861 :
1862 :
1863 : }
1864 :
1865 :
1866 :
1867 :
1868 :
1869 0 : if (IFDelayExists) {
1870 :
1871 :
1872 0 : Parser::toXML(IFDelay, "IFDelay", buf);
1873 :
1874 :
1875 : }
1876 :
1877 :
1878 :
1879 :
1880 :
1881 0 : if (LODelayExists) {
1882 :
1883 :
1884 0 : Parser::toXML(LODelay, "LODelay", buf);
1885 :
1886 :
1887 : }
1888 :
1889 :
1890 :
1891 :
1892 :
1893 0 : if (crossPolarizationDelayExists) {
1894 :
1895 :
1896 0 : Parser::toXML(crossPolarizationDelay, "crossPolarizationDelay", buf);
1897 :
1898 :
1899 : }
1900 :
1901 :
1902 :
1903 :
1904 :
1905 :
1906 :
1907 :
1908 :
1909 0 : Parser::toXML(antennaId, "antennaId", buf);
1910 :
1911 :
1912 :
1913 :
1914 :
1915 :
1916 :
1917 0 : Parser::toXML(fieldId, "fieldId", buf);
1918 :
1919 :
1920 :
1921 :
1922 :
1923 :
1924 :
1925 0 : Parser::toXML(spectralWindowId, "spectralWindowId", buf);
1926 :
1927 :
1928 :
1929 :
1930 :
1931 :
1932 :
1933 :
1934 :
1935 :
1936 :
1937 :
1938 :
1939 0 : buf.append("</row>\n");
1940 0 : return buf;
1941 : }
1942 :
1943 : /**
1944 : * Fill the values of this row from an XML string
1945 : * that was produced by the toXML() method.
1946 : * @param x The XML string being used to set the values of this row.
1947 : */
1948 0 : void DelayModelRow::setFromXML (string rowDoc) {
1949 0 : Parser row(rowDoc);
1950 0 : string s = "";
1951 : try {
1952 :
1953 :
1954 :
1955 :
1956 :
1957 0 : setTimeInterval(Parser::getArrayTimeInterval("timeInterval","DelayModel",rowDoc));
1958 :
1959 :
1960 :
1961 :
1962 :
1963 :
1964 :
1965 0 : setNumPoly(Parser::getInteger("numPoly","DelayModel",rowDoc));
1966 :
1967 :
1968 :
1969 :
1970 :
1971 :
1972 :
1973 :
1974 0 : setPhaseDelay(Parser::get1DDouble("phaseDelay","DelayModel",rowDoc));
1975 :
1976 :
1977 :
1978 :
1979 :
1980 :
1981 :
1982 :
1983 :
1984 0 : setPhaseDelayRate(Parser::get1DDouble("phaseDelayRate","DelayModel",rowDoc));
1985 :
1986 :
1987 :
1988 :
1989 :
1990 :
1991 :
1992 :
1993 :
1994 0 : setGroupDelay(Parser::get1DDouble("groupDelay","DelayModel",rowDoc));
1995 :
1996 :
1997 :
1998 :
1999 :
2000 :
2001 :
2002 :
2003 :
2004 0 : setGroupDelayRate(Parser::get1DDouble("groupDelayRate","DelayModel",rowDoc));
2005 :
2006 :
2007 :
2008 :
2009 :
2010 :
2011 :
2012 0 : if (row.isStr("<timeOrigin>")) {
2013 :
2014 0 : setTimeOrigin(Parser::getArrayTime("timeOrigin","DelayModel",rowDoc));
2015 :
2016 : }
2017 :
2018 :
2019 :
2020 :
2021 :
2022 0 : if (row.isStr("<atmosphericGroupDelay>")) {
2023 :
2024 0 : setAtmosphericGroupDelay(Parser::getDouble("atmosphericGroupDelay","DelayModel",rowDoc));
2025 :
2026 : }
2027 :
2028 :
2029 :
2030 :
2031 :
2032 0 : if (row.isStr("<atmosphericGroupDelayRate>")) {
2033 :
2034 0 : setAtmosphericGroupDelayRate(Parser::getDouble("atmosphericGroupDelayRate","DelayModel",rowDoc));
2035 :
2036 : }
2037 :
2038 :
2039 :
2040 :
2041 :
2042 0 : if (row.isStr("<geometricDelay>")) {
2043 :
2044 0 : setGeometricDelay(Parser::getDouble("geometricDelay","DelayModel",rowDoc));
2045 :
2046 : }
2047 :
2048 :
2049 :
2050 :
2051 :
2052 0 : if (row.isStr("<geometricDelayRate>")) {
2053 :
2054 0 : setGeometricDelayRate(Parser::getDouble("geometricDelayRate","DelayModel",rowDoc));
2055 :
2056 : }
2057 :
2058 :
2059 :
2060 :
2061 :
2062 0 : if (row.isStr("<numLO>")) {
2063 :
2064 0 : setNumLO(Parser::getInteger("numLO","DelayModel",rowDoc));
2065 :
2066 : }
2067 :
2068 :
2069 :
2070 :
2071 :
2072 0 : if (row.isStr("<LOOffset>")) {
2073 :
2074 :
2075 0 : setLOOffset(Parser::get1DFrequency("LOOffset","DelayModel",rowDoc));
2076 :
2077 :
2078 : }
2079 :
2080 :
2081 :
2082 :
2083 :
2084 0 : if (row.isStr("<LOOffsetRate>")) {
2085 :
2086 :
2087 0 : setLOOffsetRate(Parser::get1DFrequency("LOOffsetRate","DelayModel",rowDoc));
2088 :
2089 :
2090 : }
2091 :
2092 :
2093 :
2094 :
2095 :
2096 0 : if (row.isStr("<dispersiveDelay>")) {
2097 :
2098 0 : setDispersiveDelay(Parser::getDouble("dispersiveDelay","DelayModel",rowDoc));
2099 :
2100 : }
2101 :
2102 :
2103 :
2104 :
2105 :
2106 0 : if (row.isStr("<dispersiveDelayRate>")) {
2107 :
2108 0 : setDispersiveDelayRate(Parser::getDouble("dispersiveDelayRate","DelayModel",rowDoc));
2109 :
2110 : }
2111 :
2112 :
2113 :
2114 :
2115 :
2116 0 : if (row.isStr("<atmosphericDryDelay>")) {
2117 :
2118 0 : setAtmosphericDryDelay(Parser::getDouble("atmosphericDryDelay","DelayModel",rowDoc));
2119 :
2120 : }
2121 :
2122 :
2123 :
2124 :
2125 :
2126 0 : if (row.isStr("<atmosphericWetDelay>")) {
2127 :
2128 0 : setAtmosphericWetDelay(Parser::getDouble("atmosphericWetDelay","DelayModel",rowDoc));
2129 :
2130 : }
2131 :
2132 :
2133 :
2134 :
2135 :
2136 0 : if (row.isStr("<padDelay>")) {
2137 :
2138 0 : setPadDelay(Parser::getDouble("padDelay","DelayModel",rowDoc));
2139 :
2140 : }
2141 :
2142 :
2143 :
2144 :
2145 :
2146 0 : if (row.isStr("<antennaDelay>")) {
2147 :
2148 0 : setAntennaDelay(Parser::getDouble("antennaDelay","DelayModel",rowDoc));
2149 :
2150 : }
2151 :
2152 :
2153 :
2154 :
2155 :
2156 0 : if (row.isStr("<numReceptor>")) {
2157 :
2158 0 : setNumReceptor(Parser::getInteger("numReceptor","DelayModel",rowDoc));
2159 :
2160 : }
2161 :
2162 :
2163 :
2164 :
2165 :
2166 0 : if (row.isStr("<polarizationType>")) {
2167 :
2168 :
2169 :
2170 0 : polarizationType = EnumerationParser::getPolarizationType1D("polarizationType","DelayModel",rowDoc);
2171 :
2172 :
2173 :
2174 0 : polarizationTypeExists = true;
2175 : }
2176 :
2177 :
2178 :
2179 :
2180 :
2181 0 : if (row.isStr("<electronicDelay>")) {
2182 :
2183 :
2184 0 : setElectronicDelay(Parser::get1DDouble("electronicDelay","DelayModel",rowDoc));
2185 :
2186 :
2187 : }
2188 :
2189 :
2190 :
2191 :
2192 :
2193 0 : if (row.isStr("<electronicDelayRate>")) {
2194 :
2195 :
2196 0 : setElectronicDelayRate(Parser::get1DDouble("electronicDelayRate","DelayModel",rowDoc));
2197 :
2198 :
2199 : }
2200 :
2201 :
2202 :
2203 :
2204 :
2205 0 : if (row.isStr("<receiverDelay>")) {
2206 :
2207 :
2208 0 : setReceiverDelay(Parser::get1DDouble("receiverDelay","DelayModel",rowDoc));
2209 :
2210 :
2211 : }
2212 :
2213 :
2214 :
2215 :
2216 :
2217 0 : if (row.isStr("<IFDelay>")) {
2218 :
2219 :
2220 0 : setIFDelay(Parser::get1DDouble("IFDelay","DelayModel",rowDoc));
2221 :
2222 :
2223 : }
2224 :
2225 :
2226 :
2227 :
2228 :
2229 0 : if (row.isStr("<LODelay>")) {
2230 :
2231 :
2232 0 : setLODelay(Parser::get1DDouble("LODelay","DelayModel",rowDoc));
2233 :
2234 :
2235 : }
2236 :
2237 :
2238 :
2239 :
2240 :
2241 0 : if (row.isStr("<crossPolarizationDelay>")) {
2242 :
2243 0 : setCrossPolarizationDelay(Parser::getDouble("crossPolarizationDelay","DelayModel",rowDoc));
2244 :
2245 : }
2246 :
2247 :
2248 :
2249 :
2250 :
2251 :
2252 :
2253 :
2254 :
2255 0 : setAntennaId(Parser::getTag("antennaId","Antenna",rowDoc));
2256 :
2257 :
2258 :
2259 :
2260 :
2261 :
2262 :
2263 0 : setFieldId(Parser::getTag("fieldId","DelayModel",rowDoc));
2264 :
2265 :
2266 :
2267 :
2268 :
2269 :
2270 :
2271 0 : setSpectralWindowId(Parser::getTag("spectralWindowId","SpectralWindow",rowDoc));
2272 :
2273 :
2274 :
2275 :
2276 :
2277 :
2278 :
2279 :
2280 :
2281 :
2282 :
2283 :
2284 0 : } catch (const IllegalAccessException &err) {
2285 0 : throw ConversionException (err.getMessage(),"DelayModel");
2286 : }
2287 0 : }
2288 :
2289 0 : void DelayModelRow::toBin(EndianOSStream& eoss) {
2290 :
2291 :
2292 :
2293 :
2294 :
2295 0 : antennaId.toBin(eoss);
2296 :
2297 :
2298 :
2299 :
2300 :
2301 :
2302 0 : spectralWindowId.toBin(eoss);
2303 :
2304 :
2305 :
2306 :
2307 :
2308 :
2309 0 : timeInterval.toBin(eoss);
2310 :
2311 :
2312 :
2313 :
2314 :
2315 :
2316 :
2317 0 : eoss.writeInt(numPoly);
2318 :
2319 :
2320 :
2321 :
2322 :
2323 :
2324 :
2325 :
2326 :
2327 0 : eoss.writeInt((int) phaseDelay.size());
2328 0 : for (unsigned int i = 0; i < phaseDelay.size(); i++)
2329 :
2330 0 : eoss.writeDouble(phaseDelay.at(i));
2331 :
2332 :
2333 :
2334 :
2335 :
2336 :
2337 :
2338 :
2339 :
2340 :
2341 :
2342 0 : eoss.writeInt((int) phaseDelayRate.size());
2343 0 : for (unsigned int i = 0; i < phaseDelayRate.size(); i++)
2344 :
2345 0 : eoss.writeDouble(phaseDelayRate.at(i));
2346 :
2347 :
2348 :
2349 :
2350 :
2351 :
2352 :
2353 :
2354 :
2355 :
2356 :
2357 0 : eoss.writeInt((int) groupDelay.size());
2358 0 : for (unsigned int i = 0; i < groupDelay.size(); i++)
2359 :
2360 0 : eoss.writeDouble(groupDelay.at(i));
2361 :
2362 :
2363 :
2364 :
2365 :
2366 :
2367 :
2368 :
2369 :
2370 :
2371 :
2372 0 : eoss.writeInt((int) groupDelayRate.size());
2373 0 : for (unsigned int i = 0; i < groupDelayRate.size(); i++)
2374 :
2375 0 : eoss.writeDouble(groupDelayRate.at(i));
2376 :
2377 :
2378 :
2379 :
2380 :
2381 :
2382 :
2383 :
2384 :
2385 0 : fieldId.toBin(eoss);
2386 :
2387 :
2388 :
2389 :
2390 :
2391 :
2392 0 : eoss.writeBoolean(timeOriginExists);
2393 0 : if (timeOriginExists) {
2394 :
2395 :
2396 :
2397 :
2398 0 : timeOrigin.toBin(eoss);
2399 :
2400 :
2401 :
2402 : }
2403 :
2404 0 : eoss.writeBoolean(atmosphericGroupDelayExists);
2405 0 : if (atmosphericGroupDelayExists) {
2406 :
2407 :
2408 :
2409 :
2410 :
2411 0 : eoss.writeDouble(atmosphericGroupDelay);
2412 :
2413 :
2414 :
2415 :
2416 : }
2417 :
2418 0 : eoss.writeBoolean(atmosphericGroupDelayRateExists);
2419 0 : if (atmosphericGroupDelayRateExists) {
2420 :
2421 :
2422 :
2423 :
2424 :
2425 0 : eoss.writeDouble(atmosphericGroupDelayRate);
2426 :
2427 :
2428 :
2429 :
2430 : }
2431 :
2432 0 : eoss.writeBoolean(geometricDelayExists);
2433 0 : if (geometricDelayExists) {
2434 :
2435 :
2436 :
2437 :
2438 :
2439 0 : eoss.writeDouble(geometricDelay);
2440 :
2441 :
2442 :
2443 :
2444 : }
2445 :
2446 0 : eoss.writeBoolean(geometricDelayRateExists);
2447 0 : if (geometricDelayRateExists) {
2448 :
2449 :
2450 :
2451 :
2452 :
2453 0 : eoss.writeDouble(geometricDelayRate);
2454 :
2455 :
2456 :
2457 :
2458 : }
2459 :
2460 0 : eoss.writeBoolean(numLOExists);
2461 0 : if (numLOExists) {
2462 :
2463 :
2464 :
2465 :
2466 :
2467 0 : eoss.writeInt(numLO);
2468 :
2469 :
2470 :
2471 :
2472 : }
2473 :
2474 0 : eoss.writeBoolean(LOOffsetExists);
2475 0 : if (LOOffsetExists) {
2476 :
2477 :
2478 :
2479 :
2480 0 : Frequency::toBin(LOOffset, eoss);
2481 :
2482 :
2483 :
2484 : }
2485 :
2486 0 : eoss.writeBoolean(LOOffsetRateExists);
2487 0 : if (LOOffsetRateExists) {
2488 :
2489 :
2490 :
2491 :
2492 0 : Frequency::toBin(LOOffsetRate, eoss);
2493 :
2494 :
2495 :
2496 : }
2497 :
2498 0 : eoss.writeBoolean(dispersiveDelayExists);
2499 0 : if (dispersiveDelayExists) {
2500 :
2501 :
2502 :
2503 :
2504 :
2505 0 : eoss.writeDouble(dispersiveDelay);
2506 :
2507 :
2508 :
2509 :
2510 : }
2511 :
2512 0 : eoss.writeBoolean(dispersiveDelayRateExists);
2513 0 : if (dispersiveDelayRateExists) {
2514 :
2515 :
2516 :
2517 :
2518 :
2519 0 : eoss.writeDouble(dispersiveDelayRate);
2520 :
2521 :
2522 :
2523 :
2524 : }
2525 :
2526 0 : eoss.writeBoolean(atmosphericDryDelayExists);
2527 0 : if (atmosphericDryDelayExists) {
2528 :
2529 :
2530 :
2531 :
2532 :
2533 0 : eoss.writeDouble(atmosphericDryDelay);
2534 :
2535 :
2536 :
2537 :
2538 : }
2539 :
2540 0 : eoss.writeBoolean(atmosphericWetDelayExists);
2541 0 : if (atmosphericWetDelayExists) {
2542 :
2543 :
2544 :
2545 :
2546 :
2547 0 : eoss.writeDouble(atmosphericWetDelay);
2548 :
2549 :
2550 :
2551 :
2552 : }
2553 :
2554 0 : eoss.writeBoolean(padDelayExists);
2555 0 : if (padDelayExists) {
2556 :
2557 :
2558 :
2559 :
2560 :
2561 0 : eoss.writeDouble(padDelay);
2562 :
2563 :
2564 :
2565 :
2566 : }
2567 :
2568 0 : eoss.writeBoolean(antennaDelayExists);
2569 0 : if (antennaDelayExists) {
2570 :
2571 :
2572 :
2573 :
2574 :
2575 0 : eoss.writeDouble(antennaDelay);
2576 :
2577 :
2578 :
2579 :
2580 : }
2581 :
2582 0 : eoss.writeBoolean(numReceptorExists);
2583 0 : if (numReceptorExists) {
2584 :
2585 :
2586 :
2587 :
2588 :
2589 0 : eoss.writeInt(numReceptor);
2590 :
2591 :
2592 :
2593 :
2594 : }
2595 :
2596 0 : eoss.writeBoolean(polarizationTypeExists);
2597 0 : if (polarizationTypeExists) {
2598 :
2599 :
2600 :
2601 :
2602 :
2603 :
2604 0 : eoss.writeInt((int) polarizationType.size());
2605 0 : for (unsigned int i = 0; i < polarizationType.size(); i++)
2606 :
2607 0 : eoss.writeString(CPolarizationType::name(polarizationType.at(i)));
2608 : /* eoss.writeInt(polarizationType.at(i)); */
2609 :
2610 :
2611 :
2612 :
2613 :
2614 :
2615 : }
2616 :
2617 0 : eoss.writeBoolean(electronicDelayExists);
2618 0 : if (electronicDelayExists) {
2619 :
2620 :
2621 :
2622 :
2623 :
2624 :
2625 0 : eoss.writeInt((int) electronicDelay.size());
2626 0 : for (unsigned int i = 0; i < electronicDelay.size(); i++)
2627 :
2628 0 : eoss.writeDouble(electronicDelay.at(i));
2629 :
2630 :
2631 :
2632 :
2633 :
2634 :
2635 : }
2636 :
2637 0 : eoss.writeBoolean(electronicDelayRateExists);
2638 0 : if (electronicDelayRateExists) {
2639 :
2640 :
2641 :
2642 :
2643 :
2644 :
2645 0 : eoss.writeInt((int) electronicDelayRate.size());
2646 0 : for (unsigned int i = 0; i < electronicDelayRate.size(); i++)
2647 :
2648 0 : eoss.writeDouble(electronicDelayRate.at(i));
2649 :
2650 :
2651 :
2652 :
2653 :
2654 :
2655 : }
2656 :
2657 0 : eoss.writeBoolean(receiverDelayExists);
2658 0 : if (receiverDelayExists) {
2659 :
2660 :
2661 :
2662 :
2663 :
2664 :
2665 0 : eoss.writeInt((int) receiverDelay.size());
2666 0 : for (unsigned int i = 0; i < receiverDelay.size(); i++)
2667 :
2668 0 : eoss.writeDouble(receiverDelay.at(i));
2669 :
2670 :
2671 :
2672 :
2673 :
2674 :
2675 : }
2676 :
2677 0 : eoss.writeBoolean(IFDelayExists);
2678 0 : if (IFDelayExists) {
2679 :
2680 :
2681 :
2682 :
2683 :
2684 :
2685 0 : eoss.writeInt((int) IFDelay.size());
2686 0 : for (unsigned int i = 0; i < IFDelay.size(); i++)
2687 :
2688 0 : eoss.writeDouble(IFDelay.at(i));
2689 :
2690 :
2691 :
2692 :
2693 :
2694 :
2695 : }
2696 :
2697 0 : eoss.writeBoolean(LODelayExists);
2698 0 : if (LODelayExists) {
2699 :
2700 :
2701 :
2702 :
2703 :
2704 :
2705 0 : eoss.writeInt((int) LODelay.size());
2706 0 : for (unsigned int i = 0; i < LODelay.size(); i++)
2707 :
2708 0 : eoss.writeDouble(LODelay.at(i));
2709 :
2710 :
2711 :
2712 :
2713 :
2714 :
2715 : }
2716 :
2717 0 : eoss.writeBoolean(crossPolarizationDelayExists);
2718 0 : if (crossPolarizationDelayExists) {
2719 :
2720 :
2721 :
2722 :
2723 :
2724 0 : eoss.writeDouble(crossPolarizationDelay);
2725 :
2726 :
2727 :
2728 :
2729 : }
2730 :
2731 0 : }
2732 :
2733 0 : void DelayModelRow::antennaIdFromBin(EndianIStream& eis) {
2734 :
2735 :
2736 :
2737 :
2738 0 : antennaId = Tag::fromBin(eis);
2739 :
2740 :
2741 :
2742 0 : }
2743 0 : void DelayModelRow::spectralWindowIdFromBin(EndianIStream& eis) {
2744 :
2745 :
2746 :
2747 :
2748 0 : spectralWindowId = Tag::fromBin(eis);
2749 :
2750 :
2751 :
2752 0 : }
2753 0 : void DelayModelRow::timeIntervalFromBin(EndianIStream& eis) {
2754 :
2755 :
2756 :
2757 :
2758 0 : timeInterval = ArrayTimeInterval::fromBin(eis);
2759 :
2760 :
2761 :
2762 0 : }
2763 0 : void DelayModelRow::numPolyFromBin(EndianIStream& eis) {
2764 :
2765 :
2766 :
2767 :
2768 :
2769 0 : numPoly = eis.readInt();
2770 :
2771 :
2772 :
2773 :
2774 0 : }
2775 0 : void DelayModelRow::phaseDelayFromBin(EndianIStream& eis) {
2776 :
2777 :
2778 :
2779 :
2780 :
2781 :
2782 0 : phaseDelay.clear();
2783 :
2784 0 : unsigned int phaseDelayDim1 = eis.readInt();
2785 0 : for (unsigned int i = 0 ; i < phaseDelayDim1; i++)
2786 :
2787 0 : phaseDelay.push_back(eis.readDouble());
2788 :
2789 :
2790 :
2791 :
2792 :
2793 :
2794 0 : }
2795 0 : void DelayModelRow::phaseDelayRateFromBin(EndianIStream& eis) {
2796 :
2797 :
2798 :
2799 :
2800 :
2801 :
2802 0 : phaseDelayRate.clear();
2803 :
2804 0 : unsigned int phaseDelayRateDim1 = eis.readInt();
2805 0 : for (unsigned int i = 0 ; i < phaseDelayRateDim1; i++)
2806 :
2807 0 : phaseDelayRate.push_back(eis.readDouble());
2808 :
2809 :
2810 :
2811 :
2812 :
2813 :
2814 0 : }
2815 0 : void DelayModelRow::groupDelayFromBin(EndianIStream& eis) {
2816 :
2817 :
2818 :
2819 :
2820 :
2821 :
2822 0 : groupDelay.clear();
2823 :
2824 0 : unsigned int groupDelayDim1 = eis.readInt();
2825 0 : for (unsigned int i = 0 ; i < groupDelayDim1; i++)
2826 :
2827 0 : groupDelay.push_back(eis.readDouble());
2828 :
2829 :
2830 :
2831 :
2832 :
2833 :
2834 0 : }
2835 0 : void DelayModelRow::groupDelayRateFromBin(EndianIStream& eis) {
2836 :
2837 :
2838 :
2839 :
2840 :
2841 :
2842 0 : groupDelayRate.clear();
2843 :
2844 0 : unsigned int groupDelayRateDim1 = eis.readInt();
2845 0 : for (unsigned int i = 0 ; i < groupDelayRateDim1; i++)
2846 :
2847 0 : groupDelayRate.push_back(eis.readDouble());
2848 :
2849 :
2850 :
2851 :
2852 :
2853 :
2854 0 : }
2855 0 : void DelayModelRow::fieldIdFromBin(EndianIStream& eis) {
2856 :
2857 :
2858 :
2859 :
2860 0 : fieldId = Tag::fromBin(eis);
2861 :
2862 :
2863 :
2864 0 : }
2865 :
2866 0 : void DelayModelRow::timeOriginFromBin(EndianIStream& eis) {
2867 :
2868 0 : timeOriginExists = eis.readBoolean();
2869 0 : if (timeOriginExists) {
2870 :
2871 :
2872 :
2873 :
2874 0 : timeOrigin = ArrayTime::fromBin(eis);
2875 :
2876 :
2877 :
2878 : }
2879 :
2880 0 : }
2881 0 : void DelayModelRow::atmosphericGroupDelayFromBin(EndianIStream& eis) {
2882 :
2883 0 : atmosphericGroupDelayExists = eis.readBoolean();
2884 0 : if (atmosphericGroupDelayExists) {
2885 :
2886 :
2887 :
2888 :
2889 :
2890 0 : atmosphericGroupDelay = eis.readDouble();
2891 :
2892 :
2893 :
2894 :
2895 : }
2896 :
2897 0 : }
2898 0 : void DelayModelRow::atmosphericGroupDelayRateFromBin(EndianIStream& eis) {
2899 :
2900 0 : atmosphericGroupDelayRateExists = eis.readBoolean();
2901 0 : if (atmosphericGroupDelayRateExists) {
2902 :
2903 :
2904 :
2905 :
2906 :
2907 0 : atmosphericGroupDelayRate = eis.readDouble();
2908 :
2909 :
2910 :
2911 :
2912 : }
2913 :
2914 0 : }
2915 0 : void DelayModelRow::geometricDelayFromBin(EndianIStream& eis) {
2916 :
2917 0 : geometricDelayExists = eis.readBoolean();
2918 0 : if (geometricDelayExists) {
2919 :
2920 :
2921 :
2922 :
2923 :
2924 0 : geometricDelay = eis.readDouble();
2925 :
2926 :
2927 :
2928 :
2929 : }
2930 :
2931 0 : }
2932 0 : void DelayModelRow::geometricDelayRateFromBin(EndianIStream& eis) {
2933 :
2934 0 : geometricDelayRateExists = eis.readBoolean();
2935 0 : if (geometricDelayRateExists) {
2936 :
2937 :
2938 :
2939 :
2940 :
2941 0 : geometricDelayRate = eis.readDouble();
2942 :
2943 :
2944 :
2945 :
2946 : }
2947 :
2948 0 : }
2949 0 : void DelayModelRow::numLOFromBin(EndianIStream& eis) {
2950 :
2951 0 : numLOExists = eis.readBoolean();
2952 0 : if (numLOExists) {
2953 :
2954 :
2955 :
2956 :
2957 :
2958 0 : numLO = eis.readInt();
2959 :
2960 :
2961 :
2962 :
2963 : }
2964 :
2965 0 : }
2966 0 : void DelayModelRow::LOOffsetFromBin(EndianIStream& eis) {
2967 :
2968 0 : LOOffsetExists = eis.readBoolean();
2969 0 : if (LOOffsetExists) {
2970 :
2971 :
2972 :
2973 :
2974 :
2975 :
2976 0 : LOOffset = Frequency::from1DBin(eis);
2977 :
2978 :
2979 :
2980 :
2981 :
2982 : }
2983 :
2984 0 : }
2985 0 : void DelayModelRow::LOOffsetRateFromBin(EndianIStream& eis) {
2986 :
2987 0 : LOOffsetRateExists = eis.readBoolean();
2988 0 : if (LOOffsetRateExists) {
2989 :
2990 :
2991 :
2992 :
2993 :
2994 :
2995 0 : LOOffsetRate = Frequency::from1DBin(eis);
2996 :
2997 :
2998 :
2999 :
3000 :
3001 : }
3002 :
3003 0 : }
3004 0 : void DelayModelRow::dispersiveDelayFromBin(EndianIStream& eis) {
3005 :
3006 0 : dispersiveDelayExists = eis.readBoolean();
3007 0 : if (dispersiveDelayExists) {
3008 :
3009 :
3010 :
3011 :
3012 :
3013 0 : dispersiveDelay = eis.readDouble();
3014 :
3015 :
3016 :
3017 :
3018 : }
3019 :
3020 0 : }
3021 0 : void DelayModelRow::dispersiveDelayRateFromBin(EndianIStream& eis) {
3022 :
3023 0 : dispersiveDelayRateExists = eis.readBoolean();
3024 0 : if (dispersiveDelayRateExists) {
3025 :
3026 :
3027 :
3028 :
3029 :
3030 0 : dispersiveDelayRate = eis.readDouble();
3031 :
3032 :
3033 :
3034 :
3035 : }
3036 :
3037 0 : }
3038 0 : void DelayModelRow::atmosphericDryDelayFromBin(EndianIStream& eis) {
3039 :
3040 0 : atmosphericDryDelayExists = eis.readBoolean();
3041 0 : if (atmosphericDryDelayExists) {
3042 :
3043 :
3044 :
3045 :
3046 :
3047 0 : atmosphericDryDelay = eis.readDouble();
3048 :
3049 :
3050 :
3051 :
3052 : }
3053 :
3054 0 : }
3055 0 : void DelayModelRow::atmosphericWetDelayFromBin(EndianIStream& eis) {
3056 :
3057 0 : atmosphericWetDelayExists = eis.readBoolean();
3058 0 : if (atmosphericWetDelayExists) {
3059 :
3060 :
3061 :
3062 :
3063 :
3064 0 : atmosphericWetDelay = eis.readDouble();
3065 :
3066 :
3067 :
3068 :
3069 : }
3070 :
3071 0 : }
3072 0 : void DelayModelRow::padDelayFromBin(EndianIStream& eis) {
3073 :
3074 0 : padDelayExists = eis.readBoolean();
3075 0 : if (padDelayExists) {
3076 :
3077 :
3078 :
3079 :
3080 :
3081 0 : padDelay = eis.readDouble();
3082 :
3083 :
3084 :
3085 :
3086 : }
3087 :
3088 0 : }
3089 0 : void DelayModelRow::antennaDelayFromBin(EndianIStream& eis) {
3090 :
3091 0 : antennaDelayExists = eis.readBoolean();
3092 0 : if (antennaDelayExists) {
3093 :
3094 :
3095 :
3096 :
3097 :
3098 0 : antennaDelay = eis.readDouble();
3099 :
3100 :
3101 :
3102 :
3103 : }
3104 :
3105 0 : }
3106 0 : void DelayModelRow::numReceptorFromBin(EndianIStream& eis) {
3107 :
3108 0 : numReceptorExists = eis.readBoolean();
3109 0 : if (numReceptorExists) {
3110 :
3111 :
3112 :
3113 :
3114 :
3115 0 : numReceptor = eis.readInt();
3116 :
3117 :
3118 :
3119 :
3120 : }
3121 :
3122 0 : }
3123 0 : void DelayModelRow::polarizationTypeFromBin(EndianIStream& eis) {
3124 :
3125 0 : polarizationTypeExists = eis.readBoolean();
3126 0 : if (polarizationTypeExists) {
3127 :
3128 :
3129 :
3130 :
3131 :
3132 :
3133 0 : polarizationType.clear();
3134 :
3135 0 : unsigned int polarizationTypeDim1 = eis.readInt();
3136 0 : for (unsigned int i = 0 ; i < polarizationTypeDim1; i++)
3137 :
3138 0 : polarizationType.push_back(CPolarizationType::literal(eis.readString()));
3139 :
3140 :
3141 :
3142 :
3143 :
3144 :
3145 : }
3146 :
3147 0 : }
3148 0 : void DelayModelRow::electronicDelayFromBin(EndianIStream& eis) {
3149 :
3150 0 : electronicDelayExists = eis.readBoolean();
3151 0 : if (electronicDelayExists) {
3152 :
3153 :
3154 :
3155 :
3156 :
3157 :
3158 0 : electronicDelay.clear();
3159 :
3160 0 : unsigned int electronicDelayDim1 = eis.readInt();
3161 0 : for (unsigned int i = 0 ; i < electronicDelayDim1; i++)
3162 :
3163 0 : electronicDelay.push_back(eis.readDouble());
3164 :
3165 :
3166 :
3167 :
3168 :
3169 :
3170 : }
3171 :
3172 0 : }
3173 0 : void DelayModelRow::electronicDelayRateFromBin(EndianIStream& eis) {
3174 :
3175 0 : electronicDelayRateExists = eis.readBoolean();
3176 0 : if (electronicDelayRateExists) {
3177 :
3178 :
3179 :
3180 :
3181 :
3182 :
3183 0 : electronicDelayRate.clear();
3184 :
3185 0 : unsigned int electronicDelayRateDim1 = eis.readInt();
3186 0 : for (unsigned int i = 0 ; i < electronicDelayRateDim1; i++)
3187 :
3188 0 : electronicDelayRate.push_back(eis.readDouble());
3189 :
3190 :
3191 :
3192 :
3193 :
3194 :
3195 : }
3196 :
3197 0 : }
3198 0 : void DelayModelRow::receiverDelayFromBin(EndianIStream& eis) {
3199 :
3200 0 : receiverDelayExists = eis.readBoolean();
3201 0 : if (receiverDelayExists) {
3202 :
3203 :
3204 :
3205 :
3206 :
3207 :
3208 0 : receiverDelay.clear();
3209 :
3210 0 : unsigned int receiverDelayDim1 = eis.readInt();
3211 0 : for (unsigned int i = 0 ; i < receiverDelayDim1; i++)
3212 :
3213 0 : receiverDelay.push_back(eis.readDouble());
3214 :
3215 :
3216 :
3217 :
3218 :
3219 :
3220 : }
3221 :
3222 0 : }
3223 0 : void DelayModelRow::IFDelayFromBin(EndianIStream& eis) {
3224 :
3225 0 : IFDelayExists = eis.readBoolean();
3226 0 : if (IFDelayExists) {
3227 :
3228 :
3229 :
3230 :
3231 :
3232 :
3233 0 : IFDelay.clear();
3234 :
3235 0 : unsigned int IFDelayDim1 = eis.readInt();
3236 0 : for (unsigned int i = 0 ; i < IFDelayDim1; i++)
3237 :
3238 0 : IFDelay.push_back(eis.readDouble());
3239 :
3240 :
3241 :
3242 :
3243 :
3244 :
3245 : }
3246 :
3247 0 : }
3248 0 : void DelayModelRow::LODelayFromBin(EndianIStream& eis) {
3249 :
3250 0 : LODelayExists = eis.readBoolean();
3251 0 : if (LODelayExists) {
3252 :
3253 :
3254 :
3255 :
3256 :
3257 :
3258 0 : LODelay.clear();
3259 :
3260 0 : unsigned int LODelayDim1 = eis.readInt();
3261 0 : for (unsigned int i = 0 ; i < LODelayDim1; i++)
3262 :
3263 0 : LODelay.push_back(eis.readDouble());
3264 :
3265 :
3266 :
3267 :
3268 :
3269 :
3270 : }
3271 :
3272 0 : }
3273 0 : void DelayModelRow::crossPolarizationDelayFromBin(EndianIStream& eis) {
3274 :
3275 0 : crossPolarizationDelayExists = eis.readBoolean();
3276 0 : if (crossPolarizationDelayExists) {
3277 :
3278 :
3279 :
3280 :
3281 :
3282 0 : crossPolarizationDelay = eis.readDouble();
3283 :
3284 :
3285 :
3286 :
3287 : }
3288 :
3289 0 : }
3290 :
3291 :
3292 0 : DelayModelRow* DelayModelRow::fromBin(EndianIStream& eis, DelayModelTable& table, const vector<string>& attributesSeq) {
3293 0 : DelayModelRow* row = new DelayModelRow(table);
3294 :
3295 0 : map<string, DelayModelAttributeFromBin>::iterator iter ;
3296 0 : for (unsigned int i = 0; i < attributesSeq.size(); i++) {
3297 0 : iter = row->fromBinMethods.find(attributesSeq.at(i));
3298 0 : if (iter != row->fromBinMethods.end()) {
3299 0 : (row->*(row->fromBinMethods[ attributesSeq.at(i) ] ))(eis);
3300 : }
3301 : else {
3302 0 : BinaryAttributeReaderFunctor* functorP = table.getUnknownAttributeBinaryReader(attributesSeq.at(i));
3303 0 : if (functorP)
3304 0 : (*functorP)(eis);
3305 : else
3306 0 : throw ConversionException("There is not method to read an attribute '"+attributesSeq.at(i)+"'.", "DelayModelTable");
3307 : }
3308 :
3309 : }
3310 0 : return row;
3311 : }
3312 :
3313 : //
3314 : // A collection of methods to set the value of the attributes from their textual value in the XML representation
3315 : // of one row.
3316 : //
3317 :
3318 : // Convert a string into an Tag
3319 0 : void DelayModelRow::antennaIdFromText(const string & s) {
3320 :
3321 :
3322 0 : antennaId = ASDMValuesParser::parse<Tag>(s);
3323 :
3324 :
3325 0 : }
3326 :
3327 :
3328 : // Convert a string into an Tag
3329 0 : void DelayModelRow::spectralWindowIdFromText(const string & s) {
3330 :
3331 :
3332 0 : spectralWindowId = ASDMValuesParser::parse<Tag>(s);
3333 :
3334 :
3335 0 : }
3336 :
3337 :
3338 : // Convert a string into an ArrayTimeInterval
3339 0 : void DelayModelRow::timeIntervalFromText(const string & s) {
3340 :
3341 :
3342 0 : timeInterval = ASDMValuesParser::parse<ArrayTimeInterval>(s);
3343 :
3344 :
3345 0 : }
3346 :
3347 :
3348 : // Convert a string into an int
3349 0 : void DelayModelRow::numPolyFromText(const string & s) {
3350 :
3351 :
3352 0 : numPoly = ASDMValuesParser::parse<int>(s);
3353 :
3354 :
3355 0 : }
3356 :
3357 :
3358 : // Convert a string into an double
3359 0 : void DelayModelRow::phaseDelayFromText(const string & s) {
3360 :
3361 :
3362 0 : phaseDelay = ASDMValuesParser::parse1D<double>(s);
3363 :
3364 :
3365 0 : }
3366 :
3367 :
3368 : // Convert a string into an double
3369 0 : void DelayModelRow::phaseDelayRateFromText(const string & s) {
3370 :
3371 :
3372 0 : phaseDelayRate = ASDMValuesParser::parse1D<double>(s);
3373 :
3374 :
3375 0 : }
3376 :
3377 :
3378 : // Convert a string into an double
3379 0 : void DelayModelRow::groupDelayFromText(const string & s) {
3380 :
3381 :
3382 0 : groupDelay = ASDMValuesParser::parse1D<double>(s);
3383 :
3384 :
3385 0 : }
3386 :
3387 :
3388 : // Convert a string into an double
3389 0 : void DelayModelRow::groupDelayRateFromText(const string & s) {
3390 :
3391 :
3392 0 : groupDelayRate = ASDMValuesParser::parse1D<double>(s);
3393 :
3394 :
3395 0 : }
3396 :
3397 :
3398 : // Convert a string into an Tag
3399 0 : void DelayModelRow::fieldIdFromText(const string & s) {
3400 :
3401 :
3402 0 : fieldId = ASDMValuesParser::parse<Tag>(s);
3403 :
3404 :
3405 0 : }
3406 :
3407 :
3408 :
3409 : // Convert a string into an ArrayTime
3410 0 : void DelayModelRow::timeOriginFromText(const string & s) {
3411 0 : timeOriginExists = true;
3412 :
3413 :
3414 0 : timeOrigin = ASDMValuesParser::parse<ArrayTime>(s);
3415 :
3416 :
3417 0 : }
3418 :
3419 :
3420 : // Convert a string into an double
3421 0 : void DelayModelRow::atmosphericGroupDelayFromText(const string & s) {
3422 0 : atmosphericGroupDelayExists = true;
3423 :
3424 :
3425 0 : atmosphericGroupDelay = ASDMValuesParser::parse<double>(s);
3426 :
3427 :
3428 0 : }
3429 :
3430 :
3431 : // Convert a string into an double
3432 0 : void DelayModelRow::atmosphericGroupDelayRateFromText(const string & s) {
3433 0 : atmosphericGroupDelayRateExists = true;
3434 :
3435 :
3436 0 : atmosphericGroupDelayRate = ASDMValuesParser::parse<double>(s);
3437 :
3438 :
3439 0 : }
3440 :
3441 :
3442 : // Convert a string into an double
3443 0 : void DelayModelRow::geometricDelayFromText(const string & s) {
3444 0 : geometricDelayExists = true;
3445 :
3446 :
3447 0 : geometricDelay = ASDMValuesParser::parse<double>(s);
3448 :
3449 :
3450 0 : }
3451 :
3452 :
3453 : // Convert a string into an double
3454 0 : void DelayModelRow::geometricDelayRateFromText(const string & s) {
3455 0 : geometricDelayRateExists = true;
3456 :
3457 :
3458 0 : geometricDelayRate = ASDMValuesParser::parse<double>(s);
3459 :
3460 :
3461 0 : }
3462 :
3463 :
3464 : // Convert a string into an int
3465 0 : void DelayModelRow::numLOFromText(const string & s) {
3466 0 : numLOExists = true;
3467 :
3468 :
3469 0 : numLO = ASDMValuesParser::parse<int>(s);
3470 :
3471 :
3472 0 : }
3473 :
3474 :
3475 : // Convert a string into an Frequency
3476 0 : void DelayModelRow::LOOffsetFromText(const string & s) {
3477 0 : LOOffsetExists = true;
3478 :
3479 :
3480 0 : LOOffset = ASDMValuesParser::parse1D<Frequency>(s);
3481 :
3482 :
3483 0 : }
3484 :
3485 :
3486 : // Convert a string into an Frequency
3487 0 : void DelayModelRow::LOOffsetRateFromText(const string & s) {
3488 0 : LOOffsetRateExists = true;
3489 :
3490 :
3491 0 : LOOffsetRate = ASDMValuesParser::parse1D<Frequency>(s);
3492 :
3493 :
3494 0 : }
3495 :
3496 :
3497 : // Convert a string into an double
3498 0 : void DelayModelRow::dispersiveDelayFromText(const string & s) {
3499 0 : dispersiveDelayExists = true;
3500 :
3501 :
3502 0 : dispersiveDelay = ASDMValuesParser::parse<double>(s);
3503 :
3504 :
3505 0 : }
3506 :
3507 :
3508 : // Convert a string into an double
3509 0 : void DelayModelRow::dispersiveDelayRateFromText(const string & s) {
3510 0 : dispersiveDelayRateExists = true;
3511 :
3512 :
3513 0 : dispersiveDelayRate = ASDMValuesParser::parse<double>(s);
3514 :
3515 :
3516 0 : }
3517 :
3518 :
3519 : // Convert a string into an double
3520 0 : void DelayModelRow::atmosphericDryDelayFromText(const string & s) {
3521 0 : atmosphericDryDelayExists = true;
3522 :
3523 :
3524 0 : atmosphericDryDelay = ASDMValuesParser::parse<double>(s);
3525 :
3526 :
3527 0 : }
3528 :
3529 :
3530 : // Convert a string into an double
3531 0 : void DelayModelRow::atmosphericWetDelayFromText(const string & s) {
3532 0 : atmosphericWetDelayExists = true;
3533 :
3534 :
3535 0 : atmosphericWetDelay = ASDMValuesParser::parse<double>(s);
3536 :
3537 :
3538 0 : }
3539 :
3540 :
3541 : // Convert a string into an double
3542 0 : void DelayModelRow::padDelayFromText(const string & s) {
3543 0 : padDelayExists = true;
3544 :
3545 :
3546 0 : padDelay = ASDMValuesParser::parse<double>(s);
3547 :
3548 :
3549 0 : }
3550 :
3551 :
3552 : // Convert a string into an double
3553 0 : void DelayModelRow::antennaDelayFromText(const string & s) {
3554 0 : antennaDelayExists = true;
3555 :
3556 :
3557 0 : antennaDelay = ASDMValuesParser::parse<double>(s);
3558 :
3559 :
3560 0 : }
3561 :
3562 :
3563 : // Convert a string into an int
3564 0 : void DelayModelRow::numReceptorFromText(const string & s) {
3565 0 : numReceptorExists = true;
3566 :
3567 :
3568 0 : numReceptor = ASDMValuesParser::parse<int>(s);
3569 :
3570 :
3571 0 : }
3572 :
3573 :
3574 : // Convert a string into an PolarizationType
3575 0 : void DelayModelRow::polarizationTypeFromText(const string & s) {
3576 0 : polarizationTypeExists = true;
3577 :
3578 :
3579 0 : polarizationType = ASDMValuesParser::parse1D<PolarizationTypeMod::PolarizationType>(s);
3580 :
3581 :
3582 0 : }
3583 :
3584 :
3585 : // Convert a string into an double
3586 0 : void DelayModelRow::electronicDelayFromText(const string & s) {
3587 0 : electronicDelayExists = true;
3588 :
3589 :
3590 0 : electronicDelay = ASDMValuesParser::parse1D<double>(s);
3591 :
3592 :
3593 0 : }
3594 :
3595 :
3596 : // Convert a string into an double
3597 0 : void DelayModelRow::electronicDelayRateFromText(const string & s) {
3598 0 : electronicDelayRateExists = true;
3599 :
3600 :
3601 0 : electronicDelayRate = ASDMValuesParser::parse1D<double>(s);
3602 :
3603 :
3604 0 : }
3605 :
3606 :
3607 : // Convert a string into an double
3608 0 : void DelayModelRow::receiverDelayFromText(const string & s) {
3609 0 : receiverDelayExists = true;
3610 :
3611 :
3612 0 : receiverDelay = ASDMValuesParser::parse1D<double>(s);
3613 :
3614 :
3615 0 : }
3616 :
3617 :
3618 : // Convert a string into an double
3619 0 : void DelayModelRow::IFDelayFromText(const string & s) {
3620 0 : IFDelayExists = true;
3621 :
3622 :
3623 0 : IFDelay = ASDMValuesParser::parse1D<double>(s);
3624 :
3625 :
3626 0 : }
3627 :
3628 :
3629 : // Convert a string into an double
3630 0 : void DelayModelRow::LODelayFromText(const string & s) {
3631 0 : LODelayExists = true;
3632 :
3633 :
3634 0 : LODelay = ASDMValuesParser::parse1D<double>(s);
3635 :
3636 :
3637 0 : }
3638 :
3639 :
3640 : // Convert a string into an double
3641 0 : void DelayModelRow::crossPolarizationDelayFromText(const string & s) {
3642 0 : crossPolarizationDelayExists = true;
3643 :
3644 :
3645 0 : crossPolarizationDelay = ASDMValuesParser::parse<double>(s);
3646 :
3647 :
3648 0 : }
3649 :
3650 :
3651 :
3652 0 : void DelayModelRow::fromText(const std::string& attributeName, const std::string& t) {
3653 0 : map<string, DelayModelAttributeFromText>::iterator iter;
3654 0 : if ((iter = fromTextMethods.find(attributeName)) == fromTextMethods.end())
3655 0 : throw ConversionException("I do not know what to do with '"+attributeName+"' and its content '"+t+"' (while parsing an XML document)", "DelayModelTable");
3656 0 : (this->*(iter->second))(t);
3657 0 : }
3658 :
3659 : ////////////////////////////////////////////////
3660 : // Intrinsic Table Attributes getters/setters //
3661 : ////////////////////////////////////////////////
3662 :
3663 :
3664 :
3665 :
3666 : /**
3667 : * Get timeInterval.
3668 : * @return timeInterval as ArrayTimeInterval
3669 : */
3670 0 : ArrayTimeInterval DelayModelRow::getTimeInterval() const {
3671 :
3672 0 : return timeInterval;
3673 : }
3674 :
3675 : /**
3676 : * Set timeInterval with the specified ArrayTimeInterval.
3677 : * @param timeInterval The ArrayTimeInterval value to which timeInterval is to be set.
3678 :
3679 :
3680 :
3681 : * @throw IllegalAccessException If an attempt is made to change this field after is has been added to the table.
3682 :
3683 : */
3684 0 : void DelayModelRow::setTimeInterval (ArrayTimeInterval timeInterval) {
3685 :
3686 :
3687 0 : if (hasBeenAdded) {
3688 :
3689 0 : throw IllegalAccessException("timeInterval", "DelayModel");
3690 :
3691 : }
3692 :
3693 0 : this->timeInterval = timeInterval;
3694 :
3695 0 : }
3696 :
3697 :
3698 :
3699 :
3700 :
3701 :
3702 : /**
3703 : * Get numPoly.
3704 : * @return numPoly as int
3705 : */
3706 0 : int DelayModelRow::getNumPoly() const {
3707 :
3708 0 : return numPoly;
3709 : }
3710 :
3711 : /**
3712 : * Set numPoly with the specified int.
3713 : * @param numPoly The int value to which numPoly is to be set.
3714 :
3715 :
3716 :
3717 : */
3718 0 : void DelayModelRow::setNumPoly (int numPoly) {
3719 :
3720 :
3721 0 : if (hasBeenAdded) {
3722 :
3723 : }
3724 :
3725 0 : this->numPoly = numPoly;
3726 :
3727 0 : }
3728 :
3729 :
3730 :
3731 :
3732 :
3733 :
3734 : /**
3735 : * Get phaseDelay.
3736 : * @return phaseDelay as std::vector<double >
3737 : */
3738 0 : std::vector<double > DelayModelRow::getPhaseDelay() const {
3739 :
3740 0 : return phaseDelay;
3741 : }
3742 :
3743 : /**
3744 : * Set phaseDelay with the specified std::vector<double >.
3745 : * @param phaseDelay The std::vector<double > value to which phaseDelay is to be set.
3746 :
3747 :
3748 :
3749 : */
3750 0 : void DelayModelRow::setPhaseDelay (std::vector<double > phaseDelay) {
3751 :
3752 :
3753 0 : if (hasBeenAdded) {
3754 :
3755 : }
3756 :
3757 0 : this->phaseDelay = phaseDelay;
3758 :
3759 0 : }
3760 :
3761 :
3762 :
3763 :
3764 :
3765 :
3766 : /**
3767 : * Get phaseDelayRate.
3768 : * @return phaseDelayRate as std::vector<double >
3769 : */
3770 0 : std::vector<double > DelayModelRow::getPhaseDelayRate() const {
3771 :
3772 0 : return phaseDelayRate;
3773 : }
3774 :
3775 : /**
3776 : * Set phaseDelayRate with the specified std::vector<double >.
3777 : * @param phaseDelayRate The std::vector<double > value to which phaseDelayRate is to be set.
3778 :
3779 :
3780 :
3781 : */
3782 0 : void DelayModelRow::setPhaseDelayRate (std::vector<double > phaseDelayRate) {
3783 :
3784 :
3785 0 : if (hasBeenAdded) {
3786 :
3787 : }
3788 :
3789 0 : this->phaseDelayRate = phaseDelayRate;
3790 :
3791 0 : }
3792 :
3793 :
3794 :
3795 :
3796 :
3797 :
3798 : /**
3799 : * Get groupDelay.
3800 : * @return groupDelay as std::vector<double >
3801 : */
3802 0 : std::vector<double > DelayModelRow::getGroupDelay() const {
3803 :
3804 0 : return groupDelay;
3805 : }
3806 :
3807 : /**
3808 : * Set groupDelay with the specified std::vector<double >.
3809 : * @param groupDelay The std::vector<double > value to which groupDelay is to be set.
3810 :
3811 :
3812 :
3813 : */
3814 0 : void DelayModelRow::setGroupDelay (std::vector<double > groupDelay) {
3815 :
3816 :
3817 0 : if (hasBeenAdded) {
3818 :
3819 : }
3820 :
3821 0 : this->groupDelay = groupDelay;
3822 :
3823 0 : }
3824 :
3825 :
3826 :
3827 :
3828 :
3829 :
3830 : /**
3831 : * Get groupDelayRate.
3832 : * @return groupDelayRate as std::vector<double >
3833 : */
3834 0 : std::vector<double > DelayModelRow::getGroupDelayRate() const {
3835 :
3836 0 : return groupDelayRate;
3837 : }
3838 :
3839 : /**
3840 : * Set groupDelayRate with the specified std::vector<double >.
3841 : * @param groupDelayRate The std::vector<double > value to which groupDelayRate is to be set.
3842 :
3843 :
3844 :
3845 : */
3846 0 : void DelayModelRow::setGroupDelayRate (std::vector<double > groupDelayRate) {
3847 :
3848 :
3849 0 : if (hasBeenAdded) {
3850 :
3851 : }
3852 :
3853 0 : this->groupDelayRate = groupDelayRate;
3854 :
3855 0 : }
3856 :
3857 :
3858 :
3859 :
3860 : /**
3861 : * The attribute timeOrigin is optional. Return true if this attribute exists.
3862 : * @return true if and only if the timeOrigin attribute exists.
3863 : */
3864 0 : bool DelayModelRow::isTimeOriginExists() const {
3865 0 : return timeOriginExists;
3866 : }
3867 :
3868 :
3869 :
3870 : /**
3871 : * Get timeOrigin, which is optional.
3872 : * @return timeOrigin as ArrayTime
3873 : * @throw IllegalAccessException If timeOrigin does not exist.
3874 : */
3875 0 : ArrayTime DelayModelRow::getTimeOrigin() const {
3876 0 : if (!timeOriginExists) {
3877 0 : throw IllegalAccessException("timeOrigin", "DelayModel");
3878 : }
3879 :
3880 0 : return timeOrigin;
3881 : }
3882 :
3883 : /**
3884 : * Set timeOrigin with the specified ArrayTime.
3885 : * @param timeOrigin The ArrayTime value to which timeOrigin is to be set.
3886 :
3887 :
3888 : */
3889 0 : void DelayModelRow::setTimeOrigin (ArrayTime timeOrigin) {
3890 :
3891 0 : this->timeOrigin = timeOrigin;
3892 :
3893 0 : timeOriginExists = true;
3894 :
3895 0 : }
3896 :
3897 :
3898 : /**
3899 : * Mark timeOrigin, which is an optional field, as non-existent.
3900 : */
3901 0 : void DelayModelRow::clearTimeOrigin () {
3902 0 : timeOriginExists = false;
3903 0 : }
3904 :
3905 :
3906 :
3907 : /**
3908 : * The attribute atmosphericGroupDelay is optional. Return true if this attribute exists.
3909 : * @return true if and only if the atmosphericGroupDelay attribute exists.
3910 : */
3911 0 : bool DelayModelRow::isAtmosphericGroupDelayExists() const {
3912 0 : return atmosphericGroupDelayExists;
3913 : }
3914 :
3915 :
3916 :
3917 : /**
3918 : * Get atmosphericGroupDelay, which is optional.
3919 : * @return atmosphericGroupDelay as double
3920 : * @throw IllegalAccessException If atmosphericGroupDelay does not exist.
3921 : */
3922 0 : double DelayModelRow::getAtmosphericGroupDelay() const {
3923 0 : if (!atmosphericGroupDelayExists) {
3924 0 : throw IllegalAccessException("atmosphericGroupDelay", "DelayModel");
3925 : }
3926 :
3927 0 : return atmosphericGroupDelay;
3928 : }
3929 :
3930 : /**
3931 : * Set atmosphericGroupDelay with the specified double.
3932 : * @param atmosphericGroupDelay The double value to which atmosphericGroupDelay is to be set.
3933 :
3934 :
3935 : */
3936 0 : void DelayModelRow::setAtmosphericGroupDelay (double atmosphericGroupDelay) {
3937 :
3938 0 : this->atmosphericGroupDelay = atmosphericGroupDelay;
3939 :
3940 0 : atmosphericGroupDelayExists = true;
3941 :
3942 0 : }
3943 :
3944 :
3945 : /**
3946 : * Mark atmosphericGroupDelay, which is an optional field, as non-existent.
3947 : */
3948 0 : void DelayModelRow::clearAtmosphericGroupDelay () {
3949 0 : atmosphericGroupDelayExists = false;
3950 0 : }
3951 :
3952 :
3953 :
3954 : /**
3955 : * The attribute atmosphericGroupDelayRate is optional. Return true if this attribute exists.
3956 : * @return true if and only if the atmosphericGroupDelayRate attribute exists.
3957 : */
3958 0 : bool DelayModelRow::isAtmosphericGroupDelayRateExists() const {
3959 0 : return atmosphericGroupDelayRateExists;
3960 : }
3961 :
3962 :
3963 :
3964 : /**
3965 : * Get atmosphericGroupDelayRate, which is optional.
3966 : * @return atmosphericGroupDelayRate as double
3967 : * @throw IllegalAccessException If atmosphericGroupDelayRate does not exist.
3968 : */
3969 0 : double DelayModelRow::getAtmosphericGroupDelayRate() const {
3970 0 : if (!atmosphericGroupDelayRateExists) {
3971 0 : throw IllegalAccessException("atmosphericGroupDelayRate", "DelayModel");
3972 : }
3973 :
3974 0 : return atmosphericGroupDelayRate;
3975 : }
3976 :
3977 : /**
3978 : * Set atmosphericGroupDelayRate with the specified double.
3979 : * @param atmosphericGroupDelayRate The double value to which atmosphericGroupDelayRate is to be set.
3980 :
3981 :
3982 : */
3983 0 : void DelayModelRow::setAtmosphericGroupDelayRate (double atmosphericGroupDelayRate) {
3984 :
3985 0 : this->atmosphericGroupDelayRate = atmosphericGroupDelayRate;
3986 :
3987 0 : atmosphericGroupDelayRateExists = true;
3988 :
3989 0 : }
3990 :
3991 :
3992 : /**
3993 : * Mark atmosphericGroupDelayRate, which is an optional field, as non-existent.
3994 : */
3995 0 : void DelayModelRow::clearAtmosphericGroupDelayRate () {
3996 0 : atmosphericGroupDelayRateExists = false;
3997 0 : }
3998 :
3999 :
4000 :
4001 : /**
4002 : * The attribute geometricDelay is optional. Return true if this attribute exists.
4003 : * @return true if and only if the geometricDelay attribute exists.
4004 : */
4005 0 : bool DelayModelRow::isGeometricDelayExists() const {
4006 0 : return geometricDelayExists;
4007 : }
4008 :
4009 :
4010 :
4011 : /**
4012 : * Get geometricDelay, which is optional.
4013 : * @return geometricDelay as double
4014 : * @throw IllegalAccessException If geometricDelay does not exist.
4015 : */
4016 0 : double DelayModelRow::getGeometricDelay() const {
4017 0 : if (!geometricDelayExists) {
4018 0 : throw IllegalAccessException("geometricDelay", "DelayModel");
4019 : }
4020 :
4021 0 : return geometricDelay;
4022 : }
4023 :
4024 : /**
4025 : * Set geometricDelay with the specified double.
4026 : * @param geometricDelay The double value to which geometricDelay is to be set.
4027 :
4028 :
4029 : */
4030 0 : void DelayModelRow::setGeometricDelay (double geometricDelay) {
4031 :
4032 0 : this->geometricDelay = geometricDelay;
4033 :
4034 0 : geometricDelayExists = true;
4035 :
4036 0 : }
4037 :
4038 :
4039 : /**
4040 : * Mark geometricDelay, which is an optional field, as non-existent.
4041 : */
4042 0 : void DelayModelRow::clearGeometricDelay () {
4043 0 : geometricDelayExists = false;
4044 0 : }
4045 :
4046 :
4047 :
4048 : /**
4049 : * The attribute geometricDelayRate is optional. Return true if this attribute exists.
4050 : * @return true if and only if the geometricDelayRate attribute exists.
4051 : */
4052 0 : bool DelayModelRow::isGeometricDelayRateExists() const {
4053 0 : return geometricDelayRateExists;
4054 : }
4055 :
4056 :
4057 :
4058 : /**
4059 : * Get geometricDelayRate, which is optional.
4060 : * @return geometricDelayRate as double
4061 : * @throw IllegalAccessException If geometricDelayRate does not exist.
4062 : */
4063 0 : double DelayModelRow::getGeometricDelayRate() const {
4064 0 : if (!geometricDelayRateExists) {
4065 0 : throw IllegalAccessException("geometricDelayRate", "DelayModel");
4066 : }
4067 :
4068 0 : return geometricDelayRate;
4069 : }
4070 :
4071 : /**
4072 : * Set geometricDelayRate with the specified double.
4073 : * @param geometricDelayRate The double value to which geometricDelayRate is to be set.
4074 :
4075 :
4076 : */
4077 0 : void DelayModelRow::setGeometricDelayRate (double geometricDelayRate) {
4078 :
4079 0 : this->geometricDelayRate = geometricDelayRate;
4080 :
4081 0 : geometricDelayRateExists = true;
4082 :
4083 0 : }
4084 :
4085 :
4086 : /**
4087 : * Mark geometricDelayRate, which is an optional field, as non-existent.
4088 : */
4089 0 : void DelayModelRow::clearGeometricDelayRate () {
4090 0 : geometricDelayRateExists = false;
4091 0 : }
4092 :
4093 :
4094 :
4095 : /**
4096 : * The attribute numLO is optional. Return true if this attribute exists.
4097 : * @return true if and only if the numLO attribute exists.
4098 : */
4099 0 : bool DelayModelRow::isNumLOExists() const {
4100 0 : return numLOExists;
4101 : }
4102 :
4103 :
4104 :
4105 : /**
4106 : * Get numLO, which is optional.
4107 : * @return numLO as int
4108 : * @throw IllegalAccessException If numLO does not exist.
4109 : */
4110 0 : int DelayModelRow::getNumLO() const {
4111 0 : if (!numLOExists) {
4112 0 : throw IllegalAccessException("numLO", "DelayModel");
4113 : }
4114 :
4115 0 : return numLO;
4116 : }
4117 :
4118 : /**
4119 : * Set numLO with the specified int.
4120 : * @param numLO The int value to which numLO is to be set.
4121 :
4122 :
4123 : */
4124 0 : void DelayModelRow::setNumLO (int numLO) {
4125 :
4126 0 : this->numLO = numLO;
4127 :
4128 0 : numLOExists = true;
4129 :
4130 0 : }
4131 :
4132 :
4133 : /**
4134 : * Mark numLO, which is an optional field, as non-existent.
4135 : */
4136 0 : void DelayModelRow::clearNumLO () {
4137 0 : numLOExists = false;
4138 0 : }
4139 :
4140 :
4141 :
4142 : /**
4143 : * The attribute LOOffset is optional. Return true if this attribute exists.
4144 : * @return true if and only if the LOOffset attribute exists.
4145 : */
4146 0 : bool DelayModelRow::isLOOffsetExists() const {
4147 0 : return LOOffsetExists;
4148 : }
4149 :
4150 :
4151 :
4152 : /**
4153 : * Get LOOffset, which is optional.
4154 : * @return LOOffset as std::vector<Frequency >
4155 : * @throw IllegalAccessException If LOOffset does not exist.
4156 : */
4157 0 : std::vector<Frequency > DelayModelRow::getLOOffset() const {
4158 0 : if (!LOOffsetExists) {
4159 0 : throw IllegalAccessException("LOOffset", "DelayModel");
4160 : }
4161 :
4162 0 : return LOOffset;
4163 : }
4164 :
4165 : /**
4166 : * Set LOOffset with the specified std::vector<Frequency >.
4167 : * @param LOOffset The std::vector<Frequency > value to which LOOffset is to be set.
4168 :
4169 :
4170 : */
4171 0 : void DelayModelRow::setLOOffset (std::vector<Frequency > LOOffset) {
4172 :
4173 0 : this->LOOffset = LOOffset;
4174 :
4175 0 : LOOffsetExists = true;
4176 :
4177 0 : }
4178 :
4179 :
4180 : /**
4181 : * Mark LOOffset, which is an optional field, as non-existent.
4182 : */
4183 0 : void DelayModelRow::clearLOOffset () {
4184 0 : LOOffsetExists = false;
4185 0 : }
4186 :
4187 :
4188 :
4189 : /**
4190 : * The attribute LOOffsetRate is optional. Return true if this attribute exists.
4191 : * @return true if and only if the LOOffsetRate attribute exists.
4192 : */
4193 0 : bool DelayModelRow::isLOOffsetRateExists() const {
4194 0 : return LOOffsetRateExists;
4195 : }
4196 :
4197 :
4198 :
4199 : /**
4200 : * Get LOOffsetRate, which is optional.
4201 : * @return LOOffsetRate as std::vector<Frequency >
4202 : * @throw IllegalAccessException If LOOffsetRate does not exist.
4203 : */
4204 0 : std::vector<Frequency > DelayModelRow::getLOOffsetRate() const {
4205 0 : if (!LOOffsetRateExists) {
4206 0 : throw IllegalAccessException("LOOffsetRate", "DelayModel");
4207 : }
4208 :
4209 0 : return LOOffsetRate;
4210 : }
4211 :
4212 : /**
4213 : * Set LOOffsetRate with the specified std::vector<Frequency >.
4214 : * @param LOOffsetRate The std::vector<Frequency > value to which LOOffsetRate is to be set.
4215 :
4216 :
4217 : */
4218 0 : void DelayModelRow::setLOOffsetRate (std::vector<Frequency > LOOffsetRate) {
4219 :
4220 0 : this->LOOffsetRate = LOOffsetRate;
4221 :
4222 0 : LOOffsetRateExists = true;
4223 :
4224 0 : }
4225 :
4226 :
4227 : /**
4228 : * Mark LOOffsetRate, which is an optional field, as non-existent.
4229 : */
4230 0 : void DelayModelRow::clearLOOffsetRate () {
4231 0 : LOOffsetRateExists = false;
4232 0 : }
4233 :
4234 :
4235 :
4236 : /**
4237 : * The attribute dispersiveDelay is optional. Return true if this attribute exists.
4238 : * @return true if and only if the dispersiveDelay attribute exists.
4239 : */
4240 0 : bool DelayModelRow::isDispersiveDelayExists() const {
4241 0 : return dispersiveDelayExists;
4242 : }
4243 :
4244 :
4245 :
4246 : /**
4247 : * Get dispersiveDelay, which is optional.
4248 : * @return dispersiveDelay as double
4249 : * @throw IllegalAccessException If dispersiveDelay does not exist.
4250 : */
4251 0 : double DelayModelRow::getDispersiveDelay() const {
4252 0 : if (!dispersiveDelayExists) {
4253 0 : throw IllegalAccessException("dispersiveDelay", "DelayModel");
4254 : }
4255 :
4256 0 : return dispersiveDelay;
4257 : }
4258 :
4259 : /**
4260 : * Set dispersiveDelay with the specified double.
4261 : * @param dispersiveDelay The double value to which dispersiveDelay is to be set.
4262 :
4263 :
4264 : */
4265 0 : void DelayModelRow::setDispersiveDelay (double dispersiveDelay) {
4266 :
4267 0 : this->dispersiveDelay = dispersiveDelay;
4268 :
4269 0 : dispersiveDelayExists = true;
4270 :
4271 0 : }
4272 :
4273 :
4274 : /**
4275 : * Mark dispersiveDelay, which is an optional field, as non-existent.
4276 : */
4277 0 : void DelayModelRow::clearDispersiveDelay () {
4278 0 : dispersiveDelayExists = false;
4279 0 : }
4280 :
4281 :
4282 :
4283 : /**
4284 : * The attribute dispersiveDelayRate is optional. Return true if this attribute exists.
4285 : * @return true if and only if the dispersiveDelayRate attribute exists.
4286 : */
4287 0 : bool DelayModelRow::isDispersiveDelayRateExists() const {
4288 0 : return dispersiveDelayRateExists;
4289 : }
4290 :
4291 :
4292 :
4293 : /**
4294 : * Get dispersiveDelayRate, which is optional.
4295 : * @return dispersiveDelayRate as double
4296 : * @throw IllegalAccessException If dispersiveDelayRate does not exist.
4297 : */
4298 0 : double DelayModelRow::getDispersiveDelayRate() const {
4299 0 : if (!dispersiveDelayRateExists) {
4300 0 : throw IllegalAccessException("dispersiveDelayRate", "DelayModel");
4301 : }
4302 :
4303 0 : return dispersiveDelayRate;
4304 : }
4305 :
4306 : /**
4307 : * Set dispersiveDelayRate with the specified double.
4308 : * @param dispersiveDelayRate The double value to which dispersiveDelayRate is to be set.
4309 :
4310 :
4311 : */
4312 0 : void DelayModelRow::setDispersiveDelayRate (double dispersiveDelayRate) {
4313 :
4314 0 : this->dispersiveDelayRate = dispersiveDelayRate;
4315 :
4316 0 : dispersiveDelayRateExists = true;
4317 :
4318 0 : }
4319 :
4320 :
4321 : /**
4322 : * Mark dispersiveDelayRate, which is an optional field, as non-existent.
4323 : */
4324 0 : void DelayModelRow::clearDispersiveDelayRate () {
4325 0 : dispersiveDelayRateExists = false;
4326 0 : }
4327 :
4328 :
4329 :
4330 : /**
4331 : * The attribute atmosphericDryDelay is optional. Return true if this attribute exists.
4332 : * @return true if and only if the atmosphericDryDelay attribute exists.
4333 : */
4334 0 : bool DelayModelRow::isAtmosphericDryDelayExists() const {
4335 0 : return atmosphericDryDelayExists;
4336 : }
4337 :
4338 :
4339 :
4340 : /**
4341 : * Get atmosphericDryDelay, which is optional.
4342 : * @return atmosphericDryDelay as double
4343 : * @throw IllegalAccessException If atmosphericDryDelay does not exist.
4344 : */
4345 0 : double DelayModelRow::getAtmosphericDryDelay() const {
4346 0 : if (!atmosphericDryDelayExists) {
4347 0 : throw IllegalAccessException("atmosphericDryDelay", "DelayModel");
4348 : }
4349 :
4350 0 : return atmosphericDryDelay;
4351 : }
4352 :
4353 : /**
4354 : * Set atmosphericDryDelay with the specified double.
4355 : * @param atmosphericDryDelay The double value to which atmosphericDryDelay is to be set.
4356 :
4357 :
4358 : */
4359 0 : void DelayModelRow::setAtmosphericDryDelay (double atmosphericDryDelay) {
4360 :
4361 0 : this->atmosphericDryDelay = atmosphericDryDelay;
4362 :
4363 0 : atmosphericDryDelayExists = true;
4364 :
4365 0 : }
4366 :
4367 :
4368 : /**
4369 : * Mark atmosphericDryDelay, which is an optional field, as non-existent.
4370 : */
4371 0 : void DelayModelRow::clearAtmosphericDryDelay () {
4372 0 : atmosphericDryDelayExists = false;
4373 0 : }
4374 :
4375 :
4376 :
4377 : /**
4378 : * The attribute atmosphericWetDelay is optional. Return true if this attribute exists.
4379 : * @return true if and only if the atmosphericWetDelay attribute exists.
4380 : */
4381 0 : bool DelayModelRow::isAtmosphericWetDelayExists() const {
4382 0 : return atmosphericWetDelayExists;
4383 : }
4384 :
4385 :
4386 :
4387 : /**
4388 : * Get atmosphericWetDelay, which is optional.
4389 : * @return atmosphericWetDelay as double
4390 : * @throw IllegalAccessException If atmosphericWetDelay does not exist.
4391 : */
4392 0 : double DelayModelRow::getAtmosphericWetDelay() const {
4393 0 : if (!atmosphericWetDelayExists) {
4394 0 : throw IllegalAccessException("atmosphericWetDelay", "DelayModel");
4395 : }
4396 :
4397 0 : return atmosphericWetDelay;
4398 : }
4399 :
4400 : /**
4401 : * Set atmosphericWetDelay with the specified double.
4402 : * @param atmosphericWetDelay The double value to which atmosphericWetDelay is to be set.
4403 :
4404 :
4405 : */
4406 0 : void DelayModelRow::setAtmosphericWetDelay (double atmosphericWetDelay) {
4407 :
4408 0 : this->atmosphericWetDelay = atmosphericWetDelay;
4409 :
4410 0 : atmosphericWetDelayExists = true;
4411 :
4412 0 : }
4413 :
4414 :
4415 : /**
4416 : * Mark atmosphericWetDelay, which is an optional field, as non-existent.
4417 : */
4418 0 : void DelayModelRow::clearAtmosphericWetDelay () {
4419 0 : atmosphericWetDelayExists = false;
4420 0 : }
4421 :
4422 :
4423 :
4424 : /**
4425 : * The attribute padDelay is optional. Return true if this attribute exists.
4426 : * @return true if and only if the padDelay attribute exists.
4427 : */
4428 0 : bool DelayModelRow::isPadDelayExists() const {
4429 0 : return padDelayExists;
4430 : }
4431 :
4432 :
4433 :
4434 : /**
4435 : * Get padDelay, which is optional.
4436 : * @return padDelay as double
4437 : * @throw IllegalAccessException If padDelay does not exist.
4438 : */
4439 0 : double DelayModelRow::getPadDelay() const {
4440 0 : if (!padDelayExists) {
4441 0 : throw IllegalAccessException("padDelay", "DelayModel");
4442 : }
4443 :
4444 0 : return padDelay;
4445 : }
4446 :
4447 : /**
4448 : * Set padDelay with the specified double.
4449 : * @param padDelay The double value to which padDelay is to be set.
4450 :
4451 :
4452 : */
4453 0 : void DelayModelRow::setPadDelay (double padDelay) {
4454 :
4455 0 : this->padDelay = padDelay;
4456 :
4457 0 : padDelayExists = true;
4458 :
4459 0 : }
4460 :
4461 :
4462 : /**
4463 : * Mark padDelay, which is an optional field, as non-existent.
4464 : */
4465 0 : void DelayModelRow::clearPadDelay () {
4466 0 : padDelayExists = false;
4467 0 : }
4468 :
4469 :
4470 :
4471 : /**
4472 : * The attribute antennaDelay is optional. Return true if this attribute exists.
4473 : * @return true if and only if the antennaDelay attribute exists.
4474 : */
4475 0 : bool DelayModelRow::isAntennaDelayExists() const {
4476 0 : return antennaDelayExists;
4477 : }
4478 :
4479 :
4480 :
4481 : /**
4482 : * Get antennaDelay, which is optional.
4483 : * @return antennaDelay as double
4484 : * @throw IllegalAccessException If antennaDelay does not exist.
4485 : */
4486 0 : double DelayModelRow::getAntennaDelay() const {
4487 0 : if (!antennaDelayExists) {
4488 0 : throw IllegalAccessException("antennaDelay", "DelayModel");
4489 : }
4490 :
4491 0 : return antennaDelay;
4492 : }
4493 :
4494 : /**
4495 : * Set antennaDelay with the specified double.
4496 : * @param antennaDelay The double value to which antennaDelay is to be set.
4497 :
4498 :
4499 : */
4500 0 : void DelayModelRow::setAntennaDelay (double antennaDelay) {
4501 :
4502 0 : this->antennaDelay = antennaDelay;
4503 :
4504 0 : antennaDelayExists = true;
4505 :
4506 0 : }
4507 :
4508 :
4509 : /**
4510 : * Mark antennaDelay, which is an optional field, as non-existent.
4511 : */
4512 0 : void DelayModelRow::clearAntennaDelay () {
4513 0 : antennaDelayExists = false;
4514 0 : }
4515 :
4516 :
4517 :
4518 : /**
4519 : * The attribute numReceptor is optional. Return true if this attribute exists.
4520 : * @return true if and only if the numReceptor attribute exists.
4521 : */
4522 0 : bool DelayModelRow::isNumReceptorExists() const {
4523 0 : return numReceptorExists;
4524 : }
4525 :
4526 :
4527 :
4528 : /**
4529 : * Get numReceptor, which is optional.
4530 : * @return numReceptor as int
4531 : * @throw IllegalAccessException If numReceptor does not exist.
4532 : */
4533 0 : int DelayModelRow::getNumReceptor() const {
4534 0 : if (!numReceptorExists) {
4535 0 : throw IllegalAccessException("numReceptor", "DelayModel");
4536 : }
4537 :
4538 0 : return numReceptor;
4539 : }
4540 :
4541 : /**
4542 : * Set numReceptor with the specified int.
4543 : * @param numReceptor The int value to which numReceptor is to be set.
4544 :
4545 :
4546 : */
4547 0 : void DelayModelRow::setNumReceptor (int numReceptor) {
4548 :
4549 0 : this->numReceptor = numReceptor;
4550 :
4551 0 : numReceptorExists = true;
4552 :
4553 0 : }
4554 :
4555 :
4556 : /**
4557 : * Mark numReceptor, which is an optional field, as non-existent.
4558 : */
4559 0 : void DelayModelRow::clearNumReceptor () {
4560 0 : numReceptorExists = false;
4561 0 : }
4562 :
4563 :
4564 :
4565 : /**
4566 : * The attribute polarizationType is optional. Return true if this attribute exists.
4567 : * @return true if and only if the polarizationType attribute exists.
4568 : */
4569 0 : bool DelayModelRow::isPolarizationTypeExists() const {
4570 0 : return polarizationTypeExists;
4571 : }
4572 :
4573 :
4574 :
4575 : /**
4576 : * Get polarizationType, which is optional.
4577 : * @return polarizationType as std::vector<PolarizationTypeMod::PolarizationType >
4578 : * @throw IllegalAccessException If polarizationType does not exist.
4579 : */
4580 0 : std::vector<PolarizationTypeMod::PolarizationType > DelayModelRow::getPolarizationType() const {
4581 0 : if (!polarizationTypeExists) {
4582 0 : throw IllegalAccessException("polarizationType", "DelayModel");
4583 : }
4584 :
4585 0 : return polarizationType;
4586 : }
4587 :
4588 : /**
4589 : * Set polarizationType with the specified std::vector<PolarizationTypeMod::PolarizationType >.
4590 : * @param polarizationType The std::vector<PolarizationTypeMod::PolarizationType > value to which polarizationType is to be set.
4591 :
4592 :
4593 : */
4594 0 : void DelayModelRow::setPolarizationType (std::vector<PolarizationTypeMod::PolarizationType > polarizationType) {
4595 :
4596 0 : this->polarizationType = polarizationType;
4597 :
4598 0 : polarizationTypeExists = true;
4599 :
4600 0 : }
4601 :
4602 :
4603 : /**
4604 : * Mark polarizationType, which is an optional field, as non-existent.
4605 : */
4606 0 : void DelayModelRow::clearPolarizationType () {
4607 0 : polarizationTypeExists = false;
4608 0 : }
4609 :
4610 :
4611 :
4612 : /**
4613 : * The attribute electronicDelay is optional. Return true if this attribute exists.
4614 : * @return true if and only if the electronicDelay attribute exists.
4615 : */
4616 0 : bool DelayModelRow::isElectronicDelayExists() const {
4617 0 : return electronicDelayExists;
4618 : }
4619 :
4620 :
4621 :
4622 : /**
4623 : * Get electronicDelay, which is optional.
4624 : * @return electronicDelay as std::vector<double >
4625 : * @throw IllegalAccessException If electronicDelay does not exist.
4626 : */
4627 0 : std::vector<double > DelayModelRow::getElectronicDelay() const {
4628 0 : if (!electronicDelayExists) {
4629 0 : throw IllegalAccessException("electronicDelay", "DelayModel");
4630 : }
4631 :
4632 0 : return electronicDelay;
4633 : }
4634 :
4635 : /**
4636 : * Set electronicDelay with the specified std::vector<double >.
4637 : * @param electronicDelay The std::vector<double > value to which electronicDelay is to be set.
4638 :
4639 :
4640 : */
4641 0 : void DelayModelRow::setElectronicDelay (std::vector<double > electronicDelay) {
4642 :
4643 0 : this->electronicDelay = electronicDelay;
4644 :
4645 0 : electronicDelayExists = true;
4646 :
4647 0 : }
4648 :
4649 :
4650 : /**
4651 : * Mark electronicDelay, which is an optional field, as non-existent.
4652 : */
4653 0 : void DelayModelRow::clearElectronicDelay () {
4654 0 : electronicDelayExists = false;
4655 0 : }
4656 :
4657 :
4658 :
4659 : /**
4660 : * The attribute electronicDelayRate is optional. Return true if this attribute exists.
4661 : * @return true if and only if the electronicDelayRate attribute exists.
4662 : */
4663 0 : bool DelayModelRow::isElectronicDelayRateExists() const {
4664 0 : return electronicDelayRateExists;
4665 : }
4666 :
4667 :
4668 :
4669 : /**
4670 : * Get electronicDelayRate, which is optional.
4671 : * @return electronicDelayRate as std::vector<double >
4672 : * @throw IllegalAccessException If electronicDelayRate does not exist.
4673 : */
4674 0 : std::vector<double > DelayModelRow::getElectronicDelayRate() const {
4675 0 : if (!electronicDelayRateExists) {
4676 0 : throw IllegalAccessException("electronicDelayRate", "DelayModel");
4677 : }
4678 :
4679 0 : return electronicDelayRate;
4680 : }
4681 :
4682 : /**
4683 : * Set electronicDelayRate with the specified std::vector<double >.
4684 : * @param electronicDelayRate The std::vector<double > value to which electronicDelayRate is to be set.
4685 :
4686 :
4687 : */
4688 0 : void DelayModelRow::setElectronicDelayRate (std::vector<double > electronicDelayRate) {
4689 :
4690 0 : this->electronicDelayRate = electronicDelayRate;
4691 :
4692 0 : electronicDelayRateExists = true;
4693 :
4694 0 : }
4695 :
4696 :
4697 : /**
4698 : * Mark electronicDelayRate, which is an optional field, as non-existent.
4699 : */
4700 0 : void DelayModelRow::clearElectronicDelayRate () {
4701 0 : electronicDelayRateExists = false;
4702 0 : }
4703 :
4704 :
4705 :
4706 : /**
4707 : * The attribute receiverDelay is optional. Return true if this attribute exists.
4708 : * @return true if and only if the receiverDelay attribute exists.
4709 : */
4710 0 : bool DelayModelRow::isReceiverDelayExists() const {
4711 0 : return receiverDelayExists;
4712 : }
4713 :
4714 :
4715 :
4716 : /**
4717 : * Get receiverDelay, which is optional.
4718 : * @return receiverDelay as std::vector<double >
4719 : * @throw IllegalAccessException If receiverDelay does not exist.
4720 : */
4721 0 : std::vector<double > DelayModelRow::getReceiverDelay() const {
4722 0 : if (!receiverDelayExists) {
4723 0 : throw IllegalAccessException("receiverDelay", "DelayModel");
4724 : }
4725 :
4726 0 : return receiverDelay;
4727 : }
4728 :
4729 : /**
4730 : * Set receiverDelay with the specified std::vector<double >.
4731 : * @param receiverDelay The std::vector<double > value to which receiverDelay is to be set.
4732 :
4733 :
4734 : */
4735 0 : void DelayModelRow::setReceiverDelay (std::vector<double > receiverDelay) {
4736 :
4737 0 : this->receiverDelay = receiverDelay;
4738 :
4739 0 : receiverDelayExists = true;
4740 :
4741 0 : }
4742 :
4743 :
4744 : /**
4745 : * Mark receiverDelay, which is an optional field, as non-existent.
4746 : */
4747 0 : void DelayModelRow::clearReceiverDelay () {
4748 0 : receiverDelayExists = false;
4749 0 : }
4750 :
4751 :
4752 :
4753 : /**
4754 : * The attribute IFDelay is optional. Return true if this attribute exists.
4755 : * @return true if and only if the IFDelay attribute exists.
4756 : */
4757 0 : bool DelayModelRow::isIFDelayExists() const {
4758 0 : return IFDelayExists;
4759 : }
4760 :
4761 :
4762 :
4763 : /**
4764 : * Get IFDelay, which is optional.
4765 : * @return IFDelay as std::vector<double >
4766 : * @throw IllegalAccessException If IFDelay does not exist.
4767 : */
4768 0 : std::vector<double > DelayModelRow::getIFDelay() const {
4769 0 : if (!IFDelayExists) {
4770 0 : throw IllegalAccessException("IFDelay", "DelayModel");
4771 : }
4772 :
4773 0 : return IFDelay;
4774 : }
4775 :
4776 : /**
4777 : * Set IFDelay with the specified std::vector<double >.
4778 : * @param IFDelay The std::vector<double > value to which IFDelay is to be set.
4779 :
4780 :
4781 : */
4782 0 : void DelayModelRow::setIFDelay (std::vector<double > IFDelay) {
4783 :
4784 0 : this->IFDelay = IFDelay;
4785 :
4786 0 : IFDelayExists = true;
4787 :
4788 0 : }
4789 :
4790 :
4791 : /**
4792 : * Mark IFDelay, which is an optional field, as non-existent.
4793 : */
4794 0 : void DelayModelRow::clearIFDelay () {
4795 0 : IFDelayExists = false;
4796 0 : }
4797 :
4798 :
4799 :
4800 : /**
4801 : * The attribute LODelay is optional. Return true if this attribute exists.
4802 : * @return true if and only if the LODelay attribute exists.
4803 : */
4804 0 : bool DelayModelRow::isLODelayExists() const {
4805 0 : return LODelayExists;
4806 : }
4807 :
4808 :
4809 :
4810 : /**
4811 : * Get LODelay, which is optional.
4812 : * @return LODelay as std::vector<double >
4813 : * @throw IllegalAccessException If LODelay does not exist.
4814 : */
4815 0 : std::vector<double > DelayModelRow::getLODelay() const {
4816 0 : if (!LODelayExists) {
4817 0 : throw IllegalAccessException("LODelay", "DelayModel");
4818 : }
4819 :
4820 0 : return LODelay;
4821 : }
4822 :
4823 : /**
4824 : * Set LODelay with the specified std::vector<double >.
4825 : * @param LODelay The std::vector<double > value to which LODelay is to be set.
4826 :
4827 :
4828 : */
4829 0 : void DelayModelRow::setLODelay (std::vector<double > LODelay) {
4830 :
4831 0 : this->LODelay = LODelay;
4832 :
4833 0 : LODelayExists = true;
4834 :
4835 0 : }
4836 :
4837 :
4838 : /**
4839 : * Mark LODelay, which is an optional field, as non-existent.
4840 : */
4841 0 : void DelayModelRow::clearLODelay () {
4842 0 : LODelayExists = false;
4843 0 : }
4844 :
4845 :
4846 :
4847 : /**
4848 : * The attribute crossPolarizationDelay is optional. Return true if this attribute exists.
4849 : * @return true if and only if the crossPolarizationDelay attribute exists.
4850 : */
4851 0 : bool DelayModelRow::isCrossPolarizationDelayExists() const {
4852 0 : return crossPolarizationDelayExists;
4853 : }
4854 :
4855 :
4856 :
4857 : /**
4858 : * Get crossPolarizationDelay, which is optional.
4859 : * @return crossPolarizationDelay as double
4860 : * @throw IllegalAccessException If crossPolarizationDelay does not exist.
4861 : */
4862 0 : double DelayModelRow::getCrossPolarizationDelay() const {
4863 0 : if (!crossPolarizationDelayExists) {
4864 0 : throw IllegalAccessException("crossPolarizationDelay", "DelayModel");
4865 : }
4866 :
4867 0 : return crossPolarizationDelay;
4868 : }
4869 :
4870 : /**
4871 : * Set crossPolarizationDelay with the specified double.
4872 : * @param crossPolarizationDelay The double value to which crossPolarizationDelay is to be set.
4873 :
4874 :
4875 : */
4876 0 : void DelayModelRow::setCrossPolarizationDelay (double crossPolarizationDelay) {
4877 :
4878 0 : this->crossPolarizationDelay = crossPolarizationDelay;
4879 :
4880 0 : crossPolarizationDelayExists = true;
4881 :
4882 0 : }
4883 :
4884 :
4885 : /**
4886 : * Mark crossPolarizationDelay, which is an optional field, as non-existent.
4887 : */
4888 0 : void DelayModelRow::clearCrossPolarizationDelay () {
4889 0 : crossPolarizationDelayExists = false;
4890 0 : }
4891 :
4892 :
4893 :
4894 : ///////////////////////////////////////////////
4895 : // Extrinsic Table Attributes getters/setters//
4896 : ///////////////////////////////////////////////
4897 :
4898 :
4899 :
4900 :
4901 : /**
4902 : * Get antennaId.
4903 : * @return antennaId as Tag
4904 : */
4905 0 : Tag DelayModelRow::getAntennaId() const {
4906 :
4907 0 : return antennaId;
4908 : }
4909 :
4910 : /**
4911 : * Set antennaId with the specified Tag.
4912 : * @param antennaId The Tag value to which antennaId is to be set.
4913 :
4914 :
4915 :
4916 : * @throw IllegalAccessException If an attempt is made to change this field after is has been added to the table.
4917 :
4918 : */
4919 0 : void DelayModelRow::setAntennaId (Tag antennaId) {
4920 :
4921 :
4922 0 : if (hasBeenAdded) {
4923 :
4924 0 : throw IllegalAccessException("antennaId", "DelayModel");
4925 :
4926 : }
4927 :
4928 0 : this->antennaId = antennaId;
4929 :
4930 0 : }
4931 :
4932 :
4933 :
4934 :
4935 :
4936 :
4937 : /**
4938 : * Get fieldId.
4939 : * @return fieldId as Tag
4940 : */
4941 0 : Tag DelayModelRow::getFieldId() const {
4942 :
4943 0 : return fieldId;
4944 : }
4945 :
4946 : /**
4947 : * Set fieldId with the specified Tag.
4948 : * @param fieldId The Tag value to which fieldId is to be set.
4949 :
4950 :
4951 :
4952 : */
4953 0 : void DelayModelRow::setFieldId (Tag fieldId) {
4954 :
4955 :
4956 0 : if (hasBeenAdded) {
4957 :
4958 : }
4959 :
4960 0 : this->fieldId = fieldId;
4961 :
4962 0 : }
4963 :
4964 :
4965 :
4966 :
4967 :
4968 :
4969 : /**
4970 : * Get spectralWindowId.
4971 : * @return spectralWindowId as Tag
4972 : */
4973 0 : Tag DelayModelRow::getSpectralWindowId() const {
4974 :
4975 0 : return spectralWindowId;
4976 : }
4977 :
4978 : /**
4979 : * Set spectralWindowId with the specified Tag.
4980 : * @param spectralWindowId The Tag value to which spectralWindowId is to be set.
4981 :
4982 :
4983 :
4984 : * @throw IllegalAccessException If an attempt is made to change this field after is has been added to the table.
4985 :
4986 : */
4987 0 : void DelayModelRow::setSpectralWindowId (Tag spectralWindowId) {
4988 :
4989 :
4990 0 : if (hasBeenAdded) {
4991 :
4992 0 : throw IllegalAccessException("spectralWindowId", "DelayModel");
4993 :
4994 : }
4995 :
4996 0 : this->spectralWindowId = spectralWindowId;
4997 :
4998 0 : }
4999 :
5000 :
5001 :
5002 :
5003 : //////////////////////////////////////
5004 : // Links Attributes getters/setters //
5005 : //////////////////////////////////////
5006 :
5007 :
5008 :
5009 :
5010 :
5011 :
5012 : /**
5013 : * Returns the pointer to the row in the Antenna table having Antenna.antennaId == antennaId
5014 : * @return a AntennaRow*
5015 : *
5016 :
5017 : */
5018 0 : AntennaRow* DelayModelRow::getAntennaUsingAntennaId() {
5019 :
5020 0 : return table.getContainer().getAntenna().getRowByKey(antennaId);
5021 : }
5022 :
5023 :
5024 :
5025 :
5026 :
5027 :
5028 :
5029 :
5030 :
5031 : /**
5032 : * Returns the pointer to the row in the SpectralWindow table having SpectralWindow.spectralWindowId == spectralWindowId
5033 : * @return a SpectralWindowRow*
5034 : *
5035 :
5036 : */
5037 0 : SpectralWindowRow* DelayModelRow::getSpectralWindowUsingSpectralWindowId() {
5038 :
5039 0 : return table.getContainer().getSpectralWindow().getRowByKey(spectralWindowId);
5040 : }
5041 :
5042 :
5043 :
5044 :
5045 :
5046 :
5047 :
5048 :
5049 :
5050 : /**
5051 : * Returns the pointer to the row in the Field table having Field.fieldId == fieldId
5052 : * @return a FieldRow*
5053 : *
5054 :
5055 : */
5056 0 : FieldRow* DelayModelRow::getFieldUsingFieldId() {
5057 :
5058 0 : return table.getContainer().getField().getRowByKey(fieldId);
5059 : }
5060 :
5061 :
5062 :
5063 :
5064 :
5065 : /**
5066 : * Create a DelayModelRow.
5067 : * <p>
5068 : * This constructor is private because only the
5069 : * table can create rows. All rows know the table
5070 : * to which they belong.
5071 : * @param table The table to which this row belongs.
5072 : */
5073 0 : DelayModelRow::DelayModelRow (DelayModelTable &t) : table(t) {
5074 0 : hasBeenAdded = false;
5075 :
5076 :
5077 :
5078 :
5079 :
5080 :
5081 :
5082 :
5083 :
5084 :
5085 :
5086 :
5087 :
5088 :
5089 :
5090 0 : timeOriginExists = false;
5091 :
5092 :
5093 :
5094 0 : atmosphericGroupDelayExists = false;
5095 :
5096 :
5097 :
5098 0 : atmosphericGroupDelayRateExists = false;
5099 :
5100 :
5101 :
5102 0 : geometricDelayExists = false;
5103 :
5104 :
5105 :
5106 0 : geometricDelayRateExists = false;
5107 :
5108 :
5109 :
5110 0 : numLOExists = false;
5111 :
5112 :
5113 :
5114 0 : LOOffsetExists = false;
5115 :
5116 :
5117 :
5118 0 : LOOffsetRateExists = false;
5119 :
5120 :
5121 :
5122 0 : dispersiveDelayExists = false;
5123 :
5124 :
5125 :
5126 0 : dispersiveDelayRateExists = false;
5127 :
5128 :
5129 :
5130 0 : atmosphericDryDelayExists = false;
5131 :
5132 :
5133 :
5134 0 : atmosphericWetDelayExists = false;
5135 :
5136 :
5137 :
5138 0 : padDelayExists = false;
5139 :
5140 :
5141 :
5142 0 : antennaDelayExists = false;
5143 :
5144 :
5145 :
5146 0 : numReceptorExists = false;
5147 :
5148 :
5149 :
5150 0 : polarizationTypeExists = false;
5151 :
5152 :
5153 :
5154 0 : electronicDelayExists = false;
5155 :
5156 :
5157 :
5158 0 : electronicDelayRateExists = false;
5159 :
5160 :
5161 :
5162 0 : receiverDelayExists = false;
5163 :
5164 :
5165 :
5166 0 : IFDelayExists = false;
5167 :
5168 :
5169 :
5170 0 : LODelayExists = false;
5171 :
5172 :
5173 :
5174 0 : crossPolarizationDelayExists = false;
5175 :
5176 :
5177 :
5178 :
5179 :
5180 :
5181 :
5182 :
5183 :
5184 :
5185 :
5186 :
5187 :
5188 :
5189 :
5190 :
5191 :
5192 :
5193 :
5194 :
5195 :
5196 :
5197 :
5198 :
5199 :
5200 :
5201 :
5202 :
5203 :
5204 :
5205 :
5206 :
5207 :
5208 :
5209 :
5210 :
5211 :
5212 :
5213 :
5214 :
5215 :
5216 :
5217 :
5218 :
5219 :
5220 :
5221 :
5222 :
5223 :
5224 :
5225 :
5226 :
5227 :
5228 :
5229 :
5230 :
5231 :
5232 :
5233 :
5234 :
5235 :
5236 :
5237 :
5238 :
5239 :
5240 :
5241 :
5242 :
5243 :
5244 :
5245 0 : fromBinMethods["antennaId"] = &DelayModelRow::antennaIdFromBin;
5246 0 : fromBinMethods["spectralWindowId"] = &DelayModelRow::spectralWindowIdFromBin;
5247 0 : fromBinMethods["timeInterval"] = &DelayModelRow::timeIntervalFromBin;
5248 0 : fromBinMethods["numPoly"] = &DelayModelRow::numPolyFromBin;
5249 0 : fromBinMethods["phaseDelay"] = &DelayModelRow::phaseDelayFromBin;
5250 0 : fromBinMethods["phaseDelayRate"] = &DelayModelRow::phaseDelayRateFromBin;
5251 0 : fromBinMethods["groupDelay"] = &DelayModelRow::groupDelayFromBin;
5252 0 : fromBinMethods["groupDelayRate"] = &DelayModelRow::groupDelayRateFromBin;
5253 0 : fromBinMethods["fieldId"] = &DelayModelRow::fieldIdFromBin;
5254 :
5255 :
5256 0 : fromBinMethods["timeOrigin"] = &DelayModelRow::timeOriginFromBin;
5257 0 : fromBinMethods["atmosphericGroupDelay"] = &DelayModelRow::atmosphericGroupDelayFromBin;
5258 0 : fromBinMethods["atmosphericGroupDelayRate"] = &DelayModelRow::atmosphericGroupDelayRateFromBin;
5259 0 : fromBinMethods["geometricDelay"] = &DelayModelRow::geometricDelayFromBin;
5260 0 : fromBinMethods["geometricDelayRate"] = &DelayModelRow::geometricDelayRateFromBin;
5261 0 : fromBinMethods["numLO"] = &DelayModelRow::numLOFromBin;
5262 0 : fromBinMethods["LOOffset"] = &DelayModelRow::LOOffsetFromBin;
5263 0 : fromBinMethods["LOOffsetRate"] = &DelayModelRow::LOOffsetRateFromBin;
5264 0 : fromBinMethods["dispersiveDelay"] = &DelayModelRow::dispersiveDelayFromBin;
5265 0 : fromBinMethods["dispersiveDelayRate"] = &DelayModelRow::dispersiveDelayRateFromBin;
5266 0 : fromBinMethods["atmosphericDryDelay"] = &DelayModelRow::atmosphericDryDelayFromBin;
5267 0 : fromBinMethods["atmosphericWetDelay"] = &DelayModelRow::atmosphericWetDelayFromBin;
5268 0 : fromBinMethods["padDelay"] = &DelayModelRow::padDelayFromBin;
5269 0 : fromBinMethods["antennaDelay"] = &DelayModelRow::antennaDelayFromBin;
5270 0 : fromBinMethods["numReceptor"] = &DelayModelRow::numReceptorFromBin;
5271 0 : fromBinMethods["polarizationType"] = &DelayModelRow::polarizationTypeFromBin;
5272 0 : fromBinMethods["electronicDelay"] = &DelayModelRow::electronicDelayFromBin;
5273 0 : fromBinMethods["electronicDelayRate"] = &DelayModelRow::electronicDelayRateFromBin;
5274 0 : fromBinMethods["receiverDelay"] = &DelayModelRow::receiverDelayFromBin;
5275 0 : fromBinMethods["IFDelay"] = &DelayModelRow::IFDelayFromBin;
5276 0 : fromBinMethods["LODelay"] = &DelayModelRow::LODelayFromBin;
5277 0 : fromBinMethods["crossPolarizationDelay"] = &DelayModelRow::crossPolarizationDelayFromBin;
5278 :
5279 :
5280 :
5281 :
5282 :
5283 0 : fromTextMethods["antennaId"] = &DelayModelRow::antennaIdFromText;
5284 :
5285 :
5286 :
5287 0 : fromTextMethods["spectralWindowId"] = &DelayModelRow::spectralWindowIdFromText;
5288 :
5289 :
5290 :
5291 0 : fromTextMethods["timeInterval"] = &DelayModelRow::timeIntervalFromText;
5292 :
5293 :
5294 :
5295 0 : fromTextMethods["numPoly"] = &DelayModelRow::numPolyFromText;
5296 :
5297 :
5298 :
5299 0 : fromTextMethods["phaseDelay"] = &DelayModelRow::phaseDelayFromText;
5300 :
5301 :
5302 :
5303 0 : fromTextMethods["phaseDelayRate"] = &DelayModelRow::phaseDelayRateFromText;
5304 :
5305 :
5306 :
5307 0 : fromTextMethods["groupDelay"] = &DelayModelRow::groupDelayFromText;
5308 :
5309 :
5310 :
5311 0 : fromTextMethods["groupDelayRate"] = &DelayModelRow::groupDelayRateFromText;
5312 :
5313 :
5314 :
5315 0 : fromTextMethods["fieldId"] = &DelayModelRow::fieldIdFromText;
5316 :
5317 :
5318 :
5319 :
5320 :
5321 0 : fromTextMethods["timeOrigin"] = &DelayModelRow::timeOriginFromText;
5322 :
5323 :
5324 :
5325 0 : fromTextMethods["atmosphericGroupDelay"] = &DelayModelRow::atmosphericGroupDelayFromText;
5326 :
5327 :
5328 :
5329 0 : fromTextMethods["atmosphericGroupDelayRate"] = &DelayModelRow::atmosphericGroupDelayRateFromText;
5330 :
5331 :
5332 :
5333 0 : fromTextMethods["geometricDelay"] = &DelayModelRow::geometricDelayFromText;
5334 :
5335 :
5336 :
5337 0 : fromTextMethods["geometricDelayRate"] = &DelayModelRow::geometricDelayRateFromText;
5338 :
5339 :
5340 :
5341 0 : fromTextMethods["numLO"] = &DelayModelRow::numLOFromText;
5342 :
5343 :
5344 :
5345 0 : fromTextMethods["LOOffset"] = &DelayModelRow::LOOffsetFromText;
5346 :
5347 :
5348 :
5349 0 : fromTextMethods["LOOffsetRate"] = &DelayModelRow::LOOffsetRateFromText;
5350 :
5351 :
5352 :
5353 0 : fromTextMethods["dispersiveDelay"] = &DelayModelRow::dispersiveDelayFromText;
5354 :
5355 :
5356 :
5357 0 : fromTextMethods["dispersiveDelayRate"] = &DelayModelRow::dispersiveDelayRateFromText;
5358 :
5359 :
5360 :
5361 0 : fromTextMethods["atmosphericDryDelay"] = &DelayModelRow::atmosphericDryDelayFromText;
5362 :
5363 :
5364 :
5365 0 : fromTextMethods["atmosphericWetDelay"] = &DelayModelRow::atmosphericWetDelayFromText;
5366 :
5367 :
5368 :
5369 0 : fromTextMethods["padDelay"] = &DelayModelRow::padDelayFromText;
5370 :
5371 :
5372 :
5373 0 : fromTextMethods["antennaDelay"] = &DelayModelRow::antennaDelayFromText;
5374 :
5375 :
5376 :
5377 0 : fromTextMethods["numReceptor"] = &DelayModelRow::numReceptorFromText;
5378 :
5379 :
5380 :
5381 0 : fromTextMethods["polarizationType"] = &DelayModelRow::polarizationTypeFromText;
5382 :
5383 :
5384 :
5385 0 : fromTextMethods["electronicDelay"] = &DelayModelRow::electronicDelayFromText;
5386 :
5387 :
5388 :
5389 0 : fromTextMethods["electronicDelayRate"] = &DelayModelRow::electronicDelayRateFromText;
5390 :
5391 :
5392 :
5393 0 : fromTextMethods["receiverDelay"] = &DelayModelRow::receiverDelayFromText;
5394 :
5395 :
5396 :
5397 0 : fromTextMethods["IFDelay"] = &DelayModelRow::IFDelayFromText;
5398 :
5399 :
5400 :
5401 0 : fromTextMethods["LODelay"] = &DelayModelRow::LODelayFromText;
5402 :
5403 :
5404 :
5405 0 : fromTextMethods["crossPolarizationDelay"] = &DelayModelRow::crossPolarizationDelayFromText;
5406 :
5407 :
5408 0 : }
5409 :
5410 0 : DelayModelRow::DelayModelRow (DelayModelTable &t, DelayModelRow *row) : table(t) {
5411 0 : hasBeenAdded = false;
5412 :
5413 0 : if (row == 0) {
5414 :
5415 :
5416 :
5417 :
5418 :
5419 :
5420 :
5421 :
5422 :
5423 :
5424 :
5425 :
5426 :
5427 :
5428 :
5429 0 : timeOriginExists = false;
5430 :
5431 :
5432 :
5433 0 : atmosphericGroupDelayExists = false;
5434 :
5435 :
5436 :
5437 0 : atmosphericGroupDelayRateExists = false;
5438 :
5439 :
5440 :
5441 0 : geometricDelayExists = false;
5442 :
5443 :
5444 :
5445 0 : geometricDelayRateExists = false;
5446 :
5447 :
5448 :
5449 0 : numLOExists = false;
5450 :
5451 :
5452 :
5453 0 : LOOffsetExists = false;
5454 :
5455 :
5456 :
5457 0 : LOOffsetRateExists = false;
5458 :
5459 :
5460 :
5461 0 : dispersiveDelayExists = false;
5462 :
5463 :
5464 :
5465 0 : dispersiveDelayRateExists = false;
5466 :
5467 :
5468 :
5469 0 : atmosphericDryDelayExists = false;
5470 :
5471 :
5472 :
5473 0 : atmosphericWetDelayExists = false;
5474 :
5475 :
5476 :
5477 0 : padDelayExists = false;
5478 :
5479 :
5480 :
5481 0 : antennaDelayExists = false;
5482 :
5483 :
5484 :
5485 0 : numReceptorExists = false;
5486 :
5487 :
5488 :
5489 0 : polarizationTypeExists = false;
5490 :
5491 :
5492 :
5493 0 : electronicDelayExists = false;
5494 :
5495 :
5496 :
5497 0 : electronicDelayRateExists = false;
5498 :
5499 :
5500 :
5501 0 : receiverDelayExists = false;
5502 :
5503 :
5504 :
5505 0 : IFDelayExists = false;
5506 :
5507 :
5508 :
5509 0 : LODelayExists = false;
5510 :
5511 :
5512 :
5513 0 : crossPolarizationDelayExists = false;
5514 :
5515 :
5516 :
5517 :
5518 :
5519 :
5520 :
5521 :
5522 :
5523 : }
5524 : else {
5525 :
5526 :
5527 0 : antennaId = row->antennaId;
5528 :
5529 0 : spectralWindowId = row->spectralWindowId;
5530 :
5531 0 : timeInterval = row->timeInterval;
5532 :
5533 :
5534 :
5535 :
5536 0 : numPoly = row->numPoly;
5537 :
5538 0 : phaseDelay = row->phaseDelay;
5539 :
5540 0 : phaseDelayRate = row->phaseDelayRate;
5541 :
5542 0 : groupDelay = row->groupDelay;
5543 :
5544 0 : groupDelayRate = row->groupDelayRate;
5545 :
5546 0 : fieldId = row->fieldId;
5547 :
5548 :
5549 :
5550 :
5551 0 : if (row->timeOriginExists) {
5552 0 : timeOrigin = row->timeOrigin;
5553 0 : timeOriginExists = true;
5554 : }
5555 : else
5556 0 : timeOriginExists = false;
5557 :
5558 0 : if (row->atmosphericGroupDelayExists) {
5559 0 : atmosphericGroupDelay = row->atmosphericGroupDelay;
5560 0 : atmosphericGroupDelayExists = true;
5561 : }
5562 : else
5563 0 : atmosphericGroupDelayExists = false;
5564 :
5565 0 : if (row->atmosphericGroupDelayRateExists) {
5566 0 : atmosphericGroupDelayRate = row->atmosphericGroupDelayRate;
5567 0 : atmosphericGroupDelayRateExists = true;
5568 : }
5569 : else
5570 0 : atmosphericGroupDelayRateExists = false;
5571 :
5572 0 : if (row->geometricDelayExists) {
5573 0 : geometricDelay = row->geometricDelay;
5574 0 : geometricDelayExists = true;
5575 : }
5576 : else
5577 0 : geometricDelayExists = false;
5578 :
5579 0 : if (row->geometricDelayRateExists) {
5580 0 : geometricDelayRate = row->geometricDelayRate;
5581 0 : geometricDelayRateExists = true;
5582 : }
5583 : else
5584 0 : geometricDelayRateExists = false;
5585 :
5586 0 : if (row->numLOExists) {
5587 0 : numLO = row->numLO;
5588 0 : numLOExists = true;
5589 : }
5590 : else
5591 0 : numLOExists = false;
5592 :
5593 0 : if (row->LOOffsetExists) {
5594 0 : LOOffset = row->LOOffset;
5595 0 : LOOffsetExists = true;
5596 : }
5597 : else
5598 0 : LOOffsetExists = false;
5599 :
5600 0 : if (row->LOOffsetRateExists) {
5601 0 : LOOffsetRate = row->LOOffsetRate;
5602 0 : LOOffsetRateExists = true;
5603 : }
5604 : else
5605 0 : LOOffsetRateExists = false;
5606 :
5607 0 : if (row->dispersiveDelayExists) {
5608 0 : dispersiveDelay = row->dispersiveDelay;
5609 0 : dispersiveDelayExists = true;
5610 : }
5611 : else
5612 0 : dispersiveDelayExists = false;
5613 :
5614 0 : if (row->dispersiveDelayRateExists) {
5615 0 : dispersiveDelayRate = row->dispersiveDelayRate;
5616 0 : dispersiveDelayRateExists = true;
5617 : }
5618 : else
5619 0 : dispersiveDelayRateExists = false;
5620 :
5621 0 : if (row->atmosphericDryDelayExists) {
5622 0 : atmosphericDryDelay = row->atmosphericDryDelay;
5623 0 : atmosphericDryDelayExists = true;
5624 : }
5625 : else
5626 0 : atmosphericDryDelayExists = false;
5627 :
5628 0 : if (row->atmosphericWetDelayExists) {
5629 0 : atmosphericWetDelay = row->atmosphericWetDelay;
5630 0 : atmosphericWetDelayExists = true;
5631 : }
5632 : else
5633 0 : atmosphericWetDelayExists = false;
5634 :
5635 0 : if (row->padDelayExists) {
5636 0 : padDelay = row->padDelay;
5637 0 : padDelayExists = true;
5638 : }
5639 : else
5640 0 : padDelayExists = false;
5641 :
5642 0 : if (row->antennaDelayExists) {
5643 0 : antennaDelay = row->antennaDelay;
5644 0 : antennaDelayExists = true;
5645 : }
5646 : else
5647 0 : antennaDelayExists = false;
5648 :
5649 0 : if (row->numReceptorExists) {
5650 0 : numReceptor = row->numReceptor;
5651 0 : numReceptorExists = true;
5652 : }
5653 : else
5654 0 : numReceptorExists = false;
5655 :
5656 0 : if (row->polarizationTypeExists) {
5657 0 : polarizationType = row->polarizationType;
5658 0 : polarizationTypeExists = true;
5659 : }
5660 : else
5661 0 : polarizationTypeExists = false;
5662 :
5663 0 : if (row->electronicDelayExists) {
5664 0 : electronicDelay = row->electronicDelay;
5665 0 : electronicDelayExists = true;
5666 : }
5667 : else
5668 0 : electronicDelayExists = false;
5669 :
5670 0 : if (row->electronicDelayRateExists) {
5671 0 : electronicDelayRate = row->electronicDelayRate;
5672 0 : electronicDelayRateExists = true;
5673 : }
5674 : else
5675 0 : electronicDelayRateExists = false;
5676 :
5677 0 : if (row->receiverDelayExists) {
5678 0 : receiverDelay = row->receiverDelay;
5679 0 : receiverDelayExists = true;
5680 : }
5681 : else
5682 0 : receiverDelayExists = false;
5683 :
5684 0 : if (row->IFDelayExists) {
5685 0 : IFDelay = row->IFDelay;
5686 0 : IFDelayExists = true;
5687 : }
5688 : else
5689 0 : IFDelayExists = false;
5690 :
5691 0 : if (row->LODelayExists) {
5692 0 : LODelay = row->LODelay;
5693 0 : LODelayExists = true;
5694 : }
5695 : else
5696 0 : LODelayExists = false;
5697 :
5698 0 : if (row->crossPolarizationDelayExists) {
5699 0 : crossPolarizationDelay = row->crossPolarizationDelay;
5700 0 : crossPolarizationDelayExists = true;
5701 : }
5702 : else
5703 0 : crossPolarizationDelayExists = false;
5704 :
5705 : }
5706 :
5707 0 : fromBinMethods["antennaId"] = &DelayModelRow::antennaIdFromBin;
5708 0 : fromBinMethods["spectralWindowId"] = &DelayModelRow::spectralWindowIdFromBin;
5709 0 : fromBinMethods["timeInterval"] = &DelayModelRow::timeIntervalFromBin;
5710 0 : fromBinMethods["numPoly"] = &DelayModelRow::numPolyFromBin;
5711 0 : fromBinMethods["phaseDelay"] = &DelayModelRow::phaseDelayFromBin;
5712 0 : fromBinMethods["phaseDelayRate"] = &DelayModelRow::phaseDelayRateFromBin;
5713 0 : fromBinMethods["groupDelay"] = &DelayModelRow::groupDelayFromBin;
5714 0 : fromBinMethods["groupDelayRate"] = &DelayModelRow::groupDelayRateFromBin;
5715 0 : fromBinMethods["fieldId"] = &DelayModelRow::fieldIdFromBin;
5716 :
5717 :
5718 0 : fromBinMethods["timeOrigin"] = &DelayModelRow::timeOriginFromBin;
5719 0 : fromBinMethods["atmosphericGroupDelay"] = &DelayModelRow::atmosphericGroupDelayFromBin;
5720 0 : fromBinMethods["atmosphericGroupDelayRate"] = &DelayModelRow::atmosphericGroupDelayRateFromBin;
5721 0 : fromBinMethods["geometricDelay"] = &DelayModelRow::geometricDelayFromBin;
5722 0 : fromBinMethods["geometricDelayRate"] = &DelayModelRow::geometricDelayRateFromBin;
5723 0 : fromBinMethods["numLO"] = &DelayModelRow::numLOFromBin;
5724 0 : fromBinMethods["LOOffset"] = &DelayModelRow::LOOffsetFromBin;
5725 0 : fromBinMethods["LOOffsetRate"] = &DelayModelRow::LOOffsetRateFromBin;
5726 0 : fromBinMethods["dispersiveDelay"] = &DelayModelRow::dispersiveDelayFromBin;
5727 0 : fromBinMethods["dispersiveDelayRate"] = &DelayModelRow::dispersiveDelayRateFromBin;
5728 0 : fromBinMethods["atmosphericDryDelay"] = &DelayModelRow::atmosphericDryDelayFromBin;
5729 0 : fromBinMethods["atmosphericWetDelay"] = &DelayModelRow::atmosphericWetDelayFromBin;
5730 0 : fromBinMethods["padDelay"] = &DelayModelRow::padDelayFromBin;
5731 0 : fromBinMethods["antennaDelay"] = &DelayModelRow::antennaDelayFromBin;
5732 0 : fromBinMethods["numReceptor"] = &DelayModelRow::numReceptorFromBin;
5733 0 : fromBinMethods["polarizationType"] = &DelayModelRow::polarizationTypeFromBin;
5734 0 : fromBinMethods["electronicDelay"] = &DelayModelRow::electronicDelayFromBin;
5735 0 : fromBinMethods["electronicDelayRate"] = &DelayModelRow::electronicDelayRateFromBin;
5736 0 : fromBinMethods["receiverDelay"] = &DelayModelRow::receiverDelayFromBin;
5737 0 : fromBinMethods["IFDelay"] = &DelayModelRow::IFDelayFromBin;
5738 0 : fromBinMethods["LODelay"] = &DelayModelRow::LODelayFromBin;
5739 0 : fromBinMethods["crossPolarizationDelay"] = &DelayModelRow::crossPolarizationDelayFromBin;
5740 :
5741 0 : }
5742 :
5743 :
5744 0 : bool DelayModelRow::compareNoAutoInc(Tag antennaId, Tag spectralWindowId, ArrayTimeInterval timeInterval, int numPoly, std::vector<double > phaseDelay, std::vector<double > phaseDelayRate, std::vector<double > groupDelay, std::vector<double > groupDelayRate, Tag fieldId) {
5745 : bool result;
5746 0 : result = true;
5747 :
5748 :
5749 :
5750 0 : result = result && (this->antennaId == antennaId);
5751 :
5752 0 : if (!result) return false;
5753 :
5754 :
5755 :
5756 :
5757 0 : result = result && (this->spectralWindowId == spectralWindowId);
5758 :
5759 0 : if (!result) return false;
5760 :
5761 :
5762 :
5763 :
5764 0 : result = result && (this->timeInterval.overlaps(timeInterval));
5765 :
5766 0 : if (!result) return false;
5767 :
5768 :
5769 :
5770 :
5771 0 : result = result && (this->numPoly == numPoly);
5772 :
5773 0 : if (!result) return false;
5774 :
5775 :
5776 :
5777 :
5778 0 : result = result && (this->phaseDelay == phaseDelay);
5779 :
5780 0 : if (!result) return false;
5781 :
5782 :
5783 :
5784 :
5785 0 : result = result && (this->phaseDelayRate == phaseDelayRate);
5786 :
5787 0 : if (!result) return false;
5788 :
5789 :
5790 :
5791 :
5792 0 : result = result && (this->groupDelay == groupDelay);
5793 :
5794 0 : if (!result) return false;
5795 :
5796 :
5797 :
5798 :
5799 0 : result = result && (this->groupDelayRate == groupDelayRate);
5800 :
5801 0 : if (!result) return false;
5802 :
5803 :
5804 :
5805 :
5806 0 : result = result && (this->fieldId == fieldId);
5807 :
5808 0 : if (!result) return false;
5809 :
5810 :
5811 0 : return result;
5812 : }
5813 :
5814 :
5815 :
5816 0 : bool DelayModelRow::compareRequiredValue(int numPoly, std::vector<double > phaseDelay, std::vector<double > phaseDelayRate, std::vector<double > groupDelay, std::vector<double > groupDelayRate, Tag fieldId) {
5817 : bool result;
5818 0 : result = true;
5819 :
5820 :
5821 0 : if (!(this->numPoly == numPoly)) return false;
5822 :
5823 :
5824 :
5825 0 : if (!(this->phaseDelay == phaseDelay)) return false;
5826 :
5827 :
5828 :
5829 0 : if (!(this->phaseDelayRate == phaseDelayRate)) return false;
5830 :
5831 :
5832 :
5833 0 : if (!(this->groupDelay == groupDelay)) return false;
5834 :
5835 :
5836 :
5837 0 : if (!(this->groupDelayRate == groupDelayRate)) return false;
5838 :
5839 :
5840 :
5841 0 : if (!(this->fieldId == fieldId)) return false;
5842 :
5843 :
5844 0 : return result;
5845 : }
5846 :
5847 :
5848 : /**
5849 : * Return true if all required attributes of the value part are equal to their homologues
5850 : * in x and false otherwise.
5851 : *
5852 :
5853 : * @param x a pointer on the DelayModelRow whose required attributes of the value part
5854 :
5855 : * will be compared with those of this.
5856 : * @return a boolean.
5857 : */
5858 0 : bool DelayModelRow::equalByRequiredValue(DelayModelRow* x ) {
5859 :
5860 :
5861 0 : if (this->numPoly != x->numPoly) return false;
5862 :
5863 0 : if (this->phaseDelay != x->phaseDelay) return false;
5864 :
5865 0 : if (this->phaseDelayRate != x->phaseDelayRate) return false;
5866 :
5867 0 : if (this->groupDelay != x->groupDelay) return false;
5868 :
5869 0 : if (this->groupDelayRate != x->groupDelayRate) return false;
5870 :
5871 0 : if (this->fieldId != x->fieldId) return false;
5872 :
5873 :
5874 0 : return true;
5875 : }
5876 :
5877 : /*
5878 : map<string, DelayModelAttributeFromBin> DelayModelRow::initFromBinMethods() {
5879 : map<string, DelayModelAttributeFromBin> result;
5880 :
5881 : result["antennaId"] = &DelayModelRow::antennaIdFromBin;
5882 : result["spectralWindowId"] = &DelayModelRow::spectralWindowIdFromBin;
5883 : result["timeInterval"] = &DelayModelRow::timeIntervalFromBin;
5884 : result["numPoly"] = &DelayModelRow::numPolyFromBin;
5885 : result["phaseDelay"] = &DelayModelRow::phaseDelayFromBin;
5886 : result["phaseDelayRate"] = &DelayModelRow::phaseDelayRateFromBin;
5887 : result["groupDelay"] = &DelayModelRow::groupDelayFromBin;
5888 : result["groupDelayRate"] = &DelayModelRow::groupDelayRateFromBin;
5889 : result["fieldId"] = &DelayModelRow::fieldIdFromBin;
5890 :
5891 :
5892 : result["timeOrigin"] = &DelayModelRow::timeOriginFromBin;
5893 : result["atmosphericGroupDelay"] = &DelayModelRow::atmosphericGroupDelayFromBin;
5894 : result["atmosphericGroupDelayRate"] = &DelayModelRow::atmosphericGroupDelayRateFromBin;
5895 : result["geometricDelay"] = &DelayModelRow::geometricDelayFromBin;
5896 : result["geometricDelayRate"] = &DelayModelRow::geometricDelayRateFromBin;
5897 : result["numLO"] = &DelayModelRow::numLOFromBin;
5898 : result["LOOffset"] = &DelayModelRow::LOOffsetFromBin;
5899 : result["LOOffsetRate"] = &DelayModelRow::LOOffsetRateFromBin;
5900 : result["dispersiveDelay"] = &DelayModelRow::dispersiveDelayFromBin;
5901 : result["dispersiveDelayRate"] = &DelayModelRow::dispersiveDelayRateFromBin;
5902 : result["atmosphericDryDelay"] = &DelayModelRow::atmosphericDryDelayFromBin;
5903 : result["atmosphericWetDelay"] = &DelayModelRow::atmosphericWetDelayFromBin;
5904 : result["padDelay"] = &DelayModelRow::padDelayFromBin;
5905 : result["antennaDelay"] = &DelayModelRow::antennaDelayFromBin;
5906 : result["numReceptor"] = &DelayModelRow::numReceptorFromBin;
5907 : result["polarizationType"] = &DelayModelRow::polarizationTypeFromBin;
5908 : result["electronicDelay"] = &DelayModelRow::electronicDelayFromBin;
5909 : result["electronicDelayRate"] = &DelayModelRow::electronicDelayRateFromBin;
5910 : result["receiverDelay"] = &DelayModelRow::receiverDelayFromBin;
5911 : result["IFDelay"] = &DelayModelRow::IFDelayFromBin;
5912 : result["LODelay"] = &DelayModelRow::LODelayFromBin;
5913 : result["crossPolarizationDelay"] = &DelayModelRow::crossPolarizationDelayFromBin;
5914 :
5915 :
5916 : return result;
5917 : }
5918 : */
5919 : } // End namespace asdm
5920 :
|