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 CalPositionRow.cpp
32 : */
33 :
34 : #include <vector>
35 : #include <set>
36 :
37 : #include <alma/ASDM/ASDM.h>
38 : #include <alma/ASDM/CalPositionRow.h>
39 : #include <alma/ASDM/CalPositionTable.h>
40 :
41 : #include <alma/ASDM/CalDataTable.h>
42 : #include <alma/ASDM/CalDataRow.h>
43 :
44 : #include <alma/ASDM/CalReductionTable.h>
45 : #include <alma/ASDM/CalReductionRow.h>
46 :
47 :
48 : using asdm::ASDM;
49 : using asdm::CalPositionRow;
50 : using asdm::CalPositionTable;
51 :
52 : using asdm::CalDataTable;
53 : using asdm::CalDataRow;
54 :
55 : using asdm::CalReductionTable;
56 : using asdm::CalReductionRow;
57 :
58 :
59 : #include <alma/ASDM/Parser.h>
60 :
61 : #include <alma/ASDM/EnumerationParser.h>
62 : #include <alma/ASDM/ASDMValuesParser.h>
63 :
64 : #include <alma/ASDM/InvalidArgumentException.h>
65 :
66 : using namespace std;
67 :
68 : namespace asdm {
69 0 : CalPositionRow::~CalPositionRow() {
70 0 : }
71 :
72 : /**
73 : * Return the table to which this row belongs.
74 : */
75 0 : CalPositionTable &CalPositionRow::getTable() const {
76 0 : return table;
77 : }
78 :
79 0 : bool CalPositionRow::isAdded() const {
80 0 : return hasBeenAdded;
81 : }
82 :
83 0 : void CalPositionRow::isAdded(bool added) {
84 0 : hasBeenAdded = added;
85 0 : }
86 :
87 : #ifndef WITHOUT_ACS
88 : using asdmIDL::CalPositionRowIDL;
89 : #endif
90 :
91 : #ifndef WITHOUT_ACS
92 : /**
93 : * Return this row in the form of an IDL struct.
94 : * @return The values of this row as a CalPositionRowIDL struct.
95 : */
96 : CalPositionRowIDL *CalPositionRow::toIDL() const {
97 : CalPositionRowIDL *x = new CalPositionRowIDL ();
98 :
99 : // Fill the IDL structure.
100 :
101 :
102 :
103 :
104 :
105 :
106 :
107 :
108 : x->antennaName = CORBA::string_dup(antennaName.c_str());
109 :
110 :
111 :
112 :
113 :
114 :
115 :
116 :
117 :
118 :
119 :
120 : x->atmPhaseCorrection = atmPhaseCorrection;
121 :
122 :
123 :
124 :
125 :
126 :
127 :
128 :
129 :
130 :
131 : x->startValidTime = startValidTime.toIDLArrayTime();
132 :
133 :
134 :
135 :
136 :
137 :
138 :
139 :
140 :
141 : x->endValidTime = endValidTime.toIDLArrayTime();
142 :
143 :
144 :
145 :
146 :
147 :
148 :
149 :
150 :
151 : x->antennaPosition.length(antennaPosition.size());
152 : for (unsigned int i = 0; i < antennaPosition.size(); ++i) {
153 :
154 : x->antennaPosition[i] = antennaPosition.at(i).toIDLLength();
155 :
156 : }
157 :
158 :
159 :
160 :
161 :
162 :
163 :
164 :
165 :
166 :
167 : x->stationName = CORBA::string_dup(stationName.c_str());
168 :
169 :
170 :
171 :
172 :
173 :
174 :
175 :
176 :
177 :
178 : x->stationPosition.length(stationPosition.size());
179 : for (unsigned int i = 0; i < stationPosition.size(); ++i) {
180 :
181 : x->stationPosition[i] = stationPosition.at(i).toIDLLength();
182 :
183 : }
184 :
185 :
186 :
187 :
188 :
189 :
190 :
191 :
192 :
193 :
194 : x->positionMethod = positionMethod;
195 :
196 :
197 :
198 :
199 :
200 :
201 :
202 :
203 :
204 :
205 :
206 : x->receiverBand = receiverBand;
207 :
208 :
209 :
210 :
211 :
212 :
213 :
214 :
215 :
216 :
217 :
218 : x->numAntenna = numAntenna;
219 :
220 :
221 :
222 :
223 :
224 :
225 :
226 :
227 :
228 :
229 : x->refAntennaNames.length(refAntennaNames.size());
230 : for (unsigned int i = 0; i < refAntennaNames.size(); ++i) {
231 :
232 :
233 : x->refAntennaNames[i] = CORBA::string_dup(refAntennaNames.at(i).c_str());
234 :
235 :
236 : }
237 :
238 :
239 :
240 :
241 :
242 :
243 :
244 :
245 :
246 : x->axesOffset = axesOffset.toIDLLength();
247 :
248 :
249 :
250 :
251 :
252 :
253 :
254 :
255 :
256 : x->axesOffsetErr = axesOffsetErr.toIDLLength();
257 :
258 :
259 :
260 :
261 :
262 :
263 :
264 :
265 :
266 :
267 : x->axesOffsetFixed = axesOffsetFixed;
268 :
269 :
270 :
271 :
272 :
273 :
274 :
275 :
276 :
277 :
278 : x->positionOffset.length(positionOffset.size());
279 : for (unsigned int i = 0; i < positionOffset.size(); ++i) {
280 :
281 : x->positionOffset[i] = positionOffset.at(i).toIDLLength();
282 :
283 : }
284 :
285 :
286 :
287 :
288 :
289 :
290 :
291 :
292 :
293 : x->positionErr.length(positionErr.size());
294 : for (unsigned int i = 0; i < positionErr.size(); ++i) {
295 :
296 : x->positionErr[i] = positionErr.at(i).toIDLLength();
297 :
298 : }
299 :
300 :
301 :
302 :
303 :
304 :
305 :
306 :
307 :
308 :
309 : x->reducedChiSquared = reducedChiSquared;
310 :
311 :
312 :
313 :
314 :
315 :
316 :
317 :
318 : x->delayRmsExists = delayRmsExists;
319 :
320 :
321 :
322 :
323 : x->delayRms = delayRms;
324 :
325 :
326 :
327 :
328 :
329 :
330 :
331 :
332 : x->phaseRmsExists = phaseRmsExists;
333 :
334 :
335 :
336 : x->phaseRms = phaseRms.toIDLAngle();
337 :
338 :
339 :
340 :
341 :
342 :
343 :
344 :
345 :
346 :
347 :
348 :
349 :
350 : x->calDataId = calDataId.toIDLTag();
351 :
352 :
353 :
354 :
355 :
356 :
357 :
358 :
359 :
360 :
361 : x->calReductionId = calReductionId.toIDLTag();
362 :
363 :
364 :
365 :
366 :
367 :
368 :
369 :
370 :
371 :
372 :
373 : return x;
374 :
375 : }
376 :
377 : void CalPositionRow::toIDL(asdmIDL::CalPositionRowIDL& x) const {
378 : // Set the x's fields.
379 :
380 :
381 :
382 :
383 :
384 :
385 :
386 :
387 : x.antennaName = CORBA::string_dup(antennaName.c_str());
388 :
389 :
390 :
391 :
392 :
393 :
394 :
395 :
396 :
397 :
398 :
399 : x.atmPhaseCorrection = atmPhaseCorrection;
400 :
401 :
402 :
403 :
404 :
405 :
406 :
407 :
408 :
409 :
410 : x.startValidTime = startValidTime.toIDLArrayTime();
411 :
412 :
413 :
414 :
415 :
416 :
417 :
418 :
419 :
420 : x.endValidTime = endValidTime.toIDLArrayTime();
421 :
422 :
423 :
424 :
425 :
426 :
427 :
428 :
429 :
430 : x.antennaPosition.length(antennaPosition.size());
431 : for (unsigned int i = 0; i < antennaPosition.size(); ++i) {
432 :
433 : x.antennaPosition[i] = antennaPosition.at(i).toIDLLength();
434 :
435 : }
436 :
437 :
438 :
439 :
440 :
441 :
442 :
443 :
444 :
445 :
446 : x.stationName = CORBA::string_dup(stationName.c_str());
447 :
448 :
449 :
450 :
451 :
452 :
453 :
454 :
455 :
456 :
457 : x.stationPosition.length(stationPosition.size());
458 : for (unsigned int i = 0; i < stationPosition.size(); ++i) {
459 :
460 : x.stationPosition[i] = stationPosition.at(i).toIDLLength();
461 :
462 : }
463 :
464 :
465 :
466 :
467 :
468 :
469 :
470 :
471 :
472 :
473 : x.positionMethod = positionMethod;
474 :
475 :
476 :
477 :
478 :
479 :
480 :
481 :
482 :
483 :
484 :
485 : x.receiverBand = receiverBand;
486 :
487 :
488 :
489 :
490 :
491 :
492 :
493 :
494 :
495 :
496 :
497 : x.numAntenna = numAntenna;
498 :
499 :
500 :
501 :
502 :
503 :
504 :
505 :
506 :
507 :
508 : x.refAntennaNames.length(refAntennaNames.size());
509 : for (unsigned int i = 0; i < refAntennaNames.size(); ++i) {
510 :
511 :
512 : x.refAntennaNames[i] = CORBA::string_dup(refAntennaNames.at(i).c_str());
513 :
514 :
515 : }
516 :
517 :
518 :
519 :
520 :
521 :
522 :
523 :
524 :
525 : x.axesOffset = axesOffset.toIDLLength();
526 :
527 :
528 :
529 :
530 :
531 :
532 :
533 :
534 :
535 : x.axesOffsetErr = axesOffsetErr.toIDLLength();
536 :
537 :
538 :
539 :
540 :
541 :
542 :
543 :
544 :
545 :
546 : x.axesOffsetFixed = axesOffsetFixed;
547 :
548 :
549 :
550 :
551 :
552 :
553 :
554 :
555 :
556 :
557 : x.positionOffset.length(positionOffset.size());
558 : for (unsigned int i = 0; i < positionOffset.size(); ++i) {
559 :
560 : x.positionOffset[i] = positionOffset.at(i).toIDLLength();
561 :
562 : }
563 :
564 :
565 :
566 :
567 :
568 :
569 :
570 :
571 :
572 : x.positionErr.length(positionErr.size());
573 : for (unsigned int i = 0; i < positionErr.size(); ++i) {
574 :
575 : x.positionErr[i] = positionErr.at(i).toIDLLength();
576 :
577 : }
578 :
579 :
580 :
581 :
582 :
583 :
584 :
585 :
586 :
587 :
588 : x.reducedChiSquared = reducedChiSquared;
589 :
590 :
591 :
592 :
593 :
594 :
595 :
596 :
597 : x.delayRmsExists = delayRmsExists;
598 :
599 :
600 :
601 :
602 : x.delayRms = delayRms;
603 :
604 :
605 :
606 :
607 :
608 :
609 :
610 :
611 : x.phaseRmsExists = phaseRmsExists;
612 :
613 :
614 :
615 : x.phaseRms = phaseRms.toIDLAngle();
616 :
617 :
618 :
619 :
620 :
621 :
622 :
623 :
624 :
625 :
626 :
627 :
628 :
629 : x.calDataId = calDataId.toIDLTag();
630 :
631 :
632 :
633 :
634 :
635 :
636 :
637 :
638 :
639 :
640 : x.calReductionId = calReductionId.toIDLTag();
641 :
642 :
643 :
644 :
645 :
646 :
647 :
648 :
649 :
650 :
651 :
652 : }
653 : #endif
654 :
655 :
656 : #ifndef WITHOUT_ACS
657 : /**
658 : * Fill the values of this row from the IDL struct CalPositionRowIDL.
659 : * @param x The IDL struct containing the values used to fill this row.
660 : */
661 : void CalPositionRow::setFromIDL (CalPositionRowIDL x){
662 : try {
663 : // Fill the values from x.
664 :
665 :
666 :
667 :
668 :
669 :
670 : setAntennaName(string (x.antennaName));
671 :
672 :
673 :
674 :
675 :
676 :
677 :
678 :
679 :
680 : setAtmPhaseCorrection(x.atmPhaseCorrection);
681 :
682 :
683 :
684 :
685 :
686 :
687 :
688 :
689 :
690 : setStartValidTime(ArrayTime (x.startValidTime));
691 :
692 :
693 :
694 :
695 :
696 :
697 :
698 :
699 :
700 : setEndValidTime(ArrayTime (x.endValidTime));
701 :
702 :
703 :
704 :
705 :
706 :
707 :
708 :
709 :
710 : antennaPosition .clear();
711 : for (unsigned int i = 0; i <x.antennaPosition.length(); ++i) {
712 :
713 : antennaPosition.push_back(Length (x.antennaPosition[i]));
714 :
715 : }
716 :
717 :
718 :
719 :
720 :
721 :
722 :
723 :
724 :
725 : setStationName(string (x.stationName));
726 :
727 :
728 :
729 :
730 :
731 :
732 :
733 :
734 :
735 : stationPosition .clear();
736 : for (unsigned int i = 0; i <x.stationPosition.length(); ++i) {
737 :
738 : stationPosition.push_back(Length (x.stationPosition[i]));
739 :
740 : }
741 :
742 :
743 :
744 :
745 :
746 :
747 :
748 :
749 :
750 : setPositionMethod(x.positionMethod);
751 :
752 :
753 :
754 :
755 :
756 :
757 :
758 :
759 :
760 : setReceiverBand(x.receiverBand);
761 :
762 :
763 :
764 :
765 :
766 :
767 :
768 :
769 :
770 : setNumAntenna(x.numAntenna);
771 :
772 :
773 :
774 :
775 :
776 :
777 :
778 :
779 :
780 : refAntennaNames .clear();
781 : for (unsigned int i = 0; i <x.refAntennaNames.length(); ++i) {
782 :
783 : refAntennaNames.push_back(string (x.refAntennaNames[i]));
784 :
785 : }
786 :
787 :
788 :
789 :
790 :
791 :
792 :
793 :
794 :
795 : setAxesOffset(Length (x.axesOffset));
796 :
797 :
798 :
799 :
800 :
801 :
802 :
803 :
804 :
805 : setAxesOffsetErr(Length (x.axesOffsetErr));
806 :
807 :
808 :
809 :
810 :
811 :
812 :
813 :
814 :
815 : setAxesOffsetFixed(x.axesOffsetFixed);
816 :
817 :
818 :
819 :
820 :
821 :
822 :
823 :
824 :
825 : positionOffset .clear();
826 : for (unsigned int i = 0; i <x.positionOffset.length(); ++i) {
827 :
828 : positionOffset.push_back(Length (x.positionOffset[i]));
829 :
830 : }
831 :
832 :
833 :
834 :
835 :
836 :
837 :
838 :
839 :
840 : positionErr .clear();
841 : for (unsigned int i = 0; i <x.positionErr.length(); ++i) {
842 :
843 : positionErr.push_back(Length (x.positionErr[i]));
844 :
845 : }
846 :
847 :
848 :
849 :
850 :
851 :
852 :
853 :
854 :
855 : setReducedChiSquared(x.reducedChiSquared);
856 :
857 :
858 :
859 :
860 :
861 :
862 :
863 : delayRmsExists = x.delayRmsExists;
864 : if (x.delayRmsExists) {
865 :
866 :
867 :
868 : setDelayRms(x.delayRms);
869 :
870 :
871 :
872 : }
873 :
874 :
875 :
876 :
877 :
878 : phaseRmsExists = x.phaseRmsExists;
879 : if (x.phaseRmsExists) {
880 :
881 :
882 :
883 : setPhaseRms(Angle (x.phaseRms));
884 :
885 :
886 :
887 : }
888 :
889 :
890 :
891 :
892 :
893 :
894 :
895 :
896 :
897 :
898 : setCalDataId(Tag (x.calDataId));
899 :
900 :
901 :
902 :
903 :
904 :
905 :
906 :
907 :
908 : setCalReductionId(Tag (x.calReductionId));
909 :
910 :
911 :
912 :
913 :
914 :
915 :
916 :
917 :
918 :
919 :
920 : } catch (const IllegalAccessException &err) {
921 : throw ConversionException (err.getMessage(),"CalPosition");
922 : }
923 : }
924 : #endif
925 :
926 : /**
927 : * Return this row in the form of an XML string.
928 : * @return The values of this row as an XML string.
929 : */
930 0 : string CalPositionRow::toXML() const {
931 0 : string buf;
932 0 : buf.append("<row> \n");
933 :
934 :
935 :
936 :
937 :
938 :
939 0 : Parser::toXML(antennaName, "antennaName", buf);
940 :
941 :
942 :
943 :
944 :
945 :
946 :
947 0 : buf.append(EnumerationParser::toXML("atmPhaseCorrection", atmPhaseCorrection));
948 :
949 :
950 :
951 :
952 :
953 :
954 :
955 0 : Parser::toXML(startValidTime, "startValidTime", buf);
956 :
957 :
958 :
959 :
960 :
961 :
962 :
963 0 : Parser::toXML(endValidTime, "endValidTime", buf);
964 :
965 :
966 :
967 :
968 :
969 :
970 :
971 0 : Parser::toXML(antennaPosition, "antennaPosition", buf);
972 :
973 :
974 :
975 :
976 :
977 :
978 :
979 0 : Parser::toXML(stationName, "stationName", buf);
980 :
981 :
982 :
983 :
984 :
985 :
986 :
987 0 : Parser::toXML(stationPosition, "stationPosition", buf);
988 :
989 :
990 :
991 :
992 :
993 :
994 :
995 0 : buf.append(EnumerationParser::toXML("positionMethod", positionMethod));
996 :
997 :
998 :
999 :
1000 :
1001 :
1002 :
1003 0 : buf.append(EnumerationParser::toXML("receiverBand", receiverBand));
1004 :
1005 :
1006 :
1007 :
1008 :
1009 :
1010 :
1011 0 : Parser::toXML(numAntenna, "numAntenna", buf);
1012 :
1013 :
1014 :
1015 :
1016 :
1017 :
1018 :
1019 0 : Parser::toXML(refAntennaNames, "refAntennaNames", buf);
1020 :
1021 :
1022 :
1023 :
1024 :
1025 :
1026 :
1027 0 : Parser::toXML(axesOffset, "axesOffset", buf);
1028 :
1029 :
1030 :
1031 :
1032 :
1033 :
1034 :
1035 0 : Parser::toXML(axesOffsetErr, "axesOffsetErr", buf);
1036 :
1037 :
1038 :
1039 :
1040 :
1041 :
1042 :
1043 0 : Parser::toXML(axesOffsetFixed, "axesOffsetFixed", buf);
1044 :
1045 :
1046 :
1047 :
1048 :
1049 :
1050 :
1051 0 : Parser::toXML(positionOffset, "positionOffset", buf);
1052 :
1053 :
1054 :
1055 :
1056 :
1057 :
1058 :
1059 0 : Parser::toXML(positionErr, "positionErr", buf);
1060 :
1061 :
1062 :
1063 :
1064 :
1065 :
1066 :
1067 0 : Parser::toXML(reducedChiSquared, "reducedChiSquared", buf);
1068 :
1069 :
1070 :
1071 :
1072 :
1073 :
1074 0 : if (delayRmsExists) {
1075 :
1076 :
1077 0 : Parser::toXML(delayRms, "delayRms", buf);
1078 :
1079 :
1080 : }
1081 :
1082 :
1083 :
1084 :
1085 :
1086 0 : if (phaseRmsExists) {
1087 :
1088 :
1089 0 : Parser::toXML(phaseRms, "phaseRms", buf);
1090 :
1091 :
1092 : }
1093 :
1094 :
1095 :
1096 :
1097 :
1098 :
1099 :
1100 :
1101 :
1102 0 : Parser::toXML(calDataId, "calDataId", buf);
1103 :
1104 :
1105 :
1106 :
1107 :
1108 :
1109 :
1110 0 : Parser::toXML(calReductionId, "calReductionId", buf);
1111 :
1112 :
1113 :
1114 :
1115 :
1116 :
1117 :
1118 :
1119 :
1120 :
1121 :
1122 0 : buf.append("</row>\n");
1123 0 : return buf;
1124 : }
1125 :
1126 : /**
1127 : * Fill the values of this row from an XML string
1128 : * that was produced by the toXML() method.
1129 : * @param x The XML string being used to set the values of this row.
1130 : */
1131 0 : void CalPositionRow::setFromXML (string rowDoc) {
1132 0 : Parser row(rowDoc);
1133 0 : string s = "";
1134 : try {
1135 :
1136 :
1137 :
1138 :
1139 :
1140 0 : setAntennaName(Parser::getString("antennaName","CalPosition",rowDoc));
1141 :
1142 :
1143 :
1144 :
1145 :
1146 :
1147 :
1148 :
1149 0 : atmPhaseCorrection = EnumerationParser::getAtmPhaseCorrection("atmPhaseCorrection","CalPosition",rowDoc);
1150 :
1151 :
1152 :
1153 :
1154 :
1155 :
1156 :
1157 :
1158 0 : setStartValidTime(Parser::getArrayTime("startValidTime","CalPosition",rowDoc));
1159 :
1160 :
1161 :
1162 :
1163 :
1164 :
1165 :
1166 0 : setEndValidTime(Parser::getArrayTime("endValidTime","CalPosition",rowDoc));
1167 :
1168 :
1169 :
1170 :
1171 :
1172 :
1173 :
1174 :
1175 0 : setAntennaPosition(Parser::get1DLength("antennaPosition","CalPosition",rowDoc));
1176 :
1177 :
1178 :
1179 :
1180 :
1181 :
1182 :
1183 :
1184 0 : setStationName(Parser::getString("stationName","CalPosition",rowDoc));
1185 :
1186 :
1187 :
1188 :
1189 :
1190 :
1191 :
1192 :
1193 0 : setStationPosition(Parser::get1DLength("stationPosition","CalPosition",rowDoc));
1194 :
1195 :
1196 :
1197 :
1198 :
1199 :
1200 :
1201 :
1202 :
1203 0 : positionMethod = EnumerationParser::getPositionMethod("positionMethod","CalPosition",rowDoc);
1204 :
1205 :
1206 :
1207 :
1208 :
1209 :
1210 :
1211 :
1212 :
1213 0 : receiverBand = EnumerationParser::getReceiverBand("receiverBand","CalPosition",rowDoc);
1214 :
1215 :
1216 :
1217 :
1218 :
1219 :
1220 :
1221 :
1222 0 : setNumAntenna(Parser::getInteger("numAntenna","CalPosition",rowDoc));
1223 :
1224 :
1225 :
1226 :
1227 :
1228 :
1229 :
1230 :
1231 0 : setRefAntennaNames(Parser::get1DString("refAntennaNames","CalPosition",rowDoc));
1232 :
1233 :
1234 :
1235 :
1236 :
1237 :
1238 :
1239 :
1240 0 : setAxesOffset(Parser::getLength("axesOffset","CalPosition",rowDoc));
1241 :
1242 :
1243 :
1244 :
1245 :
1246 :
1247 :
1248 0 : setAxesOffsetErr(Parser::getLength("axesOffsetErr","CalPosition",rowDoc));
1249 :
1250 :
1251 :
1252 :
1253 :
1254 :
1255 :
1256 0 : setAxesOffsetFixed(Parser::getBoolean("axesOffsetFixed","CalPosition",rowDoc));
1257 :
1258 :
1259 :
1260 :
1261 :
1262 :
1263 :
1264 :
1265 0 : setPositionOffset(Parser::get1DLength("positionOffset","CalPosition",rowDoc));
1266 :
1267 :
1268 :
1269 :
1270 :
1271 :
1272 :
1273 :
1274 :
1275 0 : setPositionErr(Parser::get1DLength("positionErr","CalPosition",rowDoc));
1276 :
1277 :
1278 :
1279 :
1280 :
1281 :
1282 :
1283 :
1284 0 : setReducedChiSquared(Parser::getDouble("reducedChiSquared","CalPosition",rowDoc));
1285 :
1286 :
1287 :
1288 :
1289 :
1290 :
1291 0 : if (row.isStr("<delayRms>")) {
1292 :
1293 0 : setDelayRms(Parser::getDouble("delayRms","CalPosition",rowDoc));
1294 :
1295 : }
1296 :
1297 :
1298 :
1299 :
1300 :
1301 0 : if (row.isStr("<phaseRms>")) {
1302 :
1303 0 : setPhaseRms(Parser::getAngle("phaseRms","CalPosition",rowDoc));
1304 :
1305 : }
1306 :
1307 :
1308 :
1309 :
1310 :
1311 :
1312 :
1313 :
1314 :
1315 0 : setCalDataId(Parser::getTag("calDataId","CalData",rowDoc));
1316 :
1317 :
1318 :
1319 :
1320 :
1321 :
1322 :
1323 0 : setCalReductionId(Parser::getTag("calReductionId","CalReduction",rowDoc));
1324 :
1325 :
1326 :
1327 :
1328 :
1329 :
1330 :
1331 :
1332 :
1333 :
1334 0 : } catch (const IllegalAccessException &err) {
1335 0 : throw ConversionException (err.getMessage(),"CalPosition");
1336 : }
1337 0 : }
1338 :
1339 0 : void CalPositionRow::toBin(EndianOSStream& eoss) {
1340 :
1341 :
1342 :
1343 :
1344 :
1345 :
1346 0 : eoss.writeString(antennaName);
1347 :
1348 :
1349 :
1350 :
1351 :
1352 :
1353 :
1354 :
1355 0 : eoss.writeString(CAtmPhaseCorrection::name(atmPhaseCorrection));
1356 : /* eoss.writeInt(atmPhaseCorrection); */
1357 :
1358 :
1359 :
1360 :
1361 :
1362 :
1363 :
1364 0 : calDataId.toBin(eoss);
1365 :
1366 :
1367 :
1368 :
1369 :
1370 :
1371 0 : calReductionId.toBin(eoss);
1372 :
1373 :
1374 :
1375 :
1376 :
1377 :
1378 0 : startValidTime.toBin(eoss);
1379 :
1380 :
1381 :
1382 :
1383 :
1384 :
1385 0 : endValidTime.toBin(eoss);
1386 :
1387 :
1388 :
1389 :
1390 :
1391 :
1392 0 : Length::toBin(antennaPosition, eoss);
1393 :
1394 :
1395 :
1396 :
1397 :
1398 :
1399 :
1400 0 : eoss.writeString(stationName);
1401 :
1402 :
1403 :
1404 :
1405 :
1406 :
1407 :
1408 0 : Length::toBin(stationPosition, eoss);
1409 :
1410 :
1411 :
1412 :
1413 :
1414 :
1415 :
1416 0 : eoss.writeString(CPositionMethod::name(positionMethod));
1417 : /* eoss.writeInt(positionMethod); */
1418 :
1419 :
1420 :
1421 :
1422 :
1423 :
1424 :
1425 :
1426 0 : eoss.writeString(CReceiverBand::name(receiverBand));
1427 : /* eoss.writeInt(receiverBand); */
1428 :
1429 :
1430 :
1431 :
1432 :
1433 :
1434 :
1435 :
1436 0 : eoss.writeInt(numAntenna);
1437 :
1438 :
1439 :
1440 :
1441 :
1442 :
1443 :
1444 :
1445 :
1446 0 : eoss.writeInt((int) refAntennaNames.size());
1447 0 : for (unsigned int i = 0; i < refAntennaNames.size(); i++)
1448 :
1449 0 : eoss.writeString(refAntennaNames.at(i));
1450 :
1451 :
1452 :
1453 :
1454 :
1455 :
1456 :
1457 :
1458 :
1459 0 : axesOffset.toBin(eoss);
1460 :
1461 :
1462 :
1463 :
1464 :
1465 :
1466 0 : axesOffsetErr.toBin(eoss);
1467 :
1468 :
1469 :
1470 :
1471 :
1472 :
1473 :
1474 0 : eoss.writeBoolean(axesOffsetFixed);
1475 :
1476 :
1477 :
1478 :
1479 :
1480 :
1481 :
1482 0 : Length::toBin(positionOffset, eoss);
1483 :
1484 :
1485 :
1486 :
1487 :
1488 :
1489 0 : Length::toBin(positionErr, eoss);
1490 :
1491 :
1492 :
1493 :
1494 :
1495 :
1496 :
1497 0 : eoss.writeDouble(reducedChiSquared);
1498 :
1499 :
1500 :
1501 :
1502 :
1503 :
1504 :
1505 0 : eoss.writeBoolean(delayRmsExists);
1506 0 : if (delayRmsExists) {
1507 :
1508 :
1509 :
1510 :
1511 :
1512 0 : eoss.writeDouble(delayRms);
1513 :
1514 :
1515 :
1516 :
1517 : }
1518 :
1519 0 : eoss.writeBoolean(phaseRmsExists);
1520 0 : if (phaseRmsExists) {
1521 :
1522 :
1523 :
1524 :
1525 0 : phaseRms.toBin(eoss);
1526 :
1527 :
1528 :
1529 : }
1530 :
1531 0 : }
1532 :
1533 0 : void CalPositionRow::antennaNameFromBin(EndianIStream& eis) {
1534 :
1535 :
1536 :
1537 :
1538 :
1539 0 : antennaName = eis.readString();
1540 :
1541 :
1542 :
1543 :
1544 0 : }
1545 0 : void CalPositionRow::atmPhaseCorrectionFromBin(EndianIStream& eis) {
1546 :
1547 :
1548 :
1549 :
1550 :
1551 0 : atmPhaseCorrection = CAtmPhaseCorrection::literal(eis.readString());
1552 :
1553 :
1554 :
1555 :
1556 0 : }
1557 0 : void CalPositionRow::calDataIdFromBin(EndianIStream& eis) {
1558 :
1559 :
1560 :
1561 :
1562 0 : calDataId = Tag::fromBin(eis);
1563 :
1564 :
1565 :
1566 0 : }
1567 0 : void CalPositionRow::calReductionIdFromBin(EndianIStream& eis) {
1568 :
1569 :
1570 :
1571 :
1572 0 : calReductionId = Tag::fromBin(eis);
1573 :
1574 :
1575 :
1576 0 : }
1577 0 : void CalPositionRow::startValidTimeFromBin(EndianIStream& eis) {
1578 :
1579 :
1580 :
1581 :
1582 0 : startValidTime = ArrayTime::fromBin(eis);
1583 :
1584 :
1585 :
1586 0 : }
1587 0 : void CalPositionRow::endValidTimeFromBin(EndianIStream& eis) {
1588 :
1589 :
1590 :
1591 :
1592 0 : endValidTime = ArrayTime::fromBin(eis);
1593 :
1594 :
1595 :
1596 0 : }
1597 0 : void CalPositionRow::antennaPositionFromBin(EndianIStream& eis) {
1598 :
1599 :
1600 :
1601 :
1602 :
1603 :
1604 0 : antennaPosition = Length::from1DBin(eis);
1605 :
1606 :
1607 :
1608 :
1609 :
1610 0 : }
1611 0 : void CalPositionRow::stationNameFromBin(EndianIStream& eis) {
1612 :
1613 :
1614 :
1615 :
1616 :
1617 0 : stationName = eis.readString();
1618 :
1619 :
1620 :
1621 :
1622 0 : }
1623 0 : void CalPositionRow::stationPositionFromBin(EndianIStream& eis) {
1624 :
1625 :
1626 :
1627 :
1628 :
1629 :
1630 0 : stationPosition = Length::from1DBin(eis);
1631 :
1632 :
1633 :
1634 :
1635 :
1636 0 : }
1637 0 : void CalPositionRow::positionMethodFromBin(EndianIStream& eis) {
1638 :
1639 :
1640 :
1641 :
1642 :
1643 0 : positionMethod = CPositionMethod::literal(eis.readString());
1644 :
1645 :
1646 :
1647 :
1648 0 : }
1649 0 : void CalPositionRow::receiverBandFromBin(EndianIStream& eis) {
1650 :
1651 :
1652 :
1653 :
1654 :
1655 0 : receiverBand = CReceiverBand::literal(eis.readString());
1656 :
1657 :
1658 :
1659 :
1660 0 : }
1661 0 : void CalPositionRow::numAntennaFromBin(EndianIStream& eis) {
1662 :
1663 :
1664 :
1665 :
1666 :
1667 0 : numAntenna = eis.readInt();
1668 :
1669 :
1670 :
1671 :
1672 0 : }
1673 0 : void CalPositionRow::refAntennaNamesFromBin(EndianIStream& eis) {
1674 :
1675 :
1676 :
1677 :
1678 :
1679 :
1680 0 : refAntennaNames.clear();
1681 :
1682 0 : unsigned int refAntennaNamesDim1 = eis.readInt();
1683 0 : for (unsigned int i = 0 ; i < refAntennaNamesDim1; i++)
1684 :
1685 0 : refAntennaNames.push_back(eis.readString());
1686 :
1687 :
1688 :
1689 :
1690 :
1691 :
1692 0 : }
1693 0 : void CalPositionRow::axesOffsetFromBin(EndianIStream& eis) {
1694 :
1695 :
1696 :
1697 :
1698 0 : axesOffset = Length::fromBin(eis);
1699 :
1700 :
1701 :
1702 0 : }
1703 0 : void CalPositionRow::axesOffsetErrFromBin(EndianIStream& eis) {
1704 :
1705 :
1706 :
1707 :
1708 0 : axesOffsetErr = Length::fromBin(eis);
1709 :
1710 :
1711 :
1712 0 : }
1713 0 : void CalPositionRow::axesOffsetFixedFromBin(EndianIStream& eis) {
1714 :
1715 :
1716 :
1717 :
1718 :
1719 0 : axesOffsetFixed = eis.readBoolean();
1720 :
1721 :
1722 :
1723 :
1724 0 : }
1725 0 : void CalPositionRow::positionOffsetFromBin(EndianIStream& eis) {
1726 :
1727 :
1728 :
1729 :
1730 :
1731 :
1732 0 : positionOffset = Length::from1DBin(eis);
1733 :
1734 :
1735 :
1736 :
1737 :
1738 0 : }
1739 0 : void CalPositionRow::positionErrFromBin(EndianIStream& eis) {
1740 :
1741 :
1742 :
1743 :
1744 :
1745 :
1746 0 : positionErr = Length::from1DBin(eis);
1747 :
1748 :
1749 :
1750 :
1751 :
1752 0 : }
1753 0 : void CalPositionRow::reducedChiSquaredFromBin(EndianIStream& eis) {
1754 :
1755 :
1756 :
1757 :
1758 :
1759 0 : reducedChiSquared = eis.readDouble();
1760 :
1761 :
1762 :
1763 :
1764 0 : }
1765 :
1766 0 : void CalPositionRow::delayRmsFromBin(EndianIStream& eis) {
1767 :
1768 0 : delayRmsExists = eis.readBoolean();
1769 0 : if (delayRmsExists) {
1770 :
1771 :
1772 :
1773 :
1774 :
1775 0 : delayRms = eis.readDouble();
1776 :
1777 :
1778 :
1779 :
1780 : }
1781 :
1782 0 : }
1783 0 : void CalPositionRow::phaseRmsFromBin(EndianIStream& eis) {
1784 :
1785 0 : phaseRmsExists = eis.readBoolean();
1786 0 : if (phaseRmsExists) {
1787 :
1788 :
1789 :
1790 :
1791 0 : phaseRms = Angle::fromBin(eis);
1792 :
1793 :
1794 :
1795 : }
1796 :
1797 0 : }
1798 :
1799 :
1800 0 : CalPositionRow* CalPositionRow::fromBin(EndianIStream& eis, CalPositionTable& table, const vector<string>& attributesSeq) {
1801 0 : CalPositionRow* row = new CalPositionRow(table);
1802 :
1803 0 : map<string, CalPositionAttributeFromBin>::iterator iter ;
1804 0 : for (unsigned int i = 0; i < attributesSeq.size(); i++) {
1805 0 : iter = row->fromBinMethods.find(attributesSeq.at(i));
1806 0 : if (iter != row->fromBinMethods.end()) {
1807 0 : (row->*(row->fromBinMethods[ attributesSeq.at(i) ] ))(eis);
1808 : }
1809 : else {
1810 0 : BinaryAttributeReaderFunctor* functorP = table.getUnknownAttributeBinaryReader(attributesSeq.at(i));
1811 0 : if (functorP)
1812 0 : (*functorP)(eis);
1813 : else
1814 0 : throw ConversionException("There is not method to read an attribute '"+attributesSeq.at(i)+"'.", "CalPositionTable");
1815 : }
1816 :
1817 : }
1818 0 : return row;
1819 : }
1820 :
1821 : //
1822 : // A collection of methods to set the value of the attributes from their textual value in the XML representation
1823 : // of one row.
1824 : //
1825 :
1826 : // Convert a string into an String
1827 0 : void CalPositionRow::antennaNameFromText(const string & s) {
1828 :
1829 :
1830 0 : antennaName = ASDMValuesParser::parse<string>(s);
1831 :
1832 :
1833 0 : }
1834 :
1835 :
1836 : // Convert a string into an AtmPhaseCorrection
1837 0 : void CalPositionRow::atmPhaseCorrectionFromText(const string & s) {
1838 :
1839 :
1840 0 : atmPhaseCorrection = ASDMValuesParser::parse<AtmPhaseCorrectionMod::AtmPhaseCorrection>(s);
1841 :
1842 :
1843 0 : }
1844 :
1845 :
1846 : // Convert a string into an Tag
1847 0 : void CalPositionRow::calDataIdFromText(const string & s) {
1848 :
1849 :
1850 0 : calDataId = ASDMValuesParser::parse<Tag>(s);
1851 :
1852 :
1853 0 : }
1854 :
1855 :
1856 : // Convert a string into an Tag
1857 0 : void CalPositionRow::calReductionIdFromText(const string & s) {
1858 :
1859 :
1860 0 : calReductionId = ASDMValuesParser::parse<Tag>(s);
1861 :
1862 :
1863 0 : }
1864 :
1865 :
1866 : // Convert a string into an ArrayTime
1867 0 : void CalPositionRow::startValidTimeFromText(const string & s) {
1868 :
1869 :
1870 0 : startValidTime = ASDMValuesParser::parse<ArrayTime>(s);
1871 :
1872 :
1873 0 : }
1874 :
1875 :
1876 : // Convert a string into an ArrayTime
1877 0 : void CalPositionRow::endValidTimeFromText(const string & s) {
1878 :
1879 :
1880 0 : endValidTime = ASDMValuesParser::parse<ArrayTime>(s);
1881 :
1882 :
1883 0 : }
1884 :
1885 :
1886 : // Convert a string into an Length
1887 0 : void CalPositionRow::antennaPositionFromText(const string & s) {
1888 :
1889 :
1890 0 : antennaPosition = ASDMValuesParser::parse1D<Length>(s);
1891 :
1892 :
1893 0 : }
1894 :
1895 :
1896 : // Convert a string into an String
1897 0 : void CalPositionRow::stationNameFromText(const string & s) {
1898 :
1899 :
1900 0 : stationName = ASDMValuesParser::parse<string>(s);
1901 :
1902 :
1903 0 : }
1904 :
1905 :
1906 : // Convert a string into an Length
1907 0 : void CalPositionRow::stationPositionFromText(const string & s) {
1908 :
1909 :
1910 0 : stationPosition = ASDMValuesParser::parse1D<Length>(s);
1911 :
1912 :
1913 0 : }
1914 :
1915 :
1916 : // Convert a string into an PositionMethod
1917 0 : void CalPositionRow::positionMethodFromText(const string & s) {
1918 :
1919 :
1920 0 : positionMethod = ASDMValuesParser::parse<PositionMethodMod::PositionMethod>(s);
1921 :
1922 :
1923 0 : }
1924 :
1925 :
1926 : // Convert a string into an ReceiverBand
1927 0 : void CalPositionRow::receiverBandFromText(const string & s) {
1928 :
1929 :
1930 0 : receiverBand = ASDMValuesParser::parse<ReceiverBandMod::ReceiverBand>(s);
1931 :
1932 :
1933 0 : }
1934 :
1935 :
1936 : // Convert a string into an int
1937 0 : void CalPositionRow::numAntennaFromText(const string & s) {
1938 :
1939 :
1940 0 : numAntenna = ASDMValuesParser::parse<int>(s);
1941 :
1942 :
1943 0 : }
1944 :
1945 :
1946 : // Convert a string into an String
1947 0 : void CalPositionRow::refAntennaNamesFromText(const string & s) {
1948 :
1949 :
1950 0 : refAntennaNames = ASDMValuesParser::parse1D<string>(s);
1951 :
1952 :
1953 0 : }
1954 :
1955 :
1956 : // Convert a string into an Length
1957 0 : void CalPositionRow::axesOffsetFromText(const string & s) {
1958 :
1959 :
1960 0 : axesOffset = ASDMValuesParser::parse<Length>(s);
1961 :
1962 :
1963 0 : }
1964 :
1965 :
1966 : // Convert a string into an Length
1967 0 : void CalPositionRow::axesOffsetErrFromText(const string & s) {
1968 :
1969 :
1970 0 : axesOffsetErr = ASDMValuesParser::parse<Length>(s);
1971 :
1972 :
1973 0 : }
1974 :
1975 :
1976 : // Convert a string into an boolean
1977 0 : void CalPositionRow::axesOffsetFixedFromText(const string & s) {
1978 :
1979 :
1980 0 : axesOffsetFixed = ASDMValuesParser::parse<bool>(s);
1981 :
1982 :
1983 0 : }
1984 :
1985 :
1986 : // Convert a string into an Length
1987 0 : void CalPositionRow::positionOffsetFromText(const string & s) {
1988 :
1989 :
1990 0 : positionOffset = ASDMValuesParser::parse1D<Length>(s);
1991 :
1992 :
1993 0 : }
1994 :
1995 :
1996 : // Convert a string into an Length
1997 0 : void CalPositionRow::positionErrFromText(const string & s) {
1998 :
1999 :
2000 0 : positionErr = ASDMValuesParser::parse1D<Length>(s);
2001 :
2002 :
2003 0 : }
2004 :
2005 :
2006 : // Convert a string into an double
2007 0 : void CalPositionRow::reducedChiSquaredFromText(const string & s) {
2008 :
2009 :
2010 0 : reducedChiSquared = ASDMValuesParser::parse<double>(s);
2011 :
2012 :
2013 0 : }
2014 :
2015 :
2016 :
2017 : // Convert a string into an double
2018 0 : void CalPositionRow::delayRmsFromText(const string & s) {
2019 0 : delayRmsExists = true;
2020 :
2021 :
2022 0 : delayRms = ASDMValuesParser::parse<double>(s);
2023 :
2024 :
2025 0 : }
2026 :
2027 :
2028 : // Convert a string into an Angle
2029 0 : void CalPositionRow::phaseRmsFromText(const string & s) {
2030 0 : phaseRmsExists = true;
2031 :
2032 :
2033 0 : phaseRms = ASDMValuesParser::parse<Angle>(s);
2034 :
2035 :
2036 0 : }
2037 :
2038 :
2039 :
2040 0 : void CalPositionRow::fromText(const std::string& attributeName, const std::string& t) {
2041 0 : map<string, CalPositionAttributeFromText>::iterator iter;
2042 0 : if ((iter = fromTextMethods.find(attributeName)) == fromTextMethods.end())
2043 0 : throw ConversionException("I do not know what to do with '"+attributeName+"' and its content '"+t+"' (while parsing an XML document)", "CalPositionTable");
2044 0 : (this->*(iter->second))(t);
2045 0 : }
2046 :
2047 : ////////////////////////////////////////////////
2048 : // Intrinsic Table Attributes getters/setters //
2049 : ////////////////////////////////////////////////
2050 :
2051 :
2052 :
2053 :
2054 : /**
2055 : * Get antennaName.
2056 : * @return antennaName as std::string
2057 : */
2058 0 : std::string CalPositionRow::getAntennaName() const {
2059 :
2060 0 : return antennaName;
2061 : }
2062 :
2063 : /**
2064 : * Set antennaName with the specified std::string.
2065 : * @param antennaName The std::string value to which antennaName is to be set.
2066 :
2067 :
2068 :
2069 : * @throw IllegalAccessException If an attempt is made to change this field after is has been added to the table.
2070 :
2071 : */
2072 0 : void CalPositionRow::setAntennaName (std::string antennaName) {
2073 :
2074 :
2075 0 : if (hasBeenAdded) {
2076 :
2077 0 : throw IllegalAccessException("antennaName", "CalPosition");
2078 :
2079 : }
2080 :
2081 0 : this->antennaName = antennaName;
2082 :
2083 0 : }
2084 :
2085 :
2086 :
2087 :
2088 :
2089 :
2090 : /**
2091 : * Get atmPhaseCorrection.
2092 : * @return atmPhaseCorrection as AtmPhaseCorrectionMod::AtmPhaseCorrection
2093 : */
2094 0 : AtmPhaseCorrectionMod::AtmPhaseCorrection CalPositionRow::getAtmPhaseCorrection() const {
2095 :
2096 0 : return atmPhaseCorrection;
2097 : }
2098 :
2099 : /**
2100 : * Set atmPhaseCorrection with the specified AtmPhaseCorrectionMod::AtmPhaseCorrection.
2101 : * @param atmPhaseCorrection The AtmPhaseCorrectionMod::AtmPhaseCorrection value to which atmPhaseCorrection is to be set.
2102 :
2103 :
2104 :
2105 : * @throw IllegalAccessException If an attempt is made to change this field after is has been added to the table.
2106 :
2107 : */
2108 0 : void CalPositionRow::setAtmPhaseCorrection (AtmPhaseCorrectionMod::AtmPhaseCorrection atmPhaseCorrection) {
2109 :
2110 :
2111 0 : if (hasBeenAdded) {
2112 :
2113 0 : throw IllegalAccessException("atmPhaseCorrection", "CalPosition");
2114 :
2115 : }
2116 :
2117 0 : this->atmPhaseCorrection = atmPhaseCorrection;
2118 :
2119 0 : }
2120 :
2121 :
2122 :
2123 :
2124 :
2125 :
2126 : /**
2127 : * Get startValidTime.
2128 : * @return startValidTime as ArrayTime
2129 : */
2130 0 : ArrayTime CalPositionRow::getStartValidTime() const {
2131 :
2132 0 : return startValidTime;
2133 : }
2134 :
2135 : /**
2136 : * Set startValidTime with the specified ArrayTime.
2137 : * @param startValidTime The ArrayTime value to which startValidTime is to be set.
2138 :
2139 :
2140 :
2141 : */
2142 0 : void CalPositionRow::setStartValidTime (ArrayTime startValidTime) {
2143 :
2144 :
2145 0 : if (hasBeenAdded) {
2146 :
2147 : }
2148 :
2149 0 : this->startValidTime = startValidTime;
2150 :
2151 0 : }
2152 :
2153 :
2154 :
2155 :
2156 :
2157 :
2158 : /**
2159 : * Get endValidTime.
2160 : * @return endValidTime as ArrayTime
2161 : */
2162 0 : ArrayTime CalPositionRow::getEndValidTime() const {
2163 :
2164 0 : return endValidTime;
2165 : }
2166 :
2167 : /**
2168 : * Set endValidTime with the specified ArrayTime.
2169 : * @param endValidTime The ArrayTime value to which endValidTime is to be set.
2170 :
2171 :
2172 :
2173 : */
2174 0 : void CalPositionRow::setEndValidTime (ArrayTime endValidTime) {
2175 :
2176 :
2177 0 : if (hasBeenAdded) {
2178 :
2179 : }
2180 :
2181 0 : this->endValidTime = endValidTime;
2182 :
2183 0 : }
2184 :
2185 :
2186 :
2187 :
2188 :
2189 :
2190 : /**
2191 : * Get antennaPosition.
2192 : * @return antennaPosition as std::vector<Length >
2193 : */
2194 0 : std::vector<Length > CalPositionRow::getAntennaPosition() const {
2195 :
2196 0 : return antennaPosition;
2197 : }
2198 :
2199 : /**
2200 : * Set antennaPosition with the specified std::vector<Length >.
2201 : * @param antennaPosition The std::vector<Length > value to which antennaPosition is to be set.
2202 :
2203 :
2204 :
2205 : */
2206 0 : void CalPositionRow::setAntennaPosition (std::vector<Length > antennaPosition) {
2207 :
2208 :
2209 0 : if (hasBeenAdded) {
2210 :
2211 : }
2212 :
2213 0 : this->antennaPosition = antennaPosition;
2214 :
2215 0 : }
2216 :
2217 :
2218 :
2219 :
2220 :
2221 :
2222 : /**
2223 : * Get stationName.
2224 : * @return stationName as std::string
2225 : */
2226 0 : std::string CalPositionRow::getStationName() const {
2227 :
2228 0 : return stationName;
2229 : }
2230 :
2231 : /**
2232 : * Set stationName with the specified std::string.
2233 : * @param stationName The std::string value to which stationName is to be set.
2234 :
2235 :
2236 :
2237 : */
2238 0 : void CalPositionRow::setStationName (std::string stationName) {
2239 :
2240 :
2241 0 : if (hasBeenAdded) {
2242 :
2243 : }
2244 :
2245 0 : this->stationName = stationName;
2246 :
2247 0 : }
2248 :
2249 :
2250 :
2251 :
2252 :
2253 :
2254 : /**
2255 : * Get stationPosition.
2256 : * @return stationPosition as std::vector<Length >
2257 : */
2258 0 : std::vector<Length > CalPositionRow::getStationPosition() const {
2259 :
2260 0 : return stationPosition;
2261 : }
2262 :
2263 : /**
2264 : * Set stationPosition with the specified std::vector<Length >.
2265 : * @param stationPosition The std::vector<Length > value to which stationPosition is to be set.
2266 :
2267 :
2268 :
2269 : */
2270 0 : void CalPositionRow::setStationPosition (std::vector<Length > stationPosition) {
2271 :
2272 :
2273 0 : if (hasBeenAdded) {
2274 :
2275 : }
2276 :
2277 0 : this->stationPosition = stationPosition;
2278 :
2279 0 : }
2280 :
2281 :
2282 :
2283 :
2284 :
2285 :
2286 : /**
2287 : * Get positionMethod.
2288 : * @return positionMethod as PositionMethodMod::PositionMethod
2289 : */
2290 0 : PositionMethodMod::PositionMethod CalPositionRow::getPositionMethod() const {
2291 :
2292 0 : return positionMethod;
2293 : }
2294 :
2295 : /**
2296 : * Set positionMethod with the specified PositionMethodMod::PositionMethod.
2297 : * @param positionMethod The PositionMethodMod::PositionMethod value to which positionMethod is to be set.
2298 :
2299 :
2300 :
2301 : */
2302 0 : void CalPositionRow::setPositionMethod (PositionMethodMod::PositionMethod positionMethod) {
2303 :
2304 :
2305 0 : if (hasBeenAdded) {
2306 :
2307 : }
2308 :
2309 0 : this->positionMethod = positionMethod;
2310 :
2311 0 : }
2312 :
2313 :
2314 :
2315 :
2316 :
2317 :
2318 : /**
2319 : * Get receiverBand.
2320 : * @return receiverBand as ReceiverBandMod::ReceiverBand
2321 : */
2322 0 : ReceiverBandMod::ReceiverBand CalPositionRow::getReceiverBand() const {
2323 :
2324 0 : return receiverBand;
2325 : }
2326 :
2327 : /**
2328 : * Set receiverBand with the specified ReceiverBandMod::ReceiverBand.
2329 : * @param receiverBand The ReceiverBandMod::ReceiverBand value to which receiverBand is to be set.
2330 :
2331 :
2332 :
2333 : */
2334 0 : void CalPositionRow::setReceiverBand (ReceiverBandMod::ReceiverBand receiverBand) {
2335 :
2336 :
2337 0 : if (hasBeenAdded) {
2338 :
2339 : }
2340 :
2341 0 : this->receiverBand = receiverBand;
2342 :
2343 0 : }
2344 :
2345 :
2346 :
2347 :
2348 :
2349 :
2350 : /**
2351 : * Get numAntenna.
2352 : * @return numAntenna as int
2353 : */
2354 0 : int CalPositionRow::getNumAntenna() const {
2355 :
2356 0 : return numAntenna;
2357 : }
2358 :
2359 : /**
2360 : * Set numAntenna with the specified int.
2361 : * @param numAntenna The int value to which numAntenna is to be set.
2362 :
2363 :
2364 :
2365 : */
2366 0 : void CalPositionRow::setNumAntenna (int numAntenna) {
2367 :
2368 :
2369 0 : if (hasBeenAdded) {
2370 :
2371 : }
2372 :
2373 0 : this->numAntenna = numAntenna;
2374 :
2375 0 : }
2376 :
2377 :
2378 :
2379 :
2380 :
2381 :
2382 : /**
2383 : * Get refAntennaNames.
2384 : * @return refAntennaNames as std::vector<std::string >
2385 : */
2386 0 : std::vector<std::string > CalPositionRow::getRefAntennaNames() const {
2387 :
2388 0 : return refAntennaNames;
2389 : }
2390 :
2391 : /**
2392 : * Set refAntennaNames with the specified std::vector<std::string >.
2393 : * @param refAntennaNames The std::vector<std::string > value to which refAntennaNames is to be set.
2394 :
2395 :
2396 :
2397 : */
2398 0 : void CalPositionRow::setRefAntennaNames (std::vector<std::string > refAntennaNames) {
2399 :
2400 :
2401 0 : if (hasBeenAdded) {
2402 :
2403 : }
2404 :
2405 0 : this->refAntennaNames = refAntennaNames;
2406 :
2407 0 : }
2408 :
2409 :
2410 :
2411 :
2412 :
2413 :
2414 : /**
2415 : * Get axesOffset.
2416 : * @return axesOffset as Length
2417 : */
2418 0 : Length CalPositionRow::getAxesOffset() const {
2419 :
2420 0 : return axesOffset;
2421 : }
2422 :
2423 : /**
2424 : * Set axesOffset with the specified Length.
2425 : * @param axesOffset The Length value to which axesOffset is to be set.
2426 :
2427 :
2428 :
2429 : */
2430 0 : void CalPositionRow::setAxesOffset (Length axesOffset) {
2431 :
2432 :
2433 0 : if (hasBeenAdded) {
2434 :
2435 : }
2436 :
2437 0 : this->axesOffset = axesOffset;
2438 :
2439 0 : }
2440 :
2441 :
2442 :
2443 :
2444 :
2445 :
2446 : /**
2447 : * Get axesOffsetErr.
2448 : * @return axesOffsetErr as Length
2449 : */
2450 0 : Length CalPositionRow::getAxesOffsetErr() const {
2451 :
2452 0 : return axesOffsetErr;
2453 : }
2454 :
2455 : /**
2456 : * Set axesOffsetErr with the specified Length.
2457 : * @param axesOffsetErr The Length value to which axesOffsetErr is to be set.
2458 :
2459 :
2460 :
2461 : */
2462 0 : void CalPositionRow::setAxesOffsetErr (Length axesOffsetErr) {
2463 :
2464 :
2465 0 : if (hasBeenAdded) {
2466 :
2467 : }
2468 :
2469 0 : this->axesOffsetErr = axesOffsetErr;
2470 :
2471 0 : }
2472 :
2473 :
2474 :
2475 :
2476 :
2477 :
2478 : /**
2479 : * Get axesOffsetFixed.
2480 : * @return axesOffsetFixed as bool
2481 : */
2482 0 : bool CalPositionRow::getAxesOffsetFixed() const {
2483 :
2484 0 : return axesOffsetFixed;
2485 : }
2486 :
2487 : /**
2488 : * Set axesOffsetFixed with the specified bool.
2489 : * @param axesOffsetFixed The bool value to which axesOffsetFixed is to be set.
2490 :
2491 :
2492 :
2493 : */
2494 0 : void CalPositionRow::setAxesOffsetFixed (bool axesOffsetFixed) {
2495 :
2496 :
2497 0 : if (hasBeenAdded) {
2498 :
2499 : }
2500 :
2501 0 : this->axesOffsetFixed = axesOffsetFixed;
2502 :
2503 0 : }
2504 :
2505 :
2506 :
2507 :
2508 :
2509 :
2510 : /**
2511 : * Get positionOffset.
2512 : * @return positionOffset as std::vector<Length >
2513 : */
2514 0 : std::vector<Length > CalPositionRow::getPositionOffset() const {
2515 :
2516 0 : return positionOffset;
2517 : }
2518 :
2519 : /**
2520 : * Set positionOffset with the specified std::vector<Length >.
2521 : * @param positionOffset The std::vector<Length > value to which positionOffset is to be set.
2522 :
2523 :
2524 :
2525 : */
2526 0 : void CalPositionRow::setPositionOffset (std::vector<Length > positionOffset) {
2527 :
2528 :
2529 0 : if (hasBeenAdded) {
2530 :
2531 : }
2532 :
2533 0 : this->positionOffset = positionOffset;
2534 :
2535 0 : }
2536 :
2537 :
2538 :
2539 :
2540 :
2541 :
2542 : /**
2543 : * Get positionErr.
2544 : * @return positionErr as std::vector<Length >
2545 : */
2546 0 : std::vector<Length > CalPositionRow::getPositionErr() const {
2547 :
2548 0 : return positionErr;
2549 : }
2550 :
2551 : /**
2552 : * Set positionErr with the specified std::vector<Length >.
2553 : * @param positionErr The std::vector<Length > value to which positionErr is to be set.
2554 :
2555 :
2556 :
2557 : */
2558 0 : void CalPositionRow::setPositionErr (std::vector<Length > positionErr) {
2559 :
2560 :
2561 0 : if (hasBeenAdded) {
2562 :
2563 : }
2564 :
2565 0 : this->positionErr = positionErr;
2566 :
2567 0 : }
2568 :
2569 :
2570 :
2571 :
2572 :
2573 :
2574 : /**
2575 : * Get reducedChiSquared.
2576 : * @return reducedChiSquared as double
2577 : */
2578 0 : double CalPositionRow::getReducedChiSquared() const {
2579 :
2580 0 : return reducedChiSquared;
2581 : }
2582 :
2583 : /**
2584 : * Set reducedChiSquared with the specified double.
2585 : * @param reducedChiSquared The double value to which reducedChiSquared is to be set.
2586 :
2587 :
2588 :
2589 : */
2590 0 : void CalPositionRow::setReducedChiSquared (double reducedChiSquared) {
2591 :
2592 :
2593 0 : if (hasBeenAdded) {
2594 :
2595 : }
2596 :
2597 0 : this->reducedChiSquared = reducedChiSquared;
2598 :
2599 0 : }
2600 :
2601 :
2602 :
2603 :
2604 : /**
2605 : * The attribute delayRms is optional. Return true if this attribute exists.
2606 : * @return true if and only if the delayRms attribute exists.
2607 : */
2608 0 : bool CalPositionRow::isDelayRmsExists() const {
2609 0 : return delayRmsExists;
2610 : }
2611 :
2612 :
2613 :
2614 : /**
2615 : * Get delayRms, which is optional.
2616 : * @return delayRms as double
2617 : * @throw IllegalAccessException If delayRms does not exist.
2618 : */
2619 0 : double CalPositionRow::getDelayRms() const {
2620 0 : if (!delayRmsExists) {
2621 0 : throw IllegalAccessException("delayRms", "CalPosition");
2622 : }
2623 :
2624 0 : return delayRms;
2625 : }
2626 :
2627 : /**
2628 : * Set delayRms with the specified double.
2629 : * @param delayRms The double value to which delayRms is to be set.
2630 :
2631 :
2632 : */
2633 0 : void CalPositionRow::setDelayRms (double delayRms) {
2634 :
2635 0 : this->delayRms = delayRms;
2636 :
2637 0 : delayRmsExists = true;
2638 :
2639 0 : }
2640 :
2641 :
2642 : /**
2643 : * Mark delayRms, which is an optional field, as non-existent.
2644 : */
2645 0 : void CalPositionRow::clearDelayRms () {
2646 0 : delayRmsExists = false;
2647 0 : }
2648 :
2649 :
2650 :
2651 : /**
2652 : * The attribute phaseRms is optional. Return true if this attribute exists.
2653 : * @return true if and only if the phaseRms attribute exists.
2654 : */
2655 0 : bool CalPositionRow::isPhaseRmsExists() const {
2656 0 : return phaseRmsExists;
2657 : }
2658 :
2659 :
2660 :
2661 : /**
2662 : * Get phaseRms, which is optional.
2663 : * @return phaseRms as Angle
2664 : * @throw IllegalAccessException If phaseRms does not exist.
2665 : */
2666 0 : Angle CalPositionRow::getPhaseRms() const {
2667 0 : if (!phaseRmsExists) {
2668 0 : throw IllegalAccessException("phaseRms", "CalPosition");
2669 : }
2670 :
2671 0 : return phaseRms;
2672 : }
2673 :
2674 : /**
2675 : * Set phaseRms with the specified Angle.
2676 : * @param phaseRms The Angle value to which phaseRms is to be set.
2677 :
2678 :
2679 : */
2680 0 : void CalPositionRow::setPhaseRms (Angle phaseRms) {
2681 :
2682 0 : this->phaseRms = phaseRms;
2683 :
2684 0 : phaseRmsExists = true;
2685 :
2686 0 : }
2687 :
2688 :
2689 : /**
2690 : * Mark phaseRms, which is an optional field, as non-existent.
2691 : */
2692 0 : void CalPositionRow::clearPhaseRms () {
2693 0 : phaseRmsExists = false;
2694 0 : }
2695 :
2696 :
2697 :
2698 : ///////////////////////////////////////////////
2699 : // Extrinsic Table Attributes getters/setters//
2700 : ///////////////////////////////////////////////
2701 :
2702 :
2703 :
2704 :
2705 : /**
2706 : * Get calDataId.
2707 : * @return calDataId as Tag
2708 : */
2709 0 : Tag CalPositionRow::getCalDataId() const {
2710 :
2711 0 : return calDataId;
2712 : }
2713 :
2714 : /**
2715 : * Set calDataId with the specified Tag.
2716 : * @param calDataId The Tag value to which calDataId is to be set.
2717 :
2718 :
2719 :
2720 : * @throw IllegalAccessException If an attempt is made to change this field after is has been added to the table.
2721 :
2722 : */
2723 0 : void CalPositionRow::setCalDataId (Tag calDataId) {
2724 :
2725 :
2726 0 : if (hasBeenAdded) {
2727 :
2728 0 : throw IllegalAccessException("calDataId", "CalPosition");
2729 :
2730 : }
2731 :
2732 0 : this->calDataId = calDataId;
2733 :
2734 0 : }
2735 :
2736 :
2737 :
2738 :
2739 :
2740 :
2741 : /**
2742 : * Get calReductionId.
2743 : * @return calReductionId as Tag
2744 : */
2745 0 : Tag CalPositionRow::getCalReductionId() const {
2746 :
2747 0 : return calReductionId;
2748 : }
2749 :
2750 : /**
2751 : * Set calReductionId with the specified Tag.
2752 : * @param calReductionId The Tag value to which calReductionId is to be set.
2753 :
2754 :
2755 :
2756 : * @throw IllegalAccessException If an attempt is made to change this field after is has been added to the table.
2757 :
2758 : */
2759 0 : void CalPositionRow::setCalReductionId (Tag calReductionId) {
2760 :
2761 :
2762 0 : if (hasBeenAdded) {
2763 :
2764 0 : throw IllegalAccessException("calReductionId", "CalPosition");
2765 :
2766 : }
2767 :
2768 0 : this->calReductionId = calReductionId;
2769 :
2770 0 : }
2771 :
2772 :
2773 :
2774 :
2775 : //////////////////////////////////////
2776 : // Links Attributes getters/setters //
2777 : //////////////////////////////////////
2778 :
2779 :
2780 :
2781 :
2782 :
2783 :
2784 : /**
2785 : * Returns the pointer to the row in the CalData table having CalData.calDataId == calDataId
2786 : * @return a CalDataRow*
2787 : *
2788 :
2789 : */
2790 0 : CalDataRow* CalPositionRow::getCalDataUsingCalDataId() {
2791 :
2792 0 : return table.getContainer().getCalData().getRowByKey(calDataId);
2793 : }
2794 :
2795 :
2796 :
2797 :
2798 :
2799 :
2800 :
2801 :
2802 :
2803 : /**
2804 : * Returns the pointer to the row in the CalReduction table having CalReduction.calReductionId == calReductionId
2805 : * @return a CalReductionRow*
2806 : *
2807 :
2808 : */
2809 0 : CalReductionRow* CalPositionRow::getCalReductionUsingCalReductionId() {
2810 :
2811 0 : return table.getContainer().getCalReduction().getRowByKey(calReductionId);
2812 : }
2813 :
2814 :
2815 :
2816 :
2817 :
2818 : /**
2819 : * Create a CalPositionRow.
2820 : * <p>
2821 : * This constructor is private because only the
2822 : * table can create rows. All rows know the table
2823 : * to which they belong.
2824 : * @param table The table to which this row belongs.
2825 : */
2826 0 : CalPositionRow::CalPositionRow (CalPositionTable &t) : table(t) {
2827 0 : hasBeenAdded = false;
2828 :
2829 :
2830 :
2831 :
2832 :
2833 :
2834 :
2835 :
2836 :
2837 :
2838 :
2839 :
2840 :
2841 :
2842 :
2843 :
2844 :
2845 :
2846 :
2847 :
2848 :
2849 :
2850 :
2851 :
2852 :
2853 :
2854 :
2855 :
2856 :
2857 :
2858 :
2859 :
2860 :
2861 :
2862 :
2863 :
2864 :
2865 0 : delayRmsExists = false;
2866 :
2867 :
2868 :
2869 0 : phaseRmsExists = false;
2870 :
2871 :
2872 :
2873 :
2874 :
2875 :
2876 :
2877 :
2878 :
2879 :
2880 :
2881 :
2882 :
2883 : // This attribute is scalar and has an enumeration type. Let's initialize it to some valid value (the 1st of the enumeration).
2884 0 : atmPhaseCorrection = CAtmPhaseCorrection::from_int(0);
2885 :
2886 :
2887 :
2888 :
2889 :
2890 :
2891 :
2892 :
2893 :
2894 :
2895 :
2896 :
2897 :
2898 : // This attribute is scalar and has an enumeration type. Let's initialize it to some valid value (the 1st of the enumeration).
2899 0 : positionMethod = CPositionMethod::from_int(0);
2900 :
2901 :
2902 :
2903 : // This attribute is scalar and has an enumeration type. Let's initialize it to some valid value (the 1st of the enumeration).
2904 0 : receiverBand = CReceiverBand::from_int(0);
2905 :
2906 :
2907 :
2908 :
2909 :
2910 :
2911 :
2912 :
2913 :
2914 :
2915 :
2916 :
2917 :
2918 :
2919 :
2920 :
2921 :
2922 :
2923 :
2924 :
2925 :
2926 :
2927 :
2928 :
2929 0 : fromBinMethods["antennaName"] = &CalPositionRow::antennaNameFromBin;
2930 0 : fromBinMethods["atmPhaseCorrection"] = &CalPositionRow::atmPhaseCorrectionFromBin;
2931 0 : fromBinMethods["calDataId"] = &CalPositionRow::calDataIdFromBin;
2932 0 : fromBinMethods["calReductionId"] = &CalPositionRow::calReductionIdFromBin;
2933 0 : fromBinMethods["startValidTime"] = &CalPositionRow::startValidTimeFromBin;
2934 0 : fromBinMethods["endValidTime"] = &CalPositionRow::endValidTimeFromBin;
2935 0 : fromBinMethods["antennaPosition"] = &CalPositionRow::antennaPositionFromBin;
2936 0 : fromBinMethods["stationName"] = &CalPositionRow::stationNameFromBin;
2937 0 : fromBinMethods["stationPosition"] = &CalPositionRow::stationPositionFromBin;
2938 0 : fromBinMethods["positionMethod"] = &CalPositionRow::positionMethodFromBin;
2939 0 : fromBinMethods["receiverBand"] = &CalPositionRow::receiverBandFromBin;
2940 0 : fromBinMethods["numAntenna"] = &CalPositionRow::numAntennaFromBin;
2941 0 : fromBinMethods["refAntennaNames"] = &CalPositionRow::refAntennaNamesFromBin;
2942 0 : fromBinMethods["axesOffset"] = &CalPositionRow::axesOffsetFromBin;
2943 0 : fromBinMethods["axesOffsetErr"] = &CalPositionRow::axesOffsetErrFromBin;
2944 0 : fromBinMethods["axesOffsetFixed"] = &CalPositionRow::axesOffsetFixedFromBin;
2945 0 : fromBinMethods["positionOffset"] = &CalPositionRow::positionOffsetFromBin;
2946 0 : fromBinMethods["positionErr"] = &CalPositionRow::positionErrFromBin;
2947 0 : fromBinMethods["reducedChiSquared"] = &CalPositionRow::reducedChiSquaredFromBin;
2948 :
2949 :
2950 0 : fromBinMethods["delayRms"] = &CalPositionRow::delayRmsFromBin;
2951 0 : fromBinMethods["phaseRms"] = &CalPositionRow::phaseRmsFromBin;
2952 :
2953 :
2954 :
2955 :
2956 :
2957 0 : fromTextMethods["antennaName"] = &CalPositionRow::antennaNameFromText;
2958 :
2959 :
2960 :
2961 0 : fromTextMethods["atmPhaseCorrection"] = &CalPositionRow::atmPhaseCorrectionFromText;
2962 :
2963 :
2964 :
2965 0 : fromTextMethods["calDataId"] = &CalPositionRow::calDataIdFromText;
2966 :
2967 :
2968 :
2969 0 : fromTextMethods["calReductionId"] = &CalPositionRow::calReductionIdFromText;
2970 :
2971 :
2972 :
2973 0 : fromTextMethods["startValidTime"] = &CalPositionRow::startValidTimeFromText;
2974 :
2975 :
2976 :
2977 0 : fromTextMethods["endValidTime"] = &CalPositionRow::endValidTimeFromText;
2978 :
2979 :
2980 :
2981 0 : fromTextMethods["antennaPosition"] = &CalPositionRow::antennaPositionFromText;
2982 :
2983 :
2984 :
2985 0 : fromTextMethods["stationName"] = &CalPositionRow::stationNameFromText;
2986 :
2987 :
2988 :
2989 0 : fromTextMethods["stationPosition"] = &CalPositionRow::stationPositionFromText;
2990 :
2991 :
2992 :
2993 0 : fromTextMethods["positionMethod"] = &CalPositionRow::positionMethodFromText;
2994 :
2995 :
2996 :
2997 0 : fromTextMethods["receiverBand"] = &CalPositionRow::receiverBandFromText;
2998 :
2999 :
3000 :
3001 0 : fromTextMethods["numAntenna"] = &CalPositionRow::numAntennaFromText;
3002 :
3003 :
3004 :
3005 0 : fromTextMethods["refAntennaNames"] = &CalPositionRow::refAntennaNamesFromText;
3006 :
3007 :
3008 :
3009 0 : fromTextMethods["axesOffset"] = &CalPositionRow::axesOffsetFromText;
3010 :
3011 :
3012 :
3013 0 : fromTextMethods["axesOffsetErr"] = &CalPositionRow::axesOffsetErrFromText;
3014 :
3015 :
3016 :
3017 0 : fromTextMethods["axesOffsetFixed"] = &CalPositionRow::axesOffsetFixedFromText;
3018 :
3019 :
3020 :
3021 0 : fromTextMethods["positionOffset"] = &CalPositionRow::positionOffsetFromText;
3022 :
3023 :
3024 :
3025 0 : fromTextMethods["positionErr"] = &CalPositionRow::positionErrFromText;
3026 :
3027 :
3028 :
3029 0 : fromTextMethods["reducedChiSquared"] = &CalPositionRow::reducedChiSquaredFromText;
3030 :
3031 :
3032 :
3033 :
3034 :
3035 0 : fromTextMethods["delayRms"] = &CalPositionRow::delayRmsFromText;
3036 :
3037 :
3038 :
3039 0 : fromTextMethods["phaseRms"] = &CalPositionRow::phaseRmsFromText;
3040 :
3041 :
3042 0 : }
3043 :
3044 0 : CalPositionRow::CalPositionRow (CalPositionTable &t, CalPositionRow *row) : table(t) {
3045 0 : hasBeenAdded = false;
3046 :
3047 0 : if (row == 0) {
3048 :
3049 :
3050 :
3051 :
3052 :
3053 :
3054 :
3055 :
3056 :
3057 :
3058 :
3059 :
3060 :
3061 :
3062 :
3063 :
3064 :
3065 :
3066 :
3067 :
3068 :
3069 :
3070 :
3071 :
3072 :
3073 :
3074 :
3075 :
3076 :
3077 :
3078 :
3079 :
3080 :
3081 :
3082 :
3083 :
3084 :
3085 0 : delayRmsExists = false;
3086 :
3087 :
3088 :
3089 0 : phaseRmsExists = false;
3090 :
3091 :
3092 :
3093 :
3094 :
3095 :
3096 :
3097 : }
3098 : else {
3099 :
3100 :
3101 0 : antennaName = row->antennaName;
3102 :
3103 0 : atmPhaseCorrection = row->atmPhaseCorrection;
3104 :
3105 0 : calDataId = row->calDataId;
3106 :
3107 0 : calReductionId = row->calReductionId;
3108 :
3109 :
3110 :
3111 :
3112 0 : startValidTime = row->startValidTime;
3113 :
3114 0 : endValidTime = row->endValidTime;
3115 :
3116 0 : antennaPosition = row->antennaPosition;
3117 :
3118 0 : stationName = row->stationName;
3119 :
3120 0 : stationPosition = row->stationPosition;
3121 :
3122 0 : positionMethod = row->positionMethod;
3123 :
3124 0 : receiverBand = row->receiverBand;
3125 :
3126 0 : numAntenna = row->numAntenna;
3127 :
3128 0 : refAntennaNames = row->refAntennaNames;
3129 :
3130 0 : axesOffset = row->axesOffset;
3131 :
3132 0 : axesOffsetErr = row->axesOffsetErr;
3133 :
3134 0 : axesOffsetFixed = row->axesOffsetFixed;
3135 :
3136 0 : positionOffset = row->positionOffset;
3137 :
3138 0 : positionErr = row->positionErr;
3139 :
3140 0 : reducedChiSquared = row->reducedChiSquared;
3141 :
3142 :
3143 :
3144 :
3145 0 : if (row->delayRmsExists) {
3146 0 : delayRms = row->delayRms;
3147 0 : delayRmsExists = true;
3148 : }
3149 : else
3150 0 : delayRmsExists = false;
3151 :
3152 0 : if (row->phaseRmsExists) {
3153 0 : phaseRms = row->phaseRms;
3154 0 : phaseRmsExists = true;
3155 : }
3156 : else
3157 0 : phaseRmsExists = false;
3158 :
3159 : }
3160 :
3161 0 : fromBinMethods["antennaName"] = &CalPositionRow::antennaNameFromBin;
3162 0 : fromBinMethods["atmPhaseCorrection"] = &CalPositionRow::atmPhaseCorrectionFromBin;
3163 0 : fromBinMethods["calDataId"] = &CalPositionRow::calDataIdFromBin;
3164 0 : fromBinMethods["calReductionId"] = &CalPositionRow::calReductionIdFromBin;
3165 0 : fromBinMethods["startValidTime"] = &CalPositionRow::startValidTimeFromBin;
3166 0 : fromBinMethods["endValidTime"] = &CalPositionRow::endValidTimeFromBin;
3167 0 : fromBinMethods["antennaPosition"] = &CalPositionRow::antennaPositionFromBin;
3168 0 : fromBinMethods["stationName"] = &CalPositionRow::stationNameFromBin;
3169 0 : fromBinMethods["stationPosition"] = &CalPositionRow::stationPositionFromBin;
3170 0 : fromBinMethods["positionMethod"] = &CalPositionRow::positionMethodFromBin;
3171 0 : fromBinMethods["receiverBand"] = &CalPositionRow::receiverBandFromBin;
3172 0 : fromBinMethods["numAntenna"] = &CalPositionRow::numAntennaFromBin;
3173 0 : fromBinMethods["refAntennaNames"] = &CalPositionRow::refAntennaNamesFromBin;
3174 0 : fromBinMethods["axesOffset"] = &CalPositionRow::axesOffsetFromBin;
3175 0 : fromBinMethods["axesOffsetErr"] = &CalPositionRow::axesOffsetErrFromBin;
3176 0 : fromBinMethods["axesOffsetFixed"] = &CalPositionRow::axesOffsetFixedFromBin;
3177 0 : fromBinMethods["positionOffset"] = &CalPositionRow::positionOffsetFromBin;
3178 0 : fromBinMethods["positionErr"] = &CalPositionRow::positionErrFromBin;
3179 0 : fromBinMethods["reducedChiSquared"] = &CalPositionRow::reducedChiSquaredFromBin;
3180 :
3181 :
3182 0 : fromBinMethods["delayRms"] = &CalPositionRow::delayRmsFromBin;
3183 0 : fromBinMethods["phaseRms"] = &CalPositionRow::phaseRmsFromBin;
3184 :
3185 0 : }
3186 :
3187 :
3188 0 : bool CalPositionRow::compareNoAutoInc(std::string antennaName, AtmPhaseCorrectionMod::AtmPhaseCorrection atmPhaseCorrection, Tag calDataId, Tag calReductionId, ArrayTime startValidTime, ArrayTime endValidTime, std::vector<Length > antennaPosition, std::string stationName, std::vector<Length > stationPosition, PositionMethodMod::PositionMethod positionMethod, ReceiverBandMod::ReceiverBand receiverBand, int numAntenna, std::vector<std::string > refAntennaNames, Length axesOffset, Length axesOffsetErr, bool axesOffsetFixed, std::vector<Length > positionOffset, std::vector<Length > positionErr, double reducedChiSquared) {
3189 : bool result;
3190 0 : result = true;
3191 :
3192 :
3193 :
3194 0 : result = result && (this->antennaName == antennaName);
3195 :
3196 0 : if (!result) return false;
3197 :
3198 :
3199 :
3200 :
3201 0 : result = result && (this->atmPhaseCorrection == atmPhaseCorrection);
3202 :
3203 0 : if (!result) return false;
3204 :
3205 :
3206 :
3207 :
3208 0 : result = result && (this->calDataId == calDataId);
3209 :
3210 0 : if (!result) return false;
3211 :
3212 :
3213 :
3214 :
3215 0 : result = result && (this->calReductionId == calReductionId);
3216 :
3217 0 : if (!result) return false;
3218 :
3219 :
3220 :
3221 :
3222 0 : result = result && (this->startValidTime == startValidTime);
3223 :
3224 0 : if (!result) return false;
3225 :
3226 :
3227 :
3228 :
3229 0 : result = result && (this->endValidTime == endValidTime);
3230 :
3231 0 : if (!result) return false;
3232 :
3233 :
3234 :
3235 :
3236 0 : result = result && (this->antennaPosition == antennaPosition);
3237 :
3238 0 : if (!result) return false;
3239 :
3240 :
3241 :
3242 :
3243 0 : result = result && (this->stationName == stationName);
3244 :
3245 0 : if (!result) return false;
3246 :
3247 :
3248 :
3249 :
3250 0 : result = result && (this->stationPosition == stationPosition);
3251 :
3252 0 : if (!result) return false;
3253 :
3254 :
3255 :
3256 :
3257 0 : result = result && (this->positionMethod == positionMethod);
3258 :
3259 0 : if (!result) return false;
3260 :
3261 :
3262 :
3263 :
3264 0 : result = result && (this->receiverBand == receiverBand);
3265 :
3266 0 : if (!result) return false;
3267 :
3268 :
3269 :
3270 :
3271 0 : result = result && (this->numAntenna == numAntenna);
3272 :
3273 0 : if (!result) return false;
3274 :
3275 :
3276 :
3277 :
3278 0 : result = result && (this->refAntennaNames == refAntennaNames);
3279 :
3280 0 : if (!result) return false;
3281 :
3282 :
3283 :
3284 :
3285 0 : result = result && (this->axesOffset == axesOffset);
3286 :
3287 0 : if (!result) return false;
3288 :
3289 :
3290 :
3291 :
3292 0 : result = result && (this->axesOffsetErr == axesOffsetErr);
3293 :
3294 0 : if (!result) return false;
3295 :
3296 :
3297 :
3298 :
3299 0 : result = result && (this->axesOffsetFixed == axesOffsetFixed);
3300 :
3301 0 : if (!result) return false;
3302 :
3303 :
3304 :
3305 :
3306 0 : result = result && (this->positionOffset == positionOffset);
3307 :
3308 0 : if (!result) return false;
3309 :
3310 :
3311 :
3312 :
3313 0 : result = result && (this->positionErr == positionErr);
3314 :
3315 0 : if (!result) return false;
3316 :
3317 :
3318 :
3319 :
3320 0 : result = result && (this->reducedChiSquared == reducedChiSquared);
3321 :
3322 0 : if (!result) return false;
3323 :
3324 :
3325 0 : return result;
3326 : }
3327 :
3328 :
3329 :
3330 0 : bool CalPositionRow::compareRequiredValue(ArrayTime startValidTime, ArrayTime endValidTime, std::vector<Length > antennaPosition, std::string stationName, std::vector<Length > stationPosition, PositionMethodMod::PositionMethod positionMethod, ReceiverBandMod::ReceiverBand receiverBand, int numAntenna, std::vector<std::string > refAntennaNames, Length axesOffset, Length axesOffsetErr, bool axesOffsetFixed, std::vector<Length > positionOffset, std::vector<Length > positionErr, double reducedChiSquared) {
3331 : bool result;
3332 0 : result = true;
3333 :
3334 :
3335 0 : if (!(this->startValidTime == startValidTime)) return false;
3336 :
3337 :
3338 :
3339 0 : if (!(this->endValidTime == endValidTime)) return false;
3340 :
3341 :
3342 :
3343 0 : if (!(this->antennaPosition == antennaPosition)) return false;
3344 :
3345 :
3346 :
3347 0 : if (!(this->stationName == stationName)) return false;
3348 :
3349 :
3350 :
3351 0 : if (!(this->stationPosition == stationPosition)) return false;
3352 :
3353 :
3354 :
3355 0 : if (!(this->positionMethod == positionMethod)) return false;
3356 :
3357 :
3358 :
3359 0 : if (!(this->receiverBand == receiverBand)) return false;
3360 :
3361 :
3362 :
3363 0 : if (!(this->numAntenna == numAntenna)) return false;
3364 :
3365 :
3366 :
3367 0 : if (!(this->refAntennaNames == refAntennaNames)) return false;
3368 :
3369 :
3370 :
3371 0 : if (!(this->axesOffset == axesOffset)) return false;
3372 :
3373 :
3374 :
3375 0 : if (!(this->axesOffsetErr == axesOffsetErr)) return false;
3376 :
3377 :
3378 :
3379 0 : if (!(this->axesOffsetFixed == axesOffsetFixed)) return false;
3380 :
3381 :
3382 :
3383 0 : if (!(this->positionOffset == positionOffset)) return false;
3384 :
3385 :
3386 :
3387 0 : if (!(this->positionErr == positionErr)) return false;
3388 :
3389 :
3390 :
3391 0 : if (!(this->reducedChiSquared == reducedChiSquared)) return false;
3392 :
3393 :
3394 0 : return result;
3395 : }
3396 :
3397 :
3398 : /**
3399 : * Return true if all required attributes of the value part are equal to their homologues
3400 : * in x and false otherwise.
3401 : *
3402 :
3403 : * @param x a pointer on the CalPositionRow whose required attributes of the value part
3404 :
3405 : * will be compared with those of this.
3406 : * @return a boolean.
3407 : */
3408 0 : bool CalPositionRow::equalByRequiredValue(CalPositionRow* x ) {
3409 :
3410 :
3411 0 : if (this->startValidTime != x->startValidTime) return false;
3412 :
3413 0 : if (this->endValidTime != x->endValidTime) return false;
3414 :
3415 0 : if (this->antennaPosition != x->antennaPosition) return false;
3416 :
3417 0 : if (this->stationName != x->stationName) return false;
3418 :
3419 0 : if (this->stationPosition != x->stationPosition) return false;
3420 :
3421 0 : if (this->positionMethod != x->positionMethod) return false;
3422 :
3423 0 : if (this->receiverBand != x->receiverBand) return false;
3424 :
3425 0 : if (this->numAntenna != x->numAntenna) return false;
3426 :
3427 0 : if (this->refAntennaNames != x->refAntennaNames) return false;
3428 :
3429 0 : if (this->axesOffset != x->axesOffset) return false;
3430 :
3431 0 : if (this->axesOffsetErr != x->axesOffsetErr) return false;
3432 :
3433 0 : if (this->axesOffsetFixed != x->axesOffsetFixed) return false;
3434 :
3435 0 : if (this->positionOffset != x->positionOffset) return false;
3436 :
3437 0 : if (this->positionErr != x->positionErr) return false;
3438 :
3439 0 : if (this->reducedChiSquared != x->reducedChiSquared) return false;
3440 :
3441 :
3442 0 : return true;
3443 : }
3444 :
3445 : /*
3446 : map<string, CalPositionAttributeFromBin> CalPositionRow::initFromBinMethods() {
3447 : map<string, CalPositionAttributeFromBin> result;
3448 :
3449 : result["antennaName"] = &CalPositionRow::antennaNameFromBin;
3450 : result["atmPhaseCorrection"] = &CalPositionRow::atmPhaseCorrectionFromBin;
3451 : result["calDataId"] = &CalPositionRow::calDataIdFromBin;
3452 : result["calReductionId"] = &CalPositionRow::calReductionIdFromBin;
3453 : result["startValidTime"] = &CalPositionRow::startValidTimeFromBin;
3454 : result["endValidTime"] = &CalPositionRow::endValidTimeFromBin;
3455 : result["antennaPosition"] = &CalPositionRow::antennaPositionFromBin;
3456 : result["stationName"] = &CalPositionRow::stationNameFromBin;
3457 : result["stationPosition"] = &CalPositionRow::stationPositionFromBin;
3458 : result["positionMethod"] = &CalPositionRow::positionMethodFromBin;
3459 : result["receiverBand"] = &CalPositionRow::receiverBandFromBin;
3460 : result["numAntenna"] = &CalPositionRow::numAntennaFromBin;
3461 : result["refAntennaNames"] = &CalPositionRow::refAntennaNamesFromBin;
3462 : result["axesOffset"] = &CalPositionRow::axesOffsetFromBin;
3463 : result["axesOffsetErr"] = &CalPositionRow::axesOffsetErrFromBin;
3464 : result["axesOffsetFixed"] = &CalPositionRow::axesOffsetFixedFromBin;
3465 : result["positionOffset"] = &CalPositionRow::positionOffsetFromBin;
3466 : result["positionErr"] = &CalPositionRow::positionErrFromBin;
3467 : result["reducedChiSquared"] = &CalPositionRow::reducedChiSquaredFromBin;
3468 :
3469 :
3470 : result["delayRms"] = &CalPositionRow::delayRmsFromBin;
3471 : result["phaseRms"] = &CalPositionRow::phaseRmsFromBin;
3472 :
3473 :
3474 : return result;
3475 : }
3476 : */
3477 : } // End namespace asdm
3478 :
|