source: mauRepo/CedaMolesModel/trunk/ceda_moles_model/ea_model/iso_19107_2003_spatial_schema/topology/topological_complex/tp_complex.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/topology/topological_complex/tp_complex.py@8457
Revision 8457, 7.3 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 ascore.utils import has_value, collectionProofHash
22
23'''
24Created on 10-Jul-2012 14:15:01
25
26@author: mnagni
27'''
28
29class TP_Complex(object):
30        '''
31                Represents a data entity defined in a UML diagram and supposed to
32                be persisted in a relational database.
33 
34                This class has been genererated automatically using the Apache Velocity project.
35        '''
36        '''
37                Please note that any access to the inner attributes should be done using
38                the given get/set methods and NOT accessing them directly.
39        '''
40        def __init__(self):
41
42                self._maximalComplex_cellularcomplex = None
43                self._maximalComplex_nt_network = None
44                self._maximalComplex = None
45                self._subComplex_cellularcomplex = []
46                self._subComplex_nt_network = []
47                self._subComplex = []
48                self._superComplex_cellularcomplex = []
49                self._superComplex_nt_network = []
50                self._superComplex = []
51                self._geometry_cellularcomplex = None
52                self._geometry_gm_composite = None
53                self._geometry = None
54                self._element_simplex = []
55                self._element_tp_node = []
56                self._element_tp_face = []
57                self._element_cell = []
58                self._element_tp_solid = []
59                self._element_tp_edge = []
60                self._element_tp_directedtopo = []
61                self._element = []
62                super(TP_Complex, self).__init__()
63        @property
64        def maximalComplex(self):       
65                if(has_value(self._maximalComplex_cellularcomplex)):
66                        return self._maximalComplex_cellularcomplex
67                if(has_value(self._maximalComplex_nt_network)):
68                        return self._maximalComplex_nt_network
69                return  None
70
71        @maximalComplex.setter
72        def maximalComplex(self, value):       
73                valueClass = "%s.%s" % (type(value).__module__,type(value).__name__)
74                if valueClass == "ea_model.informative.spatial_examples_from_iso_19107.application_schema.topology_simple.cellular_topology.cellularcomplex.CellularComplex":
75                        self._maximalComplex_cellularcomplex = value
76                        self._maximalComplex_nt_network = None
77                if valueClass == "ea_model.iso_19133_tracking_and_navigation.network.network_model.nt_network.NT_Network":
78                        self._maximalComplex_nt_network = value
79                        self._maximalComplex_cellularcomplex = None
80        @property
81        def subComplex(self):   
82                try:
83                        ret = []
84                        ret.extend(self._subComplex_cellularcomplex)
85                        ret.extend(self._subComplex_nt_network)
86                        if not hasattr(self, '_subComplex'):
87                                self._subComplex = []
88                        if self._subComplex is not None:
89                                ret.extend(self._subComplex)
90                        del self._subComplex[:]
91                        self._subComplex.extend(set(ret))
92                except Exception as e:
93                        pass
94                return self._subComplex
95
96        @property
97        def superComplex(self):
98                try:
99                        ret = []
100                        ret.extend(self._superComplex_cellularcomplex)
101                        ret.extend(self._superComplex_nt_network)
102                        if not hasattr(self, '_superComplex'):
103                                self._superComplex = []
104                        if self._superComplex is not None:
105                                ret.extend(self._superComplex)
106                        del self._superComplex[:]
107                        self._superComplex.extend(set(ret))
108                except Exception as e:
109                        pass
110                return self._superComplex
111
112        @property
113        def geometry(self):     
114                if(has_value(self._geometry_cellularcomplex)):
115                        return self._geometry_cellularcomplex
116                if(has_value(self._geometry_gm_composite)):
117                        return self._geometry_gm_composite
118                return  None
119
120        @geometry.setter
121        def geometry(self, value):     
122                valueClass = "%s.%s" % (type(value).__module__,type(value).__name__)
123                if valueClass == "ea_model.informative.spatial_examples_from_iso_19107.application_schema.topology_simple.cellular_topology.cellularcomplex.CellularComplex":
124                        self._geometry_cellularcomplex = value
125                        self._geometry_gm_composite = None
126                if valueClass == "ea_model.iso_19107_2003_spatial_schema.geometry.geometric_complex.gm_composite.GM_Composite":
127                        self._geometry_gm_composite = value
128                        self._geometry_cellularcomplex = None
129        @property
130        def element(self):     
131                try:
132                        ret = []
133                        ret.extend(self._element_simplex)
134                        ret.extend(self._element_tp_node)
135                        ret.extend(self._element_tp_face)
136                        ret.extend(self._element_cell)
137                        ret.extend(self._element_tp_solid)
138                        ret.extend(self._element_tp_edge)
139                        ret.extend(self._element_tp_directedtopo)
140                        if not hasattr(self, '_element'):
141                                self._element = []
142                        if self._element is not None:
143                                ret.extend(self._element)
144                        del self._element[:]
145                        self._element.extend(set(ret))
146                except Exception as e:
147                        pass
148                return self._element
149
150
151        def synchronize(self):
152                int_subComplex = self.subComplex       
153                del self._subComplex_cellularcomplex[:]
154                del self._subComplex_nt_network[:]
155                int_superComplex = self.superComplex   
156                del self._superComplex_cellularcomplex[:]
157                del self._superComplex_nt_network[:]
158                int_element = self.element     
159                del self._element_simplex[:]
160                del self._element_tp_node[:]
161                del self._element_tp_face[:]
162                del self._element_cell[:]
163                del self._element_tp_solid[:]
164                del self._element_tp_edge[:]
165                del self._element_tp_directedtopo[:]
166                for item in int_subComplex:     
167                        valueClass = "%s.%s" % (type(item).__module__,type(item).__name__)
168                        if valueClass == "ea_model.informative.spatial_examples_from_iso_19107.application_schema.topology_simple.cellular_topology.cellularcomplex.CellularComplex":
169                                self._subComplex_cellularcomplex.append(item)
170                                continue
171                        if valueClass == "ea_model.iso_19133_tracking_and_navigation.network.network_model.nt_network.NT_Network":
172                                self._subComplex_nt_network.append(item)
173                                continue
174                for item in int_superComplex:   
175                        valueClass = "%s.%s" % (type(item).__module__,type(item).__name__)
176                        if valueClass == "ea_model.informative.spatial_examples_from_iso_19107.application_schema.topology_simple.cellular_topology.cellularcomplex.CellularComplex":
177                                self._superComplex_cellularcomplex.append(item)
178                                continue
179                        if valueClass == "ea_model.iso_19133_tracking_and_navigation.network.network_model.nt_network.NT_Network":
180                                self._superComplex_nt_network.append(item)
181                                continue
182                for item in int_element:       
183                        valueClass = "%s.%s" % (type(item).__module__,type(item).__name__)
184                        if valueClass == "ea_model.informative.spatial_examples_from_iso_19107.application_schema.simplicial_topology.simplex.Simplex":
185                                self._element_simplex.append(item)
186                                continue
187                        if valueClass == "ea_model.iso_19107_2003_spatial_schema.topology.topological_primitive.tp_node.TP_Node":
188                                self._element_tp_node.append(item)
189                                continue
190                        if valueClass == "ea_model.iso_19107_2003_spatial_schema.topology.topological_primitive.tp_face.TP_Face":
191                                self._element_tp_face.append(item)
192                                continue
193                        if valueClass == "ea_model.informative.spatial_examples_from_iso_19107.application_schema.topology_simple.cellular_topology.cell.Cell":
194                                self._element_cell.append(item)
195                                continue
196                        if valueClass == "ea_model.iso_19107_2003_spatial_schema.topology.topological_primitive.tp_solid.TP_Solid":
197                                self._element_tp_solid.append(item)
198                                continue
199                        if valueClass == "ea_model.iso_19107_2003_spatial_schema.topology.topological_primitive.tp_edge.TP_Edge":
200                                self._element_tp_edge.append(item)
201                                continue
202                        if valueClass == "ea_model.iso_19107_2003_spatial_schema.topology.topological_primitive.tp_directedtopo.TP_DirectedTopo":
203                                self._element_tp_directedtopo.append(item)
204                                continue
205                pass
206
207        def __key(self):
208                return (self.maximalComplex, self.subComplex, self.superComplex, self.geometry, self.element)
209
210        def __eq__(self, y):
211                if type(self) != type(y):
212                        return False
213                '''
214                Cannot compare classes which do not define a "__key" attribute
215                '''
216                if hasattr(self, '_%s__key' % (type(self).__name__)) and hasattr(y, '_%s__key' % (type(y).__name__)):
217                        return self.__key() == y.__key()
218                return id(self) == id(y)
219
220        def __hash__(self):
221                return collectionProofHash(self.__key())
Note: See TracBrowser for help on using the repository browser.