armodel 1.6.0__py3-none-any.whl → 1.6.2__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- armodel/cli/arxml_dump_cli.py +25 -22
- armodel/cli/arxml_format_cli.py +1 -4
- armodel/cli/connector_update_cli.py +1 -1
- armodel/cli/swc_list_cli.py +1 -1
- armodel/data_models/sw_connector.py +3 -3
- armodel/lib/sw_component.py +3 -1
- armodel/lib/system_signal.py +3 -1
- armodel/models/__init__.py +5 -3
- armodel/models/ar_object.py +1 -1
- armodel/models/ar_package.py +185 -151
- armodel/models/ar_ref.py +0 -202
- armodel/models/common_structure.py +3 -71
- armodel/models/communication.py +1 -1
- armodel/models/datatype.py +7 -72
- armodel/models/end_to_end_protection.py +1 -1
- armodel/models/general_structure.py +10 -4
- armodel/models/internal_behavior.py +1 -1
- armodel/models/m2/autosar_templates/autosar_top_level_structure.py +120 -0
- armodel/models/m2/autosar_templates/common_structure/implementation.py +21 -0
- armodel/models/m2/autosar_templates/common_structure/implementation_data_types.py +154 -0
- armodel/models/m2/autosar_templates/ecuc_description_template.py +2 -1
- armodel/models/m2/autosar_templates/generic_structure/__init__.py +0 -0
- armodel/models/m2/autosar_templates/generic_structure/abstract_structure.py +69 -0
- armodel/models/m2/autosar_templates/generic_structure/ar_package.py +528 -0
- armodel/models/m2/autosar_templates/sw_component_template/communication.py +44 -0
- armodel/models/m2/autosar_templates/sw_component_template/components/__init__.py +246 -0
- armodel/models/m2/autosar_templates/sw_component_template/components/instance_refs.py +33 -1
- armodel/models/m2/autosar_templates/sw_component_template/composition/__init__.py +154 -0
- armodel/models/m2/autosar_templates/sw_component_template/composition/instance_refs.py +157 -0
- armodel/models/m2/autosar_templates/sw_component_template/data_type/__init__.py +0 -0
- armodel/models/m2/autosar_templates/sw_component_template/data_type/data_prototypes.py +104 -0
- armodel/models/m2/autosar_templates/sw_component_template/port_interface/__init__.py +243 -0
- armodel/models/m2/autosar_templates/sw_component_template/port_interface/instance_refs.py +39 -0
- armodel/models/m2/autosar_templates/sw_component_template/swc_internal_behavior/data_elements.py +3 -11
- armodel/models/m2/autosar_templates/sw_component_template/swc_internal_behavior/instance_refs_usage.py +169 -0
- armodel/models/m2/autosar_templates/sw_component_template/swc_internal_behavior/mode_declaration_group.py +1 -2
- armodel/models/m2/autosar_templates/sw_component_template/swc_internal_behavior/server_call.py +5 -4
- armodel/models/m2/autosar_templates/system_template/instance_refs.py +48 -0
- armodel/models/m2_msr.py +1 -0
- armodel/models/port_prototype.py +1 -90
- armodel/models/service_needs.py +3 -1
- armodel/models/sw_component.py +6 -143
- armodel/parser/__init__.py +2 -1
- armodel/parser/abstract_arxml_parser.py +1 -1
- armodel/parser/arxml_parser.py +157 -80
- armodel/parser/connector_xlsx_parser.py +3 -1
- armodel/parser/file_parser.py +43 -0
- armodel/report/connector_xls_report.py +2 -1
- armodel/tests/test_armodel/models/test_ar_package.py +6 -3
- armodel/tests/test_armodel/models/test_ar_ref.py +15 -13
- armodel/tests/test_armodel/models/test_common_structure.py +6 -5
- armodel/tests/test_armodel/models/test_data_prototype.py +1 -1
- armodel/tests/test_armodel/models/test_datatype.py +9 -9
- armodel/tests/test_armodel/models/test_general_structure.py +1 -1
- armodel/tests/test_armodel/models/test_implementation.py +1 -1
- armodel/tests/test_armodel/models/test_port_interface.py +2 -2
- armodel/tests/test_armodel/parser/test_parse_bswmd.py +3 -1
- armodel/tests/test_armodel/parser/test_sw_components.py +2 -2
- armodel/writer/abstract_arxml_writer.py +5 -1
- armodel/writer/arxml_writer.py +70 -60
- {armodel-1.6.0.dist-info → armodel-1.6.2.dist-info}/METADATA +5 -1
- {armodel-1.6.0.dist-info → armodel-1.6.2.dist-info}/RECORD +66 -51
- {armodel-1.6.0.dist-info → armodel-1.6.2.dist-info}/LICENSE +0 -0
- {armodel-1.6.0.dist-info → armodel-1.6.2.dist-info}/WHEEL +0 -0
- {armodel-1.6.0.dist-info → armodel-1.6.2.dist-info}/entry_points.txt +0 -0
- {armodel-1.6.0.dist-info → armodel-1.6.2.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,246 @@
|
|
|
1
|
+
from abc import ABCMeta
|
|
2
|
+
from typing import List
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
from .....ar_ref import RefType, TRefType
|
|
7
|
+
from .....general_structure import ARElement, Identifiable
|
|
8
|
+
from .....ar_object import ARBoolean, ARObject
|
|
9
|
+
from ...common_structure.implementation import ImplementationProps
|
|
10
|
+
from ..communication import ClientComSpec, ModeSwitchReceiverComSpec, ModeSwitchSenderComSpec, NonqueuedReceiverComSpec, NonqueuedSenderComSpec, PPortComSpec, ParameterRequireComSpec, QueuedReceiverComSpec, QueuedSenderComSpec, RPortComSpec, ServerComSpec
|
|
11
|
+
from .instance_refs import InnerPortGroupInCompositionInstanceRef
|
|
12
|
+
|
|
13
|
+
class SymbolProps(ImplementationProps):
|
|
14
|
+
def __init__(self, parent: ARObject, short_name: str):
|
|
15
|
+
super().__init__(parent, short_name)
|
|
16
|
+
|
|
17
|
+
class PortPrototype(Identifiable):
|
|
18
|
+
def __init__(self, parent: ARObject, short_name: str):
|
|
19
|
+
super().__init__(parent, short_name)
|
|
20
|
+
|
|
21
|
+
self.clientServerAnnotations = []
|
|
22
|
+
self.delegatedPortAnnotation = None
|
|
23
|
+
self.ioHwAbstractionServerAnnotations = []
|
|
24
|
+
self.modePortAnnotations = []
|
|
25
|
+
self.nvDataPortAnnotations = []
|
|
26
|
+
self.parameterPortAnnotations = []
|
|
27
|
+
self.senderReceiverAnnotations = []
|
|
28
|
+
self.triggerPortAnnotations = []
|
|
29
|
+
|
|
30
|
+
def getClientServerAnnotations(self):
|
|
31
|
+
return self.clientServerAnnotations
|
|
32
|
+
|
|
33
|
+
def addClientServerAnnotation(self, value):
|
|
34
|
+
self.clientServerAnnotations.append(value)
|
|
35
|
+
return self
|
|
36
|
+
|
|
37
|
+
def getDelegatedPortAnnotation(self):
|
|
38
|
+
return self.delegatedPortAnnotation
|
|
39
|
+
|
|
40
|
+
def setDelegatedPortAnnotation(self, value):
|
|
41
|
+
self.delegatedPortAnnotation = value
|
|
42
|
+
return self
|
|
43
|
+
|
|
44
|
+
def getIoHwAbstractionServerAnnotations(self):
|
|
45
|
+
return self.ioHwAbstractionServerAnnotations
|
|
46
|
+
|
|
47
|
+
def addIoHwAbstractionServerAnnotation(self, value):
|
|
48
|
+
self.ioHwAbstractionServerAnnotations.append(value)
|
|
49
|
+
return self
|
|
50
|
+
|
|
51
|
+
def getModePortAnnotations(self):
|
|
52
|
+
return self.modePortAnnotations
|
|
53
|
+
|
|
54
|
+
def addModePortAnnotation(self, value):
|
|
55
|
+
self.modePortAnnotations.append(value)
|
|
56
|
+
return self
|
|
57
|
+
|
|
58
|
+
def getNvDataPortAnnotations(self):
|
|
59
|
+
return self.nvDataPortAnnotations
|
|
60
|
+
|
|
61
|
+
def addNvDataPortAnnotation(self, value):
|
|
62
|
+
self.nvDataPortAnnotations.append(value)
|
|
63
|
+
return self
|
|
64
|
+
|
|
65
|
+
def getParameterPortAnnotations(self):
|
|
66
|
+
return self.parameterPortAnnotations
|
|
67
|
+
|
|
68
|
+
def addParameterPortAnnotation(self, value):
|
|
69
|
+
self.parameterPortAnnotations.append(value)
|
|
70
|
+
return self
|
|
71
|
+
|
|
72
|
+
def getSenderReceiverAnnotations(self):
|
|
73
|
+
return self.senderReceiverAnnotations
|
|
74
|
+
|
|
75
|
+
def addSenderReceiverAnnotation(self, value):
|
|
76
|
+
self.senderReceiverAnnotations.append(value)
|
|
77
|
+
return self
|
|
78
|
+
|
|
79
|
+
def getTriggerPortAnnotations(self):
|
|
80
|
+
return self.triggerPortAnnotations
|
|
81
|
+
|
|
82
|
+
def addTriggerPortAnnotation(self, value):
|
|
83
|
+
self.triggerPortAnnotations.append(value)
|
|
84
|
+
return self
|
|
85
|
+
|
|
86
|
+
class AbstractProvidedPortPrototype(PortPrototype):
|
|
87
|
+
def __init__(self, parent: ARObject, short_name: str):
|
|
88
|
+
super().__init__(parent, short_name)
|
|
89
|
+
|
|
90
|
+
self.provided_com_specs = [] # type: List[PPortComSpec]
|
|
91
|
+
|
|
92
|
+
def _validateRPortComSpec(self, com_spec: PPortComSpec):
|
|
93
|
+
if isinstance(com_spec, NonqueuedSenderComSpec):
|
|
94
|
+
if com_spec.dataElementRef == None:
|
|
95
|
+
raise ValueError(
|
|
96
|
+
"operation of NonqueuedSenderComSpec is invalid")
|
|
97
|
+
if com_spec.dataElementRef.dest != "VARIABLE-DATA-PROTOTYPE":
|
|
98
|
+
raise ValueError(
|
|
99
|
+
"Invalid operation dest of NonqueuedSenderComSpec")
|
|
100
|
+
elif isinstance(com_spec, ServerComSpec):
|
|
101
|
+
pass
|
|
102
|
+
elif isinstance(com_spec, QueuedSenderComSpec):
|
|
103
|
+
pass
|
|
104
|
+
elif isinstance(com_spec, ModeSwitchSenderComSpec):
|
|
105
|
+
pass
|
|
106
|
+
else:
|
|
107
|
+
raise ValueError("Unsupported com spec")
|
|
108
|
+
|
|
109
|
+
def addProvidedComSpec(self, com_spec):
|
|
110
|
+
self._validateRPortComSpec(com_spec)
|
|
111
|
+
self.provided_com_specs.append(com_spec)
|
|
112
|
+
|
|
113
|
+
def getProvidedComSpecs(self) -> List[PPortComSpec]:
|
|
114
|
+
return self.provided_com_specs
|
|
115
|
+
|
|
116
|
+
def getNonqueuedSenderComSpecs(self) -> List[NonqueuedSenderComSpec]:
|
|
117
|
+
return filter(lambda c: isinstance(c, NonqueuedSenderComSpec), self.provided_com_specs)
|
|
118
|
+
|
|
119
|
+
|
|
120
|
+
class AbstractRequiredPortPrototype(PortPrototype):
|
|
121
|
+
def __init__(self, parent: ARObject, short_name: str):
|
|
122
|
+
super().__init__(parent, short_name)
|
|
123
|
+
|
|
124
|
+
self.required_com_specs = [] # type: List[RPortComSpec]
|
|
125
|
+
|
|
126
|
+
def _validateRPortComSpec(self, com_spec: RPortComSpec):
|
|
127
|
+
if (isinstance(com_spec, ClientComSpec)):
|
|
128
|
+
if com_spec.getOperationRef() is not None:
|
|
129
|
+
if com_spec.getOperationRef().getDest() != "CLIENT-SERVER-OPERATION":
|
|
130
|
+
raise ValueError("Invalid operation dest of ClientComSpec.")
|
|
131
|
+
elif isinstance(com_spec, NonqueuedReceiverComSpec):
|
|
132
|
+
if com_spec.getDataElementRef() is not None:
|
|
133
|
+
if com_spec.getDataElementRef().getDest() != "VARIABLE-DATA-PROTOTYPE":
|
|
134
|
+
raise ValueError("Invalid date element dest of NonqueuedReceiverComSpec.")
|
|
135
|
+
elif isinstance(com_spec, QueuedReceiverComSpec):
|
|
136
|
+
pass
|
|
137
|
+
elif isinstance(com_spec, ModeSwitchReceiverComSpec):
|
|
138
|
+
pass
|
|
139
|
+
elif isinstance(com_spec, ParameterRequireComSpec):
|
|
140
|
+
if com_spec.getParameterRef() is not None:
|
|
141
|
+
if com_spec.getParameterRef().getDest() != "PARAMETER-DATA-PROTOTYPE":
|
|
142
|
+
raise ValueError("Invalid parameter dest of ParameterRequireComSpec.")
|
|
143
|
+
else:
|
|
144
|
+
raise ValueError("Unsupported RPortComSpec <%s>" % type(com_spec))
|
|
145
|
+
|
|
146
|
+
def addRequiredComSpec(self, com_spec: RPortComSpec):
|
|
147
|
+
self._validateRPortComSpec(com_spec)
|
|
148
|
+
self.required_com_specs.append(com_spec)
|
|
149
|
+
|
|
150
|
+
def getRequiredComSpecs(self) -> List[RPortComSpec]:
|
|
151
|
+
return self.required_com_specs
|
|
152
|
+
|
|
153
|
+
def getClientComSpecs(self) -> List[ClientComSpec]:
|
|
154
|
+
return filter(lambda c: isinstance(c, ClientComSpec), self.required_com_specs)
|
|
155
|
+
|
|
156
|
+
def getNonqueuedReceiverComSpecs(self) -> List[NonqueuedReceiverComSpec]:
|
|
157
|
+
return filter(lambda c: isinstance(c, NonqueuedReceiverComSpec), self.required_com_specs)
|
|
158
|
+
|
|
159
|
+
|
|
160
|
+
class PPortPrototype(AbstractProvidedPortPrototype):
|
|
161
|
+
def __init__(self, parent: ARObject, short_name: str):
|
|
162
|
+
super().__init__(parent, short_name)
|
|
163
|
+
|
|
164
|
+
self.providedInterfaceTRef = None # type: TRefType
|
|
165
|
+
|
|
166
|
+
def getProvidedInterfaceTRef(self):
|
|
167
|
+
return self.providedInterfaceTRef
|
|
168
|
+
|
|
169
|
+
def setProvidedInterfaceTRef(self, value):
|
|
170
|
+
self.providedInterfaceTRef = value
|
|
171
|
+
return self
|
|
172
|
+
|
|
173
|
+
class RPortPrototype(AbstractRequiredPortPrototype):
|
|
174
|
+
def __init__(self, parent: ARObject, short_name: str):
|
|
175
|
+
super().__init__(parent, short_name)
|
|
176
|
+
|
|
177
|
+
self.mayBeUnconnected = None # type: ARBoolean
|
|
178
|
+
self.requiredInterfaceTRef = None # type: TRefType
|
|
179
|
+
|
|
180
|
+
def getMayBeUnconnected(self):
|
|
181
|
+
return self.mayBeUnconnected
|
|
182
|
+
|
|
183
|
+
def setMayBeUnconnected(self, value):
|
|
184
|
+
self.mayBeUnconnected = value
|
|
185
|
+
return self
|
|
186
|
+
|
|
187
|
+
def getRequiredInterfaceTRef(self):
|
|
188
|
+
return self.requiredInterfaceTRef
|
|
189
|
+
|
|
190
|
+
def setRequiredInterfaceTRef(self, value):
|
|
191
|
+
self.requiredInterfaceTRef = value
|
|
192
|
+
return self
|
|
193
|
+
|
|
194
|
+
class PortGroup(Identifiable):
|
|
195
|
+
def __init__(self, parent: ARObject, short_name: str):
|
|
196
|
+
super().__init__(parent, short_name)
|
|
197
|
+
|
|
198
|
+
self._inner_group_iref = [] # type: List[InnerPortGroupInCompositionInstanceRef]
|
|
199
|
+
self._outer_port_ref = [] # type: List[RefType]
|
|
200
|
+
|
|
201
|
+
def addInnerGroupIRef(self, iref: InnerPortGroupInCompositionInstanceRef):
|
|
202
|
+
self._inner_group_iref.append(iref)
|
|
203
|
+
|
|
204
|
+
def getInnerGroupIRefs(self) -> List[InnerPortGroupInCompositionInstanceRef]:
|
|
205
|
+
return self._inner_group_iref
|
|
206
|
+
|
|
207
|
+
def addOuterPortRef(self, ref: RefType):
|
|
208
|
+
self._outer_port_ref.append(ref)
|
|
209
|
+
|
|
210
|
+
def getOuterPortRefs(self) -> List[RefType]:
|
|
211
|
+
return self._outer_port_ref
|
|
212
|
+
|
|
213
|
+
class SwComponentType(ARElement, metaclass = ABCMeta):
|
|
214
|
+
def __init__(self, parent: ARObject, short_name: str):
|
|
215
|
+
super().__init__(parent, short_name)
|
|
216
|
+
|
|
217
|
+
def createPPortPrototype(self, short_name: str) -> PPortPrototype:
|
|
218
|
+
prototype = PPortPrototype(self, short_name)
|
|
219
|
+
if (short_name not in self.elements):
|
|
220
|
+
self.elements[short_name] = prototype
|
|
221
|
+
return self.elements[short_name]
|
|
222
|
+
|
|
223
|
+
def createRPortPrototype(self, short_name) -> RPortPrototype:
|
|
224
|
+
prototype = RPortPrototype(self, short_name)
|
|
225
|
+
if (short_name not in self.elements):
|
|
226
|
+
self.elements[short_name] = prototype
|
|
227
|
+
return self.elements[short_name]
|
|
228
|
+
|
|
229
|
+
def createPortGroup(self, short_name) -> PortGroup:
|
|
230
|
+
port_group = PortGroup(self, short_name)
|
|
231
|
+
if (short_name not in self.elements):
|
|
232
|
+
self.elements[short_name] = port_group
|
|
233
|
+
return self.elements[short_name]
|
|
234
|
+
|
|
235
|
+
def getPPortPrototypes(self) -> List[PPortPrototype]:
|
|
236
|
+
return list(sorted(filter(lambda c: isinstance(c, PPortPrototype), self.elements.values()), key= lambda o: o.short_name))
|
|
237
|
+
|
|
238
|
+
def getRPortPrototypes(self) -> List[RPortPrototype]:
|
|
239
|
+
return list(sorted(filter(lambda c: isinstance(c, RPortPrototype), self.elements.values()), key= lambda o: o.short_name))
|
|
240
|
+
|
|
241
|
+
def getPortPrototypes(self) -> List[PortPrototype]:
|
|
242
|
+
return list(sorted(filter(lambda c: isinstance(c, PortPrototype), self.elements.values()), key= lambda o: o.short_name))
|
|
243
|
+
|
|
244
|
+
def getPortGroups(self) -> List[PortGroup]:
|
|
245
|
+
return list(sorted(filter(lambda c: isinstance(c, PortGroup), self.elements.values()), key= lambda o: o.short_name))
|
|
246
|
+
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
from abc import ABCMeta
|
|
2
|
-
|
|
2
|
+
|
|
3
|
+
from ...generic_structure.abstract_structure import AtpInstanceRef
|
|
4
|
+
from .....ar_ref import RefType
|
|
3
5
|
|
|
4
6
|
|
|
5
7
|
class ModeGroupInAtomicSwcInstanceRef(AtpInstanceRef, metaclass = ABCMeta):
|
|
@@ -147,3 +149,33 @@ class RVariableInAtomicSwcInstanceRef(VariableInAtomicSwcInstanceRef):
|
|
|
147
149
|
def setTargetDataElementRef(self, value):
|
|
148
150
|
self.targetDataElementRef = value
|
|
149
151
|
return self
|
|
152
|
+
|
|
153
|
+
class InnerPortGroupInCompositionInstanceRef(AtpInstanceRef):
|
|
154
|
+
def __init__(self):
|
|
155
|
+
super().__init__()
|
|
156
|
+
|
|
157
|
+
self.baseRef = None # type: RefType
|
|
158
|
+
self.contextRefs = [] # type: List[RefType]
|
|
159
|
+
self.targetRef = None # type: RefType
|
|
160
|
+
|
|
161
|
+
def getBaseRef(self):
|
|
162
|
+
return self.baseRef
|
|
163
|
+
|
|
164
|
+
def setBaseRef(self, value):
|
|
165
|
+
self.baseRef = value
|
|
166
|
+
return self
|
|
167
|
+
|
|
168
|
+
def getContextRefs(self):
|
|
169
|
+
return self.contextRefs
|
|
170
|
+
|
|
171
|
+
def addContextRefs(self, value):
|
|
172
|
+
self.contextRefs.append(value)
|
|
173
|
+
return self
|
|
174
|
+
|
|
175
|
+
def getTargetRef(self):
|
|
176
|
+
return self.targetRef
|
|
177
|
+
|
|
178
|
+
def setTargetRef(self, value):
|
|
179
|
+
self.targetRef = value
|
|
180
|
+
return self
|
|
181
|
+
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
from abc import ABCMeta
|
|
2
|
+
from typing import List
|
|
3
|
+
|
|
4
|
+
from ..components import SwComponentType
|
|
5
|
+
from ..composition.instance_refs import PPortInCompositionInstanceRef, PortInCompositionTypeInstanceRef, RPortInCompositionInstanceRef
|
|
6
|
+
from .....ar_ref import RefType
|
|
7
|
+
from .....ar_object import ARObject
|
|
8
|
+
from .....general_structure import Identifiable
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class SwComponentPrototype(Identifiable):
|
|
12
|
+
def __init__(self, parent: ARObject, short_name: str):
|
|
13
|
+
super().__init__(parent, short_name)
|
|
14
|
+
|
|
15
|
+
self.typeTRef = None # type: RefType
|
|
16
|
+
|
|
17
|
+
def getTypeTRef(self):
|
|
18
|
+
return self.typeTRef
|
|
19
|
+
|
|
20
|
+
def setTypeTRef(self, value):
|
|
21
|
+
self.typeTRef = value
|
|
22
|
+
return self
|
|
23
|
+
|
|
24
|
+
class SwConnector(Identifiable, metaclass = ABCMeta):
|
|
25
|
+
def __init__(self, parent: ARObject, short_name: str):
|
|
26
|
+
super().__init__(parent, short_name)
|
|
27
|
+
|
|
28
|
+
self.mappingRef = None # type: RefType
|
|
29
|
+
|
|
30
|
+
def getMappingRef(self):
|
|
31
|
+
return self.mappingRef
|
|
32
|
+
|
|
33
|
+
def setMappingRef(self, value):
|
|
34
|
+
self.mappingRef = value
|
|
35
|
+
return self
|
|
36
|
+
|
|
37
|
+
class AssemblySwConnector(SwConnector):
|
|
38
|
+
def __init__(self, parent: ARObject, short_name: str):
|
|
39
|
+
super().__init__(parent, short_name)
|
|
40
|
+
|
|
41
|
+
self.providerIRef = None # type: PPortInCompositionInstanceRef
|
|
42
|
+
self.requesterIRef = None # type: RPortInCompositionInstanceRef
|
|
43
|
+
|
|
44
|
+
def getProviderIRef(self) -> PPortInCompositionInstanceRef:
|
|
45
|
+
return self.providerIRef
|
|
46
|
+
|
|
47
|
+
def setProviderIRef(self, value: PPortInCompositionInstanceRef):
|
|
48
|
+
self.providerIRef = value
|
|
49
|
+
return self
|
|
50
|
+
|
|
51
|
+
def getRequesterIRef(self) -> PPortInCompositionInstanceRef:
|
|
52
|
+
return self.requesterIRef
|
|
53
|
+
|
|
54
|
+
def setRequesterIRef(self, value: PPortInCompositionInstanceRef):
|
|
55
|
+
self.requesterIRef = value
|
|
56
|
+
return self
|
|
57
|
+
|
|
58
|
+
class DelegationSwConnector(SwConnector):
|
|
59
|
+
def __init__(self, parent: ARObject, short_name: str):
|
|
60
|
+
super().__init__(parent, short_name)
|
|
61
|
+
|
|
62
|
+
self.innerPortIRref = None # type: PortInCompositionTypeInstanceRef
|
|
63
|
+
self.outerPortRef = None # type: RefType
|
|
64
|
+
|
|
65
|
+
def getInnerPortIRref(self):
|
|
66
|
+
return self.innerPortIRref
|
|
67
|
+
|
|
68
|
+
def setInnerPortIRref(self, value):
|
|
69
|
+
self.innerPortIRref = value
|
|
70
|
+
return self
|
|
71
|
+
|
|
72
|
+
def getOuterPortRef(self):
|
|
73
|
+
return self.outerPortRef
|
|
74
|
+
|
|
75
|
+
def setOuterPortRef(self, value):
|
|
76
|
+
self.outerPortRef = value
|
|
77
|
+
return self
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
class PassThroughSwConnector(SwConnector):
|
|
81
|
+
def __init__(self, parent: ARObject, short_name: str):
|
|
82
|
+
super().__init__(parent, short_name)
|
|
83
|
+
|
|
84
|
+
self.providedOuterPortRef = None # type: RefType
|
|
85
|
+
self.requiredOuterPortRef = None # type: RefType
|
|
86
|
+
|
|
87
|
+
def getProvidedOuterPortRef(self):
|
|
88
|
+
return self.providedOuterPortRef
|
|
89
|
+
|
|
90
|
+
def setProvidedOuterPortRef(self, value):
|
|
91
|
+
self.providedOuterPortRef = value
|
|
92
|
+
return self
|
|
93
|
+
|
|
94
|
+
def getRequiredOuterPortRef(self):
|
|
95
|
+
return self.requiredOuterPortRef
|
|
96
|
+
|
|
97
|
+
def setRequiredOuterPortRef(self, value):
|
|
98
|
+
self.requiredOuterPortRef = value
|
|
99
|
+
return self
|
|
100
|
+
|
|
101
|
+
|
|
102
|
+
class CompositionSwComponentType(SwComponentType):
|
|
103
|
+
def __init__(self, parent: ARObject, short_name: str):
|
|
104
|
+
super().__init__(parent, short_name)
|
|
105
|
+
|
|
106
|
+
self.constantValueMappingRefs = [] # type: List[RefType]
|
|
107
|
+
self.dataTypeMappingRefs = [] # type: List[RefType]
|
|
108
|
+
self.instantiationRTEEventProps = [] # type: List[InstantiationRTEEventProps]
|
|
109
|
+
|
|
110
|
+
def removeAllAssemblySwConnector(self):
|
|
111
|
+
for sw_connector in self.getAssemblySwConnectors():
|
|
112
|
+
self.elements.pop(sw_connector.short_name)
|
|
113
|
+
|
|
114
|
+
def removeAllDelegationSwConnector(self):
|
|
115
|
+
for sw_connector in self.getDelegationSwConnectors():
|
|
116
|
+
self.elements.pop(sw_connector.short_name)
|
|
117
|
+
|
|
118
|
+
def createAssemblySwConnector(self, short_name: str) -> AssemblySwConnector:
|
|
119
|
+
if (short_name not in self.elements):
|
|
120
|
+
connector = AssemblySwConnector(self, short_name)
|
|
121
|
+
self.elements[short_name] = connector
|
|
122
|
+
return self.elements[short_name]
|
|
123
|
+
|
|
124
|
+
def createDelegationSwConnector(self, short_name: str) -> DelegationSwConnector:
|
|
125
|
+
if short_name not in self.elements:
|
|
126
|
+
connector = DelegationSwConnector(self, short_name)
|
|
127
|
+
self.elements[short_name] = connector
|
|
128
|
+
return self.elements[short_name]
|
|
129
|
+
|
|
130
|
+
def getAssemblySwConnectors(self) -> List[AssemblySwConnector]:
|
|
131
|
+
return list(sorted(filter(lambda e: isinstance(e, AssemblySwConnector), self.elements.values()), key = lambda c: c.short_name))
|
|
132
|
+
|
|
133
|
+
def getDelegationSwConnectors(self) -> List[DelegationSwConnector]:
|
|
134
|
+
return list(sorted(filter(lambda e: isinstance(e, DelegationSwConnector), self.elements.values()), key = lambda c: c.short_name))
|
|
135
|
+
|
|
136
|
+
def getSwConnectors(self) -> List[SwConnector]:
|
|
137
|
+
return list(sorted(filter(lambda e: isinstance(e, SwConnector), self.elements.values()), key = lambda c: c.short_name))
|
|
138
|
+
|
|
139
|
+
def createSwComponentPrototype(self, short_name: str) -> SwComponentPrototype:
|
|
140
|
+
if (short_name not in self.elements):
|
|
141
|
+
connector = SwComponentPrototype(self, short_name)
|
|
142
|
+
self.elements[short_name] = connector
|
|
143
|
+
return self.elements[short_name]
|
|
144
|
+
|
|
145
|
+
def getSwComponentPrototypes(self) -> List[SwComponentPrototype]:
|
|
146
|
+
return list(filter(lambda e: isinstance(e, SwComponentPrototype), self.elements.values()))
|
|
147
|
+
|
|
148
|
+
def addDataTypeMapping(self, data_type_mapping_ref: RefType):
|
|
149
|
+
self.dataTypeMappingRefs.append(data_type_mapping_ref)
|
|
150
|
+
|
|
151
|
+
def getDataTypeMappings(self) -> List[RefType]:
|
|
152
|
+
return self.dataTypeMappingRefs
|
|
153
|
+
|
|
154
|
+
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
|
|
2
|
+
from abc import ABCMeta
|
|
3
|
+
|
|
4
|
+
from .....ar_ref import RefType
|
|
5
|
+
from ...generic_structure.abstract_structure import AtpInstanceRef
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
class PortInCompositionTypeInstanceRef(AtpInstanceRef, metaclass = ABCMeta):
|
|
9
|
+
def __init__(self):
|
|
10
|
+
if type(self) == PortInCompositionTypeInstanceRef:
|
|
11
|
+
raise NotImplementedError("PortInCompositionTypeInstanceRef is an abstract class.")
|
|
12
|
+
|
|
13
|
+
super().__init__()
|
|
14
|
+
|
|
15
|
+
self.abstractContextComponentRef = None # type: RefType
|
|
16
|
+
self.baseRef = None # type: RefType
|
|
17
|
+
self.targetPortRef = None # type: RefType
|
|
18
|
+
|
|
19
|
+
def getAbstractContextComponentRef(self):
|
|
20
|
+
return self.abstractContextComponentRef
|
|
21
|
+
|
|
22
|
+
def setAbstractContextComponentRef(self, value):
|
|
23
|
+
self.abstractContextComponentRef = value
|
|
24
|
+
return self
|
|
25
|
+
|
|
26
|
+
def getBaseRef(self):
|
|
27
|
+
return self.baseRef
|
|
28
|
+
|
|
29
|
+
def setBaseRef(self, value):
|
|
30
|
+
self.baseRef = value
|
|
31
|
+
return self
|
|
32
|
+
|
|
33
|
+
def getTargetPortRef(self):
|
|
34
|
+
return self.targetPortRef
|
|
35
|
+
|
|
36
|
+
def setTargetPortRef(self, value):
|
|
37
|
+
self.targetPortRef = value
|
|
38
|
+
return self
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
class PPortInCompositionInstanceRef(PortInCompositionTypeInstanceRef):
|
|
42
|
+
def __init__(self):
|
|
43
|
+
super().__init__()
|
|
44
|
+
|
|
45
|
+
self.contextComponentRef = None # type: RefType
|
|
46
|
+
self.targetPPortRef = None # type: RefType
|
|
47
|
+
|
|
48
|
+
def getContextComponentRef(self):
|
|
49
|
+
return self.contextComponentRef
|
|
50
|
+
|
|
51
|
+
def setContextComponentRef(self, value):
|
|
52
|
+
self.contextComponentRef = value
|
|
53
|
+
return self
|
|
54
|
+
|
|
55
|
+
def getTargetPPortRef(self):
|
|
56
|
+
return self.targetPPortRef
|
|
57
|
+
|
|
58
|
+
def setTargetPPortRef(self, value):
|
|
59
|
+
self.targetPPortRef = value
|
|
60
|
+
return self
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
class RPortInCompositionInstanceRef(PortInCompositionTypeInstanceRef):
|
|
64
|
+
def __init__(self):
|
|
65
|
+
super().__init__()
|
|
66
|
+
|
|
67
|
+
self.contextComponentRef = None # type: RefType
|
|
68
|
+
self.targetRPortRef = None # type: RefType
|
|
69
|
+
|
|
70
|
+
def getContextComponentRef(self):
|
|
71
|
+
return self.contextComponentRef
|
|
72
|
+
|
|
73
|
+
def setContextComponentRef(self, value):
|
|
74
|
+
self.contextComponentRef = value
|
|
75
|
+
return self
|
|
76
|
+
|
|
77
|
+
def getTargetRPortRef(self):
|
|
78
|
+
return self.targetRPortRef
|
|
79
|
+
|
|
80
|
+
def setTargetRPortRef(self, value):
|
|
81
|
+
self.targetRPortRef = value
|
|
82
|
+
return self
|
|
83
|
+
|
|
84
|
+
class OperationInAtomicSwcInstanceRef(AtpInstanceRef, metaclass=ABCMeta):
|
|
85
|
+
def __init__(self):
|
|
86
|
+
if type(self) == OperationInAtomicSwcInstanceRef:
|
|
87
|
+
raise NotImplementedError("OperationInAtomicSwcInstanceRef is an abstract class.")
|
|
88
|
+
|
|
89
|
+
super().__init__()
|
|
90
|
+
|
|
91
|
+
self.baseRef = None # type: RefType
|
|
92
|
+
self.contextPortRef = None # type: RefType
|
|
93
|
+
self.targetOperationRef = None # type: RefType
|
|
94
|
+
|
|
95
|
+
def getBaseRef(self):
|
|
96
|
+
return self.baseRef
|
|
97
|
+
|
|
98
|
+
def setBaseRef(self, value):
|
|
99
|
+
self.baseRef = value
|
|
100
|
+
return self
|
|
101
|
+
|
|
102
|
+
def getContextPortRef(self):
|
|
103
|
+
return self.contextPortRef
|
|
104
|
+
|
|
105
|
+
def setContextPortRef(self, value):
|
|
106
|
+
self.contextPortRef = value
|
|
107
|
+
return self
|
|
108
|
+
|
|
109
|
+
def getTargetOperationRef(self):
|
|
110
|
+
return self.targetOperationRef
|
|
111
|
+
|
|
112
|
+
def setTargetOperationRef(self, value):
|
|
113
|
+
self.targetOperationRef = value
|
|
114
|
+
return self
|
|
115
|
+
|
|
116
|
+
class POperationInAtomicSwcInstanceRef(OperationInAtomicSwcInstanceRef):
|
|
117
|
+
def __init__(self):
|
|
118
|
+
super().__init__()
|
|
119
|
+
|
|
120
|
+
self.contextPPortRef = None # type: RefType
|
|
121
|
+
self.targetProvidedOperationRef = None # type: RefType
|
|
122
|
+
|
|
123
|
+
def getContextPPortRef(self):
|
|
124
|
+
return self.contextPPortRef
|
|
125
|
+
|
|
126
|
+
def setContextPPortRef(self, value):
|
|
127
|
+
self.contextPPortRef = value
|
|
128
|
+
return self
|
|
129
|
+
|
|
130
|
+
def getTargetProvidedOperationRef(self):
|
|
131
|
+
return self.targetProvidedOperationRef
|
|
132
|
+
|
|
133
|
+
def setTargetProvidedOperationRef(self, value):
|
|
134
|
+
self.targetProvidedOperationRef = value
|
|
135
|
+
return self
|
|
136
|
+
|
|
137
|
+
|
|
138
|
+
class ROperationInAtomicSwcInstanceRef(OperationInAtomicSwcInstanceRef):
|
|
139
|
+
def __init__(self):
|
|
140
|
+
super().__init__()
|
|
141
|
+
|
|
142
|
+
self.contextRPortRef = None # type: RefType
|
|
143
|
+
self.targetRequiredOperationRef = None # type: RefType
|
|
144
|
+
|
|
145
|
+
def getContextRPortRef(self):
|
|
146
|
+
return self.contextRPortRef
|
|
147
|
+
|
|
148
|
+
def setContextRPortRef(self, value):
|
|
149
|
+
self.contextRPortRef = value
|
|
150
|
+
return self
|
|
151
|
+
|
|
152
|
+
def getTargetRequiredOperationRef(self):
|
|
153
|
+
return self.targetRequiredOperationRef
|
|
154
|
+
|
|
155
|
+
def setTargetRequiredOperationRef(self, value):
|
|
156
|
+
self.targetRequiredOperationRef = value
|
|
157
|
+
return self
|
|
File without changes
|