Line data Source code
1 : /* File: data_classifier_type.c; Copyright and License: see below */
2 :
3 : #include "entity/data_classifier_type.h"
4 : #include <stddef.h>
5 : #include <assert.h>
6 :
7 : const data_classifier_type_t DATA_CLASSIFIER_TYPE_ARRAY [DATA_CLASSIFIER_TYPE_COUNT]
8 : = {
9 : DATA_CLASSIFIER_TYPE_BLOCK,
10 : DATA_CLASSIFIER_TYPE_CONSTRAINT_BLOCK,
11 : /* DATA_CLASSIFIER_TYPE_DEPRECATED_FEATURE, */
12 : DATA_CLASSIFIER_TYPE_REQUIREMENT,
13 : DATA_CLASSIFIER_TYPE_ACTOR,
14 : DATA_CLASSIFIER_TYPE_USE_CASE,
15 : DATA_CLASSIFIER_TYPE_SUBSYSTEM,
16 : DATA_CLASSIFIER_TYPE_ACTIVITY,
17 : DATA_CLASSIFIER_TYPE_STATE,
18 : DATA_CLASSIFIER_TYPE_INTERACTION_USE,
19 : DATA_CLASSIFIER_TYPE_NODE,
20 : DATA_CLASSIFIER_TYPE_COMPONENT,
21 : DATA_CLASSIFIER_TYPE_PART,
22 : DATA_CLASSIFIER_TYPE_INTERFACE,
23 : DATA_CLASSIFIER_TYPE_PACKAGE,
24 : DATA_CLASSIFIER_TYPE_CLASS,
25 : DATA_CLASSIFIER_TYPE_OBJECT,
26 : DATA_CLASSIFIER_TYPE_ARTIFACT,
27 : DATA_CLASSIFIER_TYPE_COMMENT,
28 : DATA_CLASSIFIER_TYPE_IMAGE,
29 : DATA_CLASSIFIER_TYPE_STEREOTYPE,
30 : DATA_CLASSIFIER_TYPE_DYN_INTERRUPTABLE_REGION,
31 : DATA_CLASSIFIER_TYPE_DYN_INITIAL_NODE,
32 : DATA_CLASSIFIER_TYPE_DYN_FINAL_NODE,
33 : DATA_CLASSIFIER_TYPE_DYN_FORK_NODE,
34 : DATA_CLASSIFIER_TYPE_DYN_JOIN_NODE,
35 : DATA_CLASSIFIER_TYPE_DYN_DECISION_NODE,
36 : DATA_CLASSIFIER_TYPE_DYN_SHALLOW_HISTORY,
37 : DATA_CLASSIFIER_TYPE_DYN_DEEP_HISTORY,
38 : DATA_CLASSIFIER_TYPE_DYN_ACCEPT_EVENT,
39 : DATA_CLASSIFIER_TYPE_DYN_ACCEPT_TIME_EVENT,
40 : DATA_CLASSIFIER_TYPE_DYN_SEND_SIGNAL,
41 : DATA_CLASSIFIER_TYPE_INTERACTION
42 : };
43 :
44 : static const char *const DATA_CLASSIFIER_TYPE_NAME_ARRAY [DATA_CLASSIFIER_TYPE_HASH_MOD]
45 : = {
46 : /* 0x0 .. 0x9 */
47 : [0xa] = "",
48 : [0xb] = "",
49 : [0xc] = "",
50 : [0xd] = "",
51 : [0xe] = "",
52 : [ DATA_CLASSIFIER_TYPE_BLOCK % DATA_CLASSIFIER_TYPE_HASH_MOD ] = "Block",
53 : /* 0x10 .. 0x14 */
54 : [ DATA_CLASSIFIER_TYPE_CONSTRAINT_BLOCK % DATA_CLASSIFIER_TYPE_HASH_MOD ] = "Constraint Block",
55 : [0x16] = "",
56 : [0x17] = "",
57 : [ DATA_CLASSIFIER_TYPE_REQUIREMENT % DATA_CLASSIFIER_TYPE_HASH_MOD ] = "Requirement",
58 : [ DATA_CLASSIFIER_TYPE_ACTOR % DATA_CLASSIFIER_TYPE_HASH_MOD ] = "Actor",
59 : [ DATA_CLASSIFIER_TYPE_USE_CASE % DATA_CLASSIFIER_TYPE_HASH_MOD ] = "Use Case",
60 : [ DATA_CLASSIFIER_TYPE_SUBSYSTEM % DATA_CLASSIFIER_TYPE_HASH_MOD ] = "Subsystem",
61 : [0x1c] = "",
62 : [0x1d] = "",
63 : [0x1e] = "",
64 : [0x1f] = "",
65 : [0x20] = "",
66 : [0x21] = "",
67 : [0x22] = "",
68 : [ DATA_CLASSIFIER_TYPE_ACTIVITY % DATA_CLASSIFIER_TYPE_HASH_MOD ] = "Activity",
69 : [ DATA_CLASSIFIER_TYPE_STATE % DATA_CLASSIFIER_TYPE_HASH_MOD ] = "State",
70 : [ DATA_CLASSIFIER_TYPE_INTERACTION_USE % DATA_CLASSIFIER_TYPE_HASH_MOD ] = "Interaction Use",
71 : [0x26] = "",
72 : [0x27] = "",
73 : /* 0x28 is DATA_CLASSIFIER_TYPE_INTERACTION */
74 : [0x29] = "",
75 : [0x2a] = "",
76 : [0x2b] = "",
77 : [0x2c] = "",
78 : [ DATA_CLASSIFIER_TYPE_NODE % DATA_CLASSIFIER_TYPE_HASH_MOD ] = "Node",
79 : [ DATA_CLASSIFIER_TYPE_COMPONENT % DATA_CLASSIFIER_TYPE_HASH_MOD ] = "Component",
80 : [ DATA_CLASSIFIER_TYPE_PART % DATA_CLASSIFIER_TYPE_HASH_MOD ] = "Part",
81 : [ DATA_CLASSIFIER_TYPE_INTERFACE % DATA_CLASSIFIER_TYPE_HASH_MOD ] = "Interface",
82 : [ DATA_CLASSIFIER_TYPE_PACKAGE % DATA_CLASSIFIER_TYPE_HASH_MOD ] = "Package",
83 : [ DATA_CLASSIFIER_TYPE_CLASS % DATA_CLASSIFIER_TYPE_HASH_MOD ] = "Class",
84 : [ DATA_CLASSIFIER_TYPE_OBJECT % DATA_CLASSIFIER_TYPE_HASH_MOD ] = "Object",
85 : [ DATA_CLASSIFIER_TYPE_ARTIFACT % DATA_CLASSIFIER_TYPE_HASH_MOD ] = "Artifact",
86 : [0x35] = "",
87 : [0x36] = "",
88 : [ DATA_CLASSIFIER_TYPE_COMMENT % DATA_CLASSIFIER_TYPE_HASH_MOD ] = "Comment",
89 : [0x38] = "",
90 : [0x39] = "",
91 : [0x3a] = "",
92 : [0x3b] = "",
93 : [0x3c] = "",
94 : [0x3d] = "",
95 : [0x3e] = "",
96 : [ DATA_CLASSIFIER_TYPE_IMAGE % DATA_CLASSIFIER_TYPE_HASH_MOD ] = "Image",
97 : [ DATA_CLASSIFIER_TYPE_STEREOTYPE % DATA_CLASSIFIER_TYPE_HASH_MOD ] = "Stereotype",
98 : [0x41] = "",
99 : [0x42] = "",
100 : [0x43] = "",
101 : [0x44] = "",
102 : [0x45] = "",
103 : [0x46] = "",
104 : [0x47] = "",
105 : [0x48] = "",
106 : [0x49] = "",
107 : [0x4a] = "",
108 : /* 0x0 .. 0x9 */
109 : [ DATA_CLASSIFIER_TYPE_DYN_INTERRUPTABLE_REGION % DATA_CLASSIFIER_TYPE_HASH_MOD ] = "Interruptable Region",
110 : [ DATA_CLASSIFIER_TYPE_DYN_INITIAL_NODE % DATA_CLASSIFIER_TYPE_HASH_MOD ] = "Initial Node",
111 : [ DATA_CLASSIFIER_TYPE_DYN_FINAL_NODE % DATA_CLASSIFIER_TYPE_HASH_MOD ] = "Final Node",
112 : [0x3] = "",
113 : [ DATA_CLASSIFIER_TYPE_DYN_FORK_NODE % DATA_CLASSIFIER_TYPE_HASH_MOD ] = "Fork",
114 : [ DATA_CLASSIFIER_TYPE_DYN_JOIN_NODE % DATA_CLASSIFIER_TYPE_HASH_MOD ] = "Join",
115 : [0x6] = "",
116 : [ DATA_CLASSIFIER_TYPE_DYN_DECISION_NODE % DATA_CLASSIFIER_TYPE_HASH_MOD ] = "Decision",
117 : [ DATA_CLASSIFIER_TYPE_DYN_SHALLOW_HISTORY % DATA_CLASSIFIER_TYPE_HASH_MOD ] = "Shallow History",
118 : [ DATA_CLASSIFIER_TYPE_DYN_DEEP_HISTORY % DATA_CLASSIFIER_TYPE_HASH_MOD ] = "Deep History",
119 : /* 0x10 .. 0x14 */
120 : [0x10] = "",
121 : [ DATA_CLASSIFIER_TYPE_DYN_ACCEPT_EVENT % DATA_CLASSIFIER_TYPE_HASH_MOD ] = "Accept Event",
122 : [ DATA_CLASSIFIER_TYPE_DYN_ACCEPT_TIME_EVENT % DATA_CLASSIFIER_TYPE_HASH_MOD ] = "Time Event",
123 : [0x13] = "",
124 : [ DATA_CLASSIFIER_TYPE_DYN_SEND_SIGNAL % DATA_CLASSIFIER_TYPE_HASH_MOD ] = "Send Signal",
125 : /* 0x28 is DATA_CLASSIFIER_TYPE_INTERACTION */
126 : [ DATA_CLASSIFIER_TYPE_INTERACTION % DATA_CLASSIFIER_TYPE_HASH_MOD ] = "Interaction",
127 : };
128 :
129 376 : const char * data_classifier_type_get_name( data_classifier_type_t this_ )
130 : {
131 0 : const char * result
132 376 : = ( this_ == DATA_CLASSIFIER_TYPE_VOID ) ? "" : DATA_CLASSIFIER_TYPE_NAME_ARRAY[ this_ % DATA_CLASSIFIER_TYPE_HASH_MOD ];
133 376 : assert( result != NULL );
134 376 : return ( result == NULL ) ? "" : result;
135 : }
136 :
137 :
138 : /*
139 : Copyright 2021-2025 Andreas Warnke
140 :
141 : Licensed under the Apache License, Version 2.0 (the "License");
142 : you may not use this file except in compliance with the License.
143 : You may obtain a copy of the License at
144 :
145 : http://www.apache.org/licenses/LICENSE-2.0
146 :
147 : Unless required by applicable law or agreed to in writing, software
148 : distributed under the License is distributed on an "AS IS" BASIS,
149 : WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
150 : See the License for the specific language governing permissions and
151 : limitations under the License.
152 : */
|