Line data Source code
1 : /* File: data_diagramelement.inl; Copyright and License: see below */
2 :
3 : #include "data_id.h"
4 : #include "u8/u8_trace.h"
5 : #include "u8/u8_log.h"
6 : #include <assert.h>
7 :
8 712 : static inline void data_diagramelement_init_empty ( data_diagramelement_t *this_ )
9 : {
10 712 : (*this_).id = DATA_ROW_ID_VOID;
11 712 : (*this_).diagram_id = DATA_ROW_ID_VOID;
12 712 : (*this_).classifier_id = DATA_ROW_ID_VOID;
13 712 : (*this_).display_flags = DATA_DIAGRAMELEMENT_FLAG_NONE;
14 712 : (*this_).focused_feature_id = DATA_ROW_ID_VOID;
15 712 : data_uuid_init_new( &((*this_).uuid) );
16 712 : }
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 23 : 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 23 : (*this_).id = DATA_ROW_ID_VOID;
31 23 : (*this_).diagram_id = diagram_id;
32 23 : (*this_).classifier_id = classifier_id;
33 23 : (*this_).focused_feature_id = focused_feature_id;
34 23 : (*this_).display_flags = display_flags;
35 23 : data_uuid_init_new( &((*this_).uuid) );
36 23 : }
37 :
38 792 : 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 792 : assert( NULL != uuid );
47 792 : u8_error_t result = U8_ERROR_NONE;
48 :
49 792 : (*this_).id = id;
50 792 : (*this_).diagram_id = diagram_id;
51 792 : (*this_).classifier_id = classifier_id;
52 792 : (*this_).focused_feature_id = focused_feature_id;
53 792 : (*this_).display_flags = display_flags;
54 792 : result |= data_uuid_init( &((*this_).uuid), uuid );
55 :
56 792 : return result;
57 : }
58 :
59 36 : 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 36 : assert( NULL != uuid );
68 36 : u8_error_t result = U8_ERROR_NONE;
69 :
70 36 : (*this_).id = id;
71 36 : (*this_).diagram_id = diagram_id;
72 36 : (*this_).classifier_id = classifier_id;
73 36 : (*this_).focused_feature_id = focused_feature_id;
74 36 : (*this_).display_flags = display_flags;
75 36 : result |= data_uuid_init( &((*this_).uuid), uuid );
76 :
77 36 : return result;
78 : }
79 :
80 58 : static inline void data_diagramelement_copy ( data_diagramelement_t *this_, const data_diagramelement_t *original )
81 : {
82 58 : (*this_) = (*original);
83 : /* repair the overwritten pointers */
84 58 : data_uuid_copy( &((*this_).uuid), &((*original).uuid) );
85 58 : }
86 :
87 82 : static inline void data_diagramelement_replace ( data_diagramelement_t *this_, const data_diagramelement_t *that )
88 : {
89 82 : (*this_) = (*that);
90 : /* repair the overwritten pointers */
91 82 : data_uuid_replace( &((*this_).uuid), &((*that).uuid) );
92 82 : }
93 :
94 190 : static inline void data_diagramelement_destroy ( data_diagramelement_t *this_ )
95 : {
96 190 : (*this_).id = DATA_ROW_ID_VOID;
97 190 : data_uuid_destroy( &((*this_).uuid) );
98 190 : }
99 :
100 172763 : static inline bool data_diagramelement_is_valid ( const data_diagramelement_t *this_ )
101 : {
102 172763 : return ( DATA_ROW_ID_VOID != (*this_).id );
103 : }
104 :
105 93 : static inline void data_diagramelement_trace ( const data_diagramelement_t *this_ )
106 : {
107 93 : U8_TRACE_INFO( "data_diagramelement_t" );
108 93 : U8_TRACE_INFO_INT( "- id:", (*this_).id );
109 93 : U8_TRACE_INFO_INT( "- diagram_id:", (*this_).diagram_id );
110 93 : U8_TRACE_INFO_INT( "- classifier_id:", (*this_).classifier_id );
111 93 : U8_TRACE_INFO_HEX( "- display_flags:", (*this_).display_flags );
112 93 : U8_TRACE_INFO_INT( "- focused_feature_id:", (*this_).focused_feature_id );
113 93 : U8_TRACE_INFO_STR( "- uuid:", data_uuid_get_string( &((*this_).uuid) ) );
114 93 : }
115 :
116 157 : static inline data_row_id_t data_diagramelement_get_row_id ( const data_diagramelement_t *this_ )
117 : {
118 157 : return (*this_).id;
119 : }
120 :
121 56 : static inline void data_diagramelement_set_row_id ( data_diagramelement_t *this_, data_row_id_t id )
122 : {
123 56 : (*this_).id = id;
124 56 : }
125 :
126 20 : static inline data_id_t data_diagramelement_get_data_id ( const data_diagramelement_t *this_ )
127 : {
128 : data_id_t result;
129 20 : data_id_init ( &result, DATA_TABLE_DIAGRAMELEMENT, (*this_).id );
130 20 : return result;
131 : }
132 :
133 241 : static inline data_row_id_t data_diagramelement_get_diagram_row_id ( const data_diagramelement_t *this_ )
134 : {
135 241 : return (*this_).diagram_id;
136 : }
137 :
138 0 : static inline void data_diagramelement_set_diagram_row_id ( data_diagramelement_t *this_, data_row_id_t diagram_id )
139 : {
140 0 : (*this_).diagram_id = diagram_id;
141 0 : }
142 :
143 5 : static inline data_id_t data_diagramelement_get_diagram_data_id ( const data_diagramelement_t *this_ )
144 : {
145 : data_id_t result;
146 5 : data_id_init ( &result, DATA_TABLE_DIAGRAM, (*this_).diagram_id );
147 5 : return result;
148 : }
149 :
150 116 : static inline data_row_id_t data_diagramelement_get_classifier_row_id ( const data_diagramelement_t *this_ )
151 : {
152 116 : return (*this_).classifier_id;
153 : }
154 :
155 7 : static inline void data_diagramelement_set_classifier_row_id ( data_diagramelement_t *this_, data_row_id_t classifier_id )
156 : {
157 7 : (*this_).classifier_id = classifier_id;
158 7 : }
159 :
160 18 : static inline data_id_t data_diagramelement_get_classifier_data_id ( const data_diagramelement_t *this_ )
161 : {
162 : data_id_t result;
163 18 : data_id_init ( &result, DATA_TABLE_CLASSIFIER, (*this_).classifier_id );
164 18 : return result;
165 : }
166 :
167 35358 : static inline data_row_id_t data_diagramelement_get_focused_feature_row_id ( const data_diagramelement_t *this_ )
168 : {
169 35358 : return (*this_).focused_feature_id;
170 : }
171 :
172 90 : static inline void data_diagramelement_set_focused_feature_row_id ( data_diagramelement_t *this_, data_row_id_t focused_feature_id )
173 : {
174 90 : (*this_).focused_feature_id = focused_feature_id;
175 90 : }
176 :
177 1 : static inline data_id_t data_diagramelement_get_focused_feature_data_id ( const data_diagramelement_t *this_ )
178 : {
179 : data_id_t result;
180 1 : if ( (*this_).focused_feature_id == DATA_ROW_ID_VOID )
181 : {
182 0 : data_id_init_void ( &result );
183 : }
184 : else
185 : {
186 1 : data_id_init ( &result, DATA_TABLE_FEATURE, (*this_).focused_feature_id );
187 : }
188 1 : return result;
189 : }
190 :
191 368 : static inline data_diagramelement_flag_t data_diagramelement_get_display_flags ( const data_diagramelement_t *this_ )
192 : {
193 368 : return (*this_).display_flags;
194 : }
195 :
196 8 : static inline void data_diagramelement_set_display_flags ( data_diagramelement_t *this_, data_diagramelement_flag_t display_flags )
197 : {
198 8 : (*this_).display_flags = display_flags;
199 8 : }
200 :
201 122 : static inline const char *data_diagramelement_get_uuid_const ( const data_diagramelement_t *this_ )
202 : {
203 122 : return data_uuid_get_string( &((*this_).uuid) );
204 : }
205 :
206 7 : static inline u8_error_t data_diagramelement_set_uuid ( data_diagramelement_t *this_, const char *uuid )
207 : {
208 7 : assert( NULL != uuid );
209 :
210 7 : const u8_error_t result = data_uuid_reinit( &((*this_).uuid), uuid );
211 :
212 7 : 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 : */
|