armodel 1.8.7__py3-none-any.whl → 1.9.2__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (444) hide show
  1. armodel/__init__.py +18 -3
  2. armodel/cli/arxml_dump_cli.py +196 -197
  3. armodel/cli/arxml_format_cli.py +84 -84
  4. armodel/cli/connector2xlsx_cli.py +71 -73
  5. armodel/cli/connector_update_cli.py +71 -73
  6. armodel/cli/file_list_cli.py +69 -69
  7. armodel/cli/format_xml_cli.py +62 -62
  8. armodel/cli/memory_section_cli.py +72 -75
  9. armodel/cli/swc_list_cli.py +77 -79
  10. armodel/cli/system_signal_cli.py +71 -73
  11. armodel/cli/uuid_checker_cli.py +95 -95
  12. armodel/data_models/sw_connector.py +21 -21
  13. armodel/lib/__init__.py +3 -4
  14. armodel/lib/cli_args_parser.py +36 -35
  15. armodel/lib/sw_component.py +34 -35
  16. armodel/lib/system_signal.py +36 -36
  17. armodel/models/M2/AUTOSARTemplates/AbstractPlatform/ApplicationDeferredDataType.py +21 -0
  18. armodel/models/M2/AUTOSARTemplates/AbstractPlatform/ApplicationInterface.py +79 -0
  19. armodel/models/M2/AUTOSARTemplates/AbstractPlatform/__init__.py +2 -0
  20. armodel/models/M2/AUTOSARTemplates/AdaptivePlatform/ApplicationDesign/PortInterface/Field.py +52 -0
  21. armodel/models/M2/AUTOSARTemplates/AdaptivePlatform/ApplicationDesign/PortInterface/__init__.py +1 -0
  22. armodel/models/M2/AUTOSARTemplates/AdaptivePlatform/PlatformModuleDeployment/AdaptiveModule/PlatformModuleEthernetEndpointConfiguration.py +63 -0
  23. armodel/models/M2/AUTOSARTemplates/AdaptivePlatform/PlatformModuleDeployment/AdaptiveModule/__init__.py +3 -0
  24. armodel/models/M2/AUTOSARTemplates/AdaptivePlatform/PlatformModuleDeployment/CryptoDeployment/CryptoKeySlot.py +128 -0
  25. armodel/models/M2/AUTOSARTemplates/AdaptivePlatform/PlatformModuleDeployment/CryptoDeployment/CryptoKeySlotContent.py +19 -0
  26. armodel/models/M2/AUTOSARTemplates/AdaptivePlatform/PlatformModuleDeployment/CryptoDeployment/__init__.py +4 -0
  27. armodel/models/M2/AUTOSARTemplates/AdaptivePlatform/PlatformModuleDeployment/Firewall/FirewallRule.py +62 -0
  28. armodel/models/M2/AUTOSARTemplates/AdaptivePlatform/PlatformModuleDeployment/Firewall/FirewallRuleProps.py +83 -0
  29. armodel/models/M2/AUTOSARTemplates/AdaptivePlatform/PlatformModuleDeployment/Firewall/StateDependentFirewall.py +62 -0
  30. armodel/models/M2/AUTOSARTemplates/AdaptivePlatform/PlatformModuleDeployment/Firewall/__init__.py +5 -0
  31. armodel/models/M2/AUTOSARTemplates/AdaptivePlatform/PlatformModuleDeployment/IntrusionDetectionSystem/IdsPlatformInstantiation.py +52 -0
  32. armodel/models/M2/AUTOSARTemplates/AdaptivePlatform/PlatformModuleDeployment/IntrusionDetectionSystem/IdsmModuleInstantiation.py +19 -0
  33. armodel/models/M2/AUTOSARTemplates/AdaptivePlatform/PlatformModuleDeployment/IntrusionDetectionSystem/__init__.py +4 -0
  34. armodel/models/M2/AUTOSARTemplates/AdaptivePlatform/PlatformModuleDeployment/__init__.py +25 -0
  35. armodel/models/M2/AUTOSARTemplates/AdaptivePlatform/__init__.py +3 -0
  36. armodel/models/M2/AUTOSARTemplates/{AutosarTopLevelStructure.py → AutosarTopLevelStructure/__init__.py} +320 -318
  37. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswBehavior/BswAsynchronousServerCallReturnsEvent.py +27 -0
  38. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswBehavior/BswExclusiveAreaPolicy.py +22 -0
  39. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswBehavior/BswInterruptEvent.py +18 -0
  40. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswBehavior/BswModeManagerErrorEvent.py +18 -0
  41. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswBehavior/BswModeReceiverPolicy.py +22 -0
  42. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswBehavior/BswSchedulerNamePrefix.py +26 -0
  43. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswBehavior/BswServiceDependency.py +27 -0
  44. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswBehavior/BswTriggerDirectImplementation.py +21 -0
  45. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswBehavior/RoleBasedBswModuleEntryAssignment.py +35 -0
  46. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswBehavior.py +2223 -791
  47. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswImplementation.py +180 -60
  48. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswInterfaces/BswEntryRelationship.py +26 -0
  49. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswInterfaces/BswEntryRelationshipEnum.py +24 -0
  50. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswInterfaces/BswEntryRelationshipSet.py +24 -0
  51. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswInterfaces.py +586 -200
  52. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswOverview/InstanceRefs/ModeInBswModuleDescriptionInstanceRef.py +61 -0
  53. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswOverview/InstanceRefs/__init__.py +3 -0
  54. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswOverview/__init__.py +445 -0
  55. armodel/models/M2/AUTOSARTemplates/CommonStructure/Constants/__init__.py +670 -0
  56. armodel/models/M2/AUTOSARTemplates/CommonStructure/Filter.py +243 -96
  57. armodel/models/M2/AUTOSARTemplates/CommonStructure/FlatMap.py +273 -69
  58. armodel/models/M2/AUTOSARTemplates/CommonStructure/Implementation.py +756 -243
  59. armodel/models/M2/AUTOSARTemplates/CommonStructure/ImplementationDataTypes.py +336 -170
  60. armodel/models/M2/AUTOSARTemplates/CommonStructure/InternalBehavior.py +430 -136
  61. armodel/models/M2/AUTOSARTemplates/CommonStructure/McGroups.py +53 -0
  62. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/ImplementationElementInParameterInstanceRef.py +15 -0
  63. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/McDataAccessDetails.py +60 -0
  64. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/McDataInstance.py +62 -0
  65. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/McFunction.py +62 -0
  66. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/McParameterElementGroup.py +39 -0
  67. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/McSupportData.py +62 -0
  68. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/McSwEmulationMethodSupport.py +37 -0
  69. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/RoleBasedMcDataAssignment.py +61 -0
  70. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/RptSupport/McFunctionDataRefSet.py +39 -0
  71. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/RptSupport/RptAccessEnum.py +12 -0
  72. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/RptSupport/RptComponent.py +60 -0
  73. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/RptSupport/RptEnablerImplTypeEnum.py +11 -0
  74. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/RptSupport/RptExecutableEntity.py +62 -0
  75. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/RptSupport/RptExecutableEntityEvent.py +62 -0
  76. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/RptSupport/RptExecutionContext.py +38 -0
  77. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/RptSupport/RptExecutionControlEnum.py +11 -0
  78. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/RptSupport/RptPreparationEnum.py +11 -0
  79. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/RptSupport/RptServicePoint.py +62 -0
  80. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/RptSupport/RptSupportData.py +111 -0
  81. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/RptSupport/RptSwPrototypingAccess.py +62 -0
  82. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/RptSupport/__init__.py +27 -0
  83. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/__init__.py +19 -0
  84. armodel/models/M2/AUTOSARTemplates/CommonStructure/ModeDeclaration.py +424 -148
  85. armodel/models/M2/AUTOSARTemplates/CommonStructure/ModeDeclarationExtra.py +73 -0
  86. armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/ExecutionTime/__init__.py +132 -0
  87. armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/HardwareConfiguration.py +93 -32
  88. armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/HeapUsage.py +78 -10
  89. armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/MemorySectionUsage.py +239 -81
  90. armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/SoftwareContext.py +68 -23
  91. armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/StackUsage.py +274 -92
  92. armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/__init__.py +135 -53
  93. armodel/models/M2/AUTOSARTemplates/CommonStructure/ServiceNeeds.py +2955 -839
  94. armodel/models/M2/AUTOSARTemplates/CommonStructure/SignalServiceTranslation/SignalServiceTranslationControlEnum.py +11 -0
  95. armodel/models/M2/AUTOSARTemplates/CommonStructure/SignalServiceTranslation/SignalServiceTranslationElementProps.py +37 -0
  96. armodel/models/M2/AUTOSARTemplates/CommonStructure/SignalServiceTranslation/SignalServiceTranslationEventProps.py +37 -0
  97. armodel/models/M2/AUTOSARTemplates/CommonStructure/SignalServiceTranslation/SignalServiceTranslationProps.py +38 -0
  98. armodel/models/M2/AUTOSARTemplates/CommonStructure/SignalServiceTranslation/SignalServiceTranslationPropsSet.py +38 -0
  99. armodel/models/M2/AUTOSARTemplates/CommonStructure/SignalServiceTranslation/__init__.py +13 -0
  100. armodel/models/M2/AUTOSARTemplates/CommonStructure/StandardizationTemplate/AbstractBlueprintStructure/AtpBlueprint.py +32 -0
  101. armodel/models/M2/AUTOSARTemplates/CommonStructure/StandardizationTemplate/AbstractBlueprintStructure/__init__.py +7 -0
  102. armodel/models/M2/AUTOSARTemplates/CommonStructure/StandardizationTemplate/BlueprintDedicated/PortPrototypeBlueprint.py +186 -73
  103. armodel/models/M2/AUTOSARTemplates/CommonStructure/StandardizationTemplate/BlueprintDedicated/__init__.py +10 -0
  104. armodel/models/M2/AUTOSARTemplates/CommonStructure/StandardizationTemplate/BlueprintGenerator/BlueprintGenerator.py +37 -0
  105. armodel/models/M2/AUTOSARTemplates/CommonStructure/StandardizationTemplate/BlueprintGenerator/__init__.py +3 -0
  106. armodel/models/M2/AUTOSARTemplates/CommonStructure/StandardizationTemplate/BlueprintMapping/BlueprintMappingSet.py +38 -0
  107. armodel/models/M2/AUTOSARTemplates/CommonStructure/StandardizationTemplate/BlueprintMapping/__init__.py +3 -0
  108. armodel/models/M2/AUTOSARTemplates/CommonStructure/StandardizationTemplate/Keyword.py +126 -45
  109. armodel/models/M2/AUTOSARTemplates/CommonStructure/StandardizationTemplate/__init__.py +5 -0
  110. armodel/models/M2/AUTOSARTemplates/CommonStructure/SwcBswMapping.py +290 -77
  111. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingClock/TDLETZoneClock.py +61 -0
  112. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingClock/TimingClock.py +60 -0
  113. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingClock/TimingClockSyncAccuracy.py +60 -0
  114. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingClock/__init__.py +5 -0
  115. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingCondition/ModeInBswInstanceRef.py +14 -0
  116. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingCondition/ModeInSwcInstanceRef.py +14 -0
  117. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingCondition/TimingCondition.py +61 -0
  118. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingCondition/TimingConditionFormula.py +37 -0
  119. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingCondition/TimingExtensionResource.py +60 -0
  120. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingCondition/TimingModeInstance.py +61 -0
  121. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingCondition/__init__.py +15 -0
  122. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint/AgeConstraint.py +57 -0
  123. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint/EventTriggeringConstraint.py +203 -0
  124. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint/ExecutionOrderConstraint.py +193 -45
  125. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint/ExecutionTimeConstraint.py +101 -0
  126. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint/LatencyTimingConstraint.py +100 -0
  127. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint/OffsetConstraint.py +56 -0
  128. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint/SynchronizationPointConstraint.py +57 -0
  129. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint/SynchronizationTiming.py +117 -0
  130. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint/TimingConstraint.py +59 -24
  131. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint/TimingExtensions.py +69 -32
  132. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint/__init__.py +48 -0
  133. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/Traceable.py +11 -0
  134. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/__init__.py +16 -0
  135. armodel/models/M2/AUTOSARTemplates/CommonStructure/TriggerDeclaration.py +147 -52
  136. armodel/models/M2/AUTOSARTemplates/CommonStructure/__init__.py +17 -205
  137. armodel/models/M2/AUTOSARTemplates/DiagnosticExtract/DiagnosticCommonElement.py +11 -0
  138. armodel/models/M2/AUTOSARTemplates/DiagnosticExtract/DiagnosticContribution.py +137 -47
  139. armodel/models/M2/AUTOSARTemplates/DiagnosticExtract/__init__.py +10 -0
  140. armodel/models/M2/AUTOSARTemplates/ECUCDescriptionTemplate.py +285 -346
  141. armodel/models/M2/AUTOSARTemplates/ECUCParameterDefTemplate.py +1561 -1249
  142. armodel/models/M2/AUTOSARTemplates/EcuResourceTemplate/HwAttributeValue.py +117 -0
  143. armodel/models/M2/AUTOSARTemplates/EcuResourceTemplate/HwElementCategory.py +176 -59
  144. armodel/models/M2/AUTOSARTemplates/EcuResourceTemplate/HwElementConnector.py +73 -0
  145. armodel/models/M2/AUTOSARTemplates/EcuResourceTemplate/__init__.py +401 -145
  146. armodel/models/M2/AUTOSARTemplates/GenericStructure/AbstractStructure.py +293 -92
  147. armodel/models/M2/AUTOSARTemplates/GenericStructure/DocumentationOnM1/__init__.py +39 -0
  148. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/ARPackage.py +1314 -816
  149. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/AnyInstanceRef.py +88 -0
  150. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/ArObject.py +37 -17
  151. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/ElementCollection.py +197 -74
  152. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/EngineeringObject.py +129 -51
  153. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/Enumerations.py +16 -0
  154. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/Identifiable.py +599 -236
  155. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/PrimitiveTypes.py +902 -594
  156. armodel/models/M2/AUTOSARTemplates/GenericStructure/LifeCycles.py +395 -155
  157. armodel/models/M2/AUTOSARTemplates/GenericStructure/RolesAndRights/AtpDefinition.py +36 -0
  158. armodel/models/M2/AUTOSARTemplates/GenericStructure/RolesAndRights/__init__.py +7 -0
  159. armodel/models/M2/AUTOSARTemplates/GenericStructure/VariantHandling/AttributeValueVariationPoints/__init__.py +36 -0
  160. armodel/models/M2/AUTOSARTemplates/GenericStructure/VariantHandling/__init__.py +182 -0
  161. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/ApplicationAttributes/__init__.py +97 -0
  162. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Communication.py +782 -712
  163. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Components/InstanceRefs.py +186 -179
  164. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Components/__init__.py +363 -463
  165. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Composition/InstanceRefs.py +160 -154
  166. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Composition/__init__.py +160 -100
  167. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Datatype/DataPrototypes.py +145 -145
  168. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Datatype/Datatypes.py +137 -131
  169. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/EndToEndProtection.py +191 -184
  170. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/PortInterface/InstanceRefs.py +45 -39
  171. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/PortInterface/__init__.py +647 -641
  172. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/RPTScenario.py +21 -17
  173. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SoftwareComponentDocumentation.py +84 -80
  174. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwComponentType.py +76 -0
  175. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcImplementation.py +37 -34
  176. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/AccessCount.py +26 -21
  177. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/AutosarVariableRef.py +39 -34
  178. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/DataElements.py +57 -52
  179. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/IncludedDataTypes.py +32 -24
  180. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/InstanceRefsUsage.py +160 -155
  181. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/ModeDeclarationGroup.py +68 -63
  182. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/PerInstanceMemory.py +46 -40
  183. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/PortAPIOptions.py +91 -86
  184. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/RTEEvents.py +219 -206
  185. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/ServerCall.py +33 -26
  186. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/ServiceMapping.py +148 -137
  187. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/Trigger.py +54 -49
  188. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__init__.py +473 -489
  189. armodel/models/M2/AUTOSARTemplates/SystemTemplate/DataMapping.py +334 -259
  190. armodel/models/M2/AUTOSARTemplates/SystemTemplate/DiagnosticConnection.py +62 -58
  191. armodel/models/M2/AUTOSARTemplates/SystemTemplate/DoIp.py +48 -29
  192. armodel/models/M2/AUTOSARTemplates/SystemTemplate/{EcuResourceMapping.py → ECUResourceMapping.py} +48 -45
  193. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Can/CanCommunication.py +139 -122
  194. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Can/CanTopology.py +628 -344
  195. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Can/__init__.py +2 -0
  196. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/EthernetCommunication.py +267 -244
  197. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/EthernetFrame.py +30 -16
  198. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/EthernetTopology.py +750 -685
  199. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/NetworkEndpoint.py +375 -327
  200. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/ServiceInstances.py +924 -975
  201. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Flexray/FlexrayCommunication.py +92 -76
  202. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Flexray/FlexrayTopology.py +669 -654
  203. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Lin/LinCommunication.py +193 -149
  204. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Lin/LinTopology.py +110 -92
  205. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Multiplatform.py +205 -205
  206. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/CoreCommunication.py +1376 -1232
  207. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/CoreTopology.py +800 -662
  208. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/EcuInstance.py +269 -270
  209. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/Timing.py +172 -172
  210. armodel/models/M2/AUTOSARTemplates/SystemTemplate/InstanceRefs.py +90 -87
  211. armodel/models/M2/AUTOSARTemplates/SystemTemplate/NetworkManagement.py +899 -789
  212. armodel/models/M2/AUTOSARTemplates/SystemTemplate/RteEventToOsTaskMapping.py +43 -35
  213. armodel/models/M2/AUTOSARTemplates/SystemTemplate/SWmapping.py +65 -52
  214. armodel/models/M2/AUTOSARTemplates/SystemTemplate/SecureCommunication.py +105 -83
  215. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Transformer/__init__.py +574 -524
  216. armodel/models/M2/AUTOSARTemplates/SystemTemplate/TransportProtocols.py +739 -658
  217. armodel/models/M2/AUTOSARTemplates/SystemTemplate/__init__.py +493 -458
  218. armodel/models/M2/MSR/AsamHdo/AdminData.py +150 -136
  219. armodel/models/M2/MSR/AsamHdo/BaseTypes.py +95 -76
  220. armodel/models/M2/MSR/AsamHdo/ComputationMethod.py +367 -329
  221. armodel/models/M2/MSR/AsamHdo/Constraints/GlobalConstraints.py +58 -41
  222. armodel/models/M2/MSR/AsamHdo/SpecialData.py +99 -87
  223. armodel/models/M2/MSR/AsamHdo/Units.py +159 -105
  224. armodel/models/M2/MSR/CalibrationData/CalibrationValue.py +55 -57
  225. armodel/models/M2/MSR/DataDictionary/AuxillaryObjects.py +40 -41
  226. armodel/models/M2/MSR/DataDictionary/Axis.py +142 -144
  227. armodel/models/M2/MSR/DataDictionary/CalibrationParameter.py +35 -36
  228. armodel/models/M2/MSR/DataDictionary/DataDefProperties.py +383 -351
  229. armodel/models/M2/MSR/DataDictionary/RecordLayout.py +207 -209
  230. armodel/models/M2/MSR/DataDictionary/ServiceProcessTask.py +31 -33
  231. armodel/models/M2/MSR/DataDictionary/SystemConstant.py +32 -0
  232. armodel/models/M2/MSR/Documentation/Annotation.py +40 -41
  233. armodel/models/M2/MSR/Documentation/BlockElements/Figure.py +162 -163
  234. armodel/models/M2/MSR/Documentation/BlockElements/Formula/__init__.py +26 -0
  235. armodel/models/M2/MSR/Documentation/TextModel/BlockElements/ListElements.py +55 -56
  236. armodel/models/M2/MSR/Documentation/TextModel/BlockElements/PaginationAndView.py +35 -30
  237. armodel/models/M2/MSR/Documentation/TextModel/BlockElements/__init__.py +110 -110
  238. armodel/models/M2/MSR/Documentation/TextModel/LanguageDataModel.py +57 -44
  239. armodel/models/M2/MSR/Documentation/TextModel/MultilanguageData.py +59 -58
  240. armodel/models/M2/MSR/Documentation/__init__.py +3 -3
  241. armodel/models/M2/MSR/documentation/__init__.py +3 -0
  242. armodel/models/__init__.py +155 -86
  243. armodel/models/utils/uuid_mgr.py +28 -29
  244. armodel/parser/__init__.py +2 -2
  245. armodel/parser/abstract_arxml_parser.py +323 -325
  246. armodel/parser/arxml_parser.py +5832 -5830
  247. armodel/parser/connector_xlsx_parser.py +192 -193
  248. armodel/parser/excel_parser.py +17 -17
  249. armodel/parser/file_parser.py +46 -46
  250. armodel/report/__init__.py +1 -1
  251. armodel/report/connector_xls_report.py +76 -77
  252. armodel/report/excel_report.py +41 -41
  253. armodel/transformer/abstract.py +6 -6
  254. armodel/transformer/admin_data.py +31 -31
  255. armodel/writer/__init__.py +1 -1
  256. armodel/writer/abstract_arxml_writer.py +146 -147
  257. armodel/writer/arxml_writer.py +5969 -5965
  258. {armodel-1.8.7.dist-info → armodel-1.9.2.dist-info}/METADATA +850 -662
  259. armodel-1.9.2.dist-info/RECORD +286 -0
  260. {armodel-1.8.7.dist-info → armodel-1.9.2.dist-info}/WHEEL +1 -1
  261. {armodel-1.8.7.dist-info → armodel-1.9.2.dist-info}/entry_points.txt +0 -1
  262. {armodel-1.8.7.dist-info → armodel-1.9.2.dist-info/licenses}/LICENSE +21 -21
  263. armodel/__pycache__/__init__.cpython-312.pyc +0 -0
  264. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswOverview.py +0 -179
  265. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/__pycache__/BswBehavior.cpython-312.pyc +0 -0
  266. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/__pycache__/BswImplementation.cpython-312.pyc +0 -0
  267. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/__pycache__/BswInterfaces.cpython-312.pyc +0 -0
  268. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/__pycache__/BswOverview.cpython-312.pyc +0 -0
  269. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/__pycache__/__init__.cpython-312.pyc +0 -0
  270. armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/__pycache__/HardwareConfiguration.cpython-312.pyc +0 -0
  271. armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/__pycache__/HeapUsage.cpython-312.pyc +0 -0
  272. armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/__pycache__/MemorySectionUsage.cpython-312.pyc +0 -0
  273. armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/__pycache__/SoftwareContext.cpython-312.pyc +0 -0
  274. armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/__pycache__/StackUsage.cpython-312.pyc +0 -0
  275. armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/__pycache__/__init__.cpython-312.pyc +0 -0
  276. armodel/models/M2/AUTOSARTemplates/CommonStructure/StandardizationTemplate/BlueprintDedicated/__pycache__/PortPrototypeBlueprint.cpython-312.pyc +0 -0
  277. armodel/models/M2/AUTOSARTemplates/CommonStructure/StandardizationTemplate/BlueprintDedicated/__pycache__/__init__.cpython-312.pyc +0 -0
  278. armodel/models/M2/AUTOSARTemplates/CommonStructure/StandardizationTemplate/__pycache__/Keyword.cpython-312.pyc +0 -0
  279. armodel/models/M2/AUTOSARTemplates/CommonStructure/StandardizationTemplate/__pycache__/__init__.cpython-312.pyc +0 -0
  280. armodel/models/M2/AUTOSARTemplates/CommonStructure/SwcInternalBehavior/ModeDeclarationGroup.py +0 -24
  281. armodel/models/M2/AUTOSARTemplates/CommonStructure/SwcInternalBehavior/__init__.py +0 -0
  282. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint/__pycache__/ExecutionOrderConstraint.cpython-312.pyc +0 -0
  283. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint/__pycache__/TimingConstraint.cpython-312.pyc +0 -0
  284. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint/__pycache__/TimingExtensions.cpython-312.pyc +0 -0
  285. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint/__pycache__/__init__.cpython-312.pyc +0 -0
  286. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/__pycache__/__init__.cpython-312.pyc +0 -0
  287. armodel/models/M2/AUTOSARTemplates/CommonStructure/__pycache__/Filter.cpython-312.pyc +0 -0
  288. armodel/models/M2/AUTOSARTemplates/CommonStructure/__pycache__/FlatMap.cpython-312.pyc +0 -0
  289. armodel/models/M2/AUTOSARTemplates/CommonStructure/__pycache__/Implementation.cpython-312.pyc +0 -0
  290. armodel/models/M2/AUTOSARTemplates/CommonStructure/__pycache__/ImplementationDataTypes.cpython-312.pyc +0 -0
  291. armodel/models/M2/AUTOSARTemplates/CommonStructure/__pycache__/InternalBehavior.cpython-312.pyc +0 -0
  292. armodel/models/M2/AUTOSARTemplates/CommonStructure/__pycache__/ModeDeclaration.cpython-312.pyc +0 -0
  293. armodel/models/M2/AUTOSARTemplates/CommonStructure/__pycache__/ServiceNeeds.cpython-312.pyc +0 -0
  294. armodel/models/M2/AUTOSARTemplates/CommonStructure/__pycache__/SwcBswMapping.cpython-312.pyc +0 -0
  295. armodel/models/M2/AUTOSARTemplates/CommonStructure/__pycache__/TriggerDeclaration.cpython-312.pyc +0 -0
  296. armodel/models/M2/AUTOSARTemplates/CommonStructure/__pycache__/__init__.cpython-312.pyc +0 -0
  297. armodel/models/M2/AUTOSARTemplates/DiagnosticExtract/__pycache__/DiagnosticContribution.cpython-312.pyc +0 -0
  298. armodel/models/M2/AUTOSARTemplates/DiagnosticExtract/__pycache__/__init__.cpython-312.pyc +0 -0
  299. armodel/models/M2/AUTOSARTemplates/EcuResourceTemplate/__pycache__/HwElementCategory.cpython-312.pyc +0 -0
  300. armodel/models/M2/AUTOSARTemplates/EcuResourceTemplate/__pycache__/__init__.cpython-312.pyc +0 -0
  301. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/__pycache__/ARPackage.cpython-312.pyc +0 -0
  302. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/__pycache__/ArObject.cpython-312.pyc +0 -0
  303. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/__pycache__/ElementCollection.cpython-312.pyc +0 -0
  304. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/__pycache__/EngineeringObject.cpython-312.pyc +0 -0
  305. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/__pycache__/Identifiable.cpython-312.pyc +0 -0
  306. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/__pycache__/PrimitiveTypes.cpython-312.pyc +0 -0
  307. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/__pycache__/__init__.cpython-312.pyc +0 -0
  308. armodel/models/M2/AUTOSARTemplates/GenericStructure/__pycache__/AbstractStructure.cpython-312.pyc +0 -0
  309. armodel/models/M2/AUTOSARTemplates/GenericStructure/__pycache__/LifeCycles.cpython-312.pyc +0 -0
  310. armodel/models/M2/AUTOSARTemplates/GenericStructure/__pycache__/__init__.cpython-312.pyc +0 -0
  311. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Components/__pycache__/InstanceRefs.cpython-312.pyc +0 -0
  312. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Components/__pycache__/__init__.cpython-312.pyc +0 -0
  313. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Composition/__pycache__/InstanceRefs.cpython-312.pyc +0 -0
  314. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Composition/__pycache__/__init__.cpython-312.pyc +0 -0
  315. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Datatype/__pycache__/DataPrototypes.cpython-312.pyc +0 -0
  316. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Datatype/__pycache__/Datatypes.cpython-312.pyc +0 -0
  317. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Datatype/__pycache__/__init__.cpython-312.pyc +0 -0
  318. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/PortInterface/__pycache__/InstanceRefs.cpython-312.pyc +0 -0
  319. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/PortInterface/__pycache__/__init__.cpython-312.pyc +0 -0
  320. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__pycache__/AccessCount.cpython-312.pyc +0 -0
  321. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__pycache__/AutosarVariableRef.cpython-312.pyc +0 -0
  322. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__pycache__/DataElements.cpython-312.pyc +0 -0
  323. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__pycache__/IncludedDataTypes.cpython-312.pyc +0 -0
  324. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__pycache__/InstanceRefsUsage.cpython-312.pyc +0 -0
  325. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__pycache__/ModeDeclarationGroup.cpython-312.pyc +0 -0
  326. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__pycache__/PerInstanceMemory.cpython-312.pyc +0 -0
  327. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__pycache__/PortAPIOptions.cpython-312.pyc +0 -0
  328. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__pycache__/RTEEvents.cpython-312.pyc +0 -0
  329. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__pycache__/ServerCall.cpython-312.pyc +0 -0
  330. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__pycache__/ServiceMapping.cpython-312.pyc +0 -0
  331. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__pycache__/Trigger.cpython-312.pyc +0 -0
  332. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__pycache__/__init__.cpython-312.pyc +0 -0
  333. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/__pycache__/Communication.cpython-312.pyc +0 -0
  334. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/__pycache__/EndToEndProtection.cpython-312.pyc +0 -0
  335. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/__pycache__/RPTScenario.cpython-312.pyc +0 -0
  336. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/__pycache__/SwcImplementation.cpython-312.pyc +0 -0
  337. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/__pycache__/__init__.cpython-312.pyc +0 -0
  338. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Can/__pycache__/CanCommunication.cpython-312.pyc +0 -0
  339. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Can/__pycache__/CanTopology.cpython-312.pyc +0 -0
  340. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Can/__pycache__/__init__.cpython-312.pyc +0 -0
  341. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/__pycache__/EthernetCommunication.cpython-312.pyc +0 -0
  342. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/__pycache__/EthernetFrame.cpython-312.pyc +0 -0
  343. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/__pycache__/EthernetTopology.cpython-312.pyc +0 -0
  344. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/__pycache__/NetworkEndpoint.cpython-312.pyc +0 -0
  345. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/__pycache__/ServiceInstances.cpython-312.pyc +0 -0
  346. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/__pycache__/__init__.cpython-312.pyc +0 -0
  347. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Flexray/__pycache__/FlexrayCommunication.cpython-312.pyc +0 -0
  348. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Flexray/__pycache__/FlexrayTopology.cpython-312.pyc +0 -0
  349. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Flexray/__pycache__/__init__.cpython-312.pyc +0 -0
  350. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Lin/__pycache__/LinCommunication.cpython-312.pyc +0 -0
  351. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Lin/__pycache__/LinTopology.cpython-312.pyc +0 -0
  352. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Lin/__pycache__/__init__.cpython-312.pyc +0 -0
  353. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/__pycache__/CoreCommunication.cpython-312.pyc +0 -0
  354. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/__pycache__/CoreTopology.cpython-312.pyc +0 -0
  355. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/__pycache__/EcuInstance.cpython-312.pyc +0 -0
  356. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/__pycache__/Timing.cpython-312.pyc +0 -0
  357. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/__pycache__/__init__.cpython-312.pyc +0 -0
  358. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/__pycache__/Fibex4Multiplatform.cpython-312.pyc +0 -0
  359. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/__pycache__/__init__.cpython-312.pyc +0 -0
  360. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Transformer/__pycache__/__init__.cpython-312.pyc +0 -0
  361. armodel/models/M2/AUTOSARTemplates/SystemTemplate/__pycache__/DataMapping.cpython-312.pyc +0 -0
  362. armodel/models/M2/AUTOSARTemplates/SystemTemplate/__pycache__/DiagnosticConnection.cpython-312.pyc +0 -0
  363. armodel/models/M2/AUTOSARTemplates/SystemTemplate/__pycache__/DoIp.cpython-312.pyc +0 -0
  364. armodel/models/M2/AUTOSARTemplates/SystemTemplate/__pycache__/EcuResourceMapping.cpython-312.pyc +0 -0
  365. armodel/models/M2/AUTOSARTemplates/SystemTemplate/__pycache__/InstanceRefs.cpython-312.pyc +0 -0
  366. armodel/models/M2/AUTOSARTemplates/SystemTemplate/__pycache__/NetworkManagement.cpython-312.pyc +0 -0
  367. armodel/models/M2/AUTOSARTemplates/SystemTemplate/__pycache__/RteEventToOsTaskMapping.cpython-312.pyc +0 -0
  368. armodel/models/M2/AUTOSARTemplates/SystemTemplate/__pycache__/SWmapping.cpython-312.pyc +0 -0
  369. armodel/models/M2/AUTOSARTemplates/SystemTemplate/__pycache__/SecureCommunication.cpython-312.pyc +0 -0
  370. armodel/models/M2/AUTOSARTemplates/SystemTemplate/__pycache__/TransportProtocols.cpython-312.pyc +0 -0
  371. armodel/models/M2/AUTOSARTemplates/SystemTemplate/__pycache__/__init__.cpython-312.pyc +0 -0
  372. armodel/models/M2/AUTOSARTemplates/__pycache__/AutosarTopLevelStructure.cpython-312.pyc +0 -0
  373. armodel/models/M2/AUTOSARTemplates/__pycache__/ECUCDescriptionTemplate.cpython-312.pyc +0 -0
  374. armodel/models/M2/AUTOSARTemplates/__pycache__/ECUCParameterDefTemplate.cpython-312.pyc +0 -0
  375. armodel/models/M2/AUTOSARTemplates/__pycache__/__init__.cpython-312.pyc +0 -0
  376. armodel/models/M2/MSR/AsamHdo/Constraints/__pycache__/GlobalConstraints.cpython-312.pyc +0 -0
  377. armodel/models/M2/MSR/AsamHdo/Constraints/__pycache__/__init__.cpython-312.pyc +0 -0
  378. armodel/models/M2/MSR/AsamHdo/__pycache__/AdminData.cpython-312.pyc +0 -0
  379. armodel/models/M2/MSR/AsamHdo/__pycache__/BaseTypes.cpython-312.pyc +0 -0
  380. armodel/models/M2/MSR/AsamHdo/__pycache__/ComputationMethod.cpython-312.pyc +0 -0
  381. armodel/models/M2/MSR/AsamHdo/__pycache__/SpecialData.cpython-312.pyc +0 -0
  382. armodel/models/M2/MSR/AsamHdo/__pycache__/Units.cpython-312.pyc +0 -0
  383. armodel/models/M2/MSR/AsamHdo/__pycache__/__init__.cpython-312.pyc +0 -0
  384. armodel/models/M2/MSR/CalibrationData/__pycache__/CalibrationValue.cpython-312.pyc +0 -0
  385. armodel/models/M2/MSR/CalibrationData/__pycache__/__init__.cpython-312.pyc +0 -0
  386. armodel/models/M2/MSR/DataDictionary/__pycache__/AuxillaryObjects.cpython-312.pyc +0 -0
  387. armodel/models/M2/MSR/DataDictionary/__pycache__/Axis.cpython-312.pyc +0 -0
  388. armodel/models/M2/MSR/DataDictionary/__pycache__/CalibrationParameter.cpython-312.pyc +0 -0
  389. armodel/models/M2/MSR/DataDictionary/__pycache__/DataDefProperties.cpython-312.pyc +0 -0
  390. armodel/models/M2/MSR/DataDictionary/__pycache__/RecordLayout.cpython-312.pyc +0 -0
  391. armodel/models/M2/MSR/DataDictionary/__pycache__/ServiceProcessTask.cpython-312.pyc +0 -0
  392. armodel/models/M2/MSR/DataDictionary/__pycache__/__init__.cpython-312.pyc +0 -0
  393. armodel/models/M2/MSR/Documentation/BlockElements/__pycache__/Figure.cpython-312.pyc +0 -0
  394. armodel/models/M2/MSR/Documentation/BlockElements/__pycache__/__init__.cpython-312.pyc +0 -0
  395. armodel/models/M2/MSR/Documentation/BlockElements.py +0 -18
  396. armodel/models/M2/MSR/Documentation/TextModel/BlockElements/__pycache__/ListElements.cpython-312.pyc +0 -0
  397. armodel/models/M2/MSR/Documentation/TextModel/BlockElements/__pycache__/PaginationAndView.cpython-312.pyc +0 -0
  398. armodel/models/M2/MSR/Documentation/TextModel/BlockElements/__pycache__/__init__.cpython-312.pyc +0 -0
  399. armodel/models/M2/MSR/Documentation/TextModel/__pycache__/LanguageDataModel.cpython-312.pyc +0 -0
  400. armodel/models/M2/MSR/Documentation/TextModel/__pycache__/MultilanguageData.cpython-312.pyc +0 -0
  401. armodel/models/M2/MSR/Documentation/TextModel/__pycache__/__init__.cpython-312.pyc +0 -0
  402. armodel/models/M2/MSR/Documentation/__pycache__/Annotation.cpython-312.pyc +0 -0
  403. armodel/models/M2/MSR/Documentation/__pycache__/__init__.cpython-312.pyc +0 -0
  404. armodel/models/M2/MSR/__pycache__/__init__.cpython-312.pyc +0 -0
  405. armodel/models/M2/__pycache__/__init__.cpython-312.pyc +0 -0
  406. armodel/models/__pycache__/__init__.cpython-312.pyc +0 -0
  407. armodel/models/utils/__pycache__/__init__.cpython-312.pyc +0 -0
  408. armodel/models/utils/__pycache__/uuid_mgr.cpython-312.pyc +0 -0
  409. armodel/parser/__pycache__/__init__.cpython-312.pyc +0 -0
  410. armodel/parser/__pycache__/abstract_arxml_parser.cpython-312.pyc +0 -0
  411. armodel/parser/__pycache__/arxml_parser.cpython-312.pyc +0 -0
  412. armodel/parser/__pycache__/file_parser.cpython-312.pyc +0 -0
  413. armodel/tests/__init__.py +0 -0
  414. armodel/tests/test_armodel/__init__.py +0 -0
  415. armodel/tests/test_armodel/models/__init__.py +0 -0
  416. armodel/tests/test_armodel/models/test_ECUCParameterDefTemplate.py +0 -116
  417. armodel/tests/test_armodel/models/test_Identifiable.py +0 -85
  418. armodel/tests/test_armodel/models/test_ar_object.py +0 -154
  419. armodel/tests/test_armodel/models/test_ar_package.py +0 -304
  420. armodel/tests/test_armodel/models/test_ar_ref.py +0 -81
  421. armodel/tests/test_armodel/models/test_bsw_module_template.py +0 -52
  422. armodel/tests/test_armodel/models/test_common_structure.py +0 -82
  423. armodel/tests/test_armodel/models/test_data_dictionary.py +0 -30
  424. armodel/tests/test_armodel/models/test_data_prototype.py +0 -93
  425. armodel/tests/test_armodel/models/test_datatype.py +0 -251
  426. armodel/tests/test_armodel/models/test_general_structure.py +0 -56
  427. armodel/tests/test_armodel/models/test_implementation.py +0 -27
  428. armodel/tests/test_armodel/models/test_m2_msr.py +0 -79
  429. armodel/tests/test_armodel/models/test_port_interface.py +0 -202
  430. armodel/tests/test_armodel/models/test_port_prototype.py +0 -15
  431. armodel/tests/test_armodel/parser/__init__.py +0 -0
  432. armodel/tests/test_armodel/parser/test_arxml_parser.py +0 -53
  433. armodel/tests/test_armodel/parser/test_bsw_module_descriiption.py +0 -218
  434. armodel/tests/test_armodel/parser/test_implementation_data_type.py +0 -247
  435. armodel/tests/test_armodel/parser/test_parse_bswmd.py +0 -202
  436. armodel/tests/test_armodel/parser/test_rte_event.py +0 -142
  437. armodel/tests/test_armodel/parser/test_runnable_entity.py +0 -135
  438. armodel/tests/test_armodel/parser/test_sw_components.py +0 -484
  439. armodel/tests/test_armodel/parser/test_system.py +0 -23
  440. armodel/writer/__pycache__/__init__.cpython-312.pyc +0 -0
  441. armodel/writer/__pycache__/abstract_arxml_writer.cpython-312.pyc +0 -0
  442. armodel/writer/__pycache__/arxml_writer.cpython-312.pyc +0 -0
  443. armodel-1.8.7.dist-info/RECORD +0 -360
  444. {armodel-1.8.7.dist-info → armodel-1.9.2.dist-info}/top_level.txt +0 -0
@@ -1,236 +1,599 @@
1
- from ....MSR.Documentation.TextModel.BlockElements import DocumentationBlock
2
- from .....M2.MSR.AsamHdo.AdminData import AdminData
3
- from .....M2.MSR.Documentation.TextModel.MultilanguageData import MultilanguageLongName
4
- from .....M2.MSR.Documentation.Annotation import Annotation
5
- from .....M2.MSR.Documentation.TextModel.MultilanguageData import MultiLanguageOverviewParagraph
6
- from .....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
7
- from .....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import ARLiteral, CategoryString
8
- from abc import ABCMeta
9
- from typing import Dict, List
10
-
11
-
12
- class Referrable(ARObject, metaclass=ABCMeta):
13
- def __init__(self, parent: ARObject, short_name: str):
14
-
15
- if type(self) is Referrable:
16
- raise TypeError("Referrable is an abstract class.")
17
-
18
- ARObject.__init__(self)
19
-
20
- self.parent = parent
21
- self.short_name = short_name
22
-
23
- @property
24
- def shortName(self):
25
- return self.short_name
26
-
27
- @shortName.setter
28
- def shortName(self, value):
29
- self.short_name = value
30
-
31
- def getShortName(self) -> str:
32
- return self.short_name
33
-
34
- def getParent(self):
35
- return self.parent
36
-
37
- @property
38
- def full_name(self) -> str:
39
- return self.parent.full_name + "/" + self.short_name
40
-
41
- def getFullName(self) -> str:
42
- return self.full_name
43
-
44
-
45
- class MultilanguageReferrable(Referrable, metaclass=ABCMeta):
46
- def __init__(self, parent: ARObject, short_name: str):
47
- if type(self) is MultilanguageReferrable:
48
- raise TypeError("MultilanguageReferrable is an abstract class.")
49
-
50
- super().__init__(parent, short_name)
51
-
52
- # self._parent = parent
53
- self.longName = None # type: MultilanguageLongName
54
-
55
- def getLongName(self) -> MultilanguageLongName:
56
- return self.longName
57
-
58
- def setLongName(self, value: MultilanguageLongName):
59
- self.longName = value
60
- return self
61
-
62
-
63
- class CollectableElement(ARObject, metaclass=ABCMeta):
64
- def __init__(self):
65
- if type(self) is CollectableElement:
66
- raise TypeError("CollectableElement is an abstract class.")
67
-
68
- # super().__init__()
69
-
70
- self.elements: List[Referrable] = []
71
- self.element_mappings: Dict[str, List[Referrable]] = {}
72
-
73
- def getTotalElement(self) -> int:
74
- # return len(list(filter(lambda a: not isinstance(a, ARPackage) , self.elements)))
75
- return len(self.elements)
76
-
77
- def removeElement(self, short_name: str, type=None):
78
- if short_name not in self.element_mappings:
79
- raise KeyError("Invalid key <%s> for removing element" % short_name)
80
- if type is None:
81
- item = self.element_mappings[short_name][0]
82
- else:
83
- item = next(filter(lambda a: isinstance(a, type), self.element_mappings[short_name]))
84
- if item is not None:
85
- self.elements.remove(item)
86
- self.element_mappings[short_name].remove(item)
87
-
88
- def getElements(self):
89
- return self.elements
90
-
91
- def addElement(self, element: Referrable):
92
- short_name = element.getShortName()
93
- if not self.IsElementExists(short_name, type(element)):
94
- self.elements.append(element)
95
- if short_name not in self.element_mappings:
96
- self.element_mappings[short_name] = []
97
- self.element_mappings[short_name].append(element)
98
-
99
- def getElement(self, short_name: str, type=None) -> Referrable:
100
- if (short_name not in self.element_mappings):
101
- return None
102
- if type is not None:
103
- result = list(filter(lambda a: isinstance(a, type), self.element_mappings[short_name]))
104
- if len(result) == 0:
105
- return None
106
- return result[0]
107
- return self.element_mappings[short_name][0]
108
-
109
- def IsElementExists(self, short_name: str, type=None) -> bool:
110
- if type is None:
111
- return short_name in self.element_mappings
112
- if short_name in self.element_mappings:
113
- return any(isinstance(a, type) for a in self.element_mappings[short_name])
114
- return False
115
-
116
-
117
- class Identifiable(MultilanguageReferrable, CollectableElement, metaclass=ABCMeta):
118
- def __init__(self, parent: ARObject, short_name: str):
119
- if type(self) is Identifiable:
120
- raise TypeError("Identifiable is an abstract class.")
121
-
122
- MultilanguageReferrable.__init__(self, parent, short_name)
123
- CollectableElement.__init__(self)
124
-
125
- self.annotations: List[Annotation] = []
126
- self.adminData: AdminData = None
127
- self.category: CategoryString = None
128
- self.introduction: DocumentationBlock = None
129
- self.desc: MultiLanguageOverviewParagraph = None
130
-
131
- def getAdminData(self):
132
- return self.adminData
133
-
134
- def setAdminData(self, value):
135
- if value is not None:
136
- self.adminData = value
137
- return self
138
-
139
- def removeAdminData(self):
140
- self.adminData = None
141
-
142
- def getDesc(self):
143
- return self.desc
144
-
145
- def setDesc(self, value):
146
- self.desc = value
147
- return self
148
-
149
- def getCategory(self):
150
- return self.category
151
-
152
- def setCategory(self, value):
153
- if isinstance(value, str):
154
- self.category = CategoryString().setValue(value)
155
- else:
156
- self.category = value
157
- return self
158
-
159
- def getIntroduction(self):
160
- return self.introduction
161
-
162
- def setIntroduction(self, value):
163
- self.introduction = value
164
- return self
165
-
166
- def addAnnotation(self, annotation: Annotation):
167
- self.annotations.append(annotation)
168
- return self
169
-
170
- def getAnnotations(self) -> List[Annotation]:
171
- return self.annotations
172
-
173
-
174
- class PackageableElement(Identifiable, metaclass=ABCMeta):
175
- def __init__(self, parent: ARObject, short_name: str):
176
- if type(self) is PackageableElement:
177
- raise TypeError("PackageableElement is an abstract class.")
178
- super().__init__(parent, short_name)
179
-
180
-
181
- class ARElement(PackageableElement, metaclass=ABCMeta):
182
- def __init__(self, parent: ARObject, short_name: str):
183
- if type(self) is ARElement:
184
- raise TypeError("ARElement is an abstract class.")
185
- super().__init__(parent, short_name)
186
-
187
-
188
- class Describable(ARObject, metaclass=ABCMeta):
189
- def __init__(self):
190
- if type(self) is Describable:
191
- raise TypeError("Describable is an abstract class.")
192
-
193
- super().__init__()
194
-
195
- self.desc = None
196
- self.category = None
197
- self.adminData = None
198
- self.introduction = None
199
-
200
- def getDesc(self):
201
- return self.desc
202
-
203
- def setDesc(self, value):
204
- if value is not None:
205
- self.desc = value
206
- return self
207
-
208
- def getCategory(self):
209
- return self.category
210
-
211
- def setCategory(self, value):
212
- if value is not None:
213
- self.category = value
214
- return self
215
-
216
- def getAdminData(self):
217
- return self.adminData
218
-
219
- def setAdminData(self, value):
220
- if value is not None:
221
- self.adminData = value
222
- return self
223
-
224
- def removeAdminData(self):
225
- self.adminData = None
226
-
227
- def getIntroduction(self):
228
- return self.introduction
229
-
230
- def setIntroduction(self, value):
231
- if value is not None:
232
- self.introduction = value
233
- return self
234
-
235
-
236
-
1
+ """
2
+ This module contains classes for representing identifiable elements in AUTOSAR models
3
+ in the GenericStructure module.
4
+ """
5
+
6
+ from armodel.models.M2.MSR.Documentation.TextModel.BlockElements import DocumentationBlock
7
+ from armodel.models.M2.MSR.AsamHdo.AdminData import AdminData
8
+ from armodel.models.M2.MSR.Documentation.TextModel.MultilanguageData import MultilanguageLongName
9
+ from armodel.models.M2.MSR.Documentation.Annotation import Annotation
10
+ from armodel.models.M2.MSR.Documentation.TextModel.MultilanguageData import MultiLanguageOverviewParagraph
11
+ from armodel.models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
12
+ from armodel.models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import CategoryString
13
+ from abc import ABC
14
+ from typing import Dict, List, Optional, Any
15
+
16
+
17
+ class Referrable(ARObject, ABC):
18
+ """
19
+ Abstract class for elements that can be referenced by other elements in AUTOSAR models.
20
+ This class provides basic functionality for managing short names and parent-child relationships.
21
+ """
22
+
23
+ def __init__(self, parent: ARObject, short_name: str):
24
+ if type(self) is Referrable:
25
+ raise TypeError("Referrable is an abstract class.")
26
+
27
+ ARObject.__init__(self)
28
+
29
+ self.parent = parent
30
+ self.short_name = short_name
31
+
32
+ @property
33
+ def shortName(self) -> str:
34
+ """str: The short name of this referrable element."""
35
+ return self.short_name
36
+
37
+ @shortName.setter
38
+ def shortName(self, value: str):
39
+ self.short_name = value
40
+
41
+ def getShortName(self) -> str:
42
+ """
43
+ Gets the short name of this referrable element.
44
+
45
+ Returns:
46
+ The short name of this element
47
+ """
48
+ return self.short_name
49
+
50
+ def getParent(self) -> ARObject:
51
+ """
52
+ Gets the parent of this referrable element.
53
+
54
+ Returns:
55
+ The parent ARObject
56
+ """
57
+ return self.parent
58
+
59
+ @property
60
+ def full_name(self) -> str:
61
+ """
62
+ str: The full name of this element, including the parent's full name.
63
+ """
64
+ return self.parent.full_name + "/" + self.short_name
65
+
66
+ def getFullName(self) -> str:
67
+ """
68
+ Gets the full name of this element, including the parent's full name.
69
+
70
+ Returns:
71
+ The full name of this element
72
+ """
73
+ return self.full_name
74
+
75
+
76
+ class MultilanguageReferrable(Referrable, ABC):
77
+ """
78
+ Abstract class for referrable elements that support multilingual text.
79
+ This class extends Referrable with multilingual support functionality.
80
+ """
81
+
82
+ def __init__(self, parent: ARObject, short_name: str):
83
+ if type(self) is MultilanguageReferrable:
84
+ raise TypeError("MultilanguageReferrable is an abstract class.")
85
+
86
+ super().__init__(parent, short_name)
87
+
88
+ # self._parent = parent
89
+ self.longName: Optional[MultilanguageLongName] = None
90
+
91
+ def getLongName(self) -> Optional[MultilanguageLongName]:
92
+ """
93
+ Gets the long name of this multilingual referrable element.
94
+
95
+ Returns:
96
+ MultilanguageLongName representing the long name, or None if not set
97
+ """
98
+ return self.longName
99
+
100
+ def setLongName(self, value: MultilanguageLongName):
101
+ """
102
+ Sets the long name of this multilingual referrable element.
103
+
104
+ Args:
105
+ value: The long name to set
106
+
107
+ Returns:
108
+ self for method chaining
109
+ """
110
+ self.longName = value
111
+ return self
112
+
113
+
114
+ class CollectableElement(ARObject, ABC):
115
+ """
116
+ Abstract class for elements that can collect other referrable elements.
117
+ This class provides functionality for managing collections of elements with lookup capabilities.
118
+ """
119
+
120
+ def __init__(self):
121
+ if type(self) is CollectableElement:
122
+ raise TypeError("CollectableElement is an abstract class.")
123
+
124
+ super().__init__()
125
+
126
+ self.elements: List[Referrable] = []
127
+ self.element_mappings: Dict[str, List[Referrable]] = {}
128
+
129
+ def getTotalElement(self) -> int:
130
+ """
131
+ Gets the total number of elements in this collection.
132
+
133
+ Returns:
134
+ The count of elements in the collection
135
+ """
136
+ # return len(list(filter(lambda a: not isinstance(a, ARPackage) , self.elements)))
137
+ return len(self.elements)
138
+
139
+ def removeElement(self, short_name: str, type=None):
140
+ """
141
+ Removes an element from this collection.
142
+
143
+ Args:
144
+ short_name: The short name of the element to remove
145
+ type: The type of element to remove (optional)
146
+ """
147
+ if short_name not in self.element_mappings:
148
+ raise KeyError("Invalid key <%s> for removing element" % short_name)
149
+ if type is None:
150
+ item = self.element_mappings[short_name][0]
151
+ else:
152
+ item = next(filter(lambda a: isinstance(a, type), self.element_mappings[short_name]))
153
+ if item is not None:
154
+ self.elements.remove(item)
155
+ self.element_mappings[short_name].remove(item)
156
+
157
+ def getElements(self) -> List[Referrable]:
158
+ """
159
+ Gets the list of elements in this collection.
160
+
161
+ Returns:
162
+ List of Referrable instances
163
+ """
164
+ return self.elements
165
+
166
+ def addElement(self, element: Referrable):
167
+ """
168
+ Adds an element to this collection.
169
+
170
+ Args:
171
+ element: The element to add
172
+
173
+ Returns:
174
+ self for method chaining
175
+ """
176
+ short_name = element.getShortName()
177
+ if not self.IsElementExists(short_name, type(element)):
178
+ self.elements.append(element)
179
+ if short_name not in self.element_mappings:
180
+ self.element_mappings[short_name] = []
181
+ self.element_mappings[short_name].append(element)
182
+
183
+ def getElement(self, short_name: str, type=None) -> Optional[Referrable]:
184
+ """
185
+ Gets an element from this collection by short name and type.
186
+
187
+ Args:
188
+ short_name: The short name of the element to find
189
+ type: The type of element to find (optional)
190
+
191
+ Returns:
192
+ The found Referrable instance, or None if not found
193
+ """
194
+ if (short_name not in self.element_mappings):
195
+ return None
196
+ if type is not None:
197
+ result = list(filter(lambda a: isinstance(a, type), self.element_mappings[short_name]))
198
+ if len(result) == 0:
199
+ return None
200
+ return result[0]
201
+ return self.element_mappings[short_name][0]
202
+
203
+ def IsElementExists(self, short_name: str, type=None) -> bool:
204
+ """
205
+ Checks if an element with the specified short name and type exists in this collection.
206
+
207
+ Args:
208
+ short_name: The short name of the element to check
209
+ type: The type of element to check (optional)
210
+
211
+ Returns:
212
+ True if the element exists, False otherwise
213
+ """
214
+ if type is None:
215
+ return short_name in self.element_mappings
216
+ if short_name in self.element_mappings:
217
+ return any(isinstance(a, type) for a in self.element_mappings[short_name])
218
+ return False
219
+
220
+
221
+ class Identifiable(MultilanguageReferrable, ABC):
222
+ """
223
+ Abstract class for identifiable elements in AUTOSAR models.
224
+ This class combines multilingual referrable functionality with element collection capabilities.
225
+ """
226
+
227
+ def __init__(self, parent: ARObject, short_name: str):
228
+ if type(self) is Identifiable:
229
+ raise TypeError("Identifiable is an abstract class.")
230
+
231
+ MultilanguageReferrable.__init__(self, parent, short_name)
232
+
233
+ self.elements: List[Referrable] = []
234
+ self.element_mappings: Dict[str, List[Referrable]] = {}
235
+
236
+ self.annotations: List[Annotation] = []
237
+ self.adminData: Optional[AdminData] = None
238
+ self.category: Optional[CategoryString] = None
239
+ self.introduction: Optional[DocumentationBlock] = None
240
+ self.desc: Optional[MultiLanguageOverviewParagraph] = None
241
+
242
+ def getTotalElement(self) -> int:
243
+ """
244
+ Gets the total number of elements in this collection.
245
+
246
+ Returns:
247
+ The count of elements in the collection
248
+ """
249
+ return len(self.elements)
250
+
251
+ def removeElement(self, short_name: str, type=None):
252
+ """
253
+ Removes an element from this collection.
254
+
255
+ Args:
256
+ short_name: The short name of the element to remove
257
+ type: The type of element to remove (optional)
258
+ """
259
+ if short_name not in self.element_mappings:
260
+ raise KeyError("Invalid key <%s> for removing element" % short_name)
261
+ if type is None:
262
+ item = self.element_mappings[short_name][0]
263
+ else:
264
+ item = next(filter(lambda a: isinstance(a, type), self.element_mappings[short_name]))
265
+ if item is not None:
266
+ self.elements.remove(item)
267
+ self.element_mappings[short_name].remove(item)
268
+
269
+ def getElements(self) -> List[Referrable]:
270
+ """
271
+ Gets the list of elements in this collection.
272
+
273
+ Returns:
274
+ List of Referrable instances
275
+ """
276
+ return self.elements
277
+
278
+ def addElement(self, element: Referrable):
279
+ """
280
+ Adds an element to this collection.
281
+
282
+ Args:
283
+ element: The element to add
284
+
285
+ Returns:
286
+ self for method chaining
287
+ """
288
+ short_name = element.getShortName()
289
+ if not self.IsElementExists(short_name, type(element)):
290
+ self.elements.append(element)
291
+ if short_name not in self.element_mappings:
292
+ self.element_mappings[short_name] = []
293
+ self.element_mappings[short_name].append(element)
294
+
295
+ def getElement(self, short_name: str, type=None) -> Optional[Referrable]:
296
+ """
297
+ Gets an element from this collection by short name and type.
298
+
299
+ Args:
300
+ short_name: The short name of the element to find
301
+ type: The type of element to find (optional)
302
+
303
+ Returns:
304
+ The found Referrable instance, or None if not found
305
+ """
306
+ if (short_name not in self.element_mappings):
307
+ return None
308
+ if type is not None:
309
+ result = list(filter(lambda a: isinstance(a, type), self.element_mappings[short_name]))
310
+ if len(result) == 0:
311
+ return None
312
+ return result[0]
313
+ return self.element_mappings[short_name][0]
314
+
315
+ def IsElementExists(self, short_name: str, type=None) -> bool:
316
+ """
317
+ Checks if an element with the specified short name and type exists in this collection.
318
+
319
+ Args:
320
+ short_name: The short name of the element to check
321
+ type: The type of element to check (optional)
322
+
323
+ Returns:
324
+ True if the element exists, False otherwise
325
+ """
326
+ if type is None:
327
+ return short_name in self.element_mappings
328
+ if short_name in self.element_mappings:
329
+ return any(isinstance(a, type) for a in self.element_mappings[short_name])
330
+ return False
331
+
332
+ def getAdminData(self) -> Optional[AdminData]:
333
+ """
334
+ Gets the administrative data for this identifiable element.
335
+
336
+ Returns:
337
+ AdminData instance, or None if not set
338
+ """
339
+ return self.adminData
340
+
341
+ def setAdminData(self, value: AdminData):
342
+ """
343
+ Sets the administrative data for this identifiable element.
344
+ Only sets the value if it is not None.
345
+
346
+ Args:
347
+ value: The administrative data to set
348
+
349
+ Returns:
350
+ self for method chaining
351
+ """
352
+ if value is not None:
353
+ self.adminData = value
354
+ return self
355
+
356
+ def removeAdminData(self):
357
+ """
358
+ Removes the administrative data for this identifiable element.
359
+ """
360
+ self.adminData = None
361
+
362
+ def getDesc(self) -> Optional[MultiLanguageOverviewParagraph]:
363
+ """
364
+ Gets the description for this identifiable element.
365
+
366
+ Returns:
367
+ MultiLanguageOverviewParagraph instance, or None if not set
368
+ """
369
+ return self.desc
370
+
371
+ def setDesc(self, value: MultiLanguageOverviewParagraph):
372
+ """
373
+ Sets the description for this identifiable element.
374
+
375
+ Args:
376
+ value: The description to set
377
+
378
+ Returns:
379
+ self for method chaining
380
+ """
381
+ self.desc = value
382
+ return self
383
+
384
+ def getCategory(self) -> Optional[CategoryString]:
385
+ """
386
+ Gets the category for this identifiable element.
387
+
388
+ Returns:
389
+ CategoryString instance, or None if not set
390
+ """
391
+ return self.category
392
+
393
+ def setCategory(self, value: Any):
394
+ """
395
+ Sets the category for this identifiable element.
396
+ If the value is a string, it will be converted to a CategoryString.
397
+
398
+ Args:
399
+ value: The category to set
400
+
401
+ Returns:
402
+ self for method chaining
403
+ """
404
+ if isinstance(value, str):
405
+ self.category = CategoryString().setValue(value)
406
+ else:
407
+ self.category = value
408
+ return self
409
+
410
+ def getIntroduction(self) -> Optional[DocumentationBlock]:
411
+ """
412
+ Gets the introduction documentation for this identifiable element.
413
+
414
+ Returns:
415
+ DocumentationBlock instance, or None if not set
416
+ """
417
+ return self.introduction
418
+
419
+ def setIntroduction(self, value: DocumentationBlock):
420
+ """
421
+ Sets the introduction documentation for this identifiable element.
422
+
423
+ Args:
424
+ value: The introduction documentation to set
425
+
426
+ Returns:
427
+ self for method chaining
428
+ """
429
+ self.introduction = value
430
+ return self
431
+
432
+ def addAnnotation(self, annotation: Annotation):
433
+ """
434
+ Adds an annotation to this identifiable element.
435
+
436
+ Args:
437
+ annotation: The annotation to add
438
+
439
+ Returns:
440
+ self for method chaining
441
+ """
442
+ self.annotations.append(annotation)
443
+ return self
444
+
445
+ def getAnnotations(self) -> List[Annotation]:
446
+ """
447
+ Gets the list of annotations for this identifiable element.
448
+
449
+ Returns:
450
+ List of Annotation instances
451
+ """
452
+ return self.annotations
453
+
454
+
455
+ class PackageableElement(Identifiable, ABC):
456
+ """
457
+ Abstract class for elements that can be packaged in AUTOSAR models.
458
+ This class extends Identifiable with packaging functionality.
459
+ """
460
+
461
+ def __init__(self, parent: ARObject, short_name: str):
462
+ if type(self) is PackageableElement:
463
+ raise TypeError("PackageableElement is an abstract class.")
464
+ super().__init__(parent, short_name)
465
+
466
+
467
+ class ARElement(PackageableElement, ABC):
468
+ """
469
+ Abstract class for AUTOSAR elements.
470
+ This class represents the basic structure for all AUTOSAR model elements.
471
+ """
472
+
473
+ def __init__(self, parent: ARObject, short_name: str):
474
+ if type(self) is ARElement:
475
+ raise TypeError("ARElement is an abstract class.")
476
+ super().__init__(parent, short_name)
477
+
478
+
479
+ class Describable(ARObject, ABC):
480
+ """
481
+ Abstract class for elements that can be described in AUTOSAR models.
482
+ This class provides basic description functionality for AUTOSAR elements.
483
+ """
484
+
485
+ def __init__(self):
486
+ if type(self) is Describable:
487
+ raise TypeError("Describable is an abstract class.")
488
+
489
+ super().__init__()
490
+
491
+ self.desc = None
492
+ self.category = None
493
+ self.adminData = None
494
+ self.introduction = None
495
+
496
+ def getDesc(self) -> Optional[MultiLanguageOverviewParagraph]:
497
+ """
498
+ Gets the description for this describable element.
499
+
500
+ Returns:
501
+ MultiLanguageOverviewParagraph instance, or None if not set
502
+ """
503
+ return self.desc
504
+
505
+ def setDesc(self, value: MultiLanguageOverviewParagraph):
506
+ """
507
+ Sets the description for this describable element.
508
+ Only sets the value if it is not None.
509
+
510
+ Args:
511
+ value: The description to set
512
+
513
+ Returns:
514
+ self for method chaining
515
+ """
516
+ if value is not None:
517
+ self.desc = value
518
+ return self
519
+
520
+ def getCategory(self) -> Optional[CategoryString]:
521
+ """
522
+ Gets the category for this describable element.
523
+
524
+ Returns:
525
+ CategoryString instance, or None if not set
526
+ """
527
+ return self.category
528
+
529
+ def setCategory(self, value: CategoryString):
530
+ """
531
+ Sets the category for this describable element.
532
+ Only sets the value if it is not None.
533
+
534
+ Args:
535
+ value: The category to set
536
+
537
+ Returns:
538
+ self for method chaining
539
+ """
540
+ if value is not None:
541
+ self.category = value
542
+ return self
543
+
544
+ def getAdminData(self) -> Optional[AdminData]:
545
+ """
546
+ Gets the administrative data for this describable element.
547
+
548
+ Returns:
549
+ AdminData instance, or None if not set
550
+ """
551
+ return self.adminData
552
+
553
+ def setAdminData(self, value: AdminData):
554
+ """
555
+ Sets the administrative data for this describable element.
556
+ Only sets the value if it is not None.
557
+
558
+ Args:
559
+ value: The administrative data to set
560
+
561
+ Returns:
562
+ self for method chaining
563
+ """
564
+ if value is not None:
565
+ self.adminData = value
566
+ return self
567
+
568
+ def removeAdminData(self):
569
+ """
570
+ Removes the administrative data for this describable element.
571
+ """
572
+ self.adminData = None
573
+
574
+ def getIntroduction(self) -> Optional[DocumentationBlock]:
575
+ """
576
+ Gets the introduction documentation for this describable element.
577
+
578
+ Returns:
579
+ DocumentationBlock instance, or None if not set
580
+ """
581
+ return self.introduction
582
+
583
+ def setIntroduction(self, value: DocumentationBlock):
584
+ """
585
+ Sets the introduction documentation for this describable element.
586
+ Only sets the value if it is not None.
587
+
588
+ Args:
589
+ value: The introduction documentation to set
590
+
591
+ Returns:
592
+ self for method chaining
593
+ """
594
+ if value is not None:
595
+ self.introduction = value
596
+ return self
597
+
598
+
599
+