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