armodel 1.7.0__py3-none-any.whl → 1.7.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.
- armodel/cli/arxml_dump_cli.py +2 -2
- armodel/models/M2/AUTOSARTemplates/AutosarTopLevelStructure.py +53 -16
- armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswBehavior.py +41 -19
- armodel/models/M2/AUTOSARTemplates/CommonStructure/Filter.py +14 -14
- armodel/models/M2/AUTOSARTemplates/CommonStructure/ImplementationDataTypes.py +22 -11
- armodel/models/M2/AUTOSARTemplates/CommonStructure/ModeDeclaration.py +26 -9
- armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/MemorySectionUsage.py +8 -0
- armodel/models/M2/AUTOSARTemplates/CommonStructure/ServiceNeeds.py +711 -27
- armodel/models/M2/AUTOSARTemplates/ECUCDescriptionTemplate.py +1 -1
- armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/ARPackage.py +91 -14
- armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/Identifiable.py +17 -4
- armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/PrimitiveTypes.py +78 -11
- armodel/models/M2/AUTOSARTemplates/GenericStructure/LifeCycles.py +5 -0
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Communication.py +41 -3
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Components/__init__.py +53 -15
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Datatype/Datatypes.py +23 -8
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/PortInterface/__init__.py +44 -1
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/ServiceMapping.py +46 -5
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__init__.py +56 -35
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Multiplatform.py +1 -1
- armodel/models/M2/MSR/AsamHdo/AdminData.py +34 -8
- armodel/models/M2/MSR/AsamHdo/ComputationMethod.py +170 -23
- armodel/models/M2/MSR/DataDictionary/AuxillaryObjects.py +4 -4
- armodel/models/M2/MSR/DataDictionary/RecordLayout.py +130 -37
- armodel/models/M2/MSR/Documentation/Annotation.py +1 -1
- armodel/models/M2/MSR/Documentation/TextModel/BlockElements/ListElements.py +54 -0
- armodel/models/M2/MSR/Documentation/TextModel/BlockElements/PaginationAndView.py +9 -0
- armodel/models/M2/MSR/Documentation/TextModel/BlockElements/__init__.py +25 -0
- armodel/models/M2/MSR/Documentation/TextModel/LanguageDataModel.py +33 -5
- armodel/models/M2/MSR/Documentation/TextModel/MultilanguageData.py +15 -2
- armodel/models/M2/MSR/Documentation/__init__.py +1 -1
- armodel/models/__init__.py +4 -1
- armodel/parser/abstract_arxml_parser.py +31 -15
- armodel/parser/arxml_parser.py +456 -237
- armodel/tests/test_armodel/models/test_ar_ref.py +7 -4
- armodel/tests/test_armodel/models/test_datatype.py +4 -4
- armodel/tests/test_armodel/models/test_m2_msr.py +5 -5
- armodel/tests/test_armodel/parser/test_sw_components.py +10 -1
- armodel/tests/test_armodel/parser/test_system.py +0 -1
- armodel/writer/abstract_arxml_writer.py +17 -8
- armodel/writer/arxml_writer.py +436 -195
- {armodel-1.7.0.dist-info → armodel-1.7.2.dist-info}/METADATA +29 -1
- {armodel-1.7.0.dist-info → armodel-1.7.2.dist-info}/RECORD +47 -43
- {armodel-1.7.0.dist-info → armodel-1.7.2.dist-info}/LICENSE +0 -0
- {armodel-1.7.0.dist-info → armodel-1.7.2.dist-info}/WHEEL +0 -0
- {armodel-1.7.0.dist-info → armodel-1.7.2.dist-info}/entry_points.txt +0 -0
- {armodel-1.7.0.dist-info → armodel-1.7.2.dist-info}/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
|
|
2
2
|
from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Identifiable import ARElement
|
|
3
|
-
from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import ARLiteral, ARNumerical, RefType
|
|
3
|
+
from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import ARLiteral, ARNumerical, Integer, RefType
|
|
4
4
|
from ....M2.MSR.Documentation.TextModel.MultilanguageData import MultiLanguageOverviewParagraph
|
|
5
5
|
|
|
6
6
|
class SwRecordLayoutV(ARObject):
|
|
@@ -16,29 +16,64 @@ class SwRecordLayoutV(ARObject):
|
|
|
16
16
|
self.swRecordLayoutVIndex = None # type: ARLiteral
|
|
17
17
|
self.swRecordLayoutVProp = None # type: ARLiteral
|
|
18
18
|
|
|
19
|
-
def
|
|
20
|
-
self.
|
|
19
|
+
def getBaseTypeRef(self):
|
|
20
|
+
return self.baseTypeRef
|
|
21
|
+
|
|
22
|
+
def setBaseTypeRef(self, value):
|
|
23
|
+
self.baseTypeRef = value
|
|
24
|
+
return self
|
|
25
|
+
|
|
26
|
+
def getDesc(self):
|
|
27
|
+
return self.desc
|
|
28
|
+
|
|
29
|
+
def setDesc(self, value):
|
|
30
|
+
self.desc = value
|
|
31
|
+
return self
|
|
32
|
+
|
|
33
|
+
def getShortLabel(self):
|
|
34
|
+
return self.shortLabel
|
|
35
|
+
|
|
36
|
+
def setShortLabel(self, value):
|
|
37
|
+
self.shortLabel = value
|
|
21
38
|
return self
|
|
22
39
|
|
|
23
|
-
def
|
|
24
|
-
self.
|
|
40
|
+
def getSwGenericAxisParamTypeRef(self):
|
|
41
|
+
return self.swGenericAxisParamTypeRef
|
|
42
|
+
|
|
43
|
+
def setSwGenericAxisParamTypeRef(self, value):
|
|
44
|
+
self.swGenericAxisParamTypeRef = value
|
|
25
45
|
return self
|
|
26
46
|
|
|
27
|
-
def
|
|
28
|
-
self.swRecordLayoutVAxis
|
|
47
|
+
def getSwRecordLayoutVAxis(self):
|
|
48
|
+
return self.swRecordLayoutVAxis
|
|
49
|
+
|
|
50
|
+
def setSwRecordLayoutVAxis(self, value):
|
|
51
|
+
self.swRecordLayoutVAxis = value
|
|
29
52
|
return self
|
|
30
53
|
|
|
31
|
-
def
|
|
54
|
+
def getSwRecordLayoutVFixValue(self):
|
|
55
|
+
return self.swRecordLayoutVFixValue
|
|
56
|
+
|
|
57
|
+
def setSwRecordLayoutVFixValue(self, value):
|
|
32
58
|
self.swRecordLayoutVFixValue = value
|
|
33
59
|
return self
|
|
34
60
|
|
|
35
|
-
def
|
|
36
|
-
self.swRecordLayoutVIndex
|
|
61
|
+
def getSwRecordLayoutVIndex(self):
|
|
62
|
+
return self.swRecordLayoutVIndex
|
|
63
|
+
|
|
64
|
+
def setSwRecordLayoutVIndex(self, value):
|
|
65
|
+
self.swRecordLayoutVIndex = value
|
|
37
66
|
return self
|
|
38
67
|
|
|
39
|
-
def
|
|
40
|
-
self.swRecordLayoutVProp
|
|
68
|
+
def getSwRecordLayoutVProp(self):
|
|
69
|
+
return self.swRecordLayoutVProp
|
|
70
|
+
|
|
71
|
+
def setSwRecordLayoutVProp(self, value):
|
|
72
|
+
self.swRecordLayoutVProp = value
|
|
41
73
|
return self
|
|
74
|
+
|
|
75
|
+
|
|
76
|
+
|
|
42
77
|
|
|
43
78
|
class SwRecordLayoutGroupContent(ARObject):
|
|
44
79
|
def __init__(self):
|
|
@@ -48,6 +83,27 @@ class SwRecordLayoutGroupContent(ARObject):
|
|
|
48
83
|
self.swRecordLayoutGroup = None # type: SwRecordLayoutGroup
|
|
49
84
|
self.swRecordLayoutV = None # type: SwRecordLayoutV
|
|
50
85
|
|
|
86
|
+
def getSwRecordLayoutRef(self):
|
|
87
|
+
return self.swRecordLayoutRef
|
|
88
|
+
|
|
89
|
+
def setSwRecordLayoutRef(self, value):
|
|
90
|
+
self.swRecordLayoutRef = value
|
|
91
|
+
return self
|
|
92
|
+
|
|
93
|
+
def getSwRecordLayoutGroup(self):
|
|
94
|
+
return self.swRecordLayoutGroup
|
|
95
|
+
|
|
96
|
+
def setSwRecordLayoutGroup(self, value):
|
|
97
|
+
self.swRecordLayoutGroup = value
|
|
98
|
+
return self
|
|
99
|
+
|
|
100
|
+
def getSwRecordLayoutV(self):
|
|
101
|
+
return self.swRecordLayoutV
|
|
102
|
+
|
|
103
|
+
def setSwRecordLayoutV(self, value):
|
|
104
|
+
self.swRecordLayoutV = value
|
|
105
|
+
return self
|
|
106
|
+
|
|
51
107
|
|
|
52
108
|
class SwRecordLayoutGroup(ARObject):
|
|
53
109
|
def __init__(self):
|
|
@@ -60,53 +116,87 @@ class SwRecordLayoutGroup(ARObject):
|
|
|
60
116
|
self.swRecordLayoutComponent = None # type: ARLiteral
|
|
61
117
|
self.swRecordLayoutGroupAxis = None # type: ARNumerical
|
|
62
118
|
self.swRecordLayoutGroupContentType = None # type: SwRecordLayoutGroupContent
|
|
63
|
-
self.swRecordLayoutGroupIndex = None # type: ARLiteral
|
|
64
119
|
self.swRecordLayoutGroupFrom = None # type: ARLiteral
|
|
120
|
+
self.swRecordLayoutGroupIndex = None # type: ARLiteral
|
|
121
|
+
self.swRecordLayoutGroupStep = None # type: Integer
|
|
65
122
|
self.swRecordLayoutGroupTo = None # type: ARLiteral
|
|
66
123
|
|
|
124
|
+
def getCategory(self):
|
|
125
|
+
return self.category
|
|
67
126
|
|
|
68
|
-
def setCategory(self,
|
|
69
|
-
self.category =
|
|
127
|
+
def setCategory(self, value):
|
|
128
|
+
self.category = value
|
|
70
129
|
return self
|
|
71
130
|
|
|
72
|
-
def
|
|
73
|
-
self.desc
|
|
74
|
-
return self
|
|
131
|
+
def getDesc(self):
|
|
132
|
+
return self.desc
|
|
75
133
|
|
|
76
|
-
def
|
|
77
|
-
self.
|
|
134
|
+
def setDesc(self, value):
|
|
135
|
+
self.desc = value
|
|
78
136
|
return self
|
|
79
137
|
|
|
80
|
-
def
|
|
81
|
-
self.
|
|
138
|
+
def getShortLabel(self):
|
|
139
|
+
return self.shortLabel
|
|
140
|
+
|
|
141
|
+
def setShortLabel(self, value):
|
|
142
|
+
self.shortLabel = value
|
|
82
143
|
return self
|
|
83
144
|
|
|
84
|
-
def
|
|
85
|
-
self.
|
|
145
|
+
def getSwGenericAxisParamTypeRef(self):
|
|
146
|
+
return self.swGenericAxisParamTypeRef
|
|
147
|
+
|
|
148
|
+
def setSwGenericAxisParamTypeRef(self, value):
|
|
149
|
+
self.swGenericAxisParamTypeRef = value
|
|
86
150
|
return self
|
|
87
151
|
|
|
88
|
-
def
|
|
89
|
-
self.
|
|
152
|
+
def getSwRecordLayoutComponent(self):
|
|
153
|
+
return self.swRecordLayoutComponent
|
|
154
|
+
|
|
155
|
+
def setSwRecordLayoutComponent(self, value):
|
|
156
|
+
self.swRecordLayoutComponent = value
|
|
90
157
|
return self
|
|
91
158
|
|
|
92
|
-
def
|
|
93
|
-
self.
|
|
159
|
+
def getSwRecordLayoutGroupAxis(self):
|
|
160
|
+
return self.swRecordLayoutGroupAxis
|
|
161
|
+
|
|
162
|
+
def setSwRecordLayoutGroupAxis(self, value):
|
|
163
|
+
self.swRecordLayoutGroupAxis = value
|
|
94
164
|
return self
|
|
95
165
|
|
|
96
|
-
def
|
|
97
|
-
self.
|
|
166
|
+
def getSwRecordLayoutGroupContentType(self):
|
|
167
|
+
return self.swRecordLayoutGroupContentType
|
|
168
|
+
|
|
169
|
+
def setSwRecordLayoutGroupContentType(self, value):
|
|
170
|
+
self.swRecordLayoutGroupContentType = value
|
|
98
171
|
return self
|
|
99
172
|
|
|
100
|
-
def
|
|
101
|
-
self.
|
|
173
|
+
def getSwRecordLayoutGroupFrom(self):
|
|
174
|
+
return self.swRecordLayoutGroupFrom
|
|
175
|
+
|
|
176
|
+
def setSwRecordLayoutGroupFrom(self, value):
|
|
177
|
+
self.swRecordLayoutGroupFrom = value
|
|
102
178
|
return self
|
|
103
179
|
|
|
104
|
-
def
|
|
105
|
-
self.
|
|
180
|
+
def getSwRecordLayoutGroupIndex(self):
|
|
181
|
+
return self.swRecordLayoutGroupIndex
|
|
182
|
+
|
|
183
|
+
def setSwRecordLayoutGroupIndex(self, value):
|
|
184
|
+
self.swRecordLayoutGroupIndex = value
|
|
106
185
|
return self
|
|
107
186
|
|
|
187
|
+
def getSwRecordLayoutGroupStep(self):
|
|
188
|
+
return self.swRecordLayoutGroupStep
|
|
108
189
|
|
|
190
|
+
def setSwRecordLayoutGroupStep(self, value):
|
|
191
|
+
self.swRecordLayoutGroupStep = value
|
|
192
|
+
return self
|
|
109
193
|
|
|
194
|
+
def getSwRecordLayoutGroupTo(self):
|
|
195
|
+
return self.swRecordLayoutGroupTo
|
|
196
|
+
|
|
197
|
+
def setSwRecordLayoutGroupTo(self, value):
|
|
198
|
+
self.swRecordLayoutGroupTo = value
|
|
199
|
+
return self
|
|
110
200
|
|
|
111
201
|
class SwRecordLayout(ARElement):
|
|
112
202
|
def __init__(self, parent: ARObject, short_name: str):
|
|
@@ -114,6 +204,9 @@ class SwRecordLayout(ARElement):
|
|
|
114
204
|
|
|
115
205
|
self.swRecordLayoutGroup = None # type: SwRecordLayoutGroup
|
|
116
206
|
|
|
117
|
-
def
|
|
118
|
-
self.swRecordLayoutGroup
|
|
119
|
-
|
|
207
|
+
def getSwRecordLayoutGroup(self):
|
|
208
|
+
return self.swRecordLayoutGroup
|
|
209
|
+
|
|
210
|
+
def setSwRecordLayoutGroup(self, value):
|
|
211
|
+
self.swRecordLayoutGroup = value
|
|
212
|
+
return self
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
from
|
|
1
|
+
from .TextModel.BlockElements import DocumentationBlock
|
|
2
2
|
from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
|
|
3
3
|
from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import ARLiteral
|
|
4
4
|
from ....M2.MSR.Documentation.TextModel.MultilanguageData import MultilanguageLongName
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
from typing import List
|
|
2
|
+
|
|
3
|
+
from ......M2.MSR.Documentation.TextModel.BlockElements.PaginationAndView import Paginateable
|
|
4
|
+
from ......M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import AREnum
|
|
5
|
+
|
|
6
|
+
class ListEnum(AREnum):
|
|
7
|
+
|
|
8
|
+
NUMBER = 'number'
|
|
9
|
+
UNNUMBER = 'unnumber'
|
|
10
|
+
|
|
11
|
+
def __init__(self,):
|
|
12
|
+
super().__init__((
|
|
13
|
+
ListEnum.NUMBER,
|
|
14
|
+
ListEnum.UNNUMBER
|
|
15
|
+
))
|
|
16
|
+
|
|
17
|
+
class Item(Paginateable):
|
|
18
|
+
def __init__(self):
|
|
19
|
+
super().__init__()
|
|
20
|
+
|
|
21
|
+
self.itemContents = None
|
|
22
|
+
|
|
23
|
+
def getItemContents(self):
|
|
24
|
+
return self.itemContents
|
|
25
|
+
|
|
26
|
+
def setItemContents(self, value):
|
|
27
|
+
self.itemContents = value
|
|
28
|
+
return self
|
|
29
|
+
|
|
30
|
+
class ListElement(Paginateable):
|
|
31
|
+
'''
|
|
32
|
+
This meta-class represents the ability to express a list. The kind of list is specified in the attribute.
|
|
33
|
+
In AUTOSAR standard class name shall be List, but it is conflict with Python List and renamed to ListElement
|
|
34
|
+
'''
|
|
35
|
+
def __init__(self):
|
|
36
|
+
super().__init__()
|
|
37
|
+
|
|
38
|
+
self.items = [] # type: List[Item]
|
|
39
|
+
self.type = None # type: ListEnum
|
|
40
|
+
|
|
41
|
+
def getItems(self):
|
|
42
|
+
return self.items
|
|
43
|
+
|
|
44
|
+
def addItem(self, value: Item):
|
|
45
|
+
self.items.append(value)
|
|
46
|
+
return self
|
|
47
|
+
|
|
48
|
+
def getType(self):
|
|
49
|
+
return self.type
|
|
50
|
+
|
|
51
|
+
def setType(self, value):
|
|
52
|
+
self.type = value
|
|
53
|
+
return self
|
|
54
|
+
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
from ......M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
|
|
2
|
+
|
|
3
|
+
class DocumentViewSelectable(ARObject):
|
|
4
|
+
def __init__(self):
|
|
5
|
+
super().__init__()
|
|
6
|
+
|
|
7
|
+
class Paginateable(DocumentViewSelectable):
|
|
8
|
+
def __init__(self):
|
|
9
|
+
super().__init__()
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
from ......M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
|
|
2
|
+
from ......M2.MSR.Documentation.TextModel.BlockElements.ListElements import ListElement
|
|
3
|
+
from ......M2.MSR.Documentation.TextModel.MultilanguageData import MultiLanguageParagraph
|
|
4
|
+
from typing import List
|
|
5
|
+
|
|
6
|
+
class DocumentationBlock(ARObject):
|
|
7
|
+
def __init__(self):
|
|
8
|
+
super().__init__()
|
|
9
|
+
|
|
10
|
+
self.ps = [] # type: List[MultiLanguageParagraph]
|
|
11
|
+
self.lists = [] # type: List[ListElement]
|
|
12
|
+
|
|
13
|
+
def addP(self, p: MultiLanguageParagraph):
|
|
14
|
+
self.ps.append(p)
|
|
15
|
+
return self
|
|
16
|
+
|
|
17
|
+
def getPs(self) -> List[MultiLanguageParagraph]:
|
|
18
|
+
return self.ps
|
|
19
|
+
|
|
20
|
+
def getLists(self):
|
|
21
|
+
return self.lists
|
|
22
|
+
|
|
23
|
+
def addList(self, value):
|
|
24
|
+
self.lists.append(value)
|
|
25
|
+
return self
|
|
@@ -1,16 +1,44 @@
|
|
|
1
|
+
from abc import ABCMeta
|
|
2
|
+
from .....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import ARLiteral
|
|
1
3
|
from .....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
|
|
2
4
|
|
|
3
|
-
class
|
|
5
|
+
class LEnum (ARLiteral):
|
|
4
6
|
def __init__(self):
|
|
5
7
|
super().__init__()
|
|
6
8
|
|
|
7
|
-
|
|
9
|
+
class LanguageSpecific(ARObject, metaclass = ABCMeta):
|
|
10
|
+
def __init__(self):
|
|
11
|
+
super().__init__()
|
|
12
|
+
|
|
13
|
+
self.l = None # type: LEnum
|
|
8
14
|
self.value = ""
|
|
9
15
|
|
|
16
|
+
def getL(self):
|
|
17
|
+
return self.l
|
|
18
|
+
|
|
19
|
+
def setL(self, value):
|
|
20
|
+
self.l = value
|
|
21
|
+
return self
|
|
10
22
|
|
|
11
|
-
|
|
23
|
+
def getValue(self):
|
|
24
|
+
return self.value
|
|
25
|
+
|
|
26
|
+
def setValue(self, value):
|
|
27
|
+
self.value = value
|
|
28
|
+
return self
|
|
29
|
+
|
|
30
|
+
class LOverviewParagraph(LanguageSpecific):
|
|
12
31
|
def __init__(self):
|
|
13
32
|
super().__init__()
|
|
14
33
|
|
|
15
|
-
|
|
16
|
-
|
|
34
|
+
class LParagraph(LanguageSpecific):
|
|
35
|
+
def __init__(self):
|
|
36
|
+
super().__init__()
|
|
37
|
+
|
|
38
|
+
class LLongName(LanguageSpecific):
|
|
39
|
+
def __init__(self):
|
|
40
|
+
super().__init__()
|
|
41
|
+
|
|
42
|
+
class LPlainText(LanguageSpecific):
|
|
43
|
+
def __init__(self):
|
|
44
|
+
super().__init__()
|
|
@@ -35,11 +35,24 @@ class MultilanguageLongName(ARObject):
|
|
|
35
35
|
def __init__(self):
|
|
36
36
|
super().__init__()
|
|
37
37
|
|
|
38
|
-
self.l4 = []
|
|
38
|
+
self.l4 = [] # type:List[LLongName]
|
|
39
39
|
|
|
40
40
|
def addL4(self, l4: LLongName):
|
|
41
41
|
self.l4.append(l4)
|
|
42
42
|
return self
|
|
43
43
|
|
|
44
44
|
def getL4s(self) -> List[LLongName]:
|
|
45
|
-
return self.l4
|
|
45
|
+
return self.l4
|
|
46
|
+
|
|
47
|
+
class MultiLanguagePlainText(ARObject):
|
|
48
|
+
def __init__(self):
|
|
49
|
+
super().__init__()
|
|
50
|
+
|
|
51
|
+
self.l10s = [] # type: List[LPlainText]
|
|
52
|
+
|
|
53
|
+
def getL10s(self):
|
|
54
|
+
return self.l10s
|
|
55
|
+
|
|
56
|
+
def addL10(self, value):
|
|
57
|
+
self.l10s.append(value)
|
|
58
|
+
return self
|
armodel/models/__init__.py
CHANGED
|
@@ -8,8 +8,10 @@ from .M2.MSR.AsamHdo.Constraints.GlobalConstraints import *
|
|
|
8
8
|
from .M2.MSR.DataDictionary import *
|
|
9
9
|
from .M2.MSR.Documentation import *
|
|
10
10
|
from .M2.MSR.Documentation.Annotation import *
|
|
11
|
-
from .M2.MSR.Documentation.BlockElements import *
|
|
12
11
|
from .M2.MSR.Documentation.TextModel import *
|
|
12
|
+
from .M2.MSR.Documentation.TextModel.BlockElements import *
|
|
13
|
+
from .M2.MSR.Documentation.TextModel.BlockElements.ListElements import *
|
|
14
|
+
from .M2.MSR.Documentation.TextModel.BlockElements.PaginationAndView import *
|
|
13
15
|
from .M2.MSR.Documentation.TextModel.LanguageDataModel import *
|
|
14
16
|
from .M2.MSR.Documentation.TextModel.MultilanguageData import *
|
|
15
17
|
from .M2.AUTOSARTemplates.AutosarTopLevelStructure import *
|
|
@@ -42,6 +44,7 @@ from .M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.IncludedDataTy
|
|
|
42
44
|
from .M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.InstanceRefsUsage import *
|
|
43
45
|
from .M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.ModeDeclarationGroup import *
|
|
44
46
|
from .M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.PerInstanceMemory import *
|
|
47
|
+
from .M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.RTEEvents import *
|
|
45
48
|
from .M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.ServerCall import *
|
|
46
49
|
from .M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.ServiceMapping import *
|
|
47
50
|
from .M2.AUTOSARTemplates.SWComponentTemplate.SwcInternalBehavior.Trigger import *
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
|
|
2
1
|
from abc import ABCMeta
|
|
3
2
|
from typing import List
|
|
4
3
|
from colorama import Fore
|
|
@@ -8,15 +7,12 @@ import logging
|
|
|
8
7
|
import xml.etree.ElementTree as ET
|
|
9
8
|
|
|
10
9
|
from ..models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
|
|
11
|
-
|
|
12
|
-
from ..models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import ARFloat, ARLiteral, ARNumerical, Boolean, Integer, TimeValue
|
|
13
|
-
|
|
10
|
+
from ..models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import AREnum, ARFloat, ARLiteral, ARNumerical, Boolean, Integer, PositiveInteger, TimeValue
|
|
14
11
|
from ..models.M2.AUTOSARTemplates.AutosarTopLevelStructure import AUTOSAR
|
|
15
12
|
from ..models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import RefType
|
|
16
13
|
from ..models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import ARBoolean
|
|
17
14
|
from ..models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import Limit
|
|
18
15
|
|
|
19
|
-
|
|
20
16
|
class AbstractARXMLParser:
|
|
21
17
|
__metaclass__ = ABCMeta
|
|
22
18
|
|
|
@@ -49,6 +45,12 @@ class AbstractARXMLParser:
|
|
|
49
45
|
else:
|
|
50
46
|
raise ValueError(error_msg)
|
|
51
47
|
|
|
48
|
+
def notImplemented(self, error_msg):
|
|
49
|
+
if (self.options['warning'] == True):
|
|
50
|
+
self.logger.error(Fore.RED + error_msg + Fore.WHITE)
|
|
51
|
+
else:
|
|
52
|
+
raise NotImplementedError(error_msg)
|
|
53
|
+
|
|
52
54
|
def _raiseWarning(self, error_msg):
|
|
53
55
|
self.logger.warning(error_msg)
|
|
54
56
|
|
|
@@ -76,7 +78,7 @@ class AbstractARXMLParser:
|
|
|
76
78
|
child_element = self.find(element, key)
|
|
77
79
|
if (child_element is not None):
|
|
78
80
|
literal = ARLiteral()
|
|
79
|
-
self.
|
|
81
|
+
self.readARObjectAttributes(child_element, literal)
|
|
80
82
|
literal._value = child_element.text
|
|
81
83
|
return literal
|
|
82
84
|
self._raiseError("The attribute %s of <%s> has not been defined" % (key, short_name))
|
|
@@ -96,7 +98,7 @@ class AbstractARXMLParser:
|
|
|
96
98
|
if (child_element is not None):
|
|
97
99
|
self.logger.debug("getChildElementOptionalLiteral : %s" % child_element.text)
|
|
98
100
|
literal = ARLiteral()
|
|
99
|
-
self.
|
|
101
|
+
self.readARObjectAttributes(child_element, literal)
|
|
100
102
|
# Patch for empty element <USED-CODE-GENERATOR></USED-CODE-GENERATOR>
|
|
101
103
|
if child_element.text is None:
|
|
102
104
|
literal.setValue("")
|
|
@@ -113,14 +115,14 @@ class AbstractARXMLParser:
|
|
|
113
115
|
if not m:
|
|
114
116
|
raise ValueError("Invalid RevisionLabelString <%s>" % child_element.text)
|
|
115
117
|
literal = ARLiteral()
|
|
116
|
-
self.
|
|
118
|
+
self.readARObjectAttributes(child_element, literal)
|
|
117
119
|
# Patch for empty element <USED-CODE-GENERATOR></USED-CODE-GENERATOR>
|
|
118
120
|
if child_element.text is None:
|
|
119
121
|
literal.setValue("")
|
|
120
122
|
else:
|
|
121
123
|
literal.setValue(child_element.text)
|
|
122
124
|
return literal
|
|
123
|
-
|
|
125
|
+
|
|
124
126
|
def _convertStringToBooleanValue(self, value: str) -> bool:
|
|
125
127
|
if (value == "true"):
|
|
126
128
|
return True
|
|
@@ -191,7 +193,7 @@ class AbstractARXMLParser:
|
|
|
191
193
|
if child_element == None:
|
|
192
194
|
return None
|
|
193
195
|
numerical = ARNumerical()
|
|
194
|
-
self.
|
|
196
|
+
self.readARObjectAttributes(child_element, numerical)
|
|
195
197
|
numerical.setValue(child_element.text)
|
|
196
198
|
return numerical
|
|
197
199
|
|
|
@@ -200,8 +202,19 @@ class AbstractARXMLParser:
|
|
|
200
202
|
if child_element == None:
|
|
201
203
|
return None
|
|
202
204
|
numerical = Integer()
|
|
203
|
-
self.
|
|
205
|
+
self.readARObjectAttributes(child_element, numerical)
|
|
206
|
+
numerical.setValue(child_element.text)
|
|
207
|
+
return numerical
|
|
208
|
+
|
|
209
|
+
def getChildElementOptionalPositiveInteger(self, element: ET.Element, key: str) -> PositiveInteger:
|
|
210
|
+
child_element = self.find(element, key)
|
|
211
|
+
if child_element == None:
|
|
212
|
+
return None
|
|
213
|
+
numerical = PositiveInteger()
|
|
214
|
+
self.readARObjectAttributes(child_element, numerical)
|
|
204
215
|
numerical.setValue(child_element.text)
|
|
216
|
+
if numerical.getValue() < 0:
|
|
217
|
+
raise ValueError("Invalid PositiveInteger <%s>" % child_element.text)
|
|
205
218
|
return numerical
|
|
206
219
|
|
|
207
220
|
def getChildElementNumericalValueList(self, element: ET.Element, key: str) -> List[ARNumerical]:
|
|
@@ -217,7 +230,7 @@ class AbstractARXMLParser:
|
|
|
217
230
|
child_element = self.find(element, key)
|
|
218
231
|
if (child_element is not None):
|
|
219
232
|
limit = Limit()
|
|
220
|
-
self.
|
|
233
|
+
self.readARObjectAttributes(child_element, limit)
|
|
221
234
|
if ('INTERVAL-TYPE' in child_element.attrib):
|
|
222
235
|
limit.intervalType = child_element.attrib['INTERVAL-TYPE']
|
|
223
236
|
else:
|
|
@@ -228,8 +241,11 @@ class AbstractARXMLParser:
|
|
|
228
241
|
|
|
229
242
|
def _getChildElementRefTypeDestAndValue(self, element) -> RefType:
|
|
230
243
|
ref = RefType()
|
|
231
|
-
|
|
232
|
-
|
|
244
|
+
if 'BASE' in element.attrib:
|
|
245
|
+
ref.setBase(element.attrib['BASE'])
|
|
246
|
+
if 'DEST' in element.attrib:
|
|
247
|
+
ref.setDest(element.attrib['DEST'])
|
|
248
|
+
ref.setValue(element.text)
|
|
233
249
|
return ref
|
|
234
250
|
|
|
235
251
|
def getChildElementRefType(self, short_name: str, element: ET.Element, key: str) -> RefType:
|
|
@@ -259,7 +275,7 @@ class AbstractARXMLParser:
|
|
|
259
275
|
return element.attrib[key]
|
|
260
276
|
return None
|
|
261
277
|
|
|
262
|
-
def
|
|
278
|
+
def readARObjectAttributes(self, element: ET.Element, ar_object: ARObject):
|
|
263
279
|
ar_object.timestamp = self.readElementOptionalAttrib(element, "T") # read the timestamp
|
|
264
280
|
ar_object.uuid = self.readElementOptionalAttrib(element, "UUID") # read the uuid
|
|
265
281
|
|