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 AntennaRow.cpp
32 : */
33 :
34 : #include <vector>
35 : #include <set>
36 :
37 : #include <alma/ASDM/ASDM.h>
38 : #include <alma/ASDM/AntennaRow.h>
39 : #include <alma/ASDM/AntennaTable.h>
40 :
41 : #include <alma/ASDM/AntennaTable.h>
42 : #include <alma/ASDM/AntennaRow.h>
43 :
44 : #include <alma/ASDM/StationTable.h>
45 : #include <alma/ASDM/StationRow.h>
46 :
47 :
48 : using asdm::ASDM;
49 : using asdm::AntennaRow;
50 : using asdm::AntennaTable;
51 :
52 : using asdm::AntennaTable;
53 : using asdm::AntennaRow;
54 :
55 : using asdm::StationTable;
56 : using asdm::StationRow;
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 4106 : AntennaRow::~AntennaRow() {
70 4106 : }
71 :
72 : /**
73 : * Return the table to which this row belongs.
74 : */
75 0 : AntennaTable &AntennaRow::getTable() const {
76 0 : return table;
77 : }
78 :
79 0 : bool AntennaRow::isAdded() const {
80 0 : return hasBeenAdded;
81 : }
82 :
83 2053 : void AntennaRow::isAdded(bool added) {
84 2053 : hasBeenAdded = added;
85 2053 : }
86 :
87 : #ifndef WITHOUT_ACS
88 : using asdmIDL::AntennaRowIDL;
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 AntennaRowIDL struct.
95 : */
96 : AntennaRowIDL *AntennaRow::toIDL() const {
97 : AntennaRowIDL *x = new AntennaRowIDL ();
98 :
99 : // Fill the IDL structure.
100 :
101 :
102 :
103 :
104 :
105 :
106 :
107 : x->antennaId = antennaId.toIDLTag();
108 :
109 :
110 :
111 :
112 :
113 :
114 :
115 :
116 :
117 :
118 : x->name = CORBA::string_dup(name.c_str());
119 :
120 :
121 :
122 :
123 :
124 :
125 :
126 :
127 :
128 :
129 :
130 : x->antennaMake = antennaMake;
131 :
132 :
133 :
134 :
135 :
136 :
137 :
138 :
139 :
140 :
141 :
142 : x->antennaType = antennaType;
143 :
144 :
145 :
146 :
147 :
148 :
149 :
150 :
151 :
152 :
153 : x->dishDiameter = dishDiameter.toIDLLength();
154 :
155 :
156 :
157 :
158 :
159 :
160 :
161 :
162 :
163 : x->position.length(position.size());
164 : for (unsigned int i = 0; i < position.size(); ++i) {
165 :
166 : x->position[i] = position.at(i).toIDLLength();
167 :
168 : }
169 :
170 :
171 :
172 :
173 :
174 :
175 :
176 :
177 :
178 : x->offset.length(offset.size());
179 : for (unsigned int i = 0; i < offset.size(); ++i) {
180 :
181 : x->offset[i] = offset.at(i).toIDLLength();
182 :
183 : }
184 :
185 :
186 :
187 :
188 :
189 :
190 :
191 :
192 :
193 : x->time = time.toIDLArrayTime();
194 :
195 :
196 :
197 :
198 :
199 :
200 :
201 :
202 :
203 :
204 :
205 : x->assocAntennaIdExists = assocAntennaIdExists;
206 :
207 :
208 :
209 :
210 : x->assocAntennaId = assocAntennaId.toIDLTag();
211 :
212 :
213 :
214 :
215 :
216 :
217 :
218 :
219 :
220 :
221 : x->stationId = stationId.toIDLTag();
222 :
223 :
224 :
225 :
226 :
227 :
228 :
229 :
230 :
231 :
232 :
233 : return x;
234 :
235 : }
236 :
237 : void AntennaRow::toIDL(asdmIDL::AntennaRowIDL& x) const {
238 : // Set the x's fields.
239 :
240 :
241 :
242 :
243 :
244 :
245 :
246 : x.antennaId = antennaId.toIDLTag();
247 :
248 :
249 :
250 :
251 :
252 :
253 :
254 :
255 :
256 :
257 : x.name = CORBA::string_dup(name.c_str());
258 :
259 :
260 :
261 :
262 :
263 :
264 :
265 :
266 :
267 :
268 :
269 : x.antennaMake = antennaMake;
270 :
271 :
272 :
273 :
274 :
275 :
276 :
277 :
278 :
279 :
280 :
281 : x.antennaType = antennaType;
282 :
283 :
284 :
285 :
286 :
287 :
288 :
289 :
290 :
291 :
292 : x.dishDiameter = dishDiameter.toIDLLength();
293 :
294 :
295 :
296 :
297 :
298 :
299 :
300 :
301 :
302 : x.position.length(position.size());
303 : for (unsigned int i = 0; i < position.size(); ++i) {
304 :
305 : x.position[i] = position.at(i).toIDLLength();
306 :
307 : }
308 :
309 :
310 :
311 :
312 :
313 :
314 :
315 :
316 :
317 : x.offset.length(offset.size());
318 : for (unsigned int i = 0; i < offset.size(); ++i) {
319 :
320 : x.offset[i] = offset.at(i).toIDLLength();
321 :
322 : }
323 :
324 :
325 :
326 :
327 :
328 :
329 :
330 :
331 :
332 : x.time = time.toIDLArrayTime();
333 :
334 :
335 :
336 :
337 :
338 :
339 :
340 :
341 :
342 :
343 :
344 : x.assocAntennaIdExists = assocAntennaIdExists;
345 :
346 :
347 :
348 :
349 : x.assocAntennaId = assocAntennaId.toIDLTag();
350 :
351 :
352 :
353 :
354 :
355 :
356 :
357 :
358 :
359 :
360 : x.stationId = stationId.toIDLTag();
361 :
362 :
363 :
364 :
365 :
366 :
367 :
368 :
369 :
370 :
371 :
372 : }
373 : #endif
374 :
375 :
376 : #ifndef WITHOUT_ACS
377 : /**
378 : * Fill the values of this row from the IDL struct AntennaRowIDL.
379 : * @param x The IDL struct containing the values used to fill this row.
380 : */
381 : void AntennaRow::setFromIDL (AntennaRowIDL x){
382 : try {
383 : // Fill the values from x.
384 :
385 :
386 :
387 :
388 :
389 :
390 : setAntennaId(Tag (x.antennaId));
391 :
392 :
393 :
394 :
395 :
396 :
397 :
398 :
399 :
400 : setName(string (x.name));
401 :
402 :
403 :
404 :
405 :
406 :
407 :
408 :
409 :
410 : setAntennaMake(x.antennaMake);
411 :
412 :
413 :
414 :
415 :
416 :
417 :
418 :
419 :
420 : setAntennaType(x.antennaType);
421 :
422 :
423 :
424 :
425 :
426 :
427 :
428 :
429 :
430 : setDishDiameter(Length (x.dishDiameter));
431 :
432 :
433 :
434 :
435 :
436 :
437 :
438 :
439 :
440 : position .clear();
441 : for (unsigned int i = 0; i <x.position.length(); ++i) {
442 :
443 : position.push_back(Length (x.position[i]));
444 :
445 : }
446 :
447 :
448 :
449 :
450 :
451 :
452 :
453 :
454 :
455 : offset .clear();
456 : for (unsigned int i = 0; i <x.offset.length(); ++i) {
457 :
458 : offset.push_back(Length (x.offset[i]));
459 :
460 : }
461 :
462 :
463 :
464 :
465 :
466 :
467 :
468 :
469 :
470 : setTime(ArrayTime (x.time));
471 :
472 :
473 :
474 :
475 :
476 :
477 :
478 :
479 :
480 :
481 : assocAntennaIdExists = x.assocAntennaIdExists;
482 : if (x.assocAntennaIdExists) {
483 :
484 :
485 :
486 : setAssocAntennaId(Tag (x.assocAntennaId));
487 :
488 :
489 :
490 : }
491 :
492 :
493 :
494 :
495 :
496 :
497 :
498 : setStationId(Tag (x.stationId));
499 :
500 :
501 :
502 :
503 :
504 :
505 :
506 :
507 :
508 :
509 :
510 : } catch (const IllegalAccessException &err) {
511 : throw ConversionException (err.getMessage(),"Antenna");
512 : }
513 : }
514 : #endif
515 :
516 : /**
517 : * Return this row in the form of an XML string.
518 : * @return The values of this row as an XML string.
519 : */
520 251 : string AntennaRow::toXML() const {
521 251 : string buf;
522 251 : buf.append("<row> \n");
523 :
524 :
525 :
526 :
527 :
528 :
529 251 : Parser::toXML(antennaId, "antennaId", buf);
530 :
531 :
532 :
533 :
534 :
535 :
536 :
537 251 : Parser::toXML(name, "name", buf);
538 :
539 :
540 :
541 :
542 :
543 :
544 :
545 251 : buf.append(EnumerationParser::toXML("antennaMake", antennaMake));
546 :
547 :
548 :
549 :
550 :
551 :
552 :
553 251 : buf.append(EnumerationParser::toXML("antennaType", antennaType));
554 :
555 :
556 :
557 :
558 :
559 :
560 :
561 251 : Parser::toXML(dishDiameter, "dishDiameter", buf);
562 :
563 :
564 :
565 :
566 :
567 :
568 :
569 251 : Parser::toXML(position, "position", buf);
570 :
571 :
572 :
573 :
574 :
575 :
576 :
577 251 : Parser::toXML(offset, "offset", buf);
578 :
579 :
580 :
581 :
582 :
583 :
584 :
585 251 : Parser::toXML(time, "time", buf);
586 :
587 :
588 :
589 :
590 :
591 :
592 :
593 :
594 :
595 251 : if (assocAntennaIdExists) {
596 :
597 :
598 0 : Parser::toXML(assocAntennaId, "assocAntennaId", buf);
599 :
600 :
601 : }
602 :
603 :
604 :
605 :
606 :
607 :
608 251 : Parser::toXML(stationId, "stationId", buf);
609 :
610 :
611 :
612 :
613 :
614 :
615 :
616 :
617 :
618 :
619 :
620 251 : buf.append("</row>\n");
621 251 : return buf;
622 0 : }
623 :
624 : /**
625 : * Fill the values of this row from an XML string
626 : * that was produced by the toXML() method.
627 : * @param x The XML string being used to set the values of this row.
628 : */
629 1794 : void AntennaRow::setFromXML (string rowDoc) {
630 1794 : Parser row(rowDoc);
631 1794 : string s = "";
632 : try {
633 :
634 :
635 :
636 :
637 :
638 1794 : setAntennaId(Parser::getTag("antennaId","Antenna",rowDoc));
639 :
640 :
641 :
642 :
643 :
644 :
645 :
646 1794 : setName(Parser::getString("name","Antenna",rowDoc));
647 :
648 :
649 :
650 :
651 :
652 :
653 :
654 :
655 1794 : antennaMake = EnumerationParser::getAntennaMake("antennaMake","Antenna",rowDoc);
656 :
657 :
658 :
659 :
660 :
661 :
662 :
663 :
664 :
665 1794 : antennaType = EnumerationParser::getAntennaType("antennaType","Antenna",rowDoc);
666 :
667 :
668 :
669 :
670 :
671 :
672 :
673 :
674 1794 : setDishDiameter(Parser::getLength("dishDiameter","Antenna",rowDoc));
675 :
676 :
677 :
678 :
679 :
680 :
681 :
682 :
683 1794 : setPosition(Parser::get1DLength("position","Antenna",rowDoc));
684 :
685 :
686 :
687 :
688 :
689 :
690 :
691 :
692 :
693 1794 : setOffset(Parser::get1DLength("offset","Antenna",rowDoc));
694 :
695 :
696 :
697 :
698 :
699 :
700 :
701 :
702 1794 : setTime(Parser::getArrayTime("time","Antenna",rowDoc));
703 :
704 :
705 :
706 :
707 :
708 :
709 :
710 :
711 :
712 1794 : if (row.isStr("<assocAntennaId>")) {
713 :
714 0 : setAssocAntennaId(Parser::getTag("assocAntennaId","Antenna",rowDoc));
715 :
716 : }
717 :
718 :
719 :
720 :
721 :
722 :
723 1794 : setStationId(Parser::getTag("stationId","Antenna",rowDoc));
724 :
725 :
726 :
727 :
728 :
729 :
730 :
731 :
732 :
733 :
734 0 : } catch (const IllegalAccessException &err) {
735 0 : throw ConversionException (err.getMessage(),"Antenna");
736 0 : }
737 1794 : }
738 :
739 0 : void AntennaRow::toBin(EndianOSStream& eoss) {
740 :
741 :
742 :
743 :
744 :
745 0 : antennaId.toBin(eoss);
746 :
747 :
748 :
749 :
750 :
751 :
752 :
753 0 : eoss.writeString(name);
754 :
755 :
756 :
757 :
758 :
759 :
760 :
761 :
762 0 : eoss.writeString(CAntennaMake::name(antennaMake));
763 : /* eoss.writeInt(antennaMake); */
764 :
765 :
766 :
767 :
768 :
769 :
770 :
771 :
772 0 : eoss.writeString(CAntennaType::name(antennaType));
773 : /* eoss.writeInt(antennaType); */
774 :
775 :
776 :
777 :
778 :
779 :
780 :
781 0 : dishDiameter.toBin(eoss);
782 :
783 :
784 :
785 :
786 :
787 :
788 0 : Length::toBin(position, eoss);
789 :
790 :
791 :
792 :
793 :
794 :
795 0 : Length::toBin(offset, eoss);
796 :
797 :
798 :
799 :
800 :
801 :
802 0 : time.toBin(eoss);
803 :
804 :
805 :
806 :
807 :
808 :
809 0 : stationId.toBin(eoss);
810 :
811 :
812 :
813 :
814 :
815 :
816 0 : eoss.writeBoolean(assocAntennaIdExists);
817 0 : if (assocAntennaIdExists) {
818 :
819 :
820 :
821 :
822 0 : assocAntennaId.toBin(eoss);
823 :
824 :
825 :
826 : }
827 :
828 0 : }
829 :
830 0 : void AntennaRow::antennaIdFromBin(EndianIStream& eis) {
831 :
832 :
833 :
834 :
835 0 : antennaId = Tag::fromBin(eis);
836 :
837 :
838 :
839 0 : }
840 0 : void AntennaRow::nameFromBin(EndianIStream& eis) {
841 :
842 :
843 :
844 :
845 :
846 0 : name = eis.readString();
847 :
848 :
849 :
850 :
851 0 : }
852 0 : void AntennaRow::antennaMakeFromBin(EndianIStream& eis) {
853 :
854 :
855 :
856 :
857 :
858 0 : antennaMake = CAntennaMake::literal(eis.readString());
859 :
860 :
861 :
862 :
863 0 : }
864 0 : void AntennaRow::antennaTypeFromBin(EndianIStream& eis) {
865 :
866 :
867 :
868 :
869 :
870 0 : antennaType = CAntennaType::literal(eis.readString());
871 :
872 :
873 :
874 :
875 0 : }
876 0 : void AntennaRow::dishDiameterFromBin(EndianIStream& eis) {
877 :
878 :
879 :
880 :
881 0 : dishDiameter = Length::fromBin(eis);
882 :
883 :
884 :
885 0 : }
886 0 : void AntennaRow::positionFromBin(EndianIStream& eis) {
887 :
888 :
889 :
890 :
891 :
892 :
893 0 : position = Length::from1DBin(eis);
894 :
895 :
896 :
897 :
898 :
899 0 : }
900 0 : void AntennaRow::offsetFromBin(EndianIStream& eis) {
901 :
902 :
903 :
904 :
905 :
906 :
907 0 : offset = Length::from1DBin(eis);
908 :
909 :
910 :
911 :
912 :
913 0 : }
914 0 : void AntennaRow::timeFromBin(EndianIStream& eis) {
915 :
916 :
917 :
918 :
919 0 : time = ArrayTime::fromBin(eis);
920 :
921 :
922 :
923 0 : }
924 0 : void AntennaRow::stationIdFromBin(EndianIStream& eis) {
925 :
926 :
927 :
928 :
929 0 : stationId = Tag::fromBin(eis);
930 :
931 :
932 :
933 0 : }
934 :
935 0 : void AntennaRow::assocAntennaIdFromBin(EndianIStream& eis) {
936 :
937 0 : assocAntennaIdExists = eis.readBoolean();
938 0 : if (assocAntennaIdExists) {
939 :
940 :
941 :
942 :
943 0 : assocAntennaId = Tag::fromBin(eis);
944 :
945 :
946 :
947 : }
948 :
949 0 : }
950 :
951 :
952 0 : AntennaRow* AntennaRow::fromBin(EndianIStream& eis, AntennaTable& table, const vector<string>& attributesSeq) {
953 0 : AntennaRow* row = new AntennaRow(table);
954 :
955 0 : map<string, AntennaAttributeFromBin>::iterator iter ;
956 0 : for (unsigned int i = 0; i < attributesSeq.size(); i++) {
957 0 : iter = row->fromBinMethods.find(attributesSeq.at(i));
958 0 : if (iter != row->fromBinMethods.end()) {
959 0 : (row->*(row->fromBinMethods[ attributesSeq.at(i) ] ))(eis);
960 : }
961 : else {
962 0 : BinaryAttributeReaderFunctor* functorP = table.getUnknownAttributeBinaryReader(attributesSeq.at(i));
963 0 : if (functorP)
964 0 : (*functorP)(eis);
965 : else
966 0 : throw ConversionException("There is not method to read an attribute '"+attributesSeq.at(i)+"'.", "AntennaTable");
967 : }
968 :
969 : }
970 0 : return row;
971 : }
972 :
973 : //
974 : // A collection of methods to set the value of the attributes from their textual value in the XML representation
975 : // of one row.
976 : //
977 :
978 : // Convert a string into an Tag
979 0 : void AntennaRow::antennaIdFromText(const string & s) {
980 :
981 :
982 0 : antennaId = ASDMValuesParser::parse<Tag>(s);
983 :
984 :
985 0 : }
986 :
987 :
988 : // Convert a string into an String
989 0 : void AntennaRow::nameFromText(const string & s) {
990 :
991 :
992 0 : name = ASDMValuesParser::parse<string>(s);
993 :
994 :
995 0 : }
996 :
997 :
998 : // Convert a string into an AntennaMake
999 0 : void AntennaRow::antennaMakeFromText(const string & s) {
1000 :
1001 :
1002 0 : antennaMake = ASDMValuesParser::parse<AntennaMakeMod::AntennaMake>(s);
1003 :
1004 :
1005 0 : }
1006 :
1007 :
1008 : // Convert a string into an AntennaType
1009 0 : void AntennaRow::antennaTypeFromText(const string & s) {
1010 :
1011 :
1012 0 : antennaType = ASDMValuesParser::parse<AntennaTypeMod::AntennaType>(s);
1013 :
1014 :
1015 0 : }
1016 :
1017 :
1018 : // Convert a string into an Length
1019 0 : void AntennaRow::dishDiameterFromText(const string & s) {
1020 :
1021 :
1022 0 : dishDiameter = ASDMValuesParser::parse<Length>(s);
1023 :
1024 :
1025 0 : }
1026 :
1027 :
1028 : // Convert a string into an Length
1029 0 : void AntennaRow::positionFromText(const string & s) {
1030 :
1031 :
1032 0 : position = ASDMValuesParser::parse1D<Length>(s);
1033 :
1034 :
1035 0 : }
1036 :
1037 :
1038 : // Convert a string into an Length
1039 0 : void AntennaRow::offsetFromText(const string & s) {
1040 :
1041 :
1042 0 : offset = ASDMValuesParser::parse1D<Length>(s);
1043 :
1044 :
1045 0 : }
1046 :
1047 :
1048 : // Convert a string into an ArrayTime
1049 0 : void AntennaRow::timeFromText(const string & s) {
1050 :
1051 :
1052 0 : time = ASDMValuesParser::parse<ArrayTime>(s);
1053 :
1054 :
1055 0 : }
1056 :
1057 :
1058 : // Convert a string into an Tag
1059 0 : void AntennaRow::stationIdFromText(const string & s) {
1060 :
1061 :
1062 0 : stationId = ASDMValuesParser::parse<Tag>(s);
1063 :
1064 :
1065 0 : }
1066 :
1067 :
1068 :
1069 : // Convert a string into an Tag
1070 0 : void AntennaRow::assocAntennaIdFromText(const string & s) {
1071 0 : assocAntennaIdExists = true;
1072 :
1073 :
1074 0 : assocAntennaId = ASDMValuesParser::parse<Tag>(s);
1075 :
1076 :
1077 0 : }
1078 :
1079 :
1080 :
1081 0 : void AntennaRow::fromText(const std::string& attributeName, const std::string& t) {
1082 0 : map<string, AntennaAttributeFromText>::iterator iter;
1083 0 : if ((iter = fromTextMethods.find(attributeName)) == fromTextMethods.end())
1084 0 : throw ConversionException("I do not know what to do with '"+attributeName+"' and its content '"+t+"' (while parsing an XML document)", "AntennaTable");
1085 0 : (this->*(iter->second))(t);
1086 0 : }
1087 :
1088 : ////////////////////////////////////////////////
1089 : // Intrinsic Table Attributes getters/setters //
1090 : ////////////////////////////////////////////////
1091 :
1092 :
1093 :
1094 :
1095 : /**
1096 : * Get antennaId.
1097 : * @return antennaId as Tag
1098 : */
1099 4614 : Tag AntennaRow::getAntennaId() const {
1100 :
1101 4614 : return antennaId;
1102 : }
1103 :
1104 : /**
1105 : * Set antennaId with the specified Tag.
1106 : * @param antennaId The Tag value to which antennaId is to be set.
1107 :
1108 :
1109 :
1110 : * @throw IllegalAccessException If an attempt is made to change this field after is has been added to the table.
1111 :
1112 : */
1113 2053 : void AntennaRow::setAntennaId (Tag antennaId) {
1114 :
1115 :
1116 2053 : if (hasBeenAdded) {
1117 :
1118 0 : throw IllegalAccessException("antennaId", "Antenna");
1119 :
1120 : }
1121 :
1122 2053 : this->antennaId = antennaId;
1123 :
1124 2053 : }
1125 :
1126 :
1127 :
1128 :
1129 :
1130 :
1131 : /**
1132 : * Get name.
1133 : * @return name as std::string
1134 : */
1135 2053 : std::string AntennaRow::getName() const {
1136 :
1137 2053 : return name;
1138 : }
1139 :
1140 : /**
1141 : * Set name with the specified std::string.
1142 : * @param name The std::string value to which name is to be set.
1143 :
1144 :
1145 :
1146 : */
1147 2053 : void AntennaRow::setName (std::string name) {
1148 :
1149 :
1150 2053 : if (hasBeenAdded) {
1151 :
1152 : }
1153 :
1154 2053 : this->name = name;
1155 :
1156 2053 : }
1157 :
1158 :
1159 :
1160 :
1161 :
1162 :
1163 : /**
1164 : * Get antennaMake.
1165 : * @return antennaMake as AntennaMakeMod::AntennaMake
1166 : */
1167 324 : AntennaMakeMod::AntennaMake AntennaRow::getAntennaMake() const {
1168 :
1169 324 : return antennaMake;
1170 : }
1171 :
1172 : /**
1173 : * Set antennaMake with the specified AntennaMakeMod::AntennaMake.
1174 : * @param antennaMake The AntennaMakeMod::AntennaMake value to which antennaMake is to be set.
1175 :
1176 :
1177 :
1178 : */
1179 259 : void AntennaRow::setAntennaMake (AntennaMakeMod::AntennaMake antennaMake) {
1180 :
1181 :
1182 259 : if (hasBeenAdded) {
1183 :
1184 : }
1185 :
1186 259 : this->antennaMake = antennaMake;
1187 :
1188 259 : }
1189 :
1190 :
1191 :
1192 :
1193 :
1194 :
1195 : /**
1196 : * Get antennaType.
1197 : * @return antennaType as AntennaTypeMod::AntennaType
1198 : */
1199 259 : AntennaTypeMod::AntennaType AntennaRow::getAntennaType() const {
1200 :
1201 259 : return antennaType;
1202 : }
1203 :
1204 : /**
1205 : * Set antennaType with the specified AntennaTypeMod::AntennaType.
1206 : * @param antennaType The AntennaTypeMod::AntennaType value to which antennaType is to be set.
1207 :
1208 :
1209 :
1210 : */
1211 259 : void AntennaRow::setAntennaType (AntennaTypeMod::AntennaType antennaType) {
1212 :
1213 :
1214 259 : if (hasBeenAdded) {
1215 :
1216 : }
1217 :
1218 259 : this->antennaType = antennaType;
1219 :
1220 259 : }
1221 :
1222 :
1223 :
1224 :
1225 :
1226 :
1227 : /**
1228 : * Get dishDiameter.
1229 : * @return dishDiameter as Length
1230 : */
1231 2053 : Length AntennaRow::getDishDiameter() const {
1232 :
1233 2053 : return dishDiameter;
1234 : }
1235 :
1236 : /**
1237 : * Set dishDiameter with the specified Length.
1238 : * @param dishDiameter The Length value to which dishDiameter is to be set.
1239 :
1240 :
1241 :
1242 : */
1243 2053 : void AntennaRow::setDishDiameter (Length dishDiameter) {
1244 :
1245 :
1246 2053 : if (hasBeenAdded) {
1247 :
1248 : }
1249 :
1250 2053 : this->dishDiameter = dishDiameter;
1251 :
1252 2053 : }
1253 :
1254 :
1255 :
1256 :
1257 :
1258 :
1259 : /**
1260 : * Get position.
1261 : * @return position as std::vector<Length >
1262 : */
1263 1988 : std::vector<Length > AntennaRow::getPosition() const {
1264 :
1265 1988 : return position;
1266 : }
1267 :
1268 : /**
1269 : * Set position with the specified std::vector<Length >.
1270 : * @param position The std::vector<Length > value to which position is to be set.
1271 :
1272 :
1273 :
1274 : */
1275 2053 : void AntennaRow::setPosition (std::vector<Length > position) {
1276 :
1277 :
1278 2053 : if (hasBeenAdded) {
1279 :
1280 : }
1281 :
1282 2053 : this->position = position;
1283 :
1284 2053 : }
1285 :
1286 :
1287 :
1288 :
1289 :
1290 :
1291 : /**
1292 : * Get offset.
1293 : * @return offset as std::vector<Length >
1294 : */
1295 3717 : std::vector<Length > AntennaRow::getOffset() const {
1296 :
1297 3717 : return offset;
1298 : }
1299 :
1300 : /**
1301 : * Set offset with the specified std::vector<Length >.
1302 : * @param offset The std::vector<Length > value to which offset is to be set.
1303 :
1304 :
1305 :
1306 : */
1307 2053 : void AntennaRow::setOffset (std::vector<Length > offset) {
1308 :
1309 :
1310 2053 : if (hasBeenAdded) {
1311 :
1312 : }
1313 :
1314 2053 : this->offset = offset;
1315 :
1316 2053 : }
1317 :
1318 :
1319 :
1320 :
1321 :
1322 :
1323 : /**
1324 : * Get time.
1325 : * @return time as ArrayTime
1326 : */
1327 259 : ArrayTime AntennaRow::getTime() const {
1328 :
1329 259 : return time;
1330 : }
1331 :
1332 : /**
1333 : * Set time with the specified ArrayTime.
1334 : * @param time The ArrayTime value to which time is to be set.
1335 :
1336 :
1337 :
1338 : */
1339 2053 : void AntennaRow::setTime (ArrayTime time) {
1340 :
1341 :
1342 2053 : if (hasBeenAdded) {
1343 :
1344 : }
1345 :
1346 2053 : this->time = time;
1347 :
1348 2053 : }
1349 :
1350 :
1351 :
1352 :
1353 : ///////////////////////////////////////////////
1354 : // Extrinsic Table Attributes getters/setters//
1355 : ///////////////////////////////////////////////
1356 :
1357 :
1358 : /**
1359 : * The attribute assocAntennaId is optional. Return true if this attribute exists.
1360 : * @return true if and only if the assocAntennaId attribute exists.
1361 : */
1362 0 : bool AntennaRow::isAssocAntennaIdExists() const {
1363 0 : return assocAntennaIdExists;
1364 : }
1365 :
1366 :
1367 :
1368 : /**
1369 : * Get assocAntennaId, which is optional.
1370 : * @return assocAntennaId as Tag
1371 : * @throw IllegalAccessException If assocAntennaId does not exist.
1372 : */
1373 0 : Tag AntennaRow::getAssocAntennaId() const {
1374 0 : if (!assocAntennaIdExists) {
1375 0 : throw IllegalAccessException("assocAntennaId", "Antenna");
1376 : }
1377 :
1378 0 : return assocAntennaId;
1379 : }
1380 :
1381 : /**
1382 : * Set assocAntennaId with the specified Tag.
1383 : * @param assocAntennaId The Tag value to which assocAntennaId is to be set.
1384 :
1385 :
1386 : */
1387 0 : void AntennaRow::setAssocAntennaId (Tag assocAntennaId) {
1388 :
1389 0 : this->assocAntennaId = assocAntennaId;
1390 :
1391 0 : assocAntennaIdExists = true;
1392 :
1393 0 : }
1394 :
1395 :
1396 : /**
1397 : * Mark assocAntennaId, which is an optional field, as non-existent.
1398 : */
1399 0 : void AntennaRow::clearAssocAntennaId () {
1400 0 : assocAntennaIdExists = false;
1401 0 : }
1402 :
1403 :
1404 :
1405 :
1406 :
1407 : /**
1408 : * Get stationId.
1409 : * @return stationId as Tag
1410 : */
1411 324 : Tag AntennaRow::getStationId() const {
1412 :
1413 324 : return stationId;
1414 : }
1415 :
1416 : /**
1417 : * Set stationId with the specified Tag.
1418 : * @param stationId The Tag value to which stationId is to be set.
1419 :
1420 :
1421 :
1422 : */
1423 2053 : void AntennaRow::setStationId (Tag stationId) {
1424 :
1425 :
1426 2053 : if (hasBeenAdded) {
1427 :
1428 : }
1429 :
1430 2053 : this->stationId = stationId;
1431 :
1432 2053 : }
1433 :
1434 :
1435 :
1436 :
1437 : //////////////////////////////////////
1438 : // Links Attributes getters/setters //
1439 : //////////////////////////////////////
1440 :
1441 :
1442 :
1443 :
1444 :
1445 :
1446 :
1447 : // ===> Optional link from a row of Antenna table to a row of Antenna table.
1448 :
1449 : /**
1450 : * The link to table Antenna is optional. Return true if this link exists.
1451 : * @return true if and only if the Antenna link exists.
1452 : */
1453 0 : bool AntennaRow::isAssociatedAntennaExists() const {
1454 0 : return assocAntennaIdExists;
1455 : }
1456 :
1457 : /**
1458 : * Get the optional row in table Antenna by traversing the defined link to that table.
1459 : * @return A row in Antenna table.
1460 : * @throws NoSuchRow if there is no such row in table Antenna or the link does not exist.
1461 : */
1462 0 : AntennaRow *AntennaRow::getAssociatedAntenna() const {
1463 :
1464 0 : if (!assocAntennaIdExists) {
1465 0 : throw NoSuchRow("Antenna","Antenna",true);
1466 : }
1467 :
1468 0 : return table.getContainer().getAntenna().getRowByKey( antennaId );
1469 : }
1470 :
1471 : /**
1472 : * Set the values of the link attributes needed to link this row to a row in table Antenna.
1473 : */
1474 0 : void AntennaRow::setAssociatedAntennaLink(Tag assocAntennaId) {
1475 :
1476 0 : this->assocAntennaId = assocAntennaId;
1477 0 : assocAntennaIdExists = true;
1478 :
1479 0 : }
1480 :
1481 :
1482 :
1483 :
1484 :
1485 :
1486 :
1487 :
1488 :
1489 :
1490 :
1491 :
1492 : /**
1493 : * Returns the pointer to the row in the Station table having Station.stationId == stationId
1494 : * @return a StationRow*
1495 : *
1496 :
1497 : */
1498 5187 : StationRow* AntennaRow::getStationUsingStationId() {
1499 :
1500 5187 : return table.getContainer().getStation().getRowByKey(stationId);
1501 : }
1502 :
1503 :
1504 :
1505 :
1506 :
1507 : /**
1508 : * Create a AntennaRow.
1509 : * <p>
1510 : * This constructor is private because only the
1511 : * table can create rows. All rows know the table
1512 : * to which they belong.
1513 : * @param table The table to which this row belongs.
1514 : */
1515 2053 : AntennaRow::AntennaRow (AntennaTable &t) : table(t) {
1516 2053 : hasBeenAdded = false;
1517 :
1518 :
1519 :
1520 :
1521 :
1522 :
1523 :
1524 :
1525 :
1526 :
1527 :
1528 :
1529 :
1530 :
1531 :
1532 :
1533 :
1534 :
1535 :
1536 :
1537 2053 : assocAntennaIdExists = false;
1538 :
1539 :
1540 :
1541 :
1542 :
1543 :
1544 :
1545 :
1546 :
1547 :
1548 :
1549 :
1550 : // This attribute is scalar and has an enumeration type. Let's initialize it to some valid value (the 1st of the enumeration).
1551 2053 : antennaMake = CAntennaMake::from_int(0);
1552 :
1553 :
1554 :
1555 : // This attribute is scalar and has an enumeration type. Let's initialize it to some valid value (the 1st of the enumeration).
1556 2053 : antennaType = CAntennaType::from_int(0);
1557 :
1558 :
1559 :
1560 :
1561 :
1562 :
1563 :
1564 :
1565 :
1566 :
1567 :
1568 :
1569 2053 : fromBinMethods["antennaId"] = &AntennaRow::antennaIdFromBin;
1570 2053 : fromBinMethods["name"] = &AntennaRow::nameFromBin;
1571 2053 : fromBinMethods["antennaMake"] = &AntennaRow::antennaMakeFromBin;
1572 2053 : fromBinMethods["antennaType"] = &AntennaRow::antennaTypeFromBin;
1573 2053 : fromBinMethods["dishDiameter"] = &AntennaRow::dishDiameterFromBin;
1574 2053 : fromBinMethods["position"] = &AntennaRow::positionFromBin;
1575 2053 : fromBinMethods["offset"] = &AntennaRow::offsetFromBin;
1576 2053 : fromBinMethods["time"] = &AntennaRow::timeFromBin;
1577 2053 : fromBinMethods["stationId"] = &AntennaRow::stationIdFromBin;
1578 :
1579 :
1580 2053 : fromBinMethods["assocAntennaId"] = &AntennaRow::assocAntennaIdFromBin;
1581 :
1582 :
1583 :
1584 :
1585 :
1586 2053 : fromTextMethods["antennaId"] = &AntennaRow::antennaIdFromText;
1587 :
1588 :
1589 :
1590 2053 : fromTextMethods["name"] = &AntennaRow::nameFromText;
1591 :
1592 :
1593 :
1594 2053 : fromTextMethods["antennaMake"] = &AntennaRow::antennaMakeFromText;
1595 :
1596 :
1597 :
1598 2053 : fromTextMethods["antennaType"] = &AntennaRow::antennaTypeFromText;
1599 :
1600 :
1601 :
1602 2053 : fromTextMethods["dishDiameter"] = &AntennaRow::dishDiameterFromText;
1603 :
1604 :
1605 :
1606 2053 : fromTextMethods["position"] = &AntennaRow::positionFromText;
1607 :
1608 :
1609 :
1610 2053 : fromTextMethods["offset"] = &AntennaRow::offsetFromText;
1611 :
1612 :
1613 :
1614 2053 : fromTextMethods["time"] = &AntennaRow::timeFromText;
1615 :
1616 :
1617 :
1618 2053 : fromTextMethods["stationId"] = &AntennaRow::stationIdFromText;
1619 :
1620 :
1621 :
1622 :
1623 :
1624 2053 : fromTextMethods["assocAntennaId"] = &AntennaRow::assocAntennaIdFromText;
1625 :
1626 :
1627 2053 : }
1628 :
1629 0 : AntennaRow::AntennaRow (AntennaTable &t, AntennaRow *row) : table(t) {
1630 0 : hasBeenAdded = false;
1631 :
1632 0 : if (row == 0) {
1633 :
1634 :
1635 :
1636 :
1637 :
1638 :
1639 :
1640 :
1641 :
1642 :
1643 :
1644 :
1645 :
1646 :
1647 :
1648 :
1649 :
1650 :
1651 :
1652 :
1653 0 : assocAntennaIdExists = false;
1654 :
1655 :
1656 :
1657 :
1658 : }
1659 : else {
1660 :
1661 :
1662 0 : antennaId = row->antennaId;
1663 :
1664 :
1665 :
1666 :
1667 0 : name = row->name;
1668 :
1669 0 : antennaMake = row->antennaMake;
1670 :
1671 0 : antennaType = row->antennaType;
1672 :
1673 0 : dishDiameter = row->dishDiameter;
1674 :
1675 0 : position = row->position;
1676 :
1677 0 : offset = row->offset;
1678 :
1679 0 : time = row->time;
1680 :
1681 0 : stationId = row->stationId;
1682 :
1683 :
1684 :
1685 :
1686 0 : if (row->assocAntennaIdExists) {
1687 0 : assocAntennaId = row->assocAntennaId;
1688 0 : assocAntennaIdExists = true;
1689 : }
1690 : else
1691 0 : assocAntennaIdExists = false;
1692 :
1693 : }
1694 :
1695 0 : fromBinMethods["antennaId"] = &AntennaRow::antennaIdFromBin;
1696 0 : fromBinMethods["name"] = &AntennaRow::nameFromBin;
1697 0 : fromBinMethods["antennaMake"] = &AntennaRow::antennaMakeFromBin;
1698 0 : fromBinMethods["antennaType"] = &AntennaRow::antennaTypeFromBin;
1699 0 : fromBinMethods["dishDiameter"] = &AntennaRow::dishDiameterFromBin;
1700 0 : fromBinMethods["position"] = &AntennaRow::positionFromBin;
1701 0 : fromBinMethods["offset"] = &AntennaRow::offsetFromBin;
1702 0 : fromBinMethods["time"] = &AntennaRow::timeFromBin;
1703 0 : fromBinMethods["stationId"] = &AntennaRow::stationIdFromBin;
1704 :
1705 :
1706 0 : fromBinMethods["assocAntennaId"] = &AntennaRow::assocAntennaIdFromBin;
1707 :
1708 0 : }
1709 :
1710 :
1711 3540 : bool AntennaRow::compareNoAutoInc(std::string name, AntennaMakeMod::AntennaMake antennaMake, AntennaTypeMod::AntennaType antennaType, Length dishDiameter, std::vector<Length > position, std::vector<Length > offset, ArrayTime time, Tag stationId) {
1712 : bool result;
1713 3540 : result = true;
1714 :
1715 :
1716 :
1717 3540 : result = result && (this->name == name);
1718 :
1719 3540 : if (!result) return false;
1720 :
1721 :
1722 :
1723 :
1724 0 : result = result && (this->antennaMake == antennaMake);
1725 :
1726 0 : if (!result) return false;
1727 :
1728 :
1729 :
1730 :
1731 0 : result = result && (this->antennaType == antennaType);
1732 :
1733 0 : if (!result) return false;
1734 :
1735 :
1736 :
1737 :
1738 0 : result = result && (this->dishDiameter == dishDiameter);
1739 :
1740 0 : if (!result) return false;
1741 :
1742 :
1743 :
1744 :
1745 0 : result = result && (this->position == position);
1746 :
1747 0 : if (!result) return false;
1748 :
1749 :
1750 :
1751 :
1752 0 : result = result && (this->offset == offset);
1753 :
1754 0 : if (!result) return false;
1755 :
1756 :
1757 :
1758 :
1759 0 : result = result && (this->time == time);
1760 :
1761 0 : if (!result) return false;
1762 :
1763 :
1764 :
1765 :
1766 0 : result = result && (this->stationId == stationId);
1767 :
1768 0 : if (!result) return false;
1769 :
1770 :
1771 0 : return result;
1772 : }
1773 :
1774 :
1775 :
1776 0 : bool AntennaRow::compareRequiredValue(std::string name, AntennaMakeMod::AntennaMake antennaMake, AntennaTypeMod::AntennaType antennaType, Length dishDiameter, std::vector<Length > position, std::vector<Length > offset, ArrayTime time, Tag stationId) {
1777 : bool result;
1778 0 : result = true;
1779 :
1780 :
1781 0 : if (!(this->name == name)) return false;
1782 :
1783 :
1784 :
1785 0 : if (!(this->antennaMake == antennaMake)) return false;
1786 :
1787 :
1788 :
1789 0 : if (!(this->antennaType == antennaType)) return false;
1790 :
1791 :
1792 :
1793 0 : if (!(this->dishDiameter == dishDiameter)) return false;
1794 :
1795 :
1796 :
1797 0 : if (!(this->position == position)) return false;
1798 :
1799 :
1800 :
1801 0 : if (!(this->offset == offset)) return false;
1802 :
1803 :
1804 :
1805 0 : if (!(this->time == time)) return false;
1806 :
1807 :
1808 :
1809 0 : if (!(this->stationId == stationId)) return false;
1810 :
1811 :
1812 0 : return result;
1813 : }
1814 :
1815 :
1816 : /**
1817 : * Return true if all required attributes of the value part are equal to their homologues
1818 : * in x and false otherwise.
1819 : *
1820 :
1821 : * @param x a pointer on the AntennaRow whose required attributes of the value part
1822 :
1823 : * will be compared with those of this.
1824 : * @return a boolean.
1825 : */
1826 0 : bool AntennaRow::equalByRequiredValue(AntennaRow* x ) {
1827 :
1828 :
1829 0 : if (this->name != x->name) return false;
1830 :
1831 0 : if (this->antennaMake != x->antennaMake) return false;
1832 :
1833 0 : if (this->antennaType != x->antennaType) return false;
1834 :
1835 0 : if (this->dishDiameter != x->dishDiameter) return false;
1836 :
1837 0 : if (this->position != x->position) return false;
1838 :
1839 0 : if (this->offset != x->offset) return false;
1840 :
1841 0 : if (this->time != x->time) return false;
1842 :
1843 0 : if (this->stationId != x->stationId) return false;
1844 :
1845 :
1846 0 : return true;
1847 : }
1848 :
1849 : /*
1850 : map<string, AntennaAttributeFromBin> AntennaRow::initFromBinMethods() {
1851 : map<string, AntennaAttributeFromBin> result;
1852 :
1853 : result["antennaId"] = &AntennaRow::antennaIdFromBin;
1854 : result["name"] = &AntennaRow::nameFromBin;
1855 : result["antennaMake"] = &AntennaRow::antennaMakeFromBin;
1856 : result["antennaType"] = &AntennaRow::antennaTypeFromBin;
1857 : result["dishDiameter"] = &AntennaRow::dishDiameterFromBin;
1858 : result["position"] = &AntennaRow::positionFromBin;
1859 : result["offset"] = &AntennaRow::offsetFromBin;
1860 : result["time"] = &AntennaRow::timeFromBin;
1861 : result["stationId"] = &AntennaRow::stationIdFromBin;
1862 :
1863 :
1864 : result["assocAntennaId"] = &AntennaRow::assocAntennaIdFromBin;
1865 :
1866 :
1867 : return result;
1868 : }
1869 : */
1870 : } // End namespace asdm
1871 :
|