metanorma-plugin-lutaml 0.4.5 → 0.4.9
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.
- checksums.yaml +4 -4
- data/README.adoc +88 -53
- data/lib/metanorma/plugin/lutaml/liquid_templates/_diagrams_block.liquid +1 -1
- data/lib/metanorma/plugin/lutaml/liquid_templates/_packages.liquid +37 -23
- data/lib/metanorma/plugin/lutaml/liquid_templates/_packages_class.liquid +10 -10
- data/lib/metanorma/plugin/lutaml/liquid_templates/_packages_data_dictionary.liquid +201 -0
- data/lib/metanorma/plugin/lutaml/liquid_templates/_packages_data_dictionary_class.liquid +67 -0
- data/lib/metanorma/plugin/lutaml/liquid_templates/_packages_data_dictionary_classes.liquid +3 -0
- data/lib/metanorma/plugin/lutaml/liquid_templates/_packages_data_type.liquid +9 -10
- data/lib/metanorma/plugin/lutaml/liquid_templates/_packages_entity_list.liquid +136 -0
- data/lib/metanorma/plugin/lutaml/liquid_templates/_packages_entity_list_classes.liquid +11 -0
- data/lib/metanorma/plugin/lutaml/liquid_templates/_packages_enum.liquid +11 -10
- data/lib/metanorma/plugin/lutaml/liquid_templates/test.rb +1 -0
- data/lib/metanorma/plugin/lutaml/lutaml_figure_inline_macro.rb +23 -0
- data/lib/metanorma/plugin/lutaml/lutaml_preprocessor.rb +1 -1
- data/lib/metanorma/plugin/lutaml/lutaml_table_inline_macro.rb +25 -0
- data/lib/metanorma/plugin/lutaml/lutaml_uml_datamodel_description_preprocessor.rb +87 -12
- data/lib/metanorma/plugin/lutaml/version.rb +1 -1
- data/lib/metanorma-plugin-lutaml.rb +2 -0
- metadata +10 -2
@@ -3,8 +3,8 @@
|
|
3
3
|
{% elsif is_klass_spare == 'Spare' %}{% continue %}
|
4
4
|
{% endif %}
|
5
5
|
{% assign klass_name = klass.name | downcase | replace: ':', '' | replace: ' ', '_' %}
|
6
|
-
[[
|
7
|
-
.Elements of {{ package.name }}::{{ klass.name }}
|
6
|
+
[[section-{{ klass.xmi_id }}]]
|
7
|
+
.Elements of “{{ package.name }}::{{ klass.name }}” (class)
|
8
8
|
[width="100%",cols="a,a,a,a,a,a,a,a"]
|
9
9
|
|===
|
10
10
|
|
@@ -24,14 +24,14 @@ h|Inheritance from: 7+| {{ inherited | map: 'member_end' | join: ", " }}
|
|
24
24
|
h|Generalization of: 7+| {{ generalizations | map: 'member_end' | join: ", " }}
|
25
25
|
{% endif %}
|
26
26
|
|
27
|
-
h|Abstract: 7+| {
|
27
|
+
h|Abstract: 7+| {% if klass.is_abstract %}True{% else %}False{% endif %}
|
28
28
|
{% assign aggregations = klass.associations | where: "member_end_type", "aggregation" %}
|
29
29
|
{% if aggregations.size > 0 %}
|
30
30
|
.{{aggregations.size | plus: 1}}+h|Associations:
|
31
|
-
4+|_Association
|
32
|
-
|_Obligation_
|
31
|
+
4+| _Association with_
|
32
|
+
| _Obligation_
|
33
33
|
| _Maximum occurrence_
|
34
|
-
|
|
34
|
+
| _Provides_
|
35
35
|
|
36
36
|
{% for assoc in aggregations %}
|
37
37
|
4+| {{assoc.member_end}}
|
@@ -41,9 +41,9 @@ h|Abstract: 7+| {{ klass.is_abstract }}
|
|
41
41
|
|
42
42
|
{% endfor %}
|
43
43
|
{% else %}
|
44
|
-
|
45
|
-
.1+h|Associations: 7+| (none)
|
44
|
+
h| Associations: 7+| (none)
|
46
45
|
{% endif %}
|
46
|
+
|
47
47
|
{% if klass.attributes.size > 0 %}
|
48
48
|
.{{klass.attributes.size | plus: 1}}+h|Public attributes:
|
49
49
|
| _Name_
|
@@ -63,12 +63,12 @@ h|Abstract: 7+| {{ klass.is_abstract }}
|
|
63
63
|
|
64
64
|
{% endfor %}
|
65
65
|
{% else %}
|
66
|
-
|
66
|
+
h| Public attributes:
|
67
67
|
7+| (none)
|
68
68
|
{% endif %}
|
69
69
|
|
70
70
|
{% if klass.constraints.size > 0 %}
|
71
|
-
.{{ klass.constraints.size }}
|
71
|
+
.{{ klass.constraints.size }}+h| Constraints:
|
72
72
|
{% for constr in klass.constraints %}
|
73
73
|
7+| `{{ constr.body }}`
|
74
74
|
|
@@ -0,0 +1,201 @@
|
|
1
|
+
{% for package in context.packages %}
|
2
|
+
{% assign package_name = package.name | downcase | replace: ":", "" | replace: " ", "_" %}
|
3
|
+
{% if additional_context.before and additional_context.before.size > 0 %}
|
4
|
+
{% for before in additional_context.before %}
|
5
|
+
{{ before.text }}
|
6
|
+
{% endfor %}
|
7
|
+
{% endif %}
|
8
|
+
{% capture equalsigns %}{% for count in (1..depth) %}={% endfor %}{% endcapture %}{{equalsigns}} {{ package.name }}
|
9
|
+
|
10
|
+
{% assign before_package_key = 'before;' | append: package.name %}
|
11
|
+
{% if additional_context[before_package_key] and additional_context[before_package_key].size > 0 %}
|
12
|
+
{% for before in additional_context[before_package_key] %}
|
13
|
+
{{ before.text }}
|
14
|
+
{% endfor %}
|
15
|
+
{% endif %}
|
16
|
+
|
17
|
+
[cols="1a,4a"]
|
18
|
+
|===
|
19
|
+
|
20
|
+
h|Description: | {{ package.definition }}
|
21
|
+
h|Parent package: | {{ context.name }}
|
22
|
+
h|Stereotype: | «{{ package.stereotype }}»
|
23
|
+
|
24
|
+
|===
|
25
|
+
|
26
|
+
{% assign basic_types = package.classes | where: "stereotype", "BasicType" %}
|
27
|
+
{% assign unions = package.data_types | where: "stereotype", "Union" %}
|
28
|
+
{% assign code_lists = package.classes | where: "stereotype", "CodeList" %}
|
29
|
+
{% assign not_classes_length = basic_types.size | plus: code_lists.size %}
|
30
|
+
{% assign not_classes_stereoptypes = 'DataType,BasicType,Enumeration,CodeList' | split: ','%}
|
31
|
+
{{equalsigns}}= Classes
|
32
|
+
|
33
|
+
{% unless not_classes_length == package.classes.size %}
|
34
|
+
|
35
|
+
{% for klass in package.classes %}
|
36
|
+
{% unless not_classes_stereoptypes contains klass.stereotype %}
|
37
|
+
{% include "packages_data_dictionary_class" %}
|
38
|
+
{% endunless %}
|
39
|
+
{% endfor %}
|
40
|
+
{% else %}
|
41
|
+
None
|
42
|
+
{% endunless %}
|
43
|
+
|
44
|
+
{{equalsigns}}= Basic types
|
45
|
+
|
46
|
+
{% if basic_types.size > 0 %}
|
47
|
+
|
48
|
+
{% include "packages_data_dictionary_classes", classes: basic_types %}
|
49
|
+
{% else %}
|
50
|
+
None
|
51
|
+
{% endif %}
|
52
|
+
|
53
|
+
{{equalsigns}}= Unions
|
54
|
+
|
55
|
+
{% if unions.size > 0 %}
|
56
|
+
|
57
|
+
{% include "packages_data_dictionary_classes", classes: unions %}
|
58
|
+
{% else %}
|
59
|
+
None
|
60
|
+
{% endif %}
|
61
|
+
|
62
|
+
{{equalsigns}}= Code lists
|
63
|
+
|
64
|
+
{% if code_lists.size > 0 %}
|
65
|
+
|
66
|
+
{% include "packages_data_dictionary_classes", classes: code_lists %}
|
67
|
+
{% else %}
|
68
|
+
None
|
69
|
+
{% endif %}
|
70
|
+
|
71
|
+
{{equalsigns}}= Data types
|
72
|
+
|
73
|
+
{% assign non_unions = package.data_types | where: "stereotype", "DataType" %}
|
74
|
+
{% if non_unions.size > 0 %}
|
75
|
+
|
76
|
+
{% for data_type in non_unions %}
|
77
|
+
{% capture generalizations %}{% assign inheritance = data_type.associations | where: "member_end_type", "inheritance" %}{% for assoc in inheritance %}{{ assoc.member_end }} {% endfor %}{% endcapture %}
|
78
|
+
[[{{ data_type.name }}-section]]
|
79
|
+
[cols="1a"]
|
80
|
+
|===
|
81
|
+
|*{{ data_type.name }}*
|
82
|
+
|[cols="1,4"]
|
83
|
+
!===
|
84
|
+
!Definition: ! {{ data_type.definition }}
|
85
|
+
!Subclass of: ! {% if generalizations.size > 4 %}{{ generalizations }}{% else %}None{% endif %}
|
86
|
+
!Stereotype: ! «{{ data_type.stereotype }}»
|
87
|
+
!===
|
88
|
+
{% if data_type.associations.size > 0 %}
|
89
|
+
{% capture rendered_associations %}
|
90
|
+
{% for assoc in data_type.associations %}
|
91
|
+
{% if assoc.member_end_attribute_name.size > 0 %}
|
92
|
+
{% capture cardinality %}{% if assoc.member_end_cardinality.min == 'C' %}[0..{{ assoc.member_end_cardinality.max }}]{% elsif assoc.member_end_cardinality.min == 'M' and assoc.member_end_cardinality.max == '1' %}[1..1]{% else %}[{{ assoc.member_end_cardinality.max }}]{% endif %}{% endcapture %}
|
93
|
+
! {{ assoc.member_end_attribute_name }} !<<{{assoc.member_end}}-section,{{assoc.member_end}}>> {{ cardinality }} ! {{ assoc.definition }}
|
94
|
+
{% endif %}
|
95
|
+
{% endfor %}
|
96
|
+
{% endcapture %}
|
97
|
+
{% if rendered_associations.size > 100 %}
|
98
|
+
|
|
99
|
+
[cols="15,20,60",options="header"]
|
100
|
+
!===
|
101
|
+
! Role name !Target class and multiplicity !Definition
|
102
|
+
{{ rendered_associations }}
|
103
|
+
!===
|
104
|
+
{% endif %}
|
105
|
+
{% endif %}
|
106
|
+
{% if data_type.attributes.size > 0 %}
|
107
|
+
|
|
108
|
+
[cols="15,20,60",options="header"]
|
109
|
+
!===
|
110
|
+
! Attribute ! Value type and multiplicity ! Definition
|
111
|
+
{% for attr in data_type.attributes %}
|
112
|
+
{% capture cardinality %}{% if attr.cardinality.min == 'C' %}[0..{{ attr.cardinality.max }}]{% elsif assoc.member_end_cardinality.min == 'M' and assoc.member_end_cardinality.max == '1' %}[1..1]{% else %}[{{ attr.cardinality.max }}]{% endif %}{% endcapture %}
|
113
|
+
! {{ attr.name }} !<<{{ attr.type }}-section,{{ attr.type }}>> {{ cardinality }} !{{ attr.definition }}
|
114
|
+
{% endfor %}
|
115
|
+
!===
|
116
|
+
| NOTE: Unless otherwise specified, all attributes and role names have the stereotype «Property».
|
117
|
+
{% endif %}
|
118
|
+
|===
|
119
|
+
|
120
|
+
{% endfor %}
|
121
|
+
{% else %}
|
122
|
+
None
|
123
|
+
{% endif %}
|
124
|
+
|
125
|
+
{{equalsigns}}= Enumerations
|
126
|
+
|
127
|
+
{% if package.enums.size > 0 %}
|
128
|
+
|
129
|
+
{% for enum in package.enums %}
|
130
|
+
[[{{ enum.name }}-section]]
|
131
|
+
[cols="1a"]
|
132
|
+
|===
|
133
|
+
|*{{ enum.name }}*
|
134
|
+
|
|
135
|
+
[cols="1,4"]
|
136
|
+
!===
|
137
|
+
!Definition: ! {{ enum.definition }}
|
138
|
+
!Stereotype: ! «Enumeration»
|
139
|
+
!===
|
140
|
+
{% if enum.values.size > 0 %}
|
141
|
+
|
|
142
|
+
[cols="1,4",options="header"]
|
143
|
+
!===
|
144
|
+
! Literal value !Definition
|
145
|
+
|
146
|
+
{% for val in enum.values %}
|
147
|
+
! {{ val.name }} !{{ val.definition }}
|
148
|
+
{% endfor %}
|
149
|
+
!===
|
150
|
+
{% endif %}
|
151
|
+
|===
|
152
|
+
|
153
|
+
{% endfor %}
|
154
|
+
{% else %}
|
155
|
+
None
|
156
|
+
{% endif %}
|
157
|
+
|
158
|
+
{% if additional_context.include_block and additional_context.include_block.size > 0 %}
|
159
|
+
{% for block in additional_context.include_block %}
|
160
|
+
{% capture block_filename %}{{ block.base_path }}{{ package_name }}{% endcapture %}
|
161
|
+
{% capture block_content %}{% include block_filename %}{% endcapture %}
|
162
|
+
{% unless block_content contains "Liquid error" %}
|
163
|
+
{% if block.text %}
|
164
|
+
{{ block.text }}
|
165
|
+
{% endif %}
|
166
|
+
{{ block_content }}
|
167
|
+
{% endunless %}
|
168
|
+
{% endfor %}
|
169
|
+
{% endif %}
|
170
|
+
|
171
|
+
{% assign include_block_package_key = 'include_block;' | append: package.name %}
|
172
|
+
{% if additional_context[include_block_package_key] and additional_context[include_block_package_key].size > 0 %}
|
173
|
+
{% for block in additional_context[include_block_package_key] %}
|
174
|
+
{% capture block_filename %}{{ block.base_path }}{{ package_name }}{% endcapture %}
|
175
|
+
{% capture block_content %}{% include block_filename %}{% endcapture %}
|
176
|
+
{% unless block_content contains "Liquid error" %}
|
177
|
+
{% if block.text %}
|
178
|
+
{{ block.text }}
|
179
|
+
{% endif %}
|
180
|
+
{{ block_content }}
|
181
|
+
{% endunless %}
|
182
|
+
{% endfor %}
|
183
|
+
{% endif %}
|
184
|
+
|
185
|
+
{% assign after_package_key = 'after;' | append: package.name %}
|
186
|
+
{% if additional_context[after_package_key] %}
|
187
|
+
{{equalsigns}}= Additional information
|
188
|
+
{% for after in additional_context[after_package_key] %}
|
189
|
+
{{ after.text }}
|
190
|
+
{% endfor %}
|
191
|
+
{% endif %}
|
192
|
+
{% if package.packages.size > 0 and render_nested_packages %}
|
193
|
+
{% assign nested_depth = depth | plus: 1 %}{% include "packages_data_dictionary", depth: nested_depth, context: package %}
|
194
|
+
{% endif %}
|
195
|
+
{% endfor %}
|
196
|
+
|
197
|
+
{% if additional_context.after and additional_context.after.size > 0 %}
|
198
|
+
{% for after in additional_context.after %}
|
199
|
+
{{ after.text }}
|
200
|
+
{% endfor %}
|
201
|
+
{% endif %}
|
@@ -0,0 +1,67 @@
|
|
1
|
+
{% capture generalizations %}{% assign inheritance = klass.associations | where: "member_end_type", "inheritance" %}{% for assoc in inheritance %}{{ assoc.member_end }} {% endfor %}{% endcapture %}
|
2
|
+
[[{{ klass.name }}-section]]
|
3
|
+
[cols="1a"]
|
4
|
+
|===
|
5
|
+
|*{{ klass.name }}*
|
6
|
+
|
|
7
|
+
[cols="1,4"]
|
8
|
+
!===
|
9
|
+
! Definition: ! {{ klass.definition }}
|
10
|
+
! Subclass of: ! {% if generalizations.size > 4 %}{{ generalizations }}{% else %}None{% endif %}
|
11
|
+
! Stereotype: ! «{{ klass.stereotype }}»
|
12
|
+
{% if klass.constraints.size > 0 %}
|
13
|
+
{% for constraint in klass.constraints %}
|
14
|
+
! Constraint: ! {{ constraint.body }}: {{ constraint.definition | replace: '|', '\|' }}
|
15
|
+
{% endfor %}
|
16
|
+
{% endif %}
|
17
|
+
!===
|
18
|
+
|
19
|
+
{% if klass.associations.size > 0 %}
|
20
|
+
{% capture rendered_associations %}
|
21
|
+
{% for assoc in klass.associations %}
|
22
|
+
|
23
|
+
{% if assoc.member_end_attribute_name.size > 0 %}
|
24
|
+
|
25
|
+
{% capture cardinality %}{% if assoc.member_end_cardinality.min == 'C' %}[0..{{ assoc.member_end_cardinality.max }}]{% elsif assoc.member_end_cardinality.min == 'M' and assoc.member_end_cardinality.max == '1' %}[1..1]{% else %}[{{ assoc.member_end_cardinality.max }}]{% endif %}{% endcapture %}
|
26
|
+
|
27
|
+
! {{ assoc.member_end_attribute_name }}
|
28
|
+
! <<{{assoc.member_end}}-section,{{assoc.member_end}}>> {{ cardinality }}
|
29
|
+
! {{ assoc.definition }}
|
30
|
+
|
31
|
+
{% endif %}
|
32
|
+
{% endfor %}
|
33
|
+
{% endcapture %}
|
34
|
+
|
35
|
+
{% if rendered_associations.size > 100 %}
|
36
|
+
|
|
37
|
+
[cols="15,20,60",options="header"]
|
38
|
+
!===
|
39
|
+
! *Role name*
|
40
|
+
! *Target class and multiplicity*
|
41
|
+
! *Definition*
|
42
|
+
{{ rendered_associations }}
|
43
|
+
!===
|
44
|
+
{% endif %}
|
45
|
+
|
46
|
+
{% endif %}
|
47
|
+
{% if klass.attributes.size > 0 %}
|
48
|
+
|
|
49
|
+
[cols="15,20,60",options="header"]
|
50
|
+
!===
|
51
|
+
! *Attribute*
|
52
|
+
! *Value type and multiplicity*
|
53
|
+
! *Definition*
|
54
|
+
{% for attr in klass.attributes %}
|
55
|
+
|
56
|
+
{% capture cardinality %}{% if attr.cardinality.min == 'C' %}[0..{{ attr.cardinality.max }}]{% elsif assoc.member_end_cardinality.min == 'M' and assoc.member_end_cardinality.max == '1' %}[1..1]{% else %}[{{ attr.cardinality.max }}]{% endif %}{% endcapture %}
|
57
|
+
|
58
|
+
! {{ attr.name }}
|
59
|
+
!<<{{ attr.type }}-section,{{ attr.type }}>> {{ cardinality }}
|
60
|
+
!{{ attr.definition }}
|
61
|
+
|
62
|
+
{% endfor %}
|
63
|
+
!===
|
64
|
+
|
65
|
+
| NOTE: Unless otherwise specified, all attributes and role names have the stereotype «Property».
|
66
|
+
{% endif %}
|
67
|
+
|===
|
@@ -3,8 +3,8 @@
|
|
3
3
|
{% elsif is_klass_spare == 'Spare' %}{% continue %}
|
4
4
|
{% endif %}
|
5
5
|
{% assign klass_name = klass.name | downcase | replace: ':', '' | replace: ' ', '_' %}
|
6
|
-
[[
|
7
|
-
.Elements of {{ package.name }}::{{ klass.name }}
|
6
|
+
[[section-{{ klass.xmi_id }}]]
|
7
|
+
.Elements of {{ package.name }}::{{ klass.name }}” (data_type)
|
8
8
|
[width="100%",cols="a,a,a,a,a,a,a,a"]
|
9
9
|
|===
|
10
10
|
|
@@ -24,14 +24,14 @@ h|Inheritance from: 7+| {{ inherited | map: 'member_end' | join: ", " }}
|
|
24
24
|
h|Generalization of: 7+| {{ generalizations | map: 'member_end' | join: ", " }}
|
25
25
|
{% endif %}
|
26
26
|
|
27
|
-
h|Abstract: 7+| {
|
27
|
+
h|Abstract: 7+| {% if klass.is_abstract %}True{% else %}False{% endif %}
|
28
28
|
{% assign aggregations = klass.associations | where: "member_end_type", "aggregation" %}
|
29
29
|
{% if aggregations.size > 0 %}
|
30
30
|
.{{aggregations.size | plus: 1}}+h|Associations:
|
31
|
-
4+|_Association
|
32
|
-
|_Obligation_
|
31
|
+
4+| _Association with_
|
32
|
+
| _Obligation_
|
33
33
|
| _Maximum occurrence_
|
34
|
-
|
|
34
|
+
| _Provides_
|
35
35
|
|
36
36
|
{% for assoc in aggregations %}
|
37
37
|
4+| {{assoc.member_end}}
|
@@ -41,12 +41,11 @@ h|Abstract: 7+| {{ klass.is_abstract }}
|
|
41
41
|
|
42
42
|
{% endfor %}
|
43
43
|
{% else %}
|
44
|
-
|
45
|
-
.1+h|Associations: 7+| (none)
|
44
|
+
h| Associations: 7+| (none)
|
46
45
|
{% endif %}
|
47
46
|
|
48
47
|
{% if klass.attributes.size > 0 %}
|
49
|
-
.{{klass.attributes.size | plus: 1}}+h|Values:
|
48
|
+
.{{klass.attributes.size | plus: 1}}+h| Values:
|
50
49
|
| _Name_
|
51
50
|
6+| _Definition_
|
52
51
|
|
@@ -56,7 +55,7 @@ h|Abstract: 7+| {{ klass.is_abstract }}
|
|
56
55
|
|
57
56
|
{% endfor %}
|
58
57
|
{% else %}
|
59
|
-
|
58
|
+
h| Values:
|
60
59
|
7+| (none)
|
61
60
|
{% endif %}
|
62
61
|
|
@@ -0,0 +1,136 @@
|
|
1
|
+
{% for package in context.packages %}
|
2
|
+
{% assign package_name = package.name | downcase | replace: ":", "" | replace: " ", "_" %}
|
3
|
+
{% if additional_context.before and additional_context.before.size > 0 %}
|
4
|
+
{% for before in additional_context.before %}
|
5
|
+
{{ before.text }}
|
6
|
+
{% endfor %}
|
7
|
+
{% endif %}
|
8
|
+
{% if depth %}
|
9
|
+
[[rc_{{ package_name }}-model_section]]
|
10
|
+
{% capture equalsigns %}{% for count in (1..depth) %}={% endfor %}{% endcapture %}{{equalsigns}} {{ package.name }}
|
11
|
+
{% endif %}
|
12
|
+
|
13
|
+
{% if additional_context.all_macroses.size > 0 %}
|
14
|
+
{% assign sorted_all_macroses = additional_context.all_macroses | where: "position", "before" | sort: 'index' %}
|
15
|
+
{% for block in sorted_all_macroses %}
|
16
|
+
{% case block.type %}
|
17
|
+
{% when 'include_block' %}
|
18
|
+
{% unless block.package and block.package != package.name %}
|
19
|
+
{% capture block_filename %}{{ block.base_path }}{{ package_name }}{% endcapture %}
|
20
|
+
{% capture block_content %}{% include block_filename %}{% endcapture %}
|
21
|
+
{% unless block_content contains "Liquid error" %}
|
22
|
+
{% if block.text %}
|
23
|
+
|
24
|
+
{{ block.text }}
|
25
|
+
{% endif %}
|
26
|
+
|
27
|
+
{{ block_content }}
|
28
|
+
{% endunless %}
|
29
|
+
{% endunless %}
|
30
|
+
{% when 'package_text' %}
|
31
|
+
{% unless block.package and block.package != package.name %}
|
32
|
+
|
33
|
+
{{ block.text }}
|
34
|
+
{% endunless %}
|
35
|
+
{% else %}
|
36
|
+
{% endcase %}
|
37
|
+
{% endfor %}
|
38
|
+
{% endif %}
|
39
|
+
|
40
|
+
// TODO: move to all_macroses block
|
41
|
+
{% if additional_context.diagram_include_block %}
|
42
|
+
{% for diagram_include_block in additional_context.diagram_include_block %}
|
43
|
+
{% include "diagrams_block", package_name: package_name, image_base_path: diagram_include_block.base_path, text: diagram_include_block.text %}
|
44
|
+
{% endfor %}
|
45
|
+
{% endif %}
|
46
|
+
|
47
|
+
{% if package.classes.size > 0 %}
|
48
|
+
{{equalsigns}}= Class definitions
|
49
|
+
|
50
|
+
{% comment %} {% assign data_types = package.classes | where: "stereotype", "DataType" %} {% endcomment %}
|
51
|
+
{% assign basic_types = package.classes | where: "stereotype", "BasicType" %}
|
52
|
+
{% comment %} {% assign enumerations = package.classes | where: "stereotype", "Enumeration" %} {% endcomment %}
|
53
|
+
{% assign code_lists = package.classes | where: "stereotype", "CodeList" %}
|
54
|
+
|
55
|
+
{% assign not_classes_length = plus: basic_types.size | plus: code_lists.size %}
|
56
|
+
{% assign not_classes_stereoptypes = 'DataType,BasicType,Enumeration,CodeList' | split: ','%}
|
57
|
+
{% unless not_classes_length == package.classes.size %}
|
58
|
+
.Classes used in {{ package.name }}
|
59
|
+
[cols="2a,6a",options="header"]
|
60
|
+
|===
|
61
|
+
|Name |Description
|
62
|
+
{% for klass in package.classes %}
|
63
|
+
{% unless not_classes_stereoptypes contains klass.stereotype %}
|
64
|
+
|<<{{ klass.name }}-section,{{ klass.name }}>> «{{ klass.stereotype }}»
|
65
|
+
|{{ klass.definition }}
|
66
|
+
|
67
|
+
{% endunless %}
|
68
|
+
{% endfor %}
|
69
|
+
|===
|
70
|
+
{% endunless %}
|
71
|
+
|
72
|
+
{% if package.data_types.size > 0 %}
|
73
|
+
{% include "packages_entity_list_classes", classes: package.data_types, type: "Data Types" %}
|
74
|
+
{% endif %}
|
75
|
+
|
76
|
+
{% if basic_types.size > 0 %}
|
77
|
+
{% include "packages_entity_list_classes", classes: basic_types, type: "Primitive Data Types" %}
|
78
|
+
{% endif %}
|
79
|
+
|
80
|
+
{% if package.enums.size > 0 %}
|
81
|
+
{% include "packages_entity_list_classes", classes: package.enums, type: "Enumerated Classes" %}
|
82
|
+
{% endif %}
|
83
|
+
|
84
|
+
{% if code_lists.size > 0 %}
|
85
|
+
{% include "packages_entity_list_classes", classes: code_lists, type: "CodeList Classes" %}
|
86
|
+
{% endif %}
|
87
|
+
|
88
|
+
{% endif %}
|
89
|
+
|
90
|
+
{% comment %} {% if package.data_types.size > 0 %}
|
91
|
+
.Data types used in {{ package.name }}
|
92
|
+
[cols="2,6",options="header"]
|
93
|
+
|===
|
94
|
+
|Name |Description
|
95
|
+
|
96
|
+
{% for klass in package.data_types %}
|
97
|
+
|<<{{ klass.name }}-section,{{ klass.name }}>> «{{ klass.stereotype }}»
|
98
|
+
|{{ klass.definition }}
|
99
|
+
|
100
|
+
{% endfor %}
|
101
|
+
|
102
|
+
|===
|
103
|
+
{% endif %}
|
104
|
+
|
105
|
+
{% if package.enums.size > 0 %}
|
106
|
+
.Enumerated Classes used in {{ package.name }}
|
107
|
+
[cols="2a,6a",options="header"]
|
108
|
+
|===
|
109
|
+
|Name |Description
|
110
|
+
|
111
|
+
{% for klass in package.enums %}
|
112
|
+
|<<{{ klass.name }}-section,{{ klass.name }}>> «{{ klass.stereotype }}»
|
113
|
+
|{{ klass.definition }}
|
114
|
+
|
115
|
+
{% endfor %}
|
116
|
+
|
117
|
+
|===
|
118
|
+
{% endif %} {% endcomment %}
|
119
|
+
|
120
|
+
{% assign after_package_key = 'after;' | append: package.name %}
|
121
|
+
{% if additional_context[after_package_key] %}
|
122
|
+
{{equalsigns}}= Additional information
|
123
|
+
{% for after in additional_context[after_package_key] %}
|
124
|
+
{{ after.text }}
|
125
|
+
{% endfor %}
|
126
|
+
{% endif %}
|
127
|
+
{% if package.packages.size > 0 and render_nested_packages %}
|
128
|
+
{% assign nested_depth = depth | plus: 1 %}{% include "packages_entity_list", depth: nested_depth, context: package %}
|
129
|
+
{% endif %}
|
130
|
+
{% endfor %}
|
131
|
+
|
132
|
+
{% if additional_context.after and additional_context.after.size > 0 %}
|
133
|
+
{% for after in additional_context.after %}
|
134
|
+
{{ after.text }}
|
135
|
+
{% endfor %}
|
136
|
+
{% endif %}
|