armodel 1.7.7__py3-none-any.whl → 1.7.9__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 (73) hide show
  1. armodel/cli/arxml_dump_cli.py +33 -22
  2. armodel/cli/arxml_format_cli.py +25 -13
  3. armodel/models/M2/AUTOSARTemplates/AutosarTopLevelStructure.py +84 -28
  4. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswBehavior.py +410 -61
  5. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswInterfaces.py +80 -9
  6. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswOverview.py +141 -35
  7. armodel/models/M2/AUTOSARTemplates/CommonStructure/Implementation.py +10 -8
  8. armodel/models/M2/AUTOSARTemplates/CommonStructure/InternalBehavior.py +17 -6
  9. armodel/models/M2/AUTOSARTemplates/CommonStructure/ModeDeclaration.py +38 -3
  10. armodel/models/M2/AUTOSARTemplates/CommonStructure/ServiceNeeds.py +91 -18
  11. armodel/models/M2/AUTOSARTemplates/CommonStructure/StandardizationTemplate/BlueprintDedicated/PortPrototypeBlueprint.py +73 -0
  12. armodel/models/M2/AUTOSARTemplates/CommonStructure/StandardizationTemplate/BlueprintDedicated/__init__.py +0 -0
  13. armodel/models/M2/AUTOSARTemplates/CommonStructure/StandardizationTemplate/Keyword.py +45 -0
  14. armodel/models/M2/AUTOSARTemplates/CommonStructure/StandardizationTemplate/__init__.py +0 -0
  15. armodel/models/M2/AUTOSARTemplates/CommonStructure/TriggerDeclaration.py +45 -2
  16. armodel/models/M2/AUTOSARTemplates/ECUCDescriptionTemplate.py +20 -19
  17. armodel/models/M2/AUTOSARTemplates/EcuResourceTemplate/HwElementCategory.py +59 -0
  18. armodel/models/M2/AUTOSARTemplates/EcuResourceTemplate/__init__.py +145 -0
  19. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/ARPackage.py +243 -156
  20. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/ElementCollection.py +73 -0
  21. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/Identifiable.py +60 -32
  22. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/PrimitiveTypes.py +35 -14
  23. armodel/models/M2/AUTOSARTemplates/GenericStructure/LifeCycles.py +151 -1
  24. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Components/__init__.py +66 -42
  25. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Composition/__init__.py +1 -0
  26. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/EndToEndProtection.py +13 -6
  27. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/PortInterface/__init__.py +166 -50
  28. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SoftwareComponentDocumentation.py +80 -0
  29. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/AccessCount.py +9 -1
  30. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/ModeDeclarationGroup.py +5 -4
  31. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/RTEEvents.py +11 -1
  32. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/ServiceMapping.py +16 -2
  33. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__init__.py +9 -1
  34. armodel/models/M2/AUTOSARTemplates/SystemTemplate/DataMapping.py +167 -5
  35. armodel/models/M2/AUTOSARTemplates/SystemTemplate/{ECUResourceMapping.py → EcuResourceMapping.py} +4 -3
  36. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Can/CanTopology.py +31 -21
  37. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/EthernetFrame.py +5 -3
  38. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/EthernetTopology.py +18 -6
  39. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Flexray/FlexrayCommunication.py +76 -0
  40. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Flexray/FlexrayTopology.py +654 -0
  41. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Flexray/__init__.py +0 -0
  42. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/CoreCommunication.py +64 -31
  43. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/CoreTopology.py +158 -40
  44. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/EcuInstance.py +19 -6
  45. armodel/models/M2/AUTOSARTemplates/SystemTemplate/InstanceRefs.py +2 -0
  46. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Transformer/__init__.py +524 -0
  47. armodel/models/M2/AUTOSARTemplates/SystemTemplate/__init__.py +15 -13
  48. armodel/models/M2/MSR/DataDictionary/DataDefProperties.py +10 -1
  49. armodel/models/M2/MSR/Documentation/BlockElements/Figure.py +163 -0
  50. armodel/models/M2/MSR/Documentation/BlockElements/__init__.py +0 -0
  51. armodel/models/M2/MSR/Documentation/TextModel/BlockElements/ListElements.py +5 -3
  52. armodel/models/M2/MSR/Documentation/TextModel/BlockElements/PaginationAndView.py +22 -1
  53. armodel/models/M2/MSR/Documentation/TextModel/BlockElements/__init__.py +94 -9
  54. armodel/models/__init__.py +7 -1
  55. armodel/parser/abstract_arxml_parser.py +39 -32
  56. armodel/parser/arxml_parser.py +1439 -551
  57. armodel/parser/file_parser.py +5 -3
  58. armodel/tests/test_armodel/models/test_ar_package.py +6 -11
  59. armodel/tests/test_armodel/models/test_port_interface.py +116 -117
  60. armodel/tests/test_armodel/parser/test_bsw_module_descriiption.py +109 -109
  61. armodel/tests/test_armodel/parser/test_sw_components.py +301 -28
  62. armodel/tests/test_armodel/parser/test_system.py +2 -8
  63. armodel/transformer/__init__.py +0 -0
  64. armodel/transformer/abstract.py +6 -0
  65. armodel/transformer/admin_data.py +31 -0
  66. armodel/writer/abstract_arxml_writer.py +22 -29
  67. armodel/writer/arxml_writer.py +1500 -526
  68. {armodel-1.7.7.dist-info → armodel-1.7.9.dist-info}/METADATA +61 -1
  69. {armodel-1.7.7.dist-info → armodel-1.7.9.dist-info}/RECORD +73 -57
  70. {armodel-1.7.7.dist-info → armodel-1.7.9.dist-info}/LICENSE +0 -0
  71. {armodel-1.7.7.dist-info → armodel-1.7.9.dist-info}/WHEEL +0 -0
  72. {armodel-1.7.7.dist-info → armodel-1.7.9.dist-info}/entry_points.txt +0 -0
  73. {armodel-1.7.7.dist-info → armodel-1.7.9.dist-info}/top_level.txt +0 -0
@@ -1,47 +1,66 @@
1
1
  from typing import Dict, List
2
2
 
3
- from .....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import Boolean, Identifier, RefType, ReferrableSubtypesEnum
4
- from .....M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.EcuInstance import EcuInstance
5
- from .....M2.AUTOSARTemplates.CommonStructure.Timing.TimingConstraint.TimingExtensions import SwcTiming
6
- from .....M2.AUTOSARTemplates.SWComponentTemplate.Components import CompositionSwComponentType, ServiceSwComponentType, SwComponentType, ApplicationSwComponentType, AtomicSwComponentType, ComplexDeviceDriverSwComponentType, EcuAbstractionSwComponentType, SensorActuatorSwComponentType
7
- from .....M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Ethernet.EthernetFrame import GenericEthernetFrame
3
+ from .....M2.AUTOSARTemplates.SWComponentTemplate.Components import SensorActuatorSwComponentType
8
4
  from .....M2.MSR.AsamHdo.BaseTypes import SwBaseType
9
5
  from .....M2.MSR.AsamHdo.Units import PhysicalDimension, Unit
10
6
  from .....M2.MSR.AsamHdo.Constraints.GlobalConstraints import DataConstr
11
7
  from .....M2.MSR.AsamHdo.ComputationMethod import CompuMethod
12
8
  from .....M2.MSR.DataDictionary.AuxillaryObjects import SwAddrMethod
13
9
  from .....M2.MSR.DataDictionary.RecordLayout import SwRecordLayout
10
+
14
11
  from .....M2.AUTOSARTemplates.BswModuleTemplate.BswImplementation import BswImplementation
15
12
  from .....M2.AUTOSARTemplates.BswModuleTemplate.BswOverview import BswModuleDescription
16
13
  from .....M2.AUTOSARTemplates.BswModuleTemplate.BswInterfaces import BswModuleEntry
14
+ from .....M2.AUTOSARTemplates.CommonStructure import ConstantSpecification
15
+ from .....M2.AUTOSARTemplates.CommonStructure.ImplementationDataTypes import ImplementationDataType
17
16
  from .....M2.AUTOSARTemplates.CommonStructure.Implementation import Implementation
18
17
  from .....M2.AUTOSARTemplates.CommonStructure.FlatMap import FlatMap
18
+ from .....M2.AUTOSARTemplates.CommonStructure.ModeDeclaration import ModeDeclarationGroup
19
+ from .....M2.AUTOSARTemplates.CommonStructure.SwcBswMapping import SwcBswMapping
20
+ from .....M2.AUTOSARTemplates.CommonStructure.StandardizationTemplate.BlueprintDedicated.PortPrototypeBlueprint import PortPrototypeBlueprint
21
+ from .....M2.AUTOSARTemplates.CommonStructure.StandardizationTemplate.Keyword import KeywordSet
22
+ from .....M2.AUTOSARTemplates.CommonStructure.Timing.TimingConstraint.TimingExtensions import SwcTiming
19
23
  from .....M2.AUTOSARTemplates.DiagnosticExtract.DiagnosticContribution import DiagnosticServiceTable
24
+ from .....M2.AUTOSARTemplates.ECUCDescriptionTemplate import EcucModuleConfigurationValues, EcucValueCollection
25
+ from .....M2.AUTOSARTemplates.EcuResourceTemplate import HwElement
26
+ from .....M2.AUTOSARTemplates.EcuResourceTemplate.HwElementCategory import HwCategory, HwType
20
27
  from .....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
28
+ from .....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ElementCollection import Collection
21
29
  from .....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Identifiable import CollectableElement, Identifiable, Referrable
30
+ from .....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import Boolean, Identifier, RefType, ReferrableSubtypesEnum
22
31
  from .....M2.AUTOSARTemplates.GenericStructure.LifeCycles import LifeCycleInfoSet
23
- from .....M2.AUTOSARTemplates.SWComponentTemplate.Datatype.Datatypes import ApplicationArrayDataType, ApplicationDataType, ApplicationPrimitiveDataType, ApplicationRecordDataType
24
- from .....M2.AUTOSARTemplates.CommonStructure.ModeDeclaration import ModeDeclarationGroup
32
+ from .....M2.AUTOSARTemplates.SWComponentTemplate.Components import CompositionSwComponentType, ServiceSwComponentType, SwComponentType
33
+ from .....M2.AUTOSARTemplates.SWComponentTemplate.Components import ApplicationSwComponentType, AtomicSwComponentType
34
+ from .....M2.AUTOSARTemplates.SWComponentTemplate.Components import ComplexDeviceDriverSwComponentType, EcuAbstractionSwComponentType
35
+ from .....M2.AUTOSARTemplates.SWComponentTemplate.Datatype.Datatypes import ApplicationArrayDataType, ApplicationDataType
36
+ from .....M2.AUTOSARTemplates.SWComponentTemplate.Datatype.Datatypes import ApplicationPrimitiveDataType, ApplicationRecordDataType
25
37
  from .....M2.AUTOSARTemplates.SWComponentTemplate.Datatype.Datatypes import DataTypeMappingSet
26
38
  from .....M2.AUTOSARTemplates.SWComponentTemplate.EndToEndProtection import EndToEndProtectionSet
39
+ from .....M2.AUTOSARTemplates.SWComponentTemplate.PortInterface import ClientServerInterface, ModeSwitchInterface, ParameterInterface
40
+ from .....M2.AUTOSARTemplates.SWComponentTemplate.PortInterface import PortInterfaceMappingSet, SenderReceiverInterface, TriggerInterface
41
+ from .....M2.AUTOSARTemplates.SWComponentTemplate.SwcImplementation import SwcImplementation
42
+
43
+ from .....M2.AUTOSARTemplates.SystemTemplate import System
27
44
  from .....M2.AUTOSARTemplates.SystemTemplate.DiagnosticConnection import DiagnosticConnection
28
45
  from .....M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Can.CanCommunication import CanFrame
29
46
  from .....M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Multiplatform import Gateway
30
- from .....M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.CoreCommunication import DcmIPdu, GeneralPurposeIPdu, GeneralPurposePdu, ISignal, ISignalGroup, ISignalIPdu, ISignalIPduGroup, MultiplexedIPdu, NPdu, NmPdu, SecureCommunicationPropsSet, SecuredIPdu, SystemSignal, SystemSignalGroup, UserDefinedIPdu, UserDefinedPdu
47
+ from .....M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.CoreCommunication import DcmIPdu, GeneralPurposeIPdu, GeneralPurposePdu, ISignal
48
+ from .....M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.CoreCommunication import ISignalGroup, ISignalIPdu, ISignalIPduGroup, MultiplexedIPdu
49
+ from .....M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.CoreCommunication import NPdu, NmPdu, SecureCommunicationPropsSet, SecuredIPdu
50
+ from .....M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.CoreCommunication import SystemSignal, SystemSignalGroup, UserDefinedIPdu, UserDefinedPdu
31
51
  from .....M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.CoreTopology import CanCluster, LinCluster
52
+ from .....M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.EcuInstance import EcuInstance
32
53
  from .....M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Lin.LinCommunication import LinUnconditionalFrame
54
+ from .....M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Ethernet.EthernetFrame import GenericEthernetFrame
33
55
  from .....M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Ethernet.EthernetTopology import EthernetCluster
34
56
  from .....M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Ethernet.EthernetCommunication import SoAdRoutingGroup
35
- from .....M2.AUTOSARTemplates.CommonStructure.SwcBswMapping import SwcBswMapping
36
- from .....M2.AUTOSARTemplates.SWComponentTemplate.SwcImplementation import SwcImplementation
37
- from .....M2.AUTOSARTemplates.CommonStructure import ConstantSpecification
38
- from .....M2.AUTOSARTemplates.CommonStructure.ImplementationDataTypes import ImplementationDataType
39
- from .....M2.AUTOSARTemplates.ECUCDescriptionTemplate import EcucModuleConfigurationValues, EcucValueCollection
40
- from .....M2.AUTOSARTemplates.SWComponentTemplate.PortInterface import ClientServerInterface, ModeSwitchInterface, ParameterInterface, PortInterfaceMappingSet, SenderReceiverInterface, TriggerInterface
41
- from .....M2.AUTOSARTemplates.SystemTemplate import System
57
+ from .....M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Flexray.FlexrayCommunication import FlexrayFrame
58
+ from .....M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Flexray.FlexrayTopology import FlexrayCluster
42
59
  from .....M2.AUTOSARTemplates.SystemTemplate.NetworkManagement import NmConfig
60
+ from .....M2.AUTOSARTemplates.SystemTemplate.Transformer import DataTransformationSet
43
61
  from .....M2.AUTOSARTemplates.SystemTemplate.TransportProtocols import CanTpConfig, DoIpTpConfig, LinTpConfig
44
62
 
63
+
45
64
  class ReferenceBase(ARObject):
46
65
  def __init__(self):
47
66
  super().__init__()
@@ -113,12 +132,12 @@ class ARPackage(Identifiable, CollectableElement):
113
132
  self.referenceBases = [] # type: List[ReferenceBase]
114
133
 
115
134
  def getARPackages(self): # type: (...) -> List[ARPackage]
116
- return list(sorted(self.arPackages.values(), key= lambda a: a.short_name))
117
- #return list(filter(lambda e: isinstance(e, ARPackage), self.elements.values()))
135
+ return list(sorted(self.arPackages.values(), key=lambda a: a.short_name))
136
+ # return list(filter(lambda e: isinstance(e, ARPackage), self.elements.values()))
118
137
 
119
138
  def createARPackage(self, short_name: str):
120
139
  '''
121
- if (short_name not in self.elements):
140
+ if (not self.IsElementExists(short_name)):
122
141
  ar_package = ARPackage(self, short_name)
123
142
  self.elements[short_name] = ar_package
124
143
  return self.elements[short_name]
@@ -134,103 +153,97 @@ class ARPackage(Identifiable, CollectableElement):
134
153
  return CollectableElement.getElement(self, short_name)
135
154
 
136
155
  def createEcuAbstractionSwComponentType(self, short_name: str) -> EcuAbstractionSwComponentType:
137
- if (short_name not in self.elements):
156
+ if (not self.IsElementExists(short_name)):
138
157
  sw_component = EcuAbstractionSwComponentType(self, short_name)
139
158
  self.addElement(sw_component)
140
159
  return self.getElement(short_name)
141
160
 
142
161
  def createApplicationSwComponentType(self, short_name: str) -> ApplicationSwComponentType:
143
- if short_name not in self.elements:
162
+ if not self.IsElementExists(short_name):
144
163
  sw_component = ApplicationSwComponentType(self, short_name)
145
164
  self.addElement(sw_component)
146
165
  return self.getElement(short_name)
147
166
 
148
167
  def createComplexDeviceDriverSwComponentType(self, short_name: str) -> ComplexDeviceDriverSwComponentType:
149
- if short_name not in self.elements:
168
+ if not self.IsElementExists(short_name):
150
169
  sw_component = ComplexDeviceDriverSwComponentType(self, short_name)
151
170
  self.addElement(sw_component)
152
171
  return self.getElement(short_name)
153
172
 
154
173
  def createServiceSwComponentType(self, short_name: str) -> ServiceSwComponentType:
155
- if (short_name not in self.elements):
174
+ if (not self.IsElementExists(short_name)):
156
175
  sw_component = ServiceSwComponentType(self, short_name)
157
176
  self.addElement(sw_component)
158
177
  return self.getElement(short_name)
159
178
 
160
179
  def createSensorActuatorSwComponentType(self, short_name: str) -> SensorActuatorSwComponentType:
161
- if (short_name not in self.elements):
180
+ if (not self.IsElementExists(short_name)):
162
181
  sw_component = SensorActuatorSwComponentType(self, short_name)
163
182
  self.addElement(sw_component)
164
183
  return self.getElement(short_name)
165
184
 
166
185
  def createCompositionSwComponentType(self, short_name: str) -> CompositionSwComponentType:
167
- if (short_name not in self.elements):
186
+ if (not self.IsElementExists(short_name)):
168
187
  sw_component = CompositionSwComponentType(self, short_name)
169
188
  self.addElement(sw_component)
170
189
  return self.getElement(short_name)
171
190
 
172
191
  def createSenderReceiverInterface(self, short_name: str) -> SenderReceiverInterface:
173
- if (short_name not in self.elements):
192
+ if (not self.IsElementExists(short_name)):
174
193
  sr_interface = SenderReceiverInterface(self, short_name)
175
194
  self.addElement(sr_interface)
176
195
  return self.getElement(short_name)
177
196
 
178
197
  def createParameterInterface(self, short_name: str) -> ParameterInterface:
179
- if (short_name not in self.elements):
198
+ if (not self.IsElementExists(short_name)):
180
199
  sr_interface = ParameterInterface(self, short_name)
181
200
  self.addElement(sr_interface)
182
201
  return self.getElement(short_name)
183
202
 
184
203
  def createGenericEthernetFrame(self, short_name: str) -> GenericEthernetFrame:
185
- if (short_name not in self.elements):
204
+ if (not self.IsElementExists(short_name)):
186
205
  frame = GenericEthernetFrame(self, short_name)
187
206
  self.addElement(frame)
188
207
  return self.getElement(short_name)
189
208
 
190
209
  def createLifeCycleInfoSet(self, short_name: str) -> LifeCycleInfoSet:
191
- if (short_name not in self.elements):
210
+ if (not self.IsElementExists(short_name)):
192
211
  set = LifeCycleInfoSet(self, short_name)
193
212
  self.addElement(set)
194
213
  return self.getElement(short_name)
195
214
 
196
- def createFlatMap(self, short_name: str) -> FlatMap:
197
- if (short_name not in self.elements):
198
- set = FlatMap(self, short_name)
199
- self.addElement(set)
200
- return self.getElement(short_name)
201
-
202
215
  def createClientServerInterface(self, short_name: str) -> ClientServerInterface:
203
- if (short_name not in self.elements):
216
+ if (not self.IsElementExists(short_name)):
204
217
  cs_interface = ClientServerInterface(self, short_name)
205
218
  self.addElement(cs_interface)
206
219
  return self.getElement(short_name)
207
220
 
208
221
  def createApplicationPrimitiveDataType(self, short_name: str) -> ApplicationPrimitiveDataType:
209
- if (short_name not in self.elements):
222
+ if (not self.IsElementExists(short_name)):
210
223
  data_type = ApplicationPrimitiveDataType(self, short_name)
211
224
  self.addElement(data_type)
212
225
  return self.getElement(short_name)
213
226
 
214
227
  def createApplicationRecordDataType(self, short_name: str) -> ApplicationPrimitiveDataType:
215
- if (short_name not in self.elements):
228
+ if (not self.IsElementExists(short_name)):
216
229
  data_type = ApplicationRecordDataType(self, short_name)
217
230
  self.addElement(data_type)
218
231
  return self.getElement(short_name)
219
232
 
220
233
  def createImplementationDataType(self, short_name: str) -> ImplementationDataType:
221
- if (short_name not in self.elements):
234
+ if (not self.IsElementExists(short_name)):
222
235
  data_type = ImplementationDataType(self, short_name)
223
236
  self.addElement(data_type)
224
237
  return self.getElement(short_name)
225
238
 
226
239
  def createSwBaseType(self, short_name: str) -> SwBaseType:
227
- if (short_name not in self.elements):
240
+ if (not self.IsElementExists(short_name)):
228
241
  base_type = SwBaseType(self, short_name)
229
242
  self.addElement(base_type)
230
243
  return self.getElement(short_name)
231
244
 
232
245
  def createDataTypeMappingSet(self, short_name: str) -> DataTypeMappingSet:
233
- if (short_name not in self.elements):
246
+ if (not self.IsElementExists(short_name)):
234
247
  mapping_set = DataTypeMappingSet(self, short_name)
235
248
  self.addElement(mapping_set)
236
249
  return self.getElement(short_name)
@@ -242,355 +255,409 @@ class ARPackage(Identifiable, CollectableElement):
242
255
  return self.getElement(short_name)
243
256
 
244
257
  def createBswModuleDescription(self, short_name: str) -> BswModuleDescription:
245
- if (short_name not in self.elements):
258
+ if (not self.IsElementExists(short_name)):
246
259
  desc = BswModuleDescription(self, short_name)
247
260
  self.addElement(desc)
248
261
  return self.getElement(short_name)
249
262
 
250
263
  def createBswModuleEntry(self, short_name: str) -> BswModuleEntry:
251
- if (short_name not in self.elements):
264
+ if (not self.IsElementExists(short_name)):
252
265
  entry = BswModuleEntry(self, short_name)
253
266
  self.addElement(entry)
254
267
  return self.getElement(short_name)
255
268
 
256
269
  def createBswImplementation(self, short_name: str) -> BswImplementation:
257
- if (short_name not in self.elements):
270
+ if (not self.IsElementExists(short_name)):
258
271
  impl = BswImplementation(self, short_name)
259
272
  self.addElement(impl)
260
273
  return self.getElement(short_name)
261
274
 
262
275
  def createSwcImplementation(self, short_name: str) -> SwcImplementation:
263
- if (short_name not in self.elements):
276
+ if (not self.IsElementExists(short_name)):
264
277
  impl = SwcImplementation(self, short_name)
265
278
  self.addElement(impl)
266
279
  return self.getElement(short_name)
267
280
 
268
281
  def createSwcBswMapping(self, short_name: str) -> SwcBswMapping:
269
- if (short_name not in self.elements):
282
+ if (not self.IsElementExists(short_name)):
270
283
  mapping = SwcBswMapping(self, short_name)
271
284
  self.addElement(mapping)
272
285
  return self.getElement(short_name)
273
286
 
274
287
  def createConstantSpecification(self, short_name: str) -> ConstantSpecification:
275
- if (short_name not in self.elements):
288
+ if (not self.IsElementExists(short_name)):
276
289
  spec = ConstantSpecification(self, short_name)
277
290
  self.addElement(spec)
278
291
  return self.getElement(short_name)
279
292
 
280
293
  def createDataConstr(self, short_name: str) -> DataConstr:
281
- if (short_name not in self.elements):
294
+ if (not self.IsElementExists(short_name)):
282
295
  constr = DataConstr(self, short_name)
283
296
  self.addElement(constr)
284
297
  return self.getElement(short_name)
285
298
 
286
299
  def createUnit(self, short_name: str) -> Unit:
287
- if (short_name not in self.elements):
300
+ if (not self.IsElementExists(short_name)):
288
301
  unit = Unit(self, short_name)
289
302
  self.addElement(unit)
290
303
  return self.getElement(short_name)
291
304
 
292
305
  def createEndToEndProtectionSet(self, short_name: str) -> EndToEndProtectionSet:
293
- if (short_name not in self.elements):
306
+ if (not self.IsElementExists(short_name)):
294
307
  e2d_set = EndToEndProtectionSet(self, short_name)
295
308
  self.addElement(e2d_set)
296
309
  return self.getElement(short_name)
297
310
 
298
311
  def createApplicationArrayDataType(self, short_name: str) -> ApplicationArrayDataType:
299
- if (short_name not in self.elements):
312
+ if (not self.IsElementExists(short_name)):
300
313
  data_type = ApplicationArrayDataType(self, short_name)
301
314
  self.addElement(data_type)
302
315
  return self.getElement(short_name)
303
316
 
304
317
  def createSwRecordLayout(self, short_name: str) -> SwRecordLayout:
305
- if (short_name not in self.elements):
318
+ if (not self.IsElementExists(short_name)):
306
319
  layout = SwRecordLayout(self, short_name)
307
320
  self.addElement(layout)
308
321
  return self.getElement(short_name)
309
322
 
310
323
  def createSwAddrMethod(self, short_name: str) -> SwAddrMethod:
311
- if (short_name not in self.elements):
324
+ if (not self.IsElementExists(short_name)):
312
325
  method = SwAddrMethod(self, short_name)
313
326
  self.addElement(method)
314
327
  return self.getElement(short_name)
315
328
 
316
329
  def createTriggerInterface(self, short_name: str) -> TriggerInterface:
317
- if (short_name not in self.elements):
330
+ if (not self.IsElementExists(short_name)):
318
331
  trigger_interface = TriggerInterface(self, short_name)
319
332
  self.addElement(trigger_interface)
320
333
  return trigger_interface
321
334
 
322
335
  def createModeDeclarationGroup(self, short_name: str) -> ModeDeclarationGroup:
323
- if (short_name not in self.elements):
336
+ if (not self.IsElementExists(short_name)):
324
337
  group = ModeDeclarationGroup(self, short_name)
325
338
  self.addElement(group)
326
339
  return self.getElement(short_name)
327
340
 
328
341
  def createModeSwitchInterface(self, short_name: str) -> ModeSwitchInterface:
329
- if (short_name not in self.elements):
342
+ if (not self.IsElementExists(short_name)):
330
343
  switch_interface = ModeSwitchInterface(self, short_name)
331
344
  self.addElement(switch_interface)
332
345
  return self.getElement(short_name)
333
346
 
334
347
  def createSwcTiming(self, short_name: str) -> SwcTiming:
335
- if (short_name not in self.elements):
348
+ if (not self.IsElementExists(short_name)):
336
349
  timing = SwcTiming(self, short_name)
337
350
  self.addElement(timing)
338
351
  return self.getElement(short_name)
339
352
 
340
353
  def createLinCluster(self, short_name: str) -> LinCluster:
341
- if (short_name not in self.elements):
354
+ if (not self.IsElementExists(short_name)):
342
355
  cluster = LinCluster(self, short_name)
343
356
  self.addElement(cluster)
344
357
  return self.getElement(short_name)
345
358
 
346
359
  def createCanCluster(self, short_name: str) -> CanCluster:
347
- if (short_name not in self.elements):
360
+ if (not self.IsElementExists(short_name)):
348
361
  cluster = CanCluster(self, short_name)
349
362
  self.addElement(cluster)
350
363
  return self.getElement(short_name)
351
364
 
352
365
  def createLinUnconditionalFrame(self, short_name: str) -> LinUnconditionalFrame:
353
- if (short_name not in self.elements):
366
+ if (not self.IsElementExists(short_name)):
354
367
  frame = LinUnconditionalFrame(self, short_name)
355
368
  self.addElement(frame)
356
369
  return self.getElement(short_name)
357
370
 
358
371
  def createNmPdu(self, short_name: str) -> NmPdu:
359
- if (short_name not in self.elements):
372
+ if (not self.IsElementExists(short_name)):
360
373
  element = NmPdu(self, short_name)
361
374
  self.addElement(element)
362
375
  return self.getElement(short_name)
363
376
 
364
377
  def createNPdu(self, short_name: str) -> NPdu:
365
- if (short_name not in self.elements):
378
+ if (not self.IsElementExists(short_name)):
366
379
  element = NPdu(self, short_name)
367
380
  self.addElement(element)
368
381
  return self.getElement(short_name)
369
382
 
370
383
  def createDcmIPdu(self, short_name: str) -> DcmIPdu:
371
- if (short_name not in self.elements):
384
+ if (not self.IsElementExists(short_name)):
372
385
  element = DcmIPdu(self, short_name)
373
386
  self.addElement(element)
374
387
  return self.getElement(short_name)
375
388
 
376
389
  def createSecuredIPdu(self, short_name: str) -> SecuredIPdu:
377
- if (short_name not in self.elements):
390
+ if (not self.IsElementExists(short_name)):
378
391
  element = SecuredIPdu(self, short_name)
379
392
  self.addElement(element)
380
393
  return self.getElement(short_name)
381
394
 
382
395
  def createNmConfig(self, short_name: str) -> NmConfig:
383
- if (short_name not in self.elements):
396
+ if (not self.IsElementExists(short_name)):
384
397
  element = NmConfig(self, short_name)
385
398
  self.addElement(element)
386
399
  return self.getElement(short_name)
387
400
 
388
401
  def createCanTpConfig(self, short_name: str) -> CanTpConfig:
389
- if (short_name not in self.elements):
402
+ if (not self.IsElementExists(short_name)):
390
403
  element = CanTpConfig(self, short_name)
391
404
  self.addElement(element)
392
405
  return self.getElement(short_name)
393
406
 
394
407
  def createLinTpConfig(self, short_name: str) -> LinTpConfig:
395
- if (short_name not in self.elements):
408
+ if (not self.IsElementExists(short_name)):
396
409
  element = LinTpConfig(self, short_name)
397
410
  self.addElement(element)
398
411
  return self.getElement(short_name)
399
412
 
400
413
  def createCanFrame(self, short_name: str) -> CanFrame:
401
- if (short_name not in self.elements):
414
+ if (not self.IsElementExists(short_name)):
402
415
  element = CanFrame(self, short_name)
403
416
  self.addElement(element)
404
417
  return self.getElement(short_name)
405
418
 
406
419
  def createEcuInstance(self, short_name: str) -> EcuInstance:
407
- if (short_name not in self.elements):
420
+ if (not self.IsElementExists(short_name)):
408
421
  element = EcuInstance(self, short_name)
409
422
  self.addElement(element)
410
423
  return self.getElement(short_name)
411
424
 
412
425
  def createGateway(self, short_name: str) -> Gateway:
413
- if (short_name not in self.elements):
426
+ if (not self.IsElementExists(short_name)):
414
427
  element = Gateway(self, short_name)
415
428
  self.addElement(element)
416
429
  return self.getElement(short_name)
417
430
 
418
431
  def createISignal(self, short_name: str) -> ISignal:
419
- if (short_name not in self.elements):
432
+ if (not self.IsElementExists(short_name)):
420
433
  element = ISignal(self, short_name)
421
434
  self.addElement(element)
422
435
  return self.getElement(short_name)
423
436
 
424
437
  def createSystemSignal(self, short_name: str) -> SystemSignal:
425
- if (short_name not in self.elements):
438
+ if (not self.IsElementExists(short_name)):
426
439
  element = SystemSignal(self, short_name)
427
440
  self.addElement(element)
428
441
  return self.getElement(short_name)
429
442
 
430
443
  def createSystemSignalGroup(self, short_name: str) -> SystemSignalGroup:
431
- if (short_name not in self.elements):
444
+ if (not self.IsElementExists(short_name)):
432
445
  element = SystemSignalGroup(self, short_name)
433
446
  self.addElement(element)
434
447
  return self.getElement(short_name)
435
448
 
436
449
  def createISignalIPdu(self, short_name: str) -> ISignalIPdu:
437
- if (short_name not in self.elements):
450
+ if (not self.IsElementExists(short_name)):
438
451
  element = ISignalIPdu(self, short_name)
439
452
  self.addElement(element)
440
453
  return self.getElement(short_name)
441
454
 
442
455
  def createEcucValueCollection(self, short_name: str) -> EcucValueCollection:
443
- if (short_name not in self.elements):
456
+ if (not self.IsElementExists(short_name)):
444
457
  element = EcucValueCollection(self, short_name)
445
458
  self.addElement(element)
446
459
  return self.getElement(short_name)
447
460
 
448
461
  def createEcucModuleConfigurationValues(self, short_name: str) -> EcucModuleConfigurationValues:
449
- if (short_name not in self.elements):
462
+ if (not self.IsElementExists(short_name)):
450
463
  element = EcucModuleConfigurationValues(self, short_name)
451
464
  self.addElement(element)
452
465
  return self.getElement(short_name)
453
466
 
454
467
  def createPhysicalDimension(self, short_name: str) -> PhysicalDimension:
455
- if (short_name not in self.elements):
468
+ if (not self.IsElementExists(short_name)):
456
469
  element = PhysicalDimension(self, short_name)
457
470
  self.addElement(element)
458
471
  return self.getElement(short_name)
459
472
 
460
473
  def createISignalGroup(self, short_name: str) -> ISignalGroup:
461
- if (short_name not in self.elements):
474
+ if (not self.IsElementExists(short_name)):
462
475
  element = ISignalGroup(self, short_name)
463
476
  self.addElement(element)
464
477
  return self.getElement(short_name)
465
478
 
466
479
  def createISignalIPduGroup(self, short_name: str) -> ISignalIPduGroup:
467
- if (short_name not in self.elements):
480
+ if (not self.IsElementExists(short_name)):
468
481
  element = ISignalIPduGroup(self, short_name)
469
482
  self.addElement(element)
470
483
  return self.getElement(short_name)
471
484
 
472
485
  def createSystem(self, short_name: str) -> System:
473
- if (short_name not in self.elements):
486
+ if (not self.IsElementExists(short_name)):
474
487
  element = System(self, short_name)
475
488
  self.addElement(element)
476
489
  return self.getElement(short_name)
477
490
 
478
491
  def createFlatMap(self, short_name: str) -> FlatMap:
479
- if (short_name not in self.elements):
492
+ if (not self.IsElementExists(short_name)):
480
493
  map = FlatMap(self, short_name)
481
494
  self.addElement(map)
482
495
  return self.getElement(short_name)
483
496
 
484
497
  def createPortInterfaceMappingSet(self, short_name: str) -> PortInterfaceMappingSet:
485
- if (short_name not in self.elements):
486
- map = PortInterfaceMappingSet(self, short_name)
487
- self.addElement(map)
498
+ if (not self.IsElementExists(short_name)):
499
+ map_set = PortInterfaceMappingSet(self, short_name)
500
+ self.addElement(map_set)
488
501
  return self.getElement(short_name)
489
502
 
490
503
  def createEthernetCluster(self, short_name: str) -> EthernetCluster:
491
- if (short_name not in self.elements):
504
+ if (not self.IsElementExists(short_name)):
492
505
  cluster = EthernetCluster(self, short_name)
493
506
  self.addElement(cluster)
494
507
  return self.getElement(short_name)
495
508
 
496
509
  def createDiagnosticConnection(self, short_name: str) -> DiagnosticConnection:
497
- if (short_name not in self.elements):
498
- cluster = DiagnosticConnection(self, short_name)
499
- self.addElement(cluster)
510
+ if (not self.IsElementExists(short_name)):
511
+ connection = DiagnosticConnection(self, short_name)
512
+ self.addElement(connection)
500
513
  return self.getElement(short_name)
501
514
 
502
515
  def createDiagnosticServiceTable(self, short_name: str) -> DiagnosticServiceTable:
503
- if (short_name not in self.elements):
504
- cluster = DiagnosticServiceTable(self, short_name)
505
- self.addElement(cluster)
516
+ if (not self.IsElementExists(short_name)):
517
+ table = DiagnosticServiceTable(self, short_name)
518
+ self.addElement(table)
506
519
  return self.getElement(short_name)
507
520
 
508
521
  def createMultiplexedIPdu(self, short_name: str) -> MultiplexedIPdu:
509
- if (short_name not in self.elements):
510
- cluster = MultiplexedIPdu(self, short_name)
511
- self.addElement(cluster)
522
+ if (not self.IsElementExists(short_name)):
523
+ ipdu = MultiplexedIPdu(self, short_name)
524
+ self.addElement(ipdu)
512
525
  return self.getElement(short_name)
513
526
 
514
527
  def createUserDefinedIPdu(self, short_name: str) -> UserDefinedIPdu:
515
- if (short_name not in self.elements):
516
- cluster = UserDefinedIPdu(self, short_name)
517
- self.addElement(cluster)
528
+ if (not self.IsElementExists(short_name)):
529
+ ipdu = UserDefinedIPdu(self, short_name)
530
+ self.addElement(ipdu)
518
531
  return self.getElement(short_name)
519
532
 
520
533
  def createUserDefinedPdu(self, short_name: str) -> UserDefinedPdu:
521
- if (short_name not in self.elements):
522
- cluster = UserDefinedPdu(self, short_name)
523
- self.addElement(cluster)
534
+ if (not self.IsElementExists(short_name)):
535
+ pdu = UserDefinedPdu(self, short_name)
536
+ self.addElement(pdu)
524
537
  return self.getElement(short_name)
525
538
 
526
539
  def createGeneralPurposeIPdu(self, short_name: str) -> GeneralPurposeIPdu:
527
- if (short_name not in self.elements):
528
- cluster = GeneralPurposeIPdu(self, short_name)
529
- self.addElement(cluster)
540
+ if (not self.IsElementExists(short_name)):
541
+ i_pdu = GeneralPurposeIPdu(self, short_name)
542
+ self.addElement(i_pdu)
530
543
  return self.getElement(short_name)
531
544
 
532
545
  def createGeneralPurposePdu(self, short_name: str) -> GeneralPurposePdu:
533
- if (short_name not in self.elements):
534
- cluster = GeneralPurposePdu(self, short_name)
535
- self.addElement(cluster)
546
+ if (not self.IsElementExists(short_name)):
547
+ pdu = GeneralPurposePdu(self, short_name)
548
+ self.addElement(pdu)
536
549
  return self.getElement(short_name)
537
550
 
538
551
  def createSecureCommunicationPropsSet(self, short_name: str) -> SecureCommunicationPropsSet:
539
- if (short_name not in self.elements):
540
- cluster = SecureCommunicationPropsSet(self, short_name)
541
- self.addElement(cluster)
552
+ if (not self.IsElementExists(short_name)):
553
+ props_set = SecureCommunicationPropsSet(self, short_name)
554
+ self.addElement(props_set)
542
555
  return self.getElement(short_name)
543
556
 
544
557
  def createSoAdRoutingGroup(self, short_name: str) -> SoAdRoutingGroup:
545
- if (short_name not in self.elements):
546
- cluster = SoAdRoutingGroup(self, short_name)
547
- self.addElement(cluster)
558
+ if (not self.IsElementExists(short_name)):
559
+ group = SoAdRoutingGroup(self, short_name)
560
+ self.addElement(group)
548
561
  return self.getElement(short_name)
549
562
 
550
563
  def createDoIpTpConfig(self, short_name: str) -> DoIpTpConfig:
551
- if (short_name not in self.elements):
552
- cluster = DoIpTpConfig(self, short_name)
553
- self.addElement(cluster)
564
+ if (not self.IsElementExists(short_name)):
565
+ tp_config = DoIpTpConfig(self, short_name)
566
+ self.addElement(tp_config)
567
+ return self.getElement(short_name)
568
+
569
+ def createHwElement(self, short_name: str) -> HwElement:
570
+ if (not self.IsElementExists(short_name)):
571
+ hw_element = HwElement(self, short_name)
572
+ self.addElement(hw_element)
573
+ return self.getElement(short_name)
574
+
575
+ def createHwCategory(self, short_name: str) -> HwCategory:
576
+ if (not self.IsElementExists(short_name)):
577
+ hw_category = HwCategory(self, short_name)
578
+ self.addElement(hw_category)
579
+ return self.getElement(short_name)
580
+
581
+ def createHwType(self, short_name: str) -> HwType:
582
+ if (not self.IsElementExists(short_name)):
583
+ hw_category = HwType(self, short_name)
584
+ self.addElement(hw_category)
585
+ return self.getElement(short_name)
586
+
587
+ def createFlexrayFrame(self, short_name: str) -> FlexrayFrame:
588
+ if (not self.IsElementExists(short_name)):
589
+ frame = FlexrayFrame(self, short_name)
590
+ self.addElement(frame)
591
+ return self.getElement(short_name)
592
+
593
+ def createFlexrayCluster(self, short_name: str) -> FlexrayCluster:
594
+ if (not self.IsElementExists(short_name)):
595
+ frame = FlexrayCluster(self, short_name)
596
+ self.addElement(frame)
597
+ return self.getElement(short_name)
598
+
599
+ def createDataTransformationSet(self, short_name: str) -> DataTransformationSet:
600
+ if (not self.IsElementExists(short_name)):
601
+ transform_set = DataTransformationSet(self, short_name)
602
+ self.addElement(transform_set)
603
+ return self.getElement(short_name)
604
+
605
+ def createCollection(self, short_name: str) -> Collection:
606
+ if (not self.IsElementExists(short_name)):
607
+ collection = Collection(self, short_name)
608
+ self.addElement(collection)
609
+ return self.getElement(short_name)
610
+
611
+ def createKeywordSet(self, short_name: str) -> KeywordSet:
612
+ if (not self.IsElementExists(short_name)):
613
+ keyword_set = KeywordSet(self, short_name)
614
+ self.addElement(keyword_set)
615
+ return self.getElement(short_name)
616
+
617
+ def createPortPrototypeBlueprint(self, short_name: str) -> PortPrototypeBlueprint:
618
+ if (not self.IsElementExists(short_name)):
619
+ keyword_set = PortPrototypeBlueprint(self, short_name)
620
+ self.addElement(keyword_set)
554
621
  return self.getElement(short_name)
555
622
 
556
623
  def getApplicationPrimitiveDataTypes(self) -> List[ApplicationPrimitiveDataType]:
557
- return list(sorted(filter(lambda a: isinstance(a, ApplicationPrimitiveDataType), self.elements.values()), key= lambda o:o.short_name))
624
+ return list(sorted(filter(lambda a: isinstance(a, ApplicationPrimitiveDataType), self.elements.values()), key=lambda o: o.short_name))
558
625
 
559
626
  def getApplicationDataType(self) -> List[ApplicationDataType]:
560
- return list(sorted(filter(lambda a: isinstance(a, ApplicationDataType), self.elements.values()), key= lambda o:o.short_name))
627
+ return list(sorted(filter(lambda a: isinstance(a, ApplicationDataType), self.elements.values()), key=lambda o: o.short_name))
561
628
 
562
629
  def getImplementationDataTypes(self) -> List[ImplementationDataType]:
563
- return list(sorted(filter(lambda a: isinstance(a, ImplementationDataType), self.elements.values()), key= lambda o:o.short_name))
630
+ return list(sorted(filter(lambda a: isinstance(a, ImplementationDataType), self.elements.values()), key=lambda o: o.short_name))
564
631
 
565
632
  def getSwBaseTypes(self) -> List[SwBaseType]:
566
633
  return list(filter(lambda a: isinstance(a, SwBaseType), self.elements.values()))
567
634
 
568
635
  def getSwComponentTypes(self) -> List[SwComponentType]:
569
- return list(filter(lambda a : isinstance(a, SwComponentType), self.elements.values()))
636
+ return list(filter(lambda a: isinstance(a, SwComponentType), self.elements.values()))
570
637
 
571
638
  def getSensorActuatorSwComponentType(self) -> List[SensorActuatorSwComponentType]:
572
- return list(filter(lambda a : isinstance(a, SensorActuatorSwComponentType), self.elements.values()))
639
+ return list(filter(lambda a: isinstance(a, SensorActuatorSwComponentType), self.elements.values()))
573
640
 
574
641
  def getAtomicSwComponentTypes(self) -> List[AtomicSwComponentType]:
575
- return list(filter(lambda a : isinstance(a, AtomicSwComponentType), self.elements.values()))
642
+ return list(filter(lambda a: isinstance(a, AtomicSwComponentType), self.elements.values()))
576
643
 
577
644
  def getCompositionSwComponentTypes(self) -> List[CompositionSwComponentType]:
578
- return list(filter(lambda a : isinstance(a, CompositionSwComponentType), self.elements.values()))
645
+ return list(filter(lambda a: isinstance(a, CompositionSwComponentType), self.elements.values()))
579
646
 
580
647
  def getComplexDeviceDriverSwComponentTypes(self) -> List[ComplexDeviceDriverSwComponentType]:
581
- return list(sorted(filter(lambda a : isinstance(a, ComplexDeviceDriverSwComponentType), self.elements.values()), key = lambda a: a.short_name))
648
+ return list(sorted(filter(lambda a: isinstance(a, ComplexDeviceDriverSwComponentType), self.elements.values()), key=lambda a: a.short_name))
582
649
 
583
650
  def getSenderReceiverInterfaces(self) -> List[SenderReceiverInterface]:
584
- return list(sorted(filter(lambda a : isinstance(a, SenderReceiverInterface), self.elements.values()), key = lambda a: a.short_name))
651
+ return list(sorted(filter(lambda a: isinstance(a, SenderReceiverInterface), self.elements.values()), key=lambda a: a.short_name))
585
652
 
586
653
  def getParameterInterfaces(self) -> List[ParameterInterface]:
587
- return list(sorted(filter(lambda a : isinstance(a, ParameterInterface), self.elements.values()), key = lambda a: a.short_name))
654
+ return list(sorted(filter(lambda a: isinstance(a, ParameterInterface), self.elements.values()), key=lambda a: a.short_name))
588
655
 
589
656
  def getClientServerInterfaces(self) -> List[ClientServerInterface]:
590
- return list(sorted(filter(lambda a : isinstance(a, ClientServerInterface), self.elements.values()), key = lambda a: a.short_name))
657
+ return list(sorted(filter(lambda a: isinstance(a, ClientServerInterface), self.elements.values()), key=lambda a: a.short_name))
591
658
 
592
659
  def getDataTypeMappingSets(self) -> List[DataTypeMappingSet]:
593
- return list(sorted(filter(lambda a : isinstance(a, DataTypeMappingSet), self.elements.values()), key = lambda a: a.short_name))
660
+ return list(sorted(filter(lambda a: isinstance(a, DataTypeMappingSet), self.elements.values()), key=lambda a: a.short_name))
594
661
 
595
662
  def getCompuMethods(self) -> List[CompuMethod]:
596
663
  return list(filter(lambda a: isinstance(a, CompuMethod), self.elements.values()))
@@ -623,88 +690,109 @@ class ARPackage(Identifiable, CollectableElement):
623
690
  return list(filter(lambda a: isinstance(a, Unit), self.elements.values()))
624
691
 
625
692
  def getApplicationArrayDataTypes(self) -> List[ApplicationArrayDataType]:
626
- return list(sorted(filter(lambda a : isinstance(a, ApplicationArrayDataType), self.elements.values()), key = lambda a: a.short_name))
693
+ return list(sorted(filter(lambda a: isinstance(a, ApplicationArrayDataType), self.elements.values()), key=lambda a: a.short_name))
627
694
 
628
695
  def getSwRecordLayouts(self) -> List[SwRecordLayout]:
629
- return list(sorted(filter(lambda a : isinstance(a, SwRecordLayout), self.elements.values()), key = lambda a: a.short_name))
696
+ return list(sorted(filter(lambda a: isinstance(a, SwRecordLayout), self.elements.values()), key=lambda a: a.short_name))
630
697
 
631
698
  def getSwAddrMethods(self) -> List[SwAddrMethod]:
632
- return list(sorted(filter(lambda a : isinstance(a, SwAddrMethod), self.elements.values()), key = lambda a: a.short_name))
699
+ return list(sorted(filter(lambda a: isinstance(a, SwAddrMethod), self.elements.values()), key=lambda a: a.short_name))
633
700
 
634
701
  def getTriggerInterfaces(self) -> List[TriggerInterface]:
635
- return list(sorted(filter(lambda a : isinstance(a, TriggerInterface), self.elements.values()), key = lambda a: a.short_name))
702
+ return list(sorted(filter(lambda a: isinstance(a, TriggerInterface), self.elements.values()), key=lambda a: a.short_name))
636
703
 
637
704
  def getModeDeclarationGroups(self) -> List[ModeDeclarationGroup]:
638
- return list(sorted(filter(lambda a : isinstance(a, ModeDeclarationGroup), self.elements.values()), key = lambda a: a.short_name))
705
+ return list(sorted(filter(lambda a: isinstance(a, ModeDeclarationGroup), self.elements.values()), key=lambda a: a.short_name))
639
706
 
640
707
  def getModeSwitchInterfaces(self) -> List[ModeSwitchInterface]:
641
- return list(sorted(filter(lambda a : isinstance(a, ModeSwitchInterface), self.elements.values()), key = lambda a: a.short_name))
708
+ return list(sorted(filter(lambda a: isinstance(a, ModeSwitchInterface), self.elements.values()), key=lambda a: a.short_name))
642
709
 
643
710
  def getSwcTimings(self) -> List[SwcTiming]:
644
- return list(sorted(filter(lambda a : isinstance(a, SwcTiming), self.elements.values()), key = lambda a: a.short_name))
711
+ return list(sorted(filter(lambda a: isinstance(a, SwcTiming), self.elements.values()), key=lambda a: a.short_name))
645
712
 
646
713
  def getLinClusters(self) -> List[LinCluster]:
647
- return list(sorted(filter(lambda a : isinstance(a, LinCluster), self.elements.values()), key = lambda a: a.short_name))
714
+ return list(sorted(filter(lambda a: isinstance(a, LinCluster), self.elements.values()), key=lambda a: a.short_name))
648
715
 
649
716
  def getCanClusters(self) -> List[CanCluster]:
650
- return list(sorted(filter(lambda a : isinstance(a, CanCluster), self.elements.values()), key = lambda a: a.short_name))
717
+ return list(sorted(filter(lambda a: isinstance(a, CanCluster), self.elements.values()), key=lambda a: a.short_name))
651
718
 
652
719
  def getLinUnconditionalFrames(self) -> List[LinUnconditionalFrame]:
653
- return list(sorted(filter(lambda a : isinstance(a, LinUnconditionalFrame), self.elements.values()), key = lambda a: a.short_name))
720
+ return list(sorted(filter(lambda a: isinstance(a, LinUnconditionalFrame), self.elements.values()), key=lambda a: a.short_name))
654
721
 
655
722
  def getNmPdus(self) -> List[NmPdu]:
656
- return list(sorted(filter(lambda a : isinstance(a, NmPdu), self.elements.values()), key = lambda a: a.short_name))
723
+ return list(sorted(filter(lambda a: isinstance(a, NmPdu), self.elements.values()), key=lambda a: a.short_name))
657
724
 
658
725
  def getNPdus(self) -> List[NPdu]:
659
- return list(sorted(filter(lambda a : isinstance(a, NPdu), self.elements.values()), key = lambda a: a.short_name))
726
+ return list(sorted(filter(lambda a: isinstance(a, NPdu), self.elements.values()), key=lambda a: a.short_name))
660
727
 
661
728
  def getDcmIPdus(self) -> List[DcmIPdu]:
662
- return list(sorted(filter(lambda a : isinstance(a, DcmIPdu), self.elements.values()), key = lambda a: a.short_name))
729
+ return list(sorted(filter(lambda a: isinstance(a, DcmIPdu), self.elements.values()), key=lambda a: a.short_name))
663
730
 
664
731
  def getSecuredIPdus(self) -> List[SecuredIPdu]:
665
- return list(sorted(filter(lambda a : isinstance(a, SecuredIPdu), self.elements.values()), key = lambda a: a.short_name))
732
+ return list(sorted(filter(lambda a: isinstance(a, SecuredIPdu), self.elements.values()), key=lambda a: a.short_name))
666
733
 
667
734
  def getNmConfigs(self) -> List[NmConfig]:
668
- return list(sorted(filter(lambda a : isinstance(a, NmConfig), self.elements.values()), key = lambda a: a.short_name))
735
+ return list(sorted(filter(lambda a: isinstance(a, NmConfig), self.elements.values()), key=lambda a: a.short_name))
669
736
 
670
737
  def getCanTpConfigs(self) -> List[CanTpConfig]:
671
- return list(sorted(filter(lambda a : isinstance(a, CanTpConfig), self.elements.values()), key = lambda a: a.short_name))
738
+ return list(sorted(filter(lambda a: isinstance(a, CanTpConfig), self.elements.values()), key=lambda a: a.short_name))
672
739
 
673
740
  def getCanFrames(self) -> List[CanFrame]:
674
- return list(sorted(filter(lambda a : isinstance(a, CanFrame), self.elements.values()), key = lambda a: a.short_name))
741
+ return list(sorted(filter(lambda a: isinstance(a, CanFrame), self.elements.values()), key=lambda a: a.short_name))
675
742
 
676
743
  def getEcuInstances(self) -> List[EcuInstance]:
677
- return list(sorted(filter(lambda a : isinstance(a, EcuInstance), self.elements.values()), key = lambda a: a.short_name))
744
+ return list(sorted(filter(lambda a: isinstance(a, EcuInstance), self.elements.values()), key=lambda a: a.short_name))
678
745
 
679
746
  def getGateways(self) -> List[Gateway]:
680
- return list(sorted(filter(lambda a : isinstance(a, Gateway), self.elements.values()), key = lambda a: a.short_name))
747
+ return list(sorted(filter(lambda a: isinstance(a, Gateway), self.elements.values()), key=lambda a: a.short_name))
681
748
 
682
749
  def getISignals(self) -> List[ISignal]:
683
- return list(sorted(filter(lambda a : isinstance(a, ISignal), self.elements.values()), key = lambda a: a.short_name))
750
+ return list(sorted(filter(lambda a: isinstance(a, ISignal), self.elements.values()), key=lambda a: a.short_name))
684
751
 
685
752
  def getEcucValueCollections(self) -> List[EcucValueCollection]:
686
- return list(sorted(filter(lambda a : isinstance(a, EcucValueCollection), self.elements.values()), key = lambda a: a.short_name))
753
+ return list(sorted(filter(lambda a: isinstance(a, EcucValueCollection), self.elements.values()), key=lambda a: a.short_name))
687
754
 
688
755
  def getEcucModuleConfigurationValues(self) -> List[EcucModuleConfigurationValues]:
689
- return list(sorted(filter(lambda a : isinstance(a, EcucModuleConfigurationValues), self.elements.values()), key = lambda a: a.short_name))
756
+ return list(sorted(filter(lambda a: isinstance(a, EcucModuleConfigurationValues), self.elements.values()), key=lambda a: a.short_name))
690
757
 
691
- def getEcucModuleConfigurationValues(self) -> List[PhysicalDimension]:
692
- return list(sorted(filter(lambda a : isinstance(a, PhysicalDimension), self.elements.values()), key = lambda a: a.short_name))
758
+ def getEcucPhysicalDimensions(self) -> List[PhysicalDimension]:
759
+ return list(sorted(filter(lambda a: isinstance(a, PhysicalDimension), self.elements.values()), key=lambda a: a.short_name))
693
760
 
694
761
  def getISignalGroups(self) -> List[ISignalGroup]:
695
- return list(sorted(filter(lambda a : isinstance(a, ISignalGroup), self.elements.values()), key = lambda a: a.short_name))
762
+ return list(sorted(filter(lambda a: isinstance(a, ISignalGroup), self.elements.values()), key=lambda a: a.short_name))
696
763
 
697
764
  def getSystemSignals(self) -> List[SystemSignal]:
698
- return list(sorted(filter(lambda a : isinstance(a, SystemSignal), self.elements.values()), key = lambda a: a.short_name))
765
+ return list(sorted(filter(lambda a: isinstance(a, SystemSignal), self.elements.values()), key=lambda a: a.short_name))
699
766
 
700
767
  def getSystemSignalGroups(self) -> List[SystemSignalGroup]:
701
- return list(sorted(filter(lambda a : isinstance(a, SystemSignalGroup), self.elements.values()), key = lambda a: a.short_name))
768
+ return list(sorted(filter(lambda a: isinstance(a, SystemSignalGroup), self.elements.values()), key=lambda a: a.short_name))
702
769
 
703
770
  def getISignalIPdus(self) -> List[ISignalIPdu]:
704
- return list(sorted(filter(lambda a : isinstance(a, ISignalIPdu), self.elements.values()), key = lambda a: a.short_name))
771
+ return list(sorted(filter(lambda a: isinstance(a, ISignalIPdu), self.elements.values()), key=lambda a: a.short_name))
705
772
 
706
773
  def getSystems(self) -> List[System]:
707
- return list(sorted(filter(lambda a : isinstance(a, System), self.elements.values()), key = lambda a: a.short_name))
774
+ return list(sorted(filter(lambda a: isinstance(a, System), self.elements.values()), key=lambda a: a.short_name))
775
+
776
+ def getHwElements(self) -> List[HwElement]:
777
+ return list(sorted(filter(lambda a: isinstance(a, HwElement), self.elements.values()), key=lambda a: a.short_name))
778
+
779
+ def getHwCategories(self) -> List[HwCategory]:
780
+ return list(sorted(filter(lambda a: isinstance(a, HwCategory), self.elements.values()), key=lambda a: a.short_name))
781
+
782
+ def getFlexrayFrames(self) -> List[FlexrayFrame]:
783
+ return list(sorted(filter(lambda a: isinstance(a, FlexrayFrame), self.elements.values()), key=lambda a: a.short_name))
784
+
785
+ def getDataTransformationSets(self) -> List[DataTransformationSet]:
786
+ return list(sorted(filter(lambda a: isinstance(a, DataTransformationSet), self.elements.values()), key=lambda a: a.short_name))
787
+
788
+ def getCollections(self) -> List[Collection]:
789
+ return list(sorted(filter(lambda a: isinstance(a, Collection), self.elements.values()), key=lambda a: a.short_name))
790
+
791
+ def getKeywordSets(self) -> List[KeywordSet]:
792
+ return list(sorted(filter(lambda a: isinstance(a, KeywordSet), self.elements.values()), key=lambda a: a.short_name))
793
+
794
+ def getPortPrototypeBlueprints(self) -> List[PortPrototypeBlueprint]:
795
+ return list(sorted(filter(lambda a: isinstance(a, PortPrototypeBlueprint), self.elements.values()), key=lambda a: a.short_name))
708
796
 
709
797
  def getReferenceBases(self):
710
798
  return self.referenceBases
@@ -712,4 +800,3 @@ class ARPackage(Identifiable, CollectableElement):
712
800
  def addReferenceBase(self, value):
713
801
  self.referenceBases.append(value)
714
802
  return self
715
-