source: mauRepo/CedaMolesModel/trunk/ceda_moles_model/ea_model/moles3_4/observation/mo_observation.py @ 8457

Subversion URL: http://proj.badc.rl.ac.uk/svn/ndg/mauRepo/CedaMolesModel/trunk/ceda_moles_model/ea_model/moles3_4/observation/mo_observation.py@8457
Revision 8457, 6.4 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_19156_2011_observations_and_measurements.observation_schema.observation.om_observation import  OM_Observation
22from ascore.utils import has_value, collectionProofHash
23
24'''
25Created on 10-Jul-2012 14:15:13
26
27@author: mnagni
28'''
29
30class MO_Observation(OM_Observation):
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._om_observation = OM_Observation()         
43
44                self.resolution = None
45                self._geographicExtent_ex_geographicdescription = []
46                self._geographicExtent_ex_geographicboundingbox = []
47                self._geographicExtent_ex_boundingpolygon = []
48                self._geographicExtent = []
49                self.procedure = None
50                self.relatedParty = []
51                self._permission_md_securityconstraints = None
52                self._permission_md_legalconstraints = None
53                self._permission = None
54                self.result = None
55                self.resultTime = None
56                self.verticalExtent = []
57                self.observedProperty = None
58                self.resultAccumulation = None
59                self.inSupportOf = None
60                self.metadata = None
61                self.publicationState = None
62                self.identifier = []
63                self.featureOfInterest = None
64                self.phenomenonTime = None
65                self.status = None
66                self.documentation = []
67                self.validTime = None
68                self.description = None
69                super(MO_Observation, self).__init__()
70        @property
71        def geographicExtent(self):     
72                try:
73                        ret = []
74                        ret.extend(self._geographicExtent_ex_geographicdescription)
75                        ret.extend(self._geographicExtent_ex_geographicboundingbox)
76                        ret.extend(self._geographicExtent_ex_boundingpolygon)
77                        if not hasattr(self, '_geographicExtent'):
78                                self._geographicExtent = []
79                        if self._geographicExtent is not None:
80                                ret.extend(self._geographicExtent)
81                        del self._geographicExtent[:]
82                        self._geographicExtent.extend(set(ret))
83                except Exception as e:
84                        pass
85                return self._geographicExtent
86
87        @property
88        def procedure(self):   
89                return self._om_observation.procedure
90
91        @procedure.setter
92        def procedure(self, value):     
93                        self._om_observation.procedure = value
94        @property
95        def permission(self):   
96                if(has_value(self._permission_md_securityconstraints)):
97                        return self._permission_md_securityconstraints
98                if(has_value(self._permission_md_legalconstraints)):
99                        return self._permission_md_legalconstraints
100                return  None
101
102        @permission.setter
103        def permission(self, value):   
104                valueClass = "%s.%s" % (type(value).__module__,type(value).__name__)
105                if valueClass == "ea_model.iso_19115_2006_metadata_corrigendum.constraint_information.md_securityconstraints.MD_SecurityConstraints":
106                        self._permission_md_securityconstraints = value
107                        self._permission_md_legalconstraints = None
108                if valueClass == "ea_model.iso_19115_2006_metadata_corrigendum.constraint_information.md_legalconstraints.MD_LegalConstraints":
109                        self._permission_md_legalconstraints = value
110                        self._permission_md_securityconstraints = None
111        @property
112        def resultTime(self):   
113                return self._om_observation.resultTime
114
115        @resultTime.setter
116        def resultTime(self, value):   
117                        self._om_observation.resultTime = value
118        @property
119        def observedProperty(self):     
120                return self._om_observation.observedProperty
121
122        @observedProperty.setter
123        def observedProperty(self, value):     
124                        self._om_observation.observedProperty = value
125        @property
126        def parameter(self):   
127                return self._om_observation.parameter
128
129        @parameter.setter
130        def parameter(self, value):     
131                        self._om_observation.parameter = value
132        @property
133        def metadata(self):     
134                return self._om_observation.metadata
135
136        @metadata.setter
137        def metadata(self, value):     
138                        self._om_observation.metadata = value
139        @property
140        def featureOfInterest(self):   
141                return self._om_observation.featureOfInterest
142
143        @featureOfInterest.setter
144        def featureOfInterest(self, value):     
145                        self._om_observation.featureOfInterest = value
146        @property
147        def relatedObservation(self):   
148                return self._om_observation.relatedObservation
149
150        @relatedObservation.setter
151        def relatedObservation(self, value):   
152                        self._om_observation.relatedObservation = value
153        @property
154        def phenomenonTime(self):       
155                return self._om_observation.phenomenonTime
156
157        @phenomenonTime.setter
158        def phenomenonTime(self, value):       
159                        self._om_observation.phenomenonTime = value
160        @property
161        def resultQuality(self):       
162                return self._om_observation.resultQuality
163
164        @resultQuality.setter
165        def resultQuality(self, value):
166                        self._om_observation.resultQuality = value
167        @property
168        def validTime(self):   
169                return self._om_observation.validTime
170
171        @validTime.setter
172        def validTime(self, value):     
173                        self._om_observation.validTime = value
174
175        def synchronize(self):
176                int_geographicExtent = self.geographicExtent   
177                del self._geographicExtent_ex_geographicdescription[:]
178                del self._geographicExtent_ex_geographicboundingbox[:]
179                del self._geographicExtent_ex_boundingpolygon[:]
180                for item in int_geographicExtent:       
181                        valueClass = "%s.%s" % (type(item).__module__,type(item).__name__)
182                        if valueClass == "ea_model.iso_19115_2006_metadata_corrigendum.extent_information.ex_geographicdescription.EX_GeographicDescription":
183                                self._geographicExtent_ex_geographicdescription.append(item)
184                                continue
185                        if valueClass == "ea_model.iso_19115_2006_metadata_corrigendum.extent_information.ex_geographicboundingbox.EX_GeographicBoundingBox":
186                                self._geographicExtent_ex_geographicboundingbox.append(item)
187                                continue
188                        if valueClass == "ea_model.iso_19115_2006_metadata_corrigendum.extent_information.ex_boundingpolygon.EX_BoundingPolygon":
189                                self._geographicExtent_ex_boundingpolygon.append(item)
190                                continue
191                pass
192
193        def __key(self):
194                return (self.resolution, self.geographicExtent, self.procedure, self.relatedParty, self.permission, self.result, self.resultTime, self.verticalExtent, self.observedProperty, self.resultAccumulation, self.parameter, self.inSupportOf, self.metadata, self.publicationState, self.identifier, self.featureOfInterest, self.relatedObservation, self.phenomenonTime, self.status, self.documentation, self.resultQuality, self.validTime, self.description)
195
196        def __eq__(self, y):
197                if type(self) != type(y):
198                        return False
199                '''
200                Cannot compare classes which do not define a "__key" attribute
201                '''
202                if hasattr(self, '_%s__key' % (type(self).__name__)) and hasattr(y, '_%s__key' % (type(y).__name__)):
203                        return self.__key() == y.__key()
204                return id(self) == id(y)
205
206        def __hash__(self):
207                return collectionProofHash(self.__key())
Note: See TracBrowser for help on using the repository browser.