armodel 1.7.8__py3-none-any.whl → 1.8.0__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 (51) hide show
  1. armodel/cli/arxml_format_cli.py +1 -0
  2. armodel/models/M2/AUTOSARTemplates/AutosarTopLevelStructure.py +71 -11
  3. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswBehavior.py +102 -12
  4. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswInterfaces.py +80 -9
  5. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswOverview.py +17 -10
  6. armodel/models/M2/AUTOSARTemplates/CommonStructure/Implementation.py +10 -8
  7. armodel/models/M2/AUTOSARTemplates/CommonStructure/ImplementationDataTypes.py +30 -28
  8. armodel/models/M2/AUTOSARTemplates/CommonStructure/InternalBehavior.py +7 -5
  9. armodel/models/M2/AUTOSARTemplates/CommonStructure/ModeDeclaration.py +38 -3
  10. armodel/models/M2/AUTOSARTemplates/CommonStructure/ServiceNeeds.py +96 -18
  11. armodel/models/M2/AUTOSARTemplates/CommonStructure/StandardizationTemplate/BlueprintDedicated/PortPrototypeBlueprint.py +73 -0
  12. armodel/models/M2/AUTOSARTemplates/CommonStructure/StandardizationTemplate/BlueprintDedicated/__init__.py +0 -0
  13. armodel/models/M2/AUTOSARTemplates/CommonStructure/StandardizationTemplate/Keyword.py +45 -0
  14. armodel/models/M2/AUTOSARTemplates/CommonStructure/StandardizationTemplate/__init__.py +0 -0
  15. armodel/models/M2/AUTOSARTemplates/CommonStructure/TriggerDeclaration.py +27 -0
  16. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/ARPackage.py +33 -4
  17. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/ElementCollection.py +73 -0
  18. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/PrimitiveTypes.py +40 -14
  19. armodel/models/M2/AUTOSARTemplates/GenericStructure/LifeCycles.py +151 -1
  20. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Components/__init__.py +4 -1
  21. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/PortInterface/__init__.py +55 -12
  22. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SoftwareComponentDocumentation.py +80 -0
  23. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/RTEEvents.py +11 -1
  24. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/ServiceMapping.py +34 -10
  25. armodel/models/M2/AUTOSARTemplates/SystemTemplate/DataMapping.py +11 -10
  26. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/EthernetTopology.py +18 -6
  27. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/CoreTopology.py +8 -2
  28. armodel/models/M2/AUTOSARTemplates/SystemTemplate/RteEventToOsTaskMapping.py +35 -0
  29. armodel/models/M2/AUTOSARTemplates/SystemTemplate/SWmapping.py +25 -0
  30. armodel/models/M2/AUTOSARTemplates/SystemTemplate/SecureCommunication.py +83 -0
  31. armodel/models/M2/AUTOSARTemplates/SystemTemplate/__init__.py +84 -32
  32. armodel/models/M2/MSR/DataDictionary/DataDefProperties.py +10 -1
  33. armodel/models/M2/MSR/Documentation/BlockElements/Figure.py +163 -0
  34. armodel/models/M2/MSR/Documentation/BlockElements/__init__.py +0 -0
  35. armodel/models/M2/MSR/Documentation/TextModel/BlockElements/ListElements.py +5 -3
  36. armodel/models/M2/MSR/Documentation/TextModel/BlockElements/PaginationAndView.py +22 -1
  37. armodel/models/M2/MSR/Documentation/TextModel/BlockElements/__init__.py +94 -9
  38. armodel/models/__init__.py +4 -0
  39. armodel/models/utils/__init__.py +0 -0
  40. armodel/models/utils/uuid_mgr.py +23 -0
  41. armodel/parser/abstract_arxml_parser.py +10 -2
  42. armodel/parser/arxml_parser.py +332 -104
  43. armodel/tests/test_armodel/models/test_datatype.py +136 -138
  44. armodel/tests/test_armodel/parser/test_sw_components.py +266 -4
  45. armodel/writer/arxml_writer.py +337 -74
  46. {armodel-1.7.8.dist-info → armodel-1.8.0.dist-info}/METADATA +35 -1
  47. {armodel-1.7.8.dist-info → armodel-1.8.0.dist-info}/RECORD +51 -40
  48. {armodel-1.7.8.dist-info → armodel-1.8.0.dist-info}/LICENSE +0 -0
  49. {armodel-1.7.8.dist-info → armodel-1.8.0.dist-info}/WHEEL +0 -0
  50. {armodel-1.7.8.dist-info → armodel-1.8.0.dist-info}/entry_points.txt +0 -0
  51. {armodel-1.7.8.dist-info → armodel-1.8.0.dist-info}/top_level.txt +0 -0
@@ -1,6 +1,9 @@
1
+ from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import RefType
2
+ from ....M2.MSR.DataDictionary.DataDefProperties import SwImplPolicyEnum
1
3
  from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
2
4
  from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Identifiable import Identifiable
3
5
 
6
+
4
7
  class Trigger(Identifiable):
5
8
  def __init__(self, parent: ARObject, short_name: str):
6
9
  super().__init__(parent, short_name)
@@ -23,3 +26,27 @@ class Trigger(Identifiable):
23
26
  if value is not None:
24
27
  self.triggerPeriod = value
25
28
  return self
29
+
30
+
31
+ class TriggerMapping(ARObject):
32
+ def __init__(self):
33
+ super().__init__()
34
+
35
+ self.firstTriggerRef = None # type: RefType
36
+ self.secondTriggerRef = None # type: RefType
37
+
38
+ def getFirstTriggerRef(self):
39
+ return self.firstTriggerRef
40
+
41
+ def setFirstTriggerRef(self, value):
42
+ if value is not None:
43
+ self.firstTriggerRef = value
44
+ return self
45
+
46
+ def getSecondTriggerRef(self):
47
+ return self.secondTriggerRef
48
+
49
+ def setSecondTriggerRef(self, value):
50
+ if value is not None:
51
+ self.secondTriggerRef = value
52
+ return self
@@ -1,10 +1,6 @@
1
1
  from typing import Dict, List
2
2
 
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
3
  from .....M2.AUTOSARTemplates.SWComponentTemplate.Components import SensorActuatorSwComponentType
7
-
8
4
  from .....M2.MSR.AsamHdo.BaseTypes import SwBaseType
9
5
  from .....M2.MSR.AsamHdo.Units import PhysicalDimension, Unit
10
6
  from .....M2.MSR.AsamHdo.Constraints.GlobalConstraints import DataConstr
@@ -21,15 +17,21 @@ from .....M2.AUTOSARTemplates.CommonStructure.Implementation import Implementati
21
17
  from .....M2.AUTOSARTemplates.CommonStructure.FlatMap import FlatMap
22
18
  from .....M2.AUTOSARTemplates.CommonStructure.ModeDeclaration import ModeDeclarationGroup
23
19
  from .....M2.AUTOSARTemplates.CommonStructure.SwcBswMapping import SwcBswMapping
20
+ from .....M2.AUTOSARTemplates.CommonStructure.StandardizationTemplate.BlueprintDedicated.PortPrototypeBlueprint import PortPrototypeBlueprint
21
+ from .....M2.AUTOSARTemplates.CommonStructure.StandardizationTemplate.Keyword import KeywordSet
24
22
  from .....M2.AUTOSARTemplates.CommonStructure.Timing.TimingConstraint.TimingExtensions import SwcTiming
25
23
  from .....M2.AUTOSARTemplates.DiagnosticExtract.DiagnosticContribution import DiagnosticServiceTable
26
24
  from .....M2.AUTOSARTemplates.ECUCDescriptionTemplate import EcucModuleConfigurationValues, EcucValueCollection
27
25
  from .....M2.AUTOSARTemplates.EcuResourceTemplate import HwElement
28
26
  from .....M2.AUTOSARTemplates.EcuResourceTemplate.HwElementCategory import HwCategory, HwType
29
27
  from .....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
28
+ from .....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ElementCollection import Collection
30
29
  from .....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Identifiable import CollectableElement, Identifiable, Referrable
31
30
  from .....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import Boolean, Identifier, RefType, ReferrableSubtypesEnum
32
31
  from .....M2.AUTOSARTemplates.GenericStructure.LifeCycles import LifeCycleInfoSet
32
+ from .....M2.AUTOSARTemplates.SWComponentTemplate.Components import CompositionSwComponentType, ServiceSwComponentType, SwComponentType
33
+ from .....M2.AUTOSARTemplates.SWComponentTemplate.Components import ApplicationSwComponentType, AtomicSwComponentType
34
+ from .....M2.AUTOSARTemplates.SWComponentTemplate.Components import ComplexDeviceDriverSwComponentType, EcuAbstractionSwComponentType
33
35
  from .....M2.AUTOSARTemplates.SWComponentTemplate.Datatype.Datatypes import ApplicationArrayDataType, ApplicationDataType
34
36
  from .....M2.AUTOSARTemplates.SWComponentTemplate.Datatype.Datatypes import ApplicationPrimitiveDataType, ApplicationRecordDataType
35
37
  from .....M2.AUTOSARTemplates.SWComponentTemplate.Datatype.Datatypes import DataTypeMappingSet
@@ -599,6 +601,24 @@ class ARPackage(Identifiable, CollectableElement):
599
601
  transform_set = DataTransformationSet(self, short_name)
600
602
  self.addElement(transform_set)
601
603
  return self.getElement(short_name)
604
+
605
+ def createCollection(self, short_name: str) -> Collection:
606
+ if (not self.IsElementExists(short_name)):
607
+ collection = Collection(self, short_name)
608
+ self.addElement(collection)
609
+ return self.getElement(short_name)
610
+
611
+ def createKeywordSet(self, short_name: str) -> KeywordSet:
612
+ if (not self.IsElementExists(short_name)):
613
+ keyword_set = KeywordSet(self, short_name)
614
+ self.addElement(keyword_set)
615
+ return self.getElement(short_name)
616
+
617
+ def createPortPrototypeBlueprint(self, short_name: str) -> PortPrototypeBlueprint:
618
+ if (not self.IsElementExists(short_name)):
619
+ keyword_set = PortPrototypeBlueprint(self, short_name)
620
+ self.addElement(keyword_set)
621
+ return self.getElement(short_name)
602
622
 
603
623
  def getApplicationPrimitiveDataTypes(self) -> List[ApplicationPrimitiveDataType]:
604
624
  return list(sorted(filter(lambda a: isinstance(a, ApplicationPrimitiveDataType), self.elements.values()), key=lambda o: o.short_name))
@@ -765,6 +785,15 @@ class ARPackage(Identifiable, CollectableElement):
765
785
  def getDataTransformationSets(self) -> List[DataTransformationSet]:
766
786
  return list(sorted(filter(lambda a: isinstance(a, DataTransformationSet), self.elements.values()), key=lambda a: a.short_name))
767
787
 
788
+ def getCollections(self) -> List[Collection]:
789
+ return list(sorted(filter(lambda a: isinstance(a, Collection), self.elements.values()), key=lambda a: a.short_name))
790
+
791
+ def getKeywordSets(self) -> List[KeywordSet]:
792
+ return list(sorted(filter(lambda a: isinstance(a, KeywordSet), self.elements.values()), key=lambda a: a.short_name))
793
+
794
+ def getPortPrototypeBlueprints(self) -> List[PortPrototypeBlueprint]:
795
+ return list(sorted(filter(lambda a: isinstance(a, PortPrototypeBlueprint), self.elements.values()), key=lambda a: a.short_name))
796
+
768
797
  def getReferenceBases(self):
769
798
  return self.referenceBases
770
799
 
@@ -1 +1,74 @@
1
+ from typing import List
1
2
 
3
+ from .....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import Identifier, NameToken, RefType
4
+ from .....M2.AUTOSARTemplates.GenericStructure.AbstractStructure import AnyInstanceRef
5
+ from .....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Identifiable import ARElement
6
+
7
+
8
+ class Collection(ARElement):
9
+ def __init__(self, parent, short_name):
10
+ super().__init__(parent, short_name)
11
+
12
+ self.autoCollect = None # type: AutoCollectEnum
13
+ self.collectedInstances = [] # type: List[AnyInstanceRef]
14
+ self.collectionSemantics = None # type: NameToken
15
+ self.elementRefs = [] # type: List[RefType]
16
+ self.elementRole = None # type: Identifier
17
+ self.sourceElementRefs = [] # type: List[RefType]
18
+ self.sourceInstances = [] # type: List[AnyInstanceRef]
19
+
20
+ def getAutoCollect(self):
21
+ return self.autoCollect
22
+
23
+ def setAutoCollect(self, value):
24
+ if value is not None:
25
+ self.autoCollect = value
26
+ return self
27
+
28
+ def getCollectedInstances(self):
29
+ return self.collectedInstances
30
+
31
+ def setCollectedInstances(self, value):
32
+ if value is not None:
33
+ self.collectedInstances = value
34
+ return self
35
+
36
+ def getCollectionSemantics(self):
37
+ return self.collectionSemantics
38
+
39
+ def setCollectionSemantics(self, value):
40
+ if value is not None:
41
+ self.collectionSemantics = value
42
+ return self
43
+
44
+ def getElementRefs(self):
45
+ return self.elementRefs
46
+
47
+ def addElementRef(self, value):
48
+ if value is not None:
49
+ self.elementRefs.append(value)
50
+ return self
51
+
52
+ def getElementRole(self):
53
+ return self.elementRole
54
+
55
+ def setElementRole(self, value):
56
+ if value is not None:
57
+ self.elementRole = value
58
+ return self
59
+
60
+ def getSourceElementRefs(self):
61
+ return self.sourceElementRefs
62
+
63
+ def addSourceElementRef(self, value):
64
+ if value is not None:
65
+ self.sourceElementRefs.append(value)
66
+ return self
67
+
68
+ def getSourceInstances(self):
69
+ return self.sourceInstances
70
+
71
+ def setSourceInstances(self, value):
72
+ if value is not None:
73
+ self.sourceInstances = value
74
+ return self
@@ -3,9 +3,10 @@ import re
3
3
  from typing import List
4
4
  from .....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
5
5
 
6
- class ARType(metaclass = ABCMeta):
6
+
7
+ class ARType(metaclass=ABCMeta):
7
8
  def __init__(self) -> None:
8
- self.timestamp = None # type: str
9
+ self.timestamp = None # type: str
9
10
  self.uuid = None # type: str
10
11
  self._value = None
11
12
 
@@ -28,11 +29,12 @@ class ARType(metaclass = ABCMeta):
28
29
  def getText(self) -> str:
29
30
  return str(self)
30
31
 
32
+
31
33
  class ARNumerical(ARType):
32
34
  def __init__(self) -> None:
33
35
  super().__init__()
34
36
 
35
- self._text = None # type: str
37
+ self._text = None # type: str
36
38
 
37
39
  def _convertStringToNumberValue(self, value: str) -> int:
38
40
  try:
@@ -47,11 +49,11 @@ class ARNumerical(ARType):
47
49
  m = re.match(r'0b([\d]+)', value, re.I)
48
50
  if m:
49
51
  return int(m.group(1), 2)
50
- m = re.match(r"-?\d+\.\d+", value)
52
+ m = re.match(r"^[-+]?(\d+(\.\d*)?|\.\d+)([eE][-+]?\d+)?$", value)
51
53
  if m:
52
54
  return float(value)
53
55
  return int(value)
54
- except:
56
+ except: # noqa E722
55
57
  raise ValueError("Invalid Numerical Type <%s>" % value)
56
58
 
57
59
  @property
@@ -93,7 +95,6 @@ class ARFloat(ARNumerical):
93
95
  self._value = val * 1.0
94
96
  elif isinstance(val, str):
95
97
  self._text = val
96
- #self._value = float(val)
97
98
  self._value = self._convertStringToNumberValue(val)
98
99
  else:
99
100
  raise ValueError("Unsupported Type <%s>", type(val))
@@ -103,7 +104,8 @@ class ARFloat(ARNumerical):
103
104
  return self._text
104
105
  else:
105
106
  return str(self._value)
106
-
107
+
108
+
107
109
  class Float(ARFloat):
108
110
  '''
109
111
  An instance of Float is an element from the set of real numbers.
@@ -113,7 +115,8 @@ class Float(ARFloat):
113
115
  '''
114
116
  def __init__(self):
115
117
  super().__init__()
116
-
118
+
119
+
117
120
  class TimeValue(ARFloat):
118
121
  '''
119
122
  This primitive type is taken for expressing time values. The numerical value is supposed to be interpreted
@@ -150,6 +153,7 @@ class ARLiteral(ARType):
150
153
  def upper(self) -> str:
151
154
  return self.value.upper()
152
155
 
156
+
153
157
  class AREnum(ARLiteral):
154
158
  def __init__(self, enum_values: List[str]):
155
159
  super().__init__()
@@ -168,14 +172,17 @@ class AREnum(ARLiteral):
168
172
  return True
169
173
  return False
170
174
 
175
+
171
176
  class String(ARLiteral):
172
177
  def __init__(self):
173
178
  super().__init__()
174
179
 
180
+
175
181
  class ReferrableSubtypesEnum(ARLiteral):
176
182
  def __init__(self):
177
183
  super().__init__()
178
184
 
185
+
179
186
  class ARPositiveInteger(ARNumerical):
180
187
  def __init__(self) -> None:
181
188
  super().__init__()
@@ -243,6 +250,7 @@ class ARBoolean(ARType):
243
250
  else:
244
251
  return "false"
245
252
 
253
+
246
254
  class NameToken(ARLiteral):
247
255
  '''
248
256
  This is an identifier as used in xml, e.g. xml-names. Typical usages are, for example, the names of type
@@ -259,6 +267,7 @@ class NameToken(ARLiteral):
259
267
  def __init__(self):
260
268
  super().__init__()
261
269
 
270
+
262
271
  class PositiveInteger(ARPositiveInteger):
263
272
  r'''\n
264
273
  This is a positive integer which can be denoted in decimal, binary, octal and hexadecimal. The value is
@@ -273,6 +282,7 @@ class PositiveInteger(ARPositiveInteger):
273
282
  def __init__(self):
274
283
  super().__init__()
275
284
 
285
+
276
286
  class PositiveUnlimitedInteger(ARPositiveInteger):
277
287
  r'''
278
288
  This is a positive unlimited integer which can be denoted in decimal, binary, octal and hexadecimal.
@@ -281,7 +291,8 @@ class PositiveUnlimitedInteger(ARPositiveInteger):
281
291
  * xml.xsd.customType=POSITIVE-UNLIMITED-INTEGER
282
292
  * xml.xsd.pattern=0|[\+]?[1-9][0-9]*|0[xX][0-9a-fA-F]+|0[bB][0-1]+|0[0-7]+
283
293
  * xml.xsd.type=string
284
- '''
294
+ '''
295
+
285
296
 
286
297
  class Integer(ARNumerical):
287
298
  r'''
@@ -298,6 +309,7 @@ class Integer(ARNumerical):
298
309
  def __init__(self):
299
310
  super().__init__()
300
311
 
312
+
301
313
  class UnlimitedInteger(Integer):
302
314
  r'''
303
315
  An instance of UnlimitedInteger is an element in the set of integer numbers ( ..., -2, -1, 0, 1, 2, ...).
@@ -313,6 +325,7 @@ class UnlimitedInteger(Integer):
313
325
  def __init__(self):
314
326
  super().__init__()
315
327
 
328
+
316
329
  class Boolean(ARBoolean):
317
330
  '''
318
331
  A Boolean value denotes a logical condition that is either 'true' or 'false'. It can be one of "0", "1", "true",
@@ -326,6 +339,7 @@ class Boolean(ARBoolean):
326
339
  def __init__(self):
327
340
  super().__init__()
328
341
 
342
+
329
343
  class Identifier(ARLiteral):
330
344
  '''
331
345
  An Identifier is a string with a number of constraints on its appearance, satisfying the requirements typical
@@ -342,6 +356,7 @@ class Identifier(ARLiteral):
342
356
  def __init__(self):
343
357
  super().__init__()
344
358
 
359
+
345
360
  class CIdentifier(ARLiteral):
346
361
  '''
347
362
  This datatype represents a string, that follows the rules of C-identifiers.
@@ -371,6 +386,7 @@ class CIdentifier(ARLiteral):
371
386
  self.namePattern = value
372
387
  return self
373
388
 
389
+
374
390
  class RevisionLabelString(ARLiteral):
375
391
  '''
376
392
  This primitive represents an internal AUTOSAR revision label which identifies an engineering object. It
@@ -406,6 +422,7 @@ class Limit(ARObject):
406
422
  self.value = value
407
423
  return self
408
424
 
425
+
409
426
  class RefType(ARObject):
410
427
  def __init__(self):
411
428
  self.base = None # type: str
@@ -446,13 +463,14 @@ class TRefType(RefType):
446
463
  def __init__(self):
447
464
  super().__init__()
448
465
 
466
+
449
467
  class DiagRequirementIdString(ARLiteral):
450
468
  '''
451
469
  This string denotes an Identifier for a requirement.
452
470
 
453
471
  Tags:
454
472
  * xml.xsd.customType=DIAG-REQUIREMENT-ID-STRING
455
- * xml.xsd.pattern=[0-9a-zA-Z_\-]+
473
+ * xml.xsd.pattern=[0-9a-zA-Z_\-]+ # noqa W605
456
474
  * xml.xsd.type=string
457
475
  '''
458
476
  def __init__(self):
@@ -460,7 +478,7 @@ class DiagRequirementIdString(ARLiteral):
460
478
 
461
479
 
462
480
  class ArgumentDirectionEnum(AREnum):
463
- IN = "in"
481
+ IN = "in"
464
482
  INOUT = "inout"
465
483
  OUT = "out"
466
484
 
@@ -468,7 +486,7 @@ class ArgumentDirectionEnum(AREnum):
468
486
  super().__init__((
469
487
  ArgumentDirectionEnum.IN,
470
488
  ArgumentDirectionEnum.INOUT,
471
- ArgumentDirectionEnum.OUT
489
+ ArgumentDirectionEnum.OUT
472
490
  ))
473
491
 
474
492
 
@@ -478,12 +496,13 @@ class Ip4AddressString(ARLiteral):
478
496
 
479
497
  Tags
480
498
  * xml.xsd.customType=IP4-ADDRESS-STRING
481
- * xml.xsd.pattern=(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)|ANY
499
+ * xml.xsd.pattern=(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)|ANY # noqa E501
482
500
  * xml.xsd.type=string
483
501
  '''
484
502
  def __init__(self):
485
503
  super().__init__()
486
504
 
505
+
487
506
  class Ip6AddressString(ARLiteral):
488
507
  '''
489
508
  This is used to specify an IP6 address. Notation: FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF
@@ -498,6 +517,7 @@ class Ip6AddressString(ARLiteral):
498
517
  def __init__(self):
499
518
  super().__init__()
500
519
 
520
+
501
521
  class MacAddressString(ARLiteral):
502
522
  '''
503
523
  This primitive specifies a Mac Address. Notation: FF:FF:FF:FF:FF:FF
@@ -511,6 +531,7 @@ class MacAddressString(ARLiteral):
511
531
  def __init__(self):
512
532
  super().__init__()
513
533
 
534
+
514
535
  class CategoryString(ARLiteral):
515
536
  '''
516
537
  This represents the pattern applicable to categories.
@@ -523,4 +544,9 @@ class CategoryString(ARLiteral):
523
544
  * xml.xsd.type=string
524
545
  '''
525
546
  def __init__(self):
526
- super().__init__()
547
+ super().__init__()
548
+
549
+
550
+ class ByteOrderEnum(AREnum):
551
+ def __init__(self):
552
+ super().__init__([])
@@ -1,5 +1,155 @@
1
+ from typing import List
2
+ from xmlrpc.client import DateTime
3
+
4
+ from ....M2.MSR.Documentation.TextModel.BlockElements import DocumentationBlock
5
+ from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
6
+ from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import RefType, RevisionLabelString
1
7
  from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Identifiable import ARElement
2
8
 
9
+
10
+ class LifeCyclePeriod(ARObject):
11
+ '''
12
+ This meta class represents the ability to specify a point of time within a specified period, e.g. the starting
13
+ or end point, in which a specific life cycle state is valid/applies to.
14
+ '''
15
+ def __init__(self):
16
+ super().__init__()
17
+
18
+ self.arReleaseVersion = None # type: RevisionLabelString
19
+ self.date = None # type: DateTime
20
+ self.productRelease = None # type: RevisionLabelString
21
+
22
+ def getArReleaseVersion(self):
23
+ return self.arReleaseVersion
24
+
25
+ def setArReleaseVersion(self, value):
26
+ if value is not None:
27
+ self.arReleaseVersion = value
28
+ return self
29
+
30
+ def getDate(self):
31
+ return self.date
32
+
33
+ def setDate(self, value):
34
+ if value is not None:
35
+ self.date = value
36
+ return self
37
+
38
+ def getProductRelease(self):
39
+ return self.productRelease
40
+
41
+ def setProductRelease(self, value):
42
+ if value is not None:
43
+ self.productRelease = value
44
+ return self
45
+
46
+
47
+ class LifeCycleInfo(ARObject):
48
+ def __init__(self):
49
+ super().__init__()
50
+
51
+ self.lcObjectRef = None # type: RefType
52
+ self.lcStateRef = None # type: RefType
53
+ self.periodBegin = None # type: LifeCyclePeriod
54
+ self.periodEnd = None # type: LifeCyclePeriod
55
+ self.remark = None # type: DocumentationBlock
56
+ self.useInsteadRefs = [] # type: List[RefType]
57
+
58
+ def getLcObjectRef(self):
59
+ return self.lcObjectRef
60
+
61
+ def setLcObjectRef(self, value):
62
+ if value is not None:
63
+ self.lcObjectRef = value
64
+ return self
65
+
66
+ def getLcStateRef(self):
67
+ return self.lcStateRef
68
+
69
+ def setLcStateRef(self, value):
70
+ if value is not None:
71
+ self.lcStateRef = value
72
+ return self
73
+
74
+ def getPeriodBegin(self):
75
+ return self.periodBegin
76
+
77
+ def setPeriodBegin(self, value):
78
+ if value is not None:
79
+ self.periodBegin = value
80
+ return self
81
+
82
+ def getPeriodEnd(self):
83
+ return self.periodEnd
84
+
85
+ def setPeriodEnd(self, value):
86
+ if value is not None:
87
+ self.periodEnd = value
88
+ return self
89
+
90
+ def getRemark(self):
91
+ return self.remark
92
+
93
+ def setRemark(self, value):
94
+ if value is not None:
95
+ self.remark = value
96
+ return self
97
+
98
+ def getUseInsteadRefs(self):
99
+ return self.useInsteadRefs
100
+
101
+ def addUseInsteadRef(self, value):
102
+ if value is not None:
103
+ self.useInsteadRefs.append(value)
104
+ return self
105
+
106
+
3
107
  class LifeCycleInfoSet(ARElement):
4
108
  def __init__(self, parent, short_name):
5
- super().__init__(parent, short_name)
109
+ super().__init__(parent, short_name)
110
+
111
+ self.defaultLcStateRef = None # type: RefType
112
+ self.defaultPeriodBegin = None # type: LifeCyclePeriod
113
+ self.defaultPeriodEnd = None # type: LifeCyclePeriod
114
+ self.lifeCycleInfos = [] # type: List[LifeCycleInfo]
115
+ self.usedLifeCycleStateDefinitionGroupRef = None # type: RefType
116
+
117
+ def getDefaultLcStateRef(self):
118
+ return self.defaultLcStateRef
119
+
120
+ def setDefaultLcStateRef(self, value):
121
+ if value is not None:
122
+ self.defaultLcStateRef = value
123
+ return self
124
+
125
+ def getDefaultPeriodBegin(self):
126
+ return self.defaultPeriodBegin
127
+
128
+ def setDefaultPeriodBegin(self, value):
129
+ if value is not None:
130
+ self.defaultPeriodBegin = value
131
+ return self
132
+
133
+ def getDefaultPeriodEnd(self):
134
+ return self.defaultPeriodEnd
135
+
136
+ def setDefaultPeriodEnd(self, value):
137
+ if value is not None:
138
+ self.defaultPeriodEnd = value
139
+ return self
140
+
141
+ def getLifeCycleInfos(self):
142
+ return self.lifeCycleInfos
143
+
144
+ def addLifeCycleInfo(self, value):
145
+ if value is not None:
146
+ self.lifeCycleInfos.append(value)
147
+ return self
148
+
149
+ def getUsedLifeCycleStateDefinitionGroupRef(self):
150
+ return self.usedLifeCycleStateDefinitionGroupRef
151
+
152
+ def setUsedLifeCycleStateDefinitionGroupRef(self, value):
153
+ if value is not None:
154
+ self.usedLifeCycleStateDefinitionGroupRef = value
155
+ return self
@@ -442,8 +442,11 @@ class CompositionSwComponentType(SwComponentType):
442
442
  def getDelegationSwConnectors(self) -> List[DelegationSwConnector]:
443
443
  return list(sorted(filter(lambda e: isinstance(e, DelegationSwConnector), self.elements.values()), key=lambda c: c.short_name))
444
444
 
445
+ # def getSwConnectors(self) -> List[SwConnector]:
446
+ # return list(sorted(filter(lambda e: isinstance(e, SwConnector), self.elements.values()), key=lambda c: c.short_name))
447
+
445
448
  def getSwConnectors(self) -> List[SwConnector]:
446
- return list(sorted(filter(lambda e: isinstance(e, SwConnector), self.elements.values()), key=lambda c: c.short_name))
449
+ return list(filter(lambda e: isinstance(e, SwConnector), self.elements.values()))
447
450
 
448
451
  def createSwComponentPrototype(self, short_name: str) -> SwComponentPrototype:
449
452
  if (not self.IsElementExists(short_name)):