Line data Source code
1 : /* File: data_diagram_type.c; Copyright and License: see below */
2 :
3 : #include "entity/data_diagram_type.h"
4 : #include <stddef.h>
5 : #include <assert.h>
6 :
7 : const data_diagram_type_t DATA_DIAGRAM_TYPE_ARRAY [DATA_DIAGRAM_TYPE_COUNT]
8 : = {
9 : DATA_DIAGRAM_TYPE_LIST,
10 : DATA_DIAGRAM_TYPE_BOX_DIAGRAM,
11 : DATA_DIAGRAM_TYPE_SYSML_BLOCK_DEFINITION_DIAGRAM,
12 : DATA_DIAGRAM_TYPE_SYSML_INTERNAL_BLOCK_DIAGRAM,
13 : DATA_DIAGRAM_TYPE_SYSML_PARAMETRIC_DIAGRAM,
14 : DATA_DIAGRAM_TYPE_SYSML_REQUIREMENTS_DIAGRAM,
15 : DATA_DIAGRAM_TYPE_UML_USE_CASE_DIAGRAM,
16 : DATA_DIAGRAM_TYPE_UML_ACTIVITY_DIAGRAM,
17 : DATA_DIAGRAM_TYPE_UML_STATE_MACHINE_DIAGRAM,
18 : DATA_DIAGRAM_TYPE_UML_SEQUENCE_DIAGRAM,
19 : DATA_DIAGRAM_TYPE_UML_COMMUNICATION_DIAGRAM,
20 : /* DATA_DIAGRAM_TYPE_DEPRECATED_INTERACTION_OVERVIEW_DIAGRAM, */
21 : DATA_DIAGRAM_TYPE_UML_TIMING_DIAGRAM,
22 : DATA_DIAGRAM_TYPE_INTERACTION_OVERVIEW_DIAGRAM,
23 : DATA_DIAGRAM_TYPE_UML_DEPLOYMENT_DIAGRAM,
24 : DATA_DIAGRAM_TYPE_UML_COMPONENT_DIAGRAM,
25 : DATA_DIAGRAM_TYPE_UML_COMPOSITE_STRUCTURE_DIAGRAM,
26 : DATA_DIAGRAM_TYPE_UML_PACKAGE_DIAGRAM,
27 : DATA_DIAGRAM_TYPE_UML_CLASS_DIAGRAM,
28 : DATA_DIAGRAM_TYPE_UML_PROFILE_DIAGRAM
29 : };
30 :
31 : static const char *const DATA_DIAGRAM_TYPE_NAME_ARRAY [DATA_DIAGRAM_TYPE_HASH_MOD]
32 : = {
33 : [ DATA_DIAGRAM_TYPE_LIST ] = "List",
34 : [ DATA_DIAGRAM_TYPE_BOX_DIAGRAM ] = "Box Overview",
35 : [2] = "",
36 : [3] = "",
37 : [ DATA_DIAGRAM_TYPE_SYSML_BLOCK_DEFINITION_DIAGRAM ] = "Block Definition Diagram",
38 : [ DATA_DIAGRAM_TYPE_SYSML_INTERNAL_BLOCK_DIAGRAM ] = "Internal Block Diagram",
39 : [6] = "",
40 : [ DATA_DIAGRAM_TYPE_SYSML_PARAMETRIC_DIAGRAM ] = "Parametric Diagram",
41 : [8] = "",
42 : [ DATA_DIAGRAM_TYPE_SYSML_REQUIREMENTS_DIAGRAM ] = "Requirement Diagram",
43 : [ DATA_DIAGRAM_TYPE_UML_USE_CASE_DIAGRAM ] = "Use Case Diagram",
44 : [ DATA_DIAGRAM_TYPE_UML_ACTIVITY_DIAGRAM ] = "Activity Diagram",
45 : [ DATA_DIAGRAM_TYPE_UML_STATE_MACHINE_DIAGRAM ] = "State Diagram",
46 : [ DATA_DIAGRAM_TYPE_UML_SEQUENCE_DIAGRAM ] = "Sequence Diagram",
47 : [ DATA_DIAGRAM_TYPE_UML_COMMUNICATION_DIAGRAM ] = "Communication Diagram",
48 : [15] = "",
49 : [ DATA_DIAGRAM_TYPE_UML_TIMING_DIAGRAM ] = "Timing Diagram",
50 : [ DATA_DIAGRAM_TYPE_INTERACTION_OVERVIEW_DIAGRAM ] = "Interation Overview Diagram",
51 : [18] = "",
52 : [19] = "",
53 : [20] = "",
54 : [21] = "",
55 : [22] = "",
56 : [23] = "",
57 : [24] = "",
58 : [25] = "",
59 : [26] = "",
60 : [27] = "",
61 : [28] = "",
62 : [29] = "",
63 : [ DATA_DIAGRAM_TYPE_UML_DEPLOYMENT_DIAGRAM ] = "Deployment Diagram",
64 : [ DATA_DIAGRAM_TYPE_UML_COMPONENT_DIAGRAM ] = "Component Diagram",
65 : [ DATA_DIAGRAM_TYPE_UML_COMPOSITE_STRUCTURE_DIAGRAM ] = "Composite Structure Diagram",
66 : [ DATA_DIAGRAM_TYPE_UML_PACKAGE_DIAGRAM ] = "Package Diagram",
67 : [ DATA_DIAGRAM_TYPE_UML_CLASS_DIAGRAM ] = "Class Diagram",
68 : [35] = "",
69 : [36] = "",
70 : [37] = "",
71 : [38] = "",
72 : [ DATA_DIAGRAM_TYPE_UML_PROFILE_DIAGRAM ] = "Profile Diagram",
73 : };
74 :
75 : static const char *const DATA_DIAGRAM_TYPE_ELEMENT_KIND_ARRAY [DATA_DIAGRAM_TYPE_HASH_MOD]
76 : = {
77 : [ DATA_DIAGRAM_TYPE_LIST ] = "", /* "list" */
78 : [ DATA_DIAGRAM_TYPE_BOX_DIAGRAM ] = "", /* "box" */
79 : [2] = "",
80 : [3] = "",
81 : [ DATA_DIAGRAM_TYPE_SYSML_BLOCK_DEFINITION_DIAGRAM ] = "bdd",
82 : [ DATA_DIAGRAM_TYPE_SYSML_INTERNAL_BLOCK_DIAGRAM ] = "ibd",
83 : [6] = "",
84 : [ DATA_DIAGRAM_TYPE_SYSML_PARAMETRIC_DIAGRAM ] = "par", /* "parametric" */
85 : [8] = "",
86 : [ DATA_DIAGRAM_TYPE_SYSML_REQUIREMENTS_DIAGRAM ] = "req", /* "requirements" */
87 : [ DATA_DIAGRAM_TYPE_UML_USE_CASE_DIAGRAM ] = "uc", /* "use case" */
88 : [ DATA_DIAGRAM_TYPE_UML_ACTIVITY_DIAGRAM ] = "act", /* "activity" */
89 : [ DATA_DIAGRAM_TYPE_UML_STATE_MACHINE_DIAGRAM ] = "stm", /* "state machine" */
90 : [ DATA_DIAGRAM_TYPE_UML_SEQUENCE_DIAGRAM ] = "sd", /* "interaction" */
91 : [ DATA_DIAGRAM_TYPE_UML_COMMUNICATION_DIAGRAM ] = "sd", /* "interaction" */
92 : [15] = "",
93 : [ DATA_DIAGRAM_TYPE_UML_TIMING_DIAGRAM ] = "sd", /* "interaction" */
94 : [ DATA_DIAGRAM_TYPE_INTERACTION_OVERVIEW_DIAGRAM ] = "sd", /* "interaction" */
95 : [18] = "",
96 : [19] = "",
97 : [20] = "",
98 : [21] = "",
99 : [22] = "",
100 : [23] = "",
101 : [24] = "",
102 : [25] = "",
103 : [26] = "",
104 : [27] = "",
105 : [28] = "",
106 : [29] = "",
107 : [ DATA_DIAGRAM_TYPE_UML_DEPLOYMENT_DIAGRAM ] = "dep", /* "deployment" */
108 : [ DATA_DIAGRAM_TYPE_UML_COMPONENT_DIAGRAM ] = "cmp", /* "component" */
109 : [ DATA_DIAGRAM_TYPE_UML_COMPOSITE_STRUCTURE_DIAGRAM ] = "composite",
110 : [ DATA_DIAGRAM_TYPE_UML_PACKAGE_DIAGRAM ] = "pkg", /* "package" */
111 : [ DATA_DIAGRAM_TYPE_UML_CLASS_DIAGRAM ] = "class",
112 : [35] = "",
113 : [36] = "",
114 : [37] = "",
115 : [38] = "",
116 : [ DATA_DIAGRAM_TYPE_UML_PROFILE_DIAGRAM ] = "profile",
117 : };
118 :
119 302 : const char * data_diagram_type_get_name( data_diagram_type_t this_ )
120 : {
121 0 : const char * result
122 302 : = ( this_ == DATA_DIAGRAM_TYPE_VOID ) ? "" : DATA_DIAGRAM_TYPE_NAME_ARRAY[ this_ % DATA_DIAGRAM_TYPE_HASH_MOD ];
123 302 : assert( result != NULL );
124 302 : return ( result == NULL ) ? "" : result;
125 : }
126 :
127 1 : const char * data_diagram_type_get_element_kind( data_diagram_type_t this_ )
128 : {
129 0 : const char * result
130 1 : = ( this_ == DATA_DIAGRAM_TYPE_VOID ) ? "" : DATA_DIAGRAM_TYPE_ELEMENT_KIND_ARRAY[ this_ % DATA_DIAGRAM_TYPE_HASH_MOD ];
131 1 : assert( result != NULL );
132 1 : return ( result == NULL ) ? "" : result;
133 : }
134 :
135 :
136 : /*
137 : Copyright 2021-2026 Andreas Warnke
138 :
139 : Licensed under the Apache License, Version 2.0 (the "License");
140 : you may not use this file except in compliance with the License.
141 : You may obtain a copy of the License at
142 :
143 : http://www.apache.org/licenses/LICENSE-2.0
144 :
145 : Unless required by applicable law or agreed to in writing, software
146 : distributed under the License is distributed on an "AS IS" BASIS,
147 : WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
148 : See the License for the specific language governing permissions and
149 : limitations under the License.
150 : */
|