armodel 1.6.0__py3-none-any.whl → 1.6.1__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.
Files changed (52) hide show
  1. armodel/data_models/sw_connector.py +3 -3
  2. armodel/models/__init__.py +4 -2
  3. armodel/models/ar_object.py +1 -1
  4. armodel/models/ar_package.py +185 -151
  5. armodel/models/ar_ref.py +0 -202
  6. armodel/models/common_structure.py +3 -71
  7. armodel/models/communication.py +1 -1
  8. armodel/models/datatype.py +5 -69
  9. armodel/models/end_to_end_protection.py +1 -1
  10. armodel/models/general_structure.py +10 -4
  11. armodel/models/internal_behavior.py +1 -1
  12. armodel/models/m2/autosar_templates/common_structure/implementation.py +21 -0
  13. armodel/models/m2/autosar_templates/common_structure/implementation_data_types.py +148 -0
  14. armodel/models/m2/autosar_templates/ecuc_description_template.py +2 -1
  15. armodel/models/m2/autosar_templates/generic_structure/__init__.py +0 -0
  16. armodel/models/m2/autosar_templates/generic_structure/abstract_structure.py +69 -0
  17. armodel/models/m2/autosar_templates/sw_component_template/communication.py +44 -0
  18. armodel/models/m2/autosar_templates/sw_component_template/components/__init__.py +246 -0
  19. armodel/models/m2/autosar_templates/sw_component_template/components/instance_refs.py +33 -1
  20. armodel/models/m2/autosar_templates/sw_component_template/composition/__init__.py +154 -0
  21. armodel/models/m2/autosar_templates/sw_component_template/composition/instance_refs.py +157 -0
  22. armodel/models/m2/autosar_templates/sw_component_template/data_type/__init__.py +0 -0
  23. armodel/models/m2/autosar_templates/sw_component_template/data_type/data_prototypes.py +104 -0
  24. armodel/models/m2/autosar_templates/sw_component_template/port_interface/__init__.py +243 -0
  25. armodel/models/m2/autosar_templates/sw_component_template/port_interface/instance_refs.py +39 -0
  26. armodel/models/m2/autosar_templates/sw_component_template/swc_internal_behavior/data_elements.py +3 -11
  27. armodel/models/m2/autosar_templates/sw_component_template/swc_internal_behavior/instance_refs_usage.py +169 -0
  28. armodel/models/m2/autosar_templates/sw_component_template/swc_internal_behavior/mode_declaration_group.py +1 -2
  29. armodel/models/m2/autosar_templates/sw_component_template/swc_internal_behavior/server_call.py +5 -4
  30. armodel/models/m2/autosar_templates/system_template/instance_refs.py +48 -0
  31. armodel/models/m2_msr.py +1 -0
  32. armodel/models/port_prototype.py +1 -90
  33. armodel/models/service_needs.py +3 -1
  34. armodel/models/sw_component.py +6 -143
  35. armodel/parser/__init__.py +2 -1
  36. armodel/parser/arxml_parser.py +124 -58
  37. armodel/parser/file_parser.py +43 -0
  38. armodel/tests/test_armodel/models/test_ar_package.py +5 -2
  39. armodel/tests/test_armodel/models/test_ar_ref.py +15 -13
  40. armodel/tests/test_armodel/models/test_common_structure.py +6 -5
  41. armodel/tests/test_armodel/models/test_data_prototype.py +1 -1
  42. armodel/tests/test_armodel/models/test_datatype.py +8 -8
  43. armodel/tests/test_armodel/models/test_port_interface.py +1 -1
  44. armodel/tests/test_armodel/parser/test_sw_components.py +1 -1
  45. armodel/writer/abstract_arxml_writer.py +5 -1
  46. armodel/writer/arxml_writer.py +68 -58
  47. {armodel-1.6.0.dist-info → armodel-1.6.1.dist-info}/METADATA +5 -1
  48. {armodel-1.6.0.dist-info → armodel-1.6.1.dist-info}/RECORD +52 -39
  49. {armodel-1.6.0.dist-info → armodel-1.6.1.dist-info}/LICENSE +0 -0
  50. {armodel-1.6.0.dist-info → armodel-1.6.1.dist-info}/WHEEL +0 -0
  51. {armodel-1.6.0.dist-info → armodel-1.6.1.dist-info}/entry_points.txt +0 -0
  52. {armodel-1.6.0.dist-info → armodel-1.6.1.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,69 @@
1
+
2
+ from abc import ABCMeta
3
+ from typing import List
4
+
5
+ from ....ar_ref import RefType
6
+ from ....ar_object import ARObject
7
+
8
+
9
+ class AtpInstanceRef(ARObject, metaclass = ABCMeta):
10
+ def __init__(self):
11
+
12
+ if type(self) == AtpInstanceRef:
13
+ raise NotImplementedError("AtpInstanceRef is an abstract class.")
14
+
15
+ super().__init__()
16
+
17
+ self.atpBaseRef = None # type: RefType
18
+ self.atpContextElementRefs = [] # type: List[RefType]
19
+ self.atpTargetRef = None # type: RefType
20
+
21
+ def getAtpBaseRef(self):
22
+ return self.atpBaseRef
23
+
24
+ def setAtpBaseRef(self, value):
25
+ self.atpBaseRef = value
26
+ return self
27
+
28
+ def getAtpContextElementRefs(self):
29
+ return self.atpContextElementRefs
30
+
31
+ def addAtpContextElementRef(self, value):
32
+ self.atpContextElementRefs.append(value)
33
+ return self
34
+
35
+ def getAtpTargetRef(self):
36
+ return self.atpTargetRef
37
+
38
+ def setAtpTargetRef(self, value):
39
+ self.atpTargetRef = value
40
+ return self
41
+
42
+ class AnyInstanceRef(ARObject):
43
+ def __init__(self):
44
+ super().__init__()
45
+
46
+ self.baseRef = None # type: RefType
47
+ self.contextElementRef = None # type: RefType
48
+ self.targetRef = None # type: RefType
49
+
50
+ def getBaseRef(self) -> RefType:
51
+ return self.baseRef
52
+
53
+ def setBaseRef(self, value: RefType):
54
+ self.baseRef = value
55
+ return self
56
+
57
+ def getContextElementRef(self) -> RefType:
58
+ return self.contextElementRef
59
+
60
+ def setContextElementRef(self, value: RefType):
61
+ self.contextElementRef = value
62
+ return self
63
+
64
+ def getTargetRef(self) -> RefType:
65
+ return self.targetRef
66
+
67
+ def setTargetRef(self, value:RefType):
68
+ self.targetRef = value
69
+ return self
@@ -149,6 +149,22 @@ class ParameterRequireComSpec(RPortComSpec):
149
149
  def __init__(self):
150
150
  super().__init__()
151
151
 
152
+ self.initValue = None # type: ValueSpecification
153
+ self.parameterRef = None # type: RefType
154
+
155
+ def getInitValue(self):
156
+ return self.initValue
157
+
158
+ def setInitValue(self, value):
159
+ self.initValue = value
160
+ return self
161
+
162
+ def getParameterRef(self):
163
+ return self.parameterRef
164
+
165
+ def setParameterRef(self, value):
166
+ self.parameterRef = value
167
+ return self
152
168
 
153
169
  class ReceiverComSpec(RPortComSpec):
154
170
  __metaclass__ = ABCMeta
@@ -162,6 +178,34 @@ class ReceiverComSpec(RPortComSpec):
162
178
  self.handleOutOfRange = None # type: ARLiteral
163
179
  self.usesEndToEndProtection = None # type: ARBoolean
164
180
 
181
+ def getDataElementRef(self):
182
+ return self.dataElementRef
183
+
184
+ def setDataElementRef(self, value):
185
+ self.dataElementRef = value
186
+ return self
187
+
188
+ def getNetworkRepresentation(self):
189
+ return self.networkRepresentation
190
+
191
+ def setNetworkRepresentation(self, value):
192
+ self.networkRepresentation = value
193
+ return self
194
+
195
+ def getHandleOutOfRange(self):
196
+ return self.handleOutOfRange
197
+
198
+ def setHandleOutOfRange(self, value):
199
+ self.handleOutOfRange = value
200
+ return self
201
+
202
+ def getUsesEndToEndProtection(self):
203
+ return self.usesEndToEndProtection
204
+
205
+ def setUsesEndToEndProtection(self, value):
206
+ self.usesEndToEndProtection = value
207
+ return self
208
+
165
209
  def addCompositeNetworkRepresentation(self, representation: CompositeNetworkRepresentation):
166
210
  self.compositeNetworkRepresentations.append(representation)
167
211
 
@@ -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
- from .....ar_ref import AtpInstanceRef, RefType
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
+