source: mauRepo/CedaMolesModel/trunk/ceda_moles_model/ea_model/iso_19130_sensor_data/ground_control/sd_gcpcollection.py @ 8457

Subversion URL: http://proj.badc.rl.ac.uk/svn/ndg/mauRepo/CedaMolesModel/trunk/ceda_moles_model/ea_model/iso_19130_sensor_data/ground_control/sd_gcpcollection.py@8457
Revision 8457, 4.0 KB checked in by mnagni, 7 years ago (diff)

Corrected an error in the generation of the classes "synchronize" method.

  • Property svn:mime-type set to text/plain
Line 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21from ea_model.iso_19130_sensor_data.sd_geolocationinformation import  SD_GeolocationInformation
22from ascore.utils import has_value, collectionProofHash
23
24'''
25Created on 10-Jul-2012 14:15:10
26
27@author: mnagni
28'''
29
30class SD_GCPCollection(SD_GeolocationInformation):
31        '''
32                Represents a data entity defined in a UML diagram and supposed to
33                be persisted in a relational database.
34 
35                This class has been genererated automatically using the Apache Velocity project.
36        '''
37        '''
38                Please note that any access to the inner attributes should be done using
39                the given get/set methods and NOT accessing them directly.
40        '''
41        def __init__(self):
42                self._sd_geolocationinformation = SD_GeolocationInformation()   
43
44                self._coordinateReferenceSystem_sc_singlecrs = None
45                self._coordinateReferenceSystem_sc_compoundcrs = None
46                self._coordinateReferenceSystem = None
47                self.collectionName = None
48                self.collectionIdentification = None
49                self._gcp_sd_gcpregistry = []
50                self._gcp_sd_gcplibrary = []
51                self._gcp_sd_gcplocation = []
52                self._gcp_sd_gcpsurvey = []
53                self._gcp = []
54                super(SD_GCPCollection, self).__init__()
55        @property
56        def coordinateReferenceSystem(self):   
57                if(has_value(self._coordinateReferenceSystem_sc_singlecrs)):
58                        return self._coordinateReferenceSystem_sc_singlecrs
59                if(has_value(self._coordinateReferenceSystem_sc_compoundcrs)):
60                        return self._coordinateReferenceSystem_sc_compoundcrs
61                return  None
62
63        @coordinateReferenceSystem.setter
64        def coordinateReferenceSystem(self, value):     
65                valueClass = "%s.%s" % (type(value).__module__,type(value).__name__)
66                if valueClass == "ea_model.iso_19111_referencing_by_coordinates.coordinate_reference_systems.sc_singlecrs.SC_SingleCRS":
67                        self._coordinateReferenceSystem_sc_singlecrs = value
68                        self._coordinateReferenceSystem_sc_compoundcrs = None
69                if valueClass == "ea_model.iso_19111_referencing_by_coordinates.coordinate_reference_systems.sc_compoundcrs.SC_CompoundCRS":
70                        self._coordinateReferenceSystem_sc_compoundcrs = value
71                        self._coordinateReferenceSystem_sc_singlecrs = None
72        @property
73        def qualityInfo(self): 
74                return self._sd_geolocationinformation.qualityInfo
75
76        @qualityInfo.setter
77        def qualityInfo(self, value):   
78                        self._sd_geolocationinformation.qualityInfo = value
79        @property
80        def gcp(self): 
81                try:
82                        ret = []
83                        ret.extend(self._gcp_sd_gcpregistry)
84                        ret.extend(self._gcp_sd_gcplibrary)
85                        ret.extend(self._gcp_sd_gcplocation)
86                        ret.extend(self._gcp_sd_gcpsurvey)
87                        if not hasattr(self, '_gcp'):
88                                self._gcp = []
89                        if self._gcp is not None:
90                                ret.extend(self._gcp)
91                        del self._gcp[:]
92                        self._gcp.extend(set(ret))
93                except Exception as e:
94                        pass
95                return self._gcp
96
97
98        def synchronize(self):
99                int_gcp = self.gcp     
100                del self._gcp_sd_gcpregistry[:]
101                del self._gcp_sd_gcplibrary[:]
102                del self._gcp_sd_gcplocation[:]
103                del self._gcp_sd_gcpsurvey[:]
104                for item in int_gcp:   
105                        valueClass = "%s.%s" % (type(item).__module__,type(item).__name__)
106                        if valueClass == "ea_model.iso_19130_sensor_data.ground_control.sd_gcpregistry.SD_GCPRegistry":
107                                self._gcp_sd_gcpregistry.append(item)
108                                continue
109                        if valueClass == "ea_model.iso_19130_sensor_data.ground_control.sd_gcplibrary.SD_GCPLibrary":
110                                self._gcp_sd_gcplibrary.append(item)
111                                continue
112                        if valueClass == "ea_model.iso_19130_sensor_data.ground_control.sd_gcplocation.SD_GCPLocation":
113                                self._gcp_sd_gcplocation.append(item)
114                                continue
115                        if valueClass == "ea_model.iso_19130_sensor_data.ground_control.sd_gcpsurvey.SD_GCPSurvey":
116                                self._gcp_sd_gcpsurvey.append(item)
117                                continue
118                pass
119
120        def __key(self):
121                return (self.coordinateReferenceSystem, self.qualityInfo, self.collectionName, self.collectionIdentification, self.gcp)
122
123        def __eq__(self, y):
124                if type(self) != type(y):
125                        return False
126                '''
127                Cannot compare classes which do not define a "__key" attribute
128                '''
129                if hasattr(self, '_%s__key' % (type(self).__name__)) and hasattr(y, '_%s__key' % (type(y).__name__)):
130                        return self.__key() == y.__key()
131                return id(self) == id(y)
132
133        def __hash__(self):
134                return collectionProofHash(self.__key())
Note: See TracBrowser for help on using the repository browser.