Skip to content

Commit a5f36b3

Browse files
committed
Class MetaModel Consistency Between PUML and C++
1 parent 017f1ba commit a5f36b3

10 files changed

Lines changed: 234 additions & 95 deletions

File tree

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
' *******************************************************************************
2+
' Copyright (c) 2026 Contributors to the Eclipse Foundation
3+
'
4+
' See the NOTICE file(s) distributed with this work for additional
5+
' information regarding copyright ownership.
6+
'
7+
' This program and the accompanying materials are made available under the
8+
' terms of the Apache License Version 2.0 which is available at
9+
' https://www.apache.org/licenses/LICENSE-2.0
10+
'
11+
' SPDX-License-Identifier: Apache-2.0
12+
' *******************************************************************************
13+
@startuml class_diagram_enum_value_sequence
14+
15+
namespace util {
16+
' the sentinal value is positive
17+
enum LogLevel {
18+
De = 5
19+
Info
20+
Warn : Warnning
21+
Err
22+
Fatal = 10
23+
Trace
24+
}
25+
}
26+
27+
namespace system {
28+
' the sentinal value is not set
29+
enum SystemState {
30+
Init
31+
Running : Active
32+
Stopped = 10
33+
Failed
34+
}
35+
}
36+
37+
namespace platform {
38+
' the sentinal value is nagtive
39+
enum PowerMode {
40+
Unknown = -5
41+
Off
42+
Standby = 0
43+
Active : Running
44+
Sleep
45+
}
46+
}
47+
48+
@enduml
Lines changed: 117 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,117 @@
1+
{
2+
"class_diagram_enum_value_sequence.puml": {
3+
"name": "class_diagram_enum_value_sequence",
4+
"entities": [
5+
{
6+
"id": "util.LogLevel",
7+
"name": "LogLevel",
8+
"enclosing_namespace_id": "util",
9+
"entity_type": "Enum",
10+
"type_aliases": [],
11+
"methods": [],
12+
"template_parameters": null,
13+
"enum_literals": [
14+
{
15+
"name": "De",
16+
"value": 5
17+
},
18+
{
19+
"name": "Info",
20+
"value": 6
21+
},
22+
{
23+
"name": "Warn",
24+
"value": 7
25+
},
26+
{
27+
"name": "Err",
28+
"value": 8
29+
},
30+
{
31+
"name": "Fatal",
32+
"value": 10
33+
},
34+
{
35+
"name": "Trace",
36+
"value": 11
37+
}
38+
],
39+
"source_file": "class_diagram_enum_value_sequence",
40+
"source_line": 17,
41+
"variables": [],
42+
"relationships": []
43+
},
44+
{
45+
"id": "system.SystemState",
46+
"name": "SystemState",
47+
"enclosing_namespace_id": "system",
48+
"entity_type": "Enum",
49+
"type_aliases": [],
50+
"methods": [],
51+
"template_parameters": null,
52+
"enum_literals": [
53+
{
54+
"name": "Init",
55+
"value": 0
56+
},
57+
{
58+
"name": "Running",
59+
"value": 1
60+
},
61+
{
62+
"name": "Stopped",
63+
"value": 10
64+
},
65+
{
66+
"name": "Failed",
67+
"value": 11
68+
}
69+
],
70+
"source_file": "class_diagram_enum_value_sequence",
71+
"source_line": 29,
72+
"variables": [],
73+
"relationships": []
74+
},
75+
{
76+
"id": "platform.PowerMode",
77+
"name": "PowerMode",
78+
"enclosing_namespace_id": "platform",
79+
"entity_type": "Enum",
80+
"type_aliases": [],
81+
"methods": [],
82+
"template_parameters": null,
83+
"enum_literals": [
84+
{
85+
"name": "Unknown",
86+
"value": -5
87+
},
88+
{
89+
"name": "Off",
90+
"value": -4
91+
},
92+
{
93+
"name": "Standby",
94+
"value": 0
95+
},
96+
{
97+
"name": "Active",
98+
"value": 1
99+
},
100+
{
101+
"name": "Sleep",
102+
"value": 2
103+
}
104+
],
105+
"source_file": "class_diagram_enum_value_sequence",
106+
"source_line": 39,
107+
"variables": [],
108+
"relationships": []
109+
}
110+
],
111+
"relationships": [],
112+
"source_files": [
113+
"class_diagram_enum_value_sequence"
114+
],
115+
"version": null
116+
}
117+
}

plantuml/parser/integration_test/class_diagram/class_diagram_positive/output.json

Lines changed: 17 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -18,15 +18,13 @@
1818
"name": "x",
1919
"data_type": "f32",
2020
"visibility": "public",
21-
"is_static": false,
22-
"is_const": false
21+
"is_static": false
2322
},
2423
{
2524
"name": "y",
2625
"data_type": "f32",
2726
"visibility": "public",
28-
"is_static": false,
29-
"is_const": false
27+
"is_static": false
3028
}
3129
],
3230
"relationships": []
@@ -47,15 +45,13 @@
4745
"name": "width",
4846
"data_type": "f32",
4947
"visibility": "public",
50-
"is_static": false,
51-
"is_const": false
48+
"is_static": false
5249
},
5350
{
5451
"name": "height",
5552
"data_type": "f32",
5653
"visibility": "public",
57-
"is_static": false,
58-
"is_const": false
54+
"is_static": false
5955
}
6056
],
6157
"relationships": []
@@ -71,15 +67,15 @@
7167
"enum_literals": [
7268
{
7369
"name": "Red",
74-
"value": "0"
70+
"value": 0
7571
},
7672
{
7773
"name": "Green",
78-
"value": "1"
74+
"value": 1
7975
},
8076
{
8177
"name": "Blue",
82-
"value": "2"
78+
"value": 2
8379
}
8480
],
8581
"source_file": "class_positive_test",
@@ -203,8 +199,7 @@
203199
"name": "shapes",
204200
"data_type": "Shape",
205201
"visibility": "private",
206-
"is_static": false,
207-
"is_const": false
202+
"is_static": false
208203
}
209204
],
210205
"relationships": [
@@ -242,15 +237,13 @@
242237
"name": "center",
243238
"data_type": "Point",
244239
"visibility": "private",
245-
"is_static": false,
246-
"is_const": false
240+
"is_static": false
247241
},
248242
{
249243
"name": "radius",
250244
"data_type": "f32",
251245
"visibility": "private",
252-
"is_static": false,
253-
"is_const": false
246+
"is_static": false
254247
}
255248
],
256249
"relationships": [
@@ -295,15 +288,13 @@
295288
"name": "origin",
296289
"data_type": "Point",
297290
"visibility": "private",
298-
"is_static": false,
299-
"is_const": false
291+
"is_static": false
300292
},
301293
{
302294
"name": "size",
303295
"data_type": "Size",
304296
"visibility": "private",
305-
"is_static": false,
306-
"is_const": false
297+
"is_static": false
307298
}
308299
],
309300
"relationships": [
@@ -339,8 +330,7 @@
339330
"name": "corner_radius",
340331
"data_type": "f32",
341332
"visibility": "private",
342-
"is_static": false,
343-
"is_const": false
333+
"is_static": false
344334
}
345335
],
346336
"relationships": [
@@ -364,19 +354,19 @@
364354
"enum_literals": [
365355
{
366356
"name": "De",
367-
"value": "Debug"
357+
"value": 0
368358
},
369359
{
370360
"name": "Info",
371-
"value": "Information"
361+
"value": 1
372362
},
373363
{
374364
"name": "Warn",
375-
"value": "Warnning"
365+
"value": 2
376366
},
377367
{
378368
"name": "Err",
379-
"value": "Error"
369+
"value": 3
380370
}
381371
],
382372
"source_file": "class_positive_test",

plantuml/parser/integration_test/class_diagram/class_diagram_relationship_variants/output.json

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -76,8 +76,7 @@
7676
"name": "WorkerStatus",
7777
"data_type": null,
7878
"visibility": "public",
79-
"is_static": false,
80-
"is_const": false
79+
"is_static": false
8180
}
8281
],
8382
"relationships": [

plantuml/parser/integration_test/class_diagram/class_diagram_syntax_coverage/output.json

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -198,7 +198,7 @@
198198
"enum_literals": [
199199
{
200200
"name": "kUnspecified",
201-
"value": null
201+
"value": 0
202202
}
203203
],
204204
"source_file": "class_diagram_syntax_coverage",
@@ -237,8 +237,7 @@
237237
"name": "ErrorInfo",
238238
"data_type": null,
239239
"visibility": "public",
240-
"is_static": false,
241-
"is_const": false
240+
"is_static": false
242241
}
243242
],
244243
"relationships": [
@@ -587,15 +586,13 @@
587586
"name": "config_",
588587
"data_type": "Config",
589588
"visibility": "private",
590-
"is_static": false,
591-
"is_const": false
589+
"is_static": false
592590
},
593591
{
594592
"name": "non_fatal_errors",
595593
"data_type": "{test::result::Error}",
596594
"visibility": "public",
597-
"is_static": false,
598-
"is_const": false
595+
"is_static": false
599596
}
600597
],
601598
"relationships": [
@@ -696,8 +693,7 @@
696693
"name": "",
697694
"data_type": "std::mutex",
698695
"visibility": "private",
699-
"is_static": false,
700-
"is_const": false
696+
"is_static": false
701697
}
702698
],
703699
"relationships": []

0 commit comments

Comments
 (0)