armodel 1.5.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.
- armodel/cli/arxml_dump_cli.py +13 -13
- armodel/cli/memory_section_cli.py +76 -0
- armodel/cli/system_signal_cli.py +74 -0
- armodel/data_models/sw_connector.py +3 -3
- armodel/lib/__init__.py +2 -1
- armodel/lib/system_signal.py +37 -0
- armodel/models/__init__.py +9 -4
- armodel/models/annotation.py +27 -3
- armodel/models/ar_object.py +18 -6
- armodel/models/ar_package.py +271 -127
- armodel/models/ar_ref.py +11 -166
- armodel/models/bsw_module_template.py +37 -14
- armodel/models/common_structure.py +91 -174
- armodel/models/communication.py +2 -2
- armodel/models/data_prototype.py +41 -6
- armodel/models/datatype.py +16 -74
- armodel/models/end_to_end_protection.py +1 -1
- armodel/models/fibex/can_communication.py +119 -3
- armodel/models/fibex/fibex_4_can/__init__.py +0 -0
- armodel/models/fibex/fibex_4_lin/__init__.py +0 -0
- armodel/models/fibex/fibex_4_multiplatform.py +81 -88
- armodel/models/fibex/fibex_core/__init__.py +0 -0
- armodel/models/fibex/fibex_core/core_communication.py +627 -0
- armodel/models/fibex/fibex_core/core_topology.py +180 -0
- armodel/models/fibex/lin_communication.py +24 -3
- armodel/models/general_structure.py +110 -11
- armodel/models/internal_behavior.py +1 -1
- armodel/models/m2/__init__.py +0 -0
- armodel/models/m2/autosar_templates/__init__.py +0 -0
- armodel/models/m2/autosar_templates/common_structure/__init__.py +188 -0
- armodel/models/m2/autosar_templates/common_structure/constants.py +0 -0
- armodel/models/m2/autosar_templates/common_structure/implementation.py +21 -0
- armodel/models/m2/autosar_templates/common_structure/implementation_data_types.py +148 -0
- armodel/models/m2/autosar_templates/ecuc_description_template.py +269 -0
- 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/sw_component_template/__init__.py +0 -0
- armodel/models/m2/autosar_templates/sw_component_template/communication.py +360 -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 +181 -0
- 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/port_interface.py +236 -0
- armodel/models/m2/autosar_templates/sw_component_template/swc_internal_behavior/__init__.py +203 -0
- armodel/models/m2/autosar_templates/sw_component_template/swc_internal_behavior/access_count.py +13 -0
- armodel/models/m2/autosar_templates/sw_component_template/swc_internal_behavior/data_elements.py +46 -0
- 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 +38 -0
- armodel/models/m2/autosar_templates/sw_component_template/swc_internal_behavior/server_call.py +27 -0
- armodel/models/m2/autosar_templates/sw_component_template/swc_internal_behavior/trigger.py +10 -0
- armodel/models/m2/autosar_templates/system_template/__init__.py +321 -0
- armodel/models/m2/autosar_templates/system_template/data_mapping.py +88 -0
- armodel/models/m2/autosar_templates/system_template/instance_refs.py +48 -0
- armodel/models/m2/autosar_templates/system_template/network_management.py +554 -0
- armodel/models/m2/autosar_templates/system_template/transport_protocols.py +7 -0
- armodel/models/m2/msr/__init__.py +0 -0
- armodel/models/m2/msr/asam_hdo/__init__.py +0 -0
- armodel/models/m2/msr/asam_hdo/units.py +105 -0
- armodel/models/m2/msr/data_dictionary/__init__.py +0 -0
- armodel/models/m2/msr/data_dictionary/auxillary_objects.py +42 -0
- armodel/models/m2/msr/data_dictionary/data_def_properties.py +295 -0
- armodel/models/m2/msr/documentation/__init__.py +0 -0
- armodel/models/m2/msr/documentation/block_elements.py +18 -0
- armodel/models/m2_msr.py +1 -0
- armodel/models/multilanguage_data.py +15 -0
- armodel/models/per_instance_memory.py +34 -6
- armodel/models/port_prototype.py +2 -253
- armodel/models/service_needs.py +3 -1
- armodel/models/sw_component.py +19 -358
- armodel/parser/__init__.py +2 -1
- armodel/parser/abstract_arxml_parser.py +10 -1
- armodel/parser/arxml_parser.py +912 -229
- armodel/parser/file_parser.py +43 -0
- armodel/tests/test_armodel/models/test_ar_package.py +6 -3
- armodel/tests/test_armodel/models/test_ar_ref.py +18 -16
- armodel/tests/test_armodel/models/test_bsw_module_template.py +5 -5
- armodel/tests/test_armodel/models/test_common_structure.py +8 -7
- armodel/tests/test_armodel/models/test_data_dictionary.py +5 -5
- armodel/tests/test_armodel/models/test_data_prototype.py +2 -2
- armodel/tests/test_armodel/models/test_datatype.py +9 -9
- armodel/tests/test_armodel/models/test_port_interface.py +2 -2
- armodel/tests/test_armodel/parser/test_parse_bswmd.py +3 -3
- armodel/tests/test_armodel/parser/test_sw_components.py +3 -3
- armodel/writer/abstract_arxml_writer.py +5 -1
- armodel/writer/arxml_writer.py +870 -224
- {armodel-1.5.0.dist-info → armodel-1.6.1.dist-info}/METADATA +28 -1
- armodel-1.6.1.dist-info/RECORD +140 -0
- {armodel-1.5.0.dist-info → armodel-1.6.1.dist-info}/entry_points.txt +3 -1
- armodel-1.5.0.dist-info/RECORD +0 -91
- {armodel-1.5.0.dist-info → armodel-1.6.1.dist-info}/LICENSE +0 -0
- {armodel-1.5.0.dist-info → armodel-1.6.1.dist-info}/WHEEL +0 -0
- {armodel-1.5.0.dist-info → armodel-1.6.1.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
from abc import ABCMeta
|
|
2
|
+
from typing import List
|
|
3
|
+
|
|
4
|
+
from ...msr.data_dictionary.data_def_properties import SwDataDefProps
|
|
5
|
+
from ....general_structure import Identifiable
|
|
6
|
+
from ....ar_object import ARBoolean, ARLiteral, ARNumerical, ARObject
|
|
7
|
+
from ....datatype import AutosarDataType
|
|
8
|
+
from ..sw_component_template.components import SymbolProps
|
|
9
|
+
|
|
10
|
+
class AbstractImplementationDataTypeElement(Identifiable):
|
|
11
|
+
def __init__(self, parent, short_name: str):
|
|
12
|
+
super().__init__(parent, short_name)
|
|
13
|
+
|
|
14
|
+
class ImplementationDataTypeElement(AbstractImplementationDataTypeElement):
|
|
15
|
+
ARRAY_SIZE_SEMANTICS_FIXED_SIZE = "FIXED-SIZE"
|
|
16
|
+
ARRAY_SIZE_SEMANTICS_VARIABLE_SIZE = "VARIABLE_SIZE"
|
|
17
|
+
|
|
18
|
+
def __init__(self, parent, short_name: str):
|
|
19
|
+
super().__init__(parent, short_name)
|
|
20
|
+
|
|
21
|
+
self.arrayImplPolicy = None # type: ARLiteral
|
|
22
|
+
self.arraySize = None # type: ARNumerical
|
|
23
|
+
self.arraySizeHandling = None # type: ARLiteral
|
|
24
|
+
self.arraySizeSemantics = None # type: ARLiteral
|
|
25
|
+
self.isOptional = None # type: ARBoolean
|
|
26
|
+
self.swDataDefProps = None # type: SwDataDefProps
|
|
27
|
+
|
|
28
|
+
def getArrayImplPolicy(self):
|
|
29
|
+
return self.arrayImplPolicy
|
|
30
|
+
|
|
31
|
+
def setArrayImplPolicy(self, value):
|
|
32
|
+
self.arrayImplPolicy = value
|
|
33
|
+
return self
|
|
34
|
+
|
|
35
|
+
def getArraySize(self):
|
|
36
|
+
return self.arraySize
|
|
37
|
+
|
|
38
|
+
def setArraySize(self, value):
|
|
39
|
+
self.arraySize = value
|
|
40
|
+
return self
|
|
41
|
+
|
|
42
|
+
def getArraySizeHandling(self):
|
|
43
|
+
return self.arraySizeHandling
|
|
44
|
+
|
|
45
|
+
def setArraySizeHandling(self, value):
|
|
46
|
+
self.arraySizeHandling = value
|
|
47
|
+
return self
|
|
48
|
+
|
|
49
|
+
def getArraySizeSemantics(self):
|
|
50
|
+
return self.arraySizeSemantics
|
|
51
|
+
|
|
52
|
+
def setArraySizeSemantics(self, value):
|
|
53
|
+
self.arraySizeSemantics = value
|
|
54
|
+
return self
|
|
55
|
+
|
|
56
|
+
def getIsOptional(self):
|
|
57
|
+
return self.isOptional
|
|
58
|
+
|
|
59
|
+
def setIsOptional(self, value):
|
|
60
|
+
self.isOptional = value
|
|
61
|
+
return self
|
|
62
|
+
|
|
63
|
+
def getSwDataDefProps(self):
|
|
64
|
+
return self.swDataDefProps
|
|
65
|
+
|
|
66
|
+
def setSwDataDefProps(self, value):
|
|
67
|
+
self.swDataDefProps = value
|
|
68
|
+
return self
|
|
69
|
+
|
|
70
|
+
def createImplementationDataTypeElement(self, short_name: str): # type: (...) -> ImplementationDataTypeElement
|
|
71
|
+
if (short_name not in self.elements):
|
|
72
|
+
event = ImplementationDataTypeElement(self, short_name)
|
|
73
|
+
self.elements[short_name] = event
|
|
74
|
+
return self.elements[short_name]
|
|
75
|
+
|
|
76
|
+
def getImplementationDataTypeElements(self): # type:(...) -> List[ImplementationDataTypeElement]
|
|
77
|
+
return list(filter(lambda c: isinstance(c, ImplementationDataTypeElement), self.elements.values()))
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
class AbstractImplementationDataType(AutosarDataType, metaclass = ABCMeta):
|
|
81
|
+
def __init__(self, parent: ARObject, short_name: str):
|
|
82
|
+
if type(self) == AbstractImplementationDataType:
|
|
83
|
+
raise NotImplementedError("AbstractImplementationDataType is an abstract class.")
|
|
84
|
+
|
|
85
|
+
super().__init__(parent, short_name)
|
|
86
|
+
|
|
87
|
+
class ImplementationDataType(AbstractImplementationDataType):
|
|
88
|
+
CATEGORY_TYPE_REFERENCE = "TYPE_REFERENCE"
|
|
89
|
+
CATEGORY_TYPE_VALUE = "VALUE"
|
|
90
|
+
CATEGORY_TYPE_STRUCTURE = "STRUCTURE"
|
|
91
|
+
CATEGORY_DATA_REFERENCE = "DATA_REFERENCE"
|
|
92
|
+
CATEGORY_ARRAY = "ARRAY"
|
|
93
|
+
|
|
94
|
+
def __init__(self, parent: ARObject, short_name: str):
|
|
95
|
+
super().__init__(parent, short_name)
|
|
96
|
+
|
|
97
|
+
self.sub_elements = [] # type: List[str]
|
|
98
|
+
self.symbolProps = None # type: SymbolProps
|
|
99
|
+
self._type_emitter = None # type: ARLiteral
|
|
100
|
+
|
|
101
|
+
self._array_type = None # ImplementationDataType
|
|
102
|
+
self._struct_type = None # ImplementationDataType
|
|
103
|
+
|
|
104
|
+
|
|
105
|
+
def createImplementationDataTypeElement(self, short_name: str) -> ImplementationDataTypeElement:
|
|
106
|
+
self.sub_elements.append(short_name)
|
|
107
|
+
if (short_name not in self.elements):
|
|
108
|
+
event = ImplementationDataTypeElement(self, short_name)
|
|
109
|
+
self.elements[short_name] = event
|
|
110
|
+
return self.elements[short_name]
|
|
111
|
+
|
|
112
|
+
def getImplementationDataTypeElements(self) -> List[ImplementationDataTypeElement]:
|
|
113
|
+
elements = []
|
|
114
|
+
for sub_element in self.sub_elements:
|
|
115
|
+
elements.append(self.elements[sub_element])
|
|
116
|
+
return elements
|
|
117
|
+
# return filter(lambda c: isinstance(c, ImplementationDataTypeElement), self.elements.values())
|
|
118
|
+
|
|
119
|
+
def getArrayElementType(self) -> str:
|
|
120
|
+
return self._array_type
|
|
121
|
+
|
|
122
|
+
def setArrayElementType(self, type: str):
|
|
123
|
+
self._array_type = type
|
|
124
|
+
return self
|
|
125
|
+
|
|
126
|
+
def setTypeEmitter(self, emitter: str):
|
|
127
|
+
self._type_emitter = emitter
|
|
128
|
+
return self
|
|
129
|
+
|
|
130
|
+
def getTypeEmitter(self) -> str:
|
|
131
|
+
return self._type_emitter
|
|
132
|
+
|
|
133
|
+
def setStructElementType(self, type: str):
|
|
134
|
+
self._struct_type = type
|
|
135
|
+
return self
|
|
136
|
+
|
|
137
|
+
def getStructElementType(self) -> str:
|
|
138
|
+
return self._struct_type
|
|
139
|
+
|
|
140
|
+
def createSymbolProps(self, short_name: str) -> SymbolProps:
|
|
141
|
+
if short_name not in self.element:
|
|
142
|
+
symbol_props = SymbolProps(self, short_name)
|
|
143
|
+
self.elements[short_name] = symbol_props
|
|
144
|
+
self.symbolProps = symbol_props
|
|
145
|
+
return self.symbolProps
|
|
146
|
+
|
|
147
|
+
def getSymbolProps(self) -> SymbolProps:
|
|
148
|
+
return self.symbolProps
|
|
@@ -0,0 +1,269 @@
|
|
|
1
|
+
from abc import ABCMeta
|
|
2
|
+
from typing import List
|
|
3
|
+
|
|
4
|
+
from ..autosar_templates.generic_structure.abstract_structure import AnyInstanceRef
|
|
5
|
+
from ..msr.documentation.block_elements import DocumentationBlock
|
|
6
|
+
from ...annotation import Annotation
|
|
7
|
+
from ...ar_ref import RefType
|
|
8
|
+
from ...ar_object import ARBoolean, ARLiteral, ARNumerical, ARObject
|
|
9
|
+
from ...general_structure import ARElement
|
|
10
|
+
|
|
11
|
+
class EcucValueCollection(ARElement):
|
|
12
|
+
def __init__(self, parent: ARObject, short_name: str):
|
|
13
|
+
super().__init__(parent, short_name)
|
|
14
|
+
|
|
15
|
+
self.ecucValueRefs = []
|
|
16
|
+
self.ecuExtractRef = None
|
|
17
|
+
|
|
18
|
+
def getEcucValueRefs(self) -> List[RefType]:
|
|
19
|
+
return self.ecucValueRefs
|
|
20
|
+
|
|
21
|
+
def addEcucValueRef(self, ref: RefType):
|
|
22
|
+
self.ecucValueRefs.append(ref)
|
|
23
|
+
return self
|
|
24
|
+
|
|
25
|
+
def getEcuExtractRef(self):
|
|
26
|
+
return self.ecuExtractRef
|
|
27
|
+
|
|
28
|
+
def setEcuExtractRef(self, value):
|
|
29
|
+
self.ecuExtractRef = value
|
|
30
|
+
return self
|
|
31
|
+
|
|
32
|
+
class EcucIndexableValue(ARObject, metaclass = ABCMeta):
|
|
33
|
+
def __init__(self):
|
|
34
|
+
if type(self) == EcucIndexableValue:
|
|
35
|
+
raise NotImplementedError("EcucIndexableValue is an abstract class.")
|
|
36
|
+
|
|
37
|
+
super().__init__()
|
|
38
|
+
|
|
39
|
+
class EcucAbstractReferenceValue(EcucIndexableValue, metaclass=ABCMeta):
|
|
40
|
+
def __init__(self):
|
|
41
|
+
if type(self) == EcucAbstractReferenceValue:
|
|
42
|
+
raise NotImplementedError("EcucAbstractReferenceValue is an abstract class.")
|
|
43
|
+
|
|
44
|
+
super().__init__()
|
|
45
|
+
|
|
46
|
+
class EcucParameterValue(EcucIndexableValue, metaclass=ABCMeta):
|
|
47
|
+
def __init__(self):
|
|
48
|
+
if type(self) == EcucParameterValue:
|
|
49
|
+
raise NotImplementedError("EcucParameterValue is an abstract class.")
|
|
50
|
+
|
|
51
|
+
super().__init__()
|
|
52
|
+
|
|
53
|
+
self.annotations = [] # type: List[Annotation]
|
|
54
|
+
self.definitionRef = None # type: RefType
|
|
55
|
+
self.isAutoValue = None # type: ARBoolean
|
|
56
|
+
|
|
57
|
+
def getAnnotations(self) -> List[Annotation]:
|
|
58
|
+
return self.annotations
|
|
59
|
+
|
|
60
|
+
def addAnnotation(self, value: Annotation):
|
|
61
|
+
self.annotations.append(value)
|
|
62
|
+
return self
|
|
63
|
+
|
|
64
|
+
def getDefinitionRef(self) -> RefType:
|
|
65
|
+
return self.definitionRef
|
|
66
|
+
|
|
67
|
+
def setDefinitionRef(self, value: RefType):
|
|
68
|
+
self.definitionRef = value
|
|
69
|
+
return self
|
|
70
|
+
|
|
71
|
+
def getIsAutoValue(self) -> ARBoolean:
|
|
72
|
+
return self.isAutoValue
|
|
73
|
+
|
|
74
|
+
def setIsAutoValue(self, value: ARBoolean):
|
|
75
|
+
self.isAutoValue = value
|
|
76
|
+
return self
|
|
77
|
+
|
|
78
|
+
class EcucAddInfoParamValue(EcucParameterValue):
|
|
79
|
+
def __init__(self):
|
|
80
|
+
super().__init__()
|
|
81
|
+
|
|
82
|
+
self.value = None # type: DocumentationBlock
|
|
83
|
+
|
|
84
|
+
def getValue(self) -> DocumentationBlock:
|
|
85
|
+
return self.value
|
|
86
|
+
|
|
87
|
+
def setValue(self, value: DocumentationBlock):
|
|
88
|
+
self.value = value
|
|
89
|
+
|
|
90
|
+
class EcucTextualParamValue(EcucParameterValue):
|
|
91
|
+
def __init__(self):
|
|
92
|
+
super().__init__()
|
|
93
|
+
|
|
94
|
+
self.value = None # type: ARLiteral
|
|
95
|
+
|
|
96
|
+
def getValue(self) -> ARLiteral:
|
|
97
|
+
return self.value
|
|
98
|
+
|
|
99
|
+
def setValue(self, value:ARLiteral):
|
|
100
|
+
self.value = value
|
|
101
|
+
|
|
102
|
+
|
|
103
|
+
class EcucNumericalParamValue(EcucParameterValue):
|
|
104
|
+
def __init__(self):
|
|
105
|
+
super().__init__()
|
|
106
|
+
|
|
107
|
+
self.value = None # type: ARNumerical
|
|
108
|
+
|
|
109
|
+
def getValue(self) -> ARNumerical:
|
|
110
|
+
return self.value
|
|
111
|
+
|
|
112
|
+
def setValue(self, value: ARNumerical):
|
|
113
|
+
self.value = value
|
|
114
|
+
|
|
115
|
+
class EcucAbstractReferenceValue(EcucIndexableValue, metaclass=ABCMeta):
|
|
116
|
+
def __init__(self):
|
|
117
|
+
if type(self) == EcucAbstractReferenceValue:
|
|
118
|
+
raise NotImplementedError("EcucAbstractReferenceValue is an abstract class.")
|
|
119
|
+
|
|
120
|
+
super().__init__()
|
|
121
|
+
|
|
122
|
+
self.annotations = [] # type: List[Annotation]
|
|
123
|
+
self.definitionRef = None # type: RefType
|
|
124
|
+
self.isAutoValue = None # type: ARBoolean
|
|
125
|
+
|
|
126
|
+
def getAnnotations(self) -> List[Annotation]:
|
|
127
|
+
return self.annotations
|
|
128
|
+
|
|
129
|
+
def addAnnotation(self, value: Annotation):
|
|
130
|
+
self.annotations.append(value)
|
|
131
|
+
return self
|
|
132
|
+
|
|
133
|
+
def getDefinitionRef(self) -> RefType:
|
|
134
|
+
return self.definitionRef
|
|
135
|
+
|
|
136
|
+
def setDefinitionRef(self, value: RefType):
|
|
137
|
+
self.definitionRef = value
|
|
138
|
+
return self
|
|
139
|
+
|
|
140
|
+
def getIsAutoValue(self) -> ARBoolean:
|
|
141
|
+
return self.isAutoValue
|
|
142
|
+
|
|
143
|
+
def setIsAutoValue(self, value: ARBoolean):
|
|
144
|
+
self.isAutoValue = value
|
|
145
|
+
return self
|
|
146
|
+
|
|
147
|
+
class EcucInstanceReferenceValue(EcucAbstractReferenceValue):
|
|
148
|
+
def __init__(self):
|
|
149
|
+
super().__init__()
|
|
150
|
+
|
|
151
|
+
self.valueIRef = None # type: AnyInstanceRef
|
|
152
|
+
|
|
153
|
+
def getValueIRef(self) -> AnyInstanceRef:
|
|
154
|
+
return self.valueRef
|
|
155
|
+
|
|
156
|
+
def setValueIRef(self, value: AnyInstanceRef):
|
|
157
|
+
self.valueRef = value
|
|
158
|
+
return self
|
|
159
|
+
|
|
160
|
+
class EcucReferenceValue(EcucAbstractReferenceValue):
|
|
161
|
+
def __init__(self):
|
|
162
|
+
super().__init__()
|
|
163
|
+
|
|
164
|
+
self.valueRef = None # type: RefType
|
|
165
|
+
|
|
166
|
+
def getValueRef(self) -> RefType:
|
|
167
|
+
return self.valueRef
|
|
168
|
+
|
|
169
|
+
def setValueRef(self, value: RefType):
|
|
170
|
+
self.valueRef = value
|
|
171
|
+
return self
|
|
172
|
+
|
|
173
|
+
class EcucContainerValue(ARElement, EcucIndexableValue):
|
|
174
|
+
def __init__(self, parent: ARObject, short_name: str):
|
|
175
|
+
ARElement.__init__(self, parent, short_name)
|
|
176
|
+
|
|
177
|
+
self.definitionRef = None # type: RefType
|
|
178
|
+
self.parameterValues = [] # type: List[EcucParameterValue]
|
|
179
|
+
self.referenceValues = [] # type: List[EcucAbstractReferenceValue]
|
|
180
|
+
self.subContainers = [] # type: List[EcucContainerValue]
|
|
181
|
+
|
|
182
|
+
def getDefinitionRef(self) -> RefType:
|
|
183
|
+
return self.definitionRef
|
|
184
|
+
|
|
185
|
+
def setDefinitionRef(self, value: RefType):
|
|
186
|
+
self.definitionRef = value
|
|
187
|
+
return self
|
|
188
|
+
|
|
189
|
+
def getParameterValues(self)-> List[EcucParameterValue]:
|
|
190
|
+
return self.parameterValues
|
|
191
|
+
|
|
192
|
+
def addParameterValue(self, value: EcucParameterValue):
|
|
193
|
+
self.parameterValues.append(value)
|
|
194
|
+
return self
|
|
195
|
+
|
|
196
|
+
def getReferenceValues(self) -> EcucAbstractReferenceValue:
|
|
197
|
+
return self.referenceValues
|
|
198
|
+
|
|
199
|
+
def addReferenceValue(self, value: EcucAbstractReferenceValue):
|
|
200
|
+
self.referenceValues.append(value)
|
|
201
|
+
return self
|
|
202
|
+
|
|
203
|
+
def getSubContainers(self):
|
|
204
|
+
return self.subContainers
|
|
205
|
+
|
|
206
|
+
def createSubContainer(self, short_name):
|
|
207
|
+
if (short_name not in self.elements):
|
|
208
|
+
container_value = EcucContainerValue(self, short_name)
|
|
209
|
+
self.elements[short_name] = container_value
|
|
210
|
+
self.subContainers.append(container_value)
|
|
211
|
+
return self.elements[short_name]
|
|
212
|
+
|
|
213
|
+
|
|
214
|
+
class EcucModuleConfigurationValues(ARElement):
|
|
215
|
+
def __init__(self, parent: ARObject, short_name: str):
|
|
216
|
+
super().__init__(parent, short_name)
|
|
217
|
+
|
|
218
|
+
self.containers = [] # type: List[EcucContainerValue]
|
|
219
|
+
self.definitionRef = None # type: RefType
|
|
220
|
+
self.ecucDefEdition = None # type: ARLiteral
|
|
221
|
+
self.implementationConfigVariant = None # type: ARLiteral
|
|
222
|
+
self.moduleDescriptionRef = None # type: RefType
|
|
223
|
+
self.postBuildVariantUsed = None # type: ARBoolean
|
|
224
|
+
|
|
225
|
+
def createContainer(self, short_name: str) -> EcucContainerValue:
|
|
226
|
+
if (short_name not in self.elements):
|
|
227
|
+
container = EcucContainerValue(self, short_name)
|
|
228
|
+
self.elements[short_name] = container
|
|
229
|
+
self.containers.append(container)
|
|
230
|
+
return self.elements[short_name]
|
|
231
|
+
|
|
232
|
+
def getContainers(self) -> List[EcucContainerValue]:
|
|
233
|
+
return list(sorted(filter(lambda a: isinstance(a, EcucContainerValue), self.elements.values()), key= lambda o:o.short_name))
|
|
234
|
+
|
|
235
|
+
def getDefinitionRef(self) -> RefType:
|
|
236
|
+
return self.definitionRef
|
|
237
|
+
|
|
238
|
+
def setDefinitionRef(self, value: RefType):
|
|
239
|
+
self.definitionRef = value
|
|
240
|
+
return self
|
|
241
|
+
|
|
242
|
+
def getEcucDefEdition(self) -> ARLiteral:
|
|
243
|
+
return self.ecucDefEdition
|
|
244
|
+
|
|
245
|
+
def setEcucDefEdition(self, value: ARLiteral):
|
|
246
|
+
self.ecucDefEdition = value
|
|
247
|
+
return self
|
|
248
|
+
|
|
249
|
+
def getImplementationConfigVariant(self) -> ARLiteral:
|
|
250
|
+
return self.implementationConfigVariant
|
|
251
|
+
|
|
252
|
+
def setImplementationConfigVariant(self, value: ARLiteral):
|
|
253
|
+
self.implementationConfigVariant = value
|
|
254
|
+
return self
|
|
255
|
+
|
|
256
|
+
def getModuleDescriptionRef(self) -> RefType:
|
|
257
|
+
return self.moduleDescriptionRef
|
|
258
|
+
|
|
259
|
+
def setModuleDescriptionRef(self, value: RefType):
|
|
260
|
+
self.moduleDescriptionRef = value
|
|
261
|
+
return self
|
|
262
|
+
|
|
263
|
+
def getPostBuildVariantUsed(self) -> ARBoolean:
|
|
264
|
+
return self.postBuildVariantUsed
|
|
265
|
+
|
|
266
|
+
def setPostBuildVariantUsed(self, value: ARBoolean):
|
|
267
|
+
self.postBuildVariantUsed = value
|
|
268
|
+
return self
|
|
269
|
+
|
|
File without changes
|
|
@@ -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
|
|
File without changes
|