Line data Source code
1 : /* File: data_diagramelement.inl; Copyright and License: see below */
2 :
3 : #include "entity/data_id.h"
4 : #include "u8/u8_trace.h"
5 : #include "u8/u8_log.h"
6 : #include <assert.h>
7 :
8 1013 : static inline void data_diagramelement_init_empty ( data_diagramelement_t *this_ )
9 : {
10 1013 : (*this_).id = DATA_ROW_ID_VOID;
11 1013 : (*this_).diagram_id = DATA_ROW_ID_VOID;
12 1013 : (*this_).classifier_id = DATA_ROW_ID_VOID;
13 1013 : (*this_).display_flags = DATA_DIAGRAMELEMENT_FLAG_NONE;
14 1013 : (*this_).focused_feature_id = DATA_ROW_ID_VOID;
15 1013 : data_uuid_init_new( &((*this_).uuid) );
16 1013 : }
17 :
18 : static inline void data_diagramelement_reinit_empty ( data_diagramelement_t *this_ )
19 : {
20 : /* data_diagramelement_destroy( this_ ); -- not necessary */
21 : data_diagramelement_init_empty( this_ );
22 : }
23 :
24 24 : static inline void data_diagramelement_init_new ( data_diagramelement_t *this_,
25 : data_row_id_t diagram_id,
26 : data_row_id_t classifier_id,
27 : data_diagramelement_flag_t display_flags,
28 : data_row_id_t focused_feature_id )
29 : {
30 24 : (*this_).id = DATA_ROW_ID_VOID;
31 24 : (*this_).diagram_id = diagram_id;
32 24 : (*this_).classifier_id = classifier_id;
33 24 : (*this_).focused_feature_id = focused_feature_id;
34 24 : (*this_).display_flags = display_flags;
35 24 : data_uuid_init_new( &((*this_).uuid) );
36 24 : }
37 :
38 1056 : static inline u8_error_t data_diagramelement_init ( data_diagramelement_t *this_,
39 : data_row_id_t id,
40 : data_row_id_t diagram_id,
41 : data_row_id_t classifier_id,
42 : data_diagramelement_flag_t display_flags,
43 : data_row_id_t focused_feature_id,
44 : const char* uuid )
45 : {
46 1056 : assert( NULL != uuid );
47 1056 : u8_error_t result = U8_ERROR_NONE;
48 :
49 1056 : (*this_).id = id;
50 1056 : (*this_).diagram_id = diagram_id;
51 1056 : (*this_).classifier_id = classifier_id;
52 1056 : (*this_).focused_feature_id = focused_feature_id;
53 1056 : (*this_).display_flags = display_flags;
54 1056 : result |= data_uuid_init( &((*this_).uuid), uuid );
55 :
56 1056 : return result;
57 : }
58 :
59 168 : static inline u8_error_t data_diagramelement_reinit ( data_diagramelement_t *this_,
60 : data_row_id_t id,
61 : data_row_id_t diagram_id,
62 : data_row_id_t classifier_id,
63 : data_diagramelement_flag_t display_flags,
64 : data_row_id_t focused_feature_id,
65 : const char* uuid )
66 : {
67 168 : assert( NULL != uuid );
68 168 : u8_error_t result = U8_ERROR_NONE;
69 :
70 168 : (*this_).id = id;
71 168 : (*this_).diagram_id = diagram_id;
72 168 : (*this_).classifier_id = classifier_id;
73 168 : (*this_).focused_feature_id = focused_feature_id;
74 168 : (*this_).display_flags = display_flags;
75 168 : result |= data_uuid_init( &((*this_).uuid), uuid );
76 :
77 168 : return result;
78 : }
79 :
80 189 : static inline void data_diagramelement_copy ( data_diagramelement_t *this_, const data_diagramelement_t *original )
81 : {
82 189 : (*this_) = (*original);
83 : /* repair the overwritten pointers */
84 189 : data_uuid_copy( &((*this_).uuid), &((*original).uuid) );
85 189 : }
86 :
87 84 : static inline void data_diagramelement_replace ( data_diagramelement_t *this_, const data_diagramelement_t *that )
88 : {
89 84 : (*this_) = (*that);
90 : /* repair the overwritten pointers */
91 84 : data_uuid_replace( &((*this_).uuid), &((*that).uuid) );
92 84 : }
93 :
94 590 : static inline void data_diagramelement_destroy ( data_diagramelement_t *this_ )
95 : {
96 590 : (*this_).id = DATA_ROW_ID_VOID;
97 590 : data_uuid_destroy( &((*this_).uuid) );
98 590 : }
99 :
100 172778 : static inline bool data_diagramelement_is_valid ( const data_diagramelement_t *this_ )
101 : {
102 172778 : return ( DATA_ROW_ID_VOID != (*this_).id );
103 : }
104 :
105 224 : static inline void data_diagramelement_trace ( const data_diagramelement_t *this_ )
106 : {
107 224 : U8_TRACE_INFO( "data_diagramelement_t" );
108 224 : U8_TRACE_INFO_INT( "- id:", (*this_).id );
109 224 : U8_TRACE_INFO_INT( "- diagram_id:", (*this_).diagram_id );
110 224 : U8_TRACE_INFO_INT( "- classifier_id:", (*this_).classifier_id );
111 224 : U8_TRACE_INFO_HEX( "- display_flags:", (*this_).display_flags );
112 224 : U8_TRACE_INFO_INT( "- focused_feature_id:", (*this_).focused_feature_id );
113 224 : U8_TRACE_INFO_STR( "- uuid:", data_uuid_get_string( &((*this_).uuid) ) );
114 224 : }
115 :
116 300 : static inline data_row_id_t data_diagramelement_get_row_id ( const data_diagramelement_t *this_ )
117 : {
118 300 : return (*this_).id;
119 : }
120 :
121 57 : static inline void data_diagramelement_set_row_id ( data_diagramelement_t *this_, data_row_id_t id )
122 : {
123 57 : (*this_).id = id;
124 57 : }
125 :
126 21 : static inline data_id_t data_diagramelement_get_data_id ( const data_diagramelement_t *this_ )
127 : {
128 : data_id_t result;
129 21 : data_id_init ( &result, DATA_TABLE_DIAGRAMELEMENT, (*this_).id );
130 21 : return result;
131 : }
132 :
133 515 : static inline data_row_id_t data_diagramelement_get_diagram_row_id ( const data_diagramelement_t *this_ )
134 : {
135 515 : return (*this_).diagram_id;
136 : }
137 :
138 1 : static inline void data_diagramelement_set_diagram_row_id ( data_diagramelement_t *this_, data_row_id_t diagram_id )
139 : {
140 1 : (*this_).diagram_id = diagram_id;
141 1 : }
142 :
143 6 : static inline data_id_t data_diagramelement_get_diagram_data_id ( const data_diagramelement_t *this_ )
144 : {
145 : data_id_t result;
146 6 : data_id_init ( &result, DATA_TABLE_DIAGRAM, (*this_).diagram_id );
147 6 : return result;
148 : }
149 :
150 256 : static inline data_row_id_t data_diagramelement_get_classifier_row_id ( const data_diagramelement_t *this_ )
151 : {
152 256 : return (*this_).classifier_id;
153 : }
154 :
155 8 : static inline void data_diagramelement_set_classifier_row_id ( data_diagramelement_t *this_, data_row_id_t classifier_id )
156 : {
157 8 : (*this_).classifier_id = classifier_id;
158 8 : }
159 :
160 19 : static inline data_id_t data_diagramelement_get_classifier_data_id ( const data_diagramelement_t *this_ )
161 : {
162 : data_id_t result;
163 19 : data_id_init ( &result, DATA_TABLE_CLASSIFIER, (*this_).classifier_id );
164 19 : return result;
165 : }
166 :
167 35498 : static inline data_row_id_t data_diagramelement_get_focused_feature_row_id ( const data_diagramelement_t *this_ )
168 : {
169 35498 : return (*this_).focused_feature_id;
170 : }
171 :
172 222 : static inline void data_diagramelement_set_focused_feature_row_id ( data_diagramelement_t *this_, data_row_id_t focused_feature_id )
173 : {
174 222 : (*this_).focused_feature_id = focused_feature_id;
175 222 : }
176 :
177 3 : static inline data_id_t data_diagramelement_get_focused_feature_data_id ( const data_diagramelement_t *this_ )
178 : {
179 : data_id_t result;
180 3 : if ( (*this_).focused_feature_id == DATA_ROW_ID_VOID )
181 : {
182 1 : data_id_init_void ( &result );
183 : }
184 : else
185 : {
186 2 : data_id_init ( &result, DATA_TABLE_FEATURE, (*this_).focused_feature_id );
187 : }
188 3 : return result;
189 : }
190 :
191 507 : static inline data_diagramelement_flag_t data_diagramelement_get_display_flags ( const data_diagramelement_t *this_ )
192 : {
193 507 : return (*this_).display_flags;
194 : }
195 :
196 9 : static inline void data_diagramelement_set_display_flags ( data_diagramelement_t *this_, data_diagramelement_flag_t display_flags )
197 : {
198 9 : (*this_).display_flags = display_flags;
199 9 : }
200 :
201 265 : static inline const char *data_diagramelement_get_uuid_const ( const data_diagramelement_t *this_ )
202 : {
203 265 : return data_uuid_get_string( &((*this_).uuid) );
204 : }
205 :
206 10 : static inline u8_error_t data_diagramelement_set_uuid ( data_diagramelement_t *this_, const char *uuid )
207 : {
208 10 : assert( NULL != uuid );
209 :
210 10 : const u8_error_t result = data_uuid_reinit( &((*this_).uuid), uuid );
211 :
212 10 : return result;
213 : }
214 :
215 :
216 : /*
217 : Copyright 2016-2024 Andreas Warnke
218 :
219 : Licensed under the Apache License, Version 2.0 (the "License");
220 : you may not use this file except in compliance with the License.
221 : You may obtain a copy of the License at
222 :
223 : http://www.apache.org/licenses/LICENSE-2.0
224 :
225 : Unless required by applicable law or agreed to in writing, software
226 : distributed under the License is distributed on an "AS IS" BASIS,
227 : WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
228 : See the License for the specific language governing permissions and
229 : limitations under the License.
230 : */
|