source: mauRepo/CedaMolesModel/trunk/ceda_moles_model/ea_model/iso_19107_2003_spatial_schema/geometry/geometric_primitive/gm_primitive.py @ 8457

Subversion URL: http://proj.badc.rl.ac.uk/svn/ndg/mauRepo/CedaMolesModel/trunk/ceda_moles_model/ea_model/iso_19107_2003_spatial_schema/geometry/geometric_primitive/gm_primitive.py@8457
Revision 8457, 11.7 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_19107_2003_spatial_schema.geometry.geometry_root.gm_object import  GM_Object
22from ascore.utils import has_value, collectionProofHash
23
24'''
25Created on 10-Jul-2012 14:15:03
26
27@author: mnagni
28'''
29
30class GM_Primitive(GM_Object):
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._gm_object = GM_Object()   
43
44                self._topology_simplex = []
45                self._topology_tp_node = []
46                self._topology_tp_face = []
47                self._topology_cell = []
48                self._topology_tp_solid = []
49                self._topology_tp_edge = []
50                self._topology_tp_directedtopo = []
51                self._topology = []
52                self._containedPrimitive_simplex = []
53                self._containedPrimitive_gm_solid = []
54                self._containedPrimitive_cell = []
55                self._containedPrimitive_gm_orientableprimitive = []
56                self._containedPrimitive_gm_point = []
57                self._containedPrimitive = []
58                self._composite_gm_compositecurve = []
59                self._composite_gm_compositesurface = []
60                self._composite_gm_compositepoint = []
61                self._composite_gm_compositesolid = []
62                self._composite = []
63                self.CRS = None
64                self._proxy_gm_orientablecurve = None
65                self._proxy_gm_orientablesurface = None
66                self._proxy = None
67                self._containingPrimitive_simplex = []
68                self._containingPrimitive_gm_solid = []
69                self._containingPrimitive_cell = []
70                self._containingPrimitive_gm_orientableprimitive = []
71                self._containingPrimitive_gm_point = []
72                self._containingPrimitive = []
73                self._complex_cellularcomplex = []
74                self._complex_gm_composite = []
75                self._complex = []
76                super(GM_Primitive, self).__init__()
77        @property
78        def topology(self):     
79                try:
80                        ret = []
81                        ret.extend(self._topology_simplex)
82                        ret.extend(self._topology_tp_node)
83                        ret.extend(self._topology_tp_face)
84                        ret.extend(self._topology_cell)
85                        ret.extend(self._topology_tp_solid)
86                        ret.extend(self._topology_tp_edge)
87                        ret.extend(self._topology_tp_directedtopo)
88                        if not hasattr(self, '_topology'):
89                                self._topology = []
90                        if self._topology is not None:
91                                ret.extend(self._topology)
92                        del self._topology[:]
93                        self._topology.extend(set(ret))
94                except Exception as e:
95                        pass
96                return self._topology
97
98        @property
99        def containedPrimitive(self):   
100                try:
101                        ret = []
102                        ret.extend(self._containedPrimitive_simplex)
103                        ret.extend(self._containedPrimitive_gm_solid)
104                        ret.extend(self._containedPrimitive_cell)
105                        ret.extend(self._containedPrimitive_gm_orientableprimitive)
106                        ret.extend(self._containedPrimitive_gm_point)
107                        if not hasattr(self, '_containedPrimitive'):
108                                self._containedPrimitive = []
109                        if self._containedPrimitive is not None:
110                                ret.extend(self._containedPrimitive)
111                        del self._containedPrimitive[:]
112                        self._containedPrimitive.extend(set(ret))
113                except Exception as e:
114                        pass
115                return self._containedPrimitive
116
117        @property
118        def composite(self):   
119                try:
120                        ret = []
121                        ret.extend(self._composite_gm_compositecurve)
122                        ret.extend(self._composite_gm_compositesurface)
123                        ret.extend(self._composite_gm_compositepoint)
124                        ret.extend(self._composite_gm_compositesolid)
125                        if not hasattr(self, '_composite'):
126                                self._composite = []
127                        if self._composite is not None:
128                                ret.extend(self._composite)
129                        del self._composite[:]
130                        self._composite.extend(set(ret))
131                except Exception as e:
132                        pass
133                return self._composite
134
135        @property
136        def CRS(self): 
137                return self._gm_object.CRS
138
139        @CRS.setter
140        def CRS(self, value):   
141                        self._gm_object.CRS = value
142        @property
143        def proxy(self):       
144                if(has_value(self._proxy_gm_orientablecurve)):
145                        return self._proxy_gm_orientablecurve
146                if(has_value(self._proxy_gm_orientablesurface)):
147                        return self._proxy_gm_orientablesurface
148                return  None
149
150        @proxy.setter
151        def proxy(self, value):
152                valueClass = "%s.%s" % (type(value).__module__,type(value).__name__)
153                if valueClass == "ea_model.iso_19107_2003_spatial_schema.geometry.geometric_primitive.gm_orientablecurve.GM_OrientableCurve":
154                        self._proxy_gm_orientablecurve = value
155                        self._proxy_gm_orientablesurface = None
156                if valueClass == "ea_model.iso_19107_2003_spatial_schema.geometry.geometric_primitive.gm_orientablesurface.GM_OrientableSurface":
157                        self._proxy_gm_orientablesurface = value
158                        self._proxy_gm_orientablecurve = None
159        @property
160        def containingPrimitive(self): 
161                try:
162                        ret = []
163                        ret.extend(self._containingPrimitive_simplex)
164                        ret.extend(self._containingPrimitive_gm_solid)
165                        ret.extend(self._containingPrimitive_cell)
166                        ret.extend(self._containingPrimitive_gm_orientableprimitive)
167                        ret.extend(self._containingPrimitive_gm_point)
168                        if not hasattr(self, '_containingPrimitive'):
169                                self._containingPrimitive = []
170                        if self._containingPrimitive is not None:
171                                ret.extend(self._containingPrimitive)
172                        del self._containingPrimitive[:]
173                        self._containingPrimitive.extend(set(ret))
174                except Exception as e:
175                        pass
176                return self._containingPrimitive
177
178        @property
179        def complex(self):     
180                try:
181                        ret = []
182                        ret.extend(self._complex_cellularcomplex)
183                        ret.extend(self._complex_gm_composite)
184                        if not hasattr(self, '_complex'):
185                                self._complex = []
186                        if self._complex is not None:
187                                ret.extend(self._complex)
188                        del self._complex[:]
189                        self._complex.extend(set(ret))
190                except Exception as e:
191                        pass
192                return self._complex
193
194
195        def synchronize(self):
196                int_topology = self.topology   
197                del self._topology_simplex[:]
198                del self._topology_tp_node[:]
199                del self._topology_tp_face[:]
200                del self._topology_cell[:]
201                del self._topology_tp_solid[:]
202                del self._topology_tp_edge[:]
203                del self._topology_tp_directedtopo[:]
204                int_containedPrimitive = self.containedPrimitive       
205                del self._containedPrimitive_simplex[:]
206                del self._containedPrimitive_gm_solid[:]
207                del self._containedPrimitive_cell[:]
208                del self._containedPrimitive_gm_orientableprimitive[:]
209                del self._containedPrimitive_gm_point[:]
210                int_composite = self.composite 
211                del self._composite_gm_compositecurve[:]
212                del self._composite_gm_compositesurface[:]
213                del self._composite_gm_compositepoint[:]
214                del self._composite_gm_compositesolid[:]
215                int_containingPrimitive = self.containingPrimitive     
216                del self._containingPrimitive_simplex[:]
217                del self._containingPrimitive_gm_solid[:]
218                del self._containingPrimitive_cell[:]
219                del self._containingPrimitive_gm_orientableprimitive[:]
220                del self._containingPrimitive_gm_point[:]
221                int_complex = self.complex     
222                del self._complex_cellularcomplex[:]
223                del self._complex_gm_composite[:]
224                for item in int_topology:       
225                        valueClass = "%s.%s" % (type(item).__module__,type(item).__name__)
226                        if valueClass == "ea_model.informative.spatial_examples_from_iso_19107.application_schema.simplicial_topology.simplex.Simplex":
227                                self._topology_simplex.append(item)
228                                continue
229                        if valueClass == "ea_model.iso_19107_2003_spatial_schema.topology.topological_primitive.tp_node.TP_Node":
230                                self._topology_tp_node.append(item)
231                                continue
232                        if valueClass == "ea_model.iso_19107_2003_spatial_schema.topology.topological_primitive.tp_face.TP_Face":
233                                self._topology_tp_face.append(item)
234                                continue
235                        if valueClass == "ea_model.informative.spatial_examples_from_iso_19107.application_schema.topology_simple.cellular_topology.cell.Cell":
236                                self._topology_cell.append(item)
237                                continue
238                        if valueClass == "ea_model.iso_19107_2003_spatial_schema.topology.topological_primitive.tp_solid.TP_Solid":
239                                self._topology_tp_solid.append(item)
240                                continue
241                        if valueClass == "ea_model.iso_19107_2003_spatial_schema.topology.topological_primitive.tp_edge.TP_Edge":
242                                self._topology_tp_edge.append(item)
243                                continue
244                        if valueClass == "ea_model.iso_19107_2003_spatial_schema.topology.topological_primitive.tp_directedtopo.TP_DirectedTopo":
245                                self._topology_tp_directedtopo.append(item)
246                                continue
247                for item in int_containedPrimitive:     
248                        valueClass = "%s.%s" % (type(item).__module__,type(item).__name__)
249                        if valueClass == "ea_model.informative.spatial_examples_from_iso_19107.application_schema.simplicial_topology.simplex.Simplex":
250                                self._containedPrimitive_simplex.append(item)
251                                continue
252                        if valueClass == "ea_model.iso_19107_2003_spatial_schema.geometry.geometric_primitive.gm_solid.GM_Solid":
253                                self._containedPrimitive_gm_solid.append(item)
254                                continue
255                        if valueClass == "ea_model.informative.spatial_examples_from_iso_19107.application_schema.topology_simple.cellular_topology.cell.Cell":
256                                self._containedPrimitive_cell.append(item)
257                                continue
258                        if valueClass == "ea_model.iso_19107_2003_spatial_schema.geometry.geometric_primitive.gm_orientableprimitive.GM_OrientablePrimitive":
259                                self._containedPrimitive_gm_orientableprimitive.append(item)
260                                continue
261                        if valueClass == "ea_model.iso_19107_2003_spatial_schema.geometry.geometric_primitive.gm_point.GM_Point":
262                                self._containedPrimitive_gm_point.append(item)
263                                continue
264                for item in int_composite:     
265                        valueClass = "%s.%s" % (type(item).__module__,type(item).__name__)
266                        if valueClass == "ea_model.iso_19107_2003_spatial_schema.geometry.geometric_complex.gm_compositecurve.GM_CompositeCurve":
267                                self._composite_gm_compositecurve.append(item)
268                                continue
269                        if valueClass == "ea_model.iso_19107_2003_spatial_schema.geometry.geometric_complex.gm_compositesurface.GM_CompositeSurface":
270                                self._composite_gm_compositesurface.append(item)
271                                continue
272                        if valueClass == "ea_model.iso_19107_2003_spatial_schema.geometry.geometric_complex.gm_compositepoint.GM_CompositePoint":
273                                self._composite_gm_compositepoint.append(item)
274                                continue
275                        if valueClass == "ea_model.iso_19107_2003_spatial_schema.geometry.geometric_complex.gm_compositesolid.GM_CompositeSolid":
276                                self._composite_gm_compositesolid.append(item)
277                                continue
278                for item in int_containingPrimitive:   
279                        valueClass = "%s.%s" % (type(item).__module__,type(item).__name__)
280                        if valueClass == "ea_model.informative.spatial_examples_from_iso_19107.application_schema.simplicial_topology.simplex.Simplex":
281                                self._containingPrimitive_simplex.append(item)
282                                continue
283                        if valueClass == "ea_model.iso_19107_2003_spatial_schema.geometry.geometric_primitive.gm_solid.GM_Solid":
284                                self._containingPrimitive_gm_solid.append(item)
285                                continue
286                        if valueClass == "ea_model.informative.spatial_examples_from_iso_19107.application_schema.topology_simple.cellular_topology.cell.Cell":
287                                self._containingPrimitive_cell.append(item)
288                                continue
289                        if valueClass == "ea_model.iso_19107_2003_spatial_schema.geometry.geometric_primitive.gm_orientableprimitive.GM_OrientablePrimitive":
290                                self._containingPrimitive_gm_orientableprimitive.append(item)
291                                continue
292                        if valueClass == "ea_model.iso_19107_2003_spatial_schema.geometry.geometric_primitive.gm_point.GM_Point":
293                                self._containingPrimitive_gm_point.append(item)
294                                continue
295                for item in int_complex:       
296                        valueClass = "%s.%s" % (type(item).__module__,type(item).__name__)
297                        if valueClass == "ea_model.informative.spatial_examples_from_iso_19107.application_schema.topology_simple.cellular_topology.cellularcomplex.CellularComplex":
298                                self._complex_cellularcomplex.append(item)
299                                continue
300                        if valueClass == "ea_model.iso_19107_2003_spatial_schema.geometry.geometric_complex.gm_composite.GM_Composite":
301                                self._complex_gm_composite.append(item)
302                                continue
303                pass
304
305        def __key(self):
306                return (self.topology, self.containedPrimitive, self.composite, self.CRS, self.proxy, self.containingPrimitive, self.complex)
307
308        def __eq__(self, y):
309                if type(self) != type(y):
310                        return False
311                '''
312                Cannot compare classes which do not define a "__key" attribute
313                '''
314                if hasattr(self, '_%s__key' % (type(self).__name__)) and hasattr(y, '_%s__key' % (type(y).__name__)):
315                        return self.__key() == y.__key()
316                return id(self) == id(y)
317
318        def __hash__(self):
319                return collectionProofHash(self.__key())
Note: See TracBrowser for help on using the repository browser.