Line data Source code
1 : /* File: io_element_writer.inl; Copyright and License: see below */
2 :
3 : #include <assert.h>
4 :
5 0 : static inline void io_element_writer_private_init( io_element_writer_t *this_,
6 : const io_element_writer_if_t *interface,
7 : io_element_writer_impl_t* objectdata )
8 : {
9 0 : assert( interface != NULL );
10 0 : assert( objectdata != NULL );
11 0 : (*this_).interface = interface;
12 0 : (*this_).objectdata = objectdata;
13 0 : }
14 :
15 0 : static inline u8_error_t io_element_writer_private_destroy( io_element_writer_t *this_ )
16 : {
17 0 : assert( (*this_).interface != NULL );
18 0 : assert( (*this_).objectdata != NULL );
19 : /*u8_error_t result = (*( (*( (*this_).interface )).destroy )) ( (*this_).objectdata );*/
20 0 : (*this_).interface = NULL;
21 0 : (*this_).objectdata = NULL;
22 : /*return result;*/
23 0 : return 0;
24 : }
25 :
26 : static inline const io_element_writer_if_t* io_element_writer_get_interface ( io_element_writer_t *this_ )
27 : {
28 : assert( (*this_).interface != NULL );
29 : return (*this_).interface;
30 : }
31 :
32 : static inline io_element_writer_impl_t* io_element_writer_get_objectdata ( io_element_writer_t *this_ )
33 : {
34 : assert( (*this_).objectdata != NULL );
35 : return (*this_).objectdata;
36 : }
37 :
38 0 : static inline u8_error_t io_element_writer_write_header( io_element_writer_t *this_, const char *document_title )
39 : {
40 0 : assert( (*this_).interface != NULL );
41 0 : assert( (*this_).objectdata != NULL );
42 0 : assert( (*((*this_).interface)).write_header != NULL );
43 0 : return (*( (*((*this_).interface)).write_header )) ( (*this_).objectdata, document_title );
44 : }
45 :
46 0 : static inline u8_error_t io_element_writer_start_main( io_element_writer_t *this_, const char *document_title )
47 : {
48 0 : assert( (*this_).interface != NULL );
49 0 : assert( (*this_).objectdata != NULL );
50 0 : assert( (*((*this_).interface)).start_main != NULL );
51 0 : return (*( (*((*this_).interface)).start_main )) ( (*this_).objectdata, document_title );
52 : }
53 :
54 0 : static inline bool io_element_writer_can_classifier_nest_classifier( io_element_writer_t *this_,
55 : data_classifier_type_t host_type,
56 : data_classifier_type_t child_type )
57 : {
58 0 : assert( (*this_).interface != NULL );
59 0 : assert( (*this_).objectdata != NULL );
60 0 : assert( (*((*this_).interface)).can_classifier_nest_classifier != NULL );
61 0 : return (*( (*((*this_).interface)).can_classifier_nest_classifier )) ( (*this_).objectdata, host_type, child_type );
62 : }
63 :
64 0 : static inline bool io_element_writer_can_classifier_nest_relationship( io_element_writer_t *this_,
65 : data_classifier_type_t host_type,
66 : data_relationship_type_t child_type )
67 : {
68 0 : assert( (*this_).interface != NULL );
69 0 : assert( (*this_).objectdata != NULL );
70 0 : assert( (*((*this_).interface)).can_classifier_nest_relationship != NULL );
71 0 : return (*( (*((*this_).interface)).can_classifier_nest_relationship )) ( (*this_).objectdata, host_type, child_type );
72 : }
73 :
74 0 : static inline u8_error_t io_element_writer_start_classifier( io_element_writer_t *this_,
75 : data_classifier_type_t host_type,
76 : const data_classifier_t *classifier_ptr
77 : )
78 : {
79 0 : assert( (*this_).interface != NULL );
80 0 : assert( (*this_).objectdata != NULL );
81 0 : assert( (*((*this_).interface)).start_classifier != NULL );
82 0 : return (*( (*((*this_).interface)).start_classifier )) ( (*this_).objectdata, host_type, classifier_ptr );
83 : }
84 :
85 0 : static inline u8_error_t io_element_writer_assemble_classifier( io_element_writer_t *this_,
86 : data_classifier_type_t host_type,
87 : const data_classifier_t *classifier_ptr )
88 : {
89 0 : assert( (*this_).interface != NULL );
90 0 : assert( (*this_).objectdata != NULL );
91 0 : assert( (*((*this_).interface)).assemble_classifier != NULL );
92 0 : return (*( (*((*this_).interface)).assemble_classifier )) ( (*this_).objectdata, host_type, classifier_ptr );
93 : }
94 :
95 0 : static inline u8_error_t io_element_writer_end_classifier( io_element_writer_t *this_,
96 : data_classifier_type_t host_type,
97 : const data_classifier_t *classifier_ptr )
98 : {
99 0 : assert( (*this_).interface != NULL );
100 0 : assert( (*this_).objectdata != NULL );
101 0 : assert( (*((*this_).interface)).end_classifier != NULL );
102 0 : return (*( (*((*this_).interface)).end_classifier )) ( (*this_).objectdata, host_type, classifier_ptr );
103 : }
104 :
105 0 : static inline u8_error_t io_element_writer_start_feature( io_element_writer_t *this_,
106 : data_classifier_type_t parent_type,
107 : const data_feature_t *feature_ptr )
108 : {
109 0 : assert( (*this_).interface != NULL );
110 0 : assert( (*this_).objectdata != NULL );
111 0 : assert( (*((*this_).interface)).start_feature != NULL );
112 0 : return (*( (*((*this_).interface)).start_feature )) ( (*this_).objectdata, parent_type, feature_ptr );
113 : }
114 :
115 0 : static inline u8_error_t io_element_writer_assemble_feature( io_element_writer_t *this_,
116 : const data_classifier_t *parent,
117 : const data_feature_t *feature_ptr )
118 : {
119 0 : assert( (*this_).interface != NULL );
120 0 : assert( (*this_).objectdata != NULL );
121 0 : assert( (*((*this_).interface)).assemble_feature != NULL );
122 0 : return (*( (*((*this_).interface)).assemble_feature )) ( (*this_).objectdata, parent, feature_ptr );
123 : }
124 :
125 0 : static inline u8_error_t io_element_writer_end_feature( io_element_writer_t *this_,
126 : data_classifier_type_t parent_type,
127 : const data_feature_t *feature_ptr )
128 : {
129 0 : assert( (*this_).interface != NULL );
130 0 : assert( (*this_).objectdata != NULL );
131 0 : assert( (*((*this_).interface)).end_feature != NULL );
132 0 : return (*( (*((*this_).interface)).end_feature )) ( (*this_).objectdata, parent_type, feature_ptr );
133 : }
134 :
135 0 : static inline u8_error_t io_element_writer_start_relationship( io_element_writer_t *this_,
136 : data_classifier_type_t host_type,
137 : const data_relationship_t *relation_ptr )
138 : {
139 0 : assert( (*this_).interface != NULL );
140 0 : assert( (*this_).objectdata != NULL );
141 0 : assert( (*((*this_).interface)).start_relationship != NULL );
142 0 : return (*( (*((*this_).interface)).start_relationship )) ( (*this_).objectdata, host_type, relation_ptr );
143 : }
144 :
145 0 : static inline u8_error_t io_element_writer_assemble_relationship( io_element_writer_t *this_,
146 : const data_classifier_t *host,
147 : const data_relationship_t *relation_ptr,
148 : const data_classifier_t *from_c,
149 : const data_feature_t *from_f,
150 : const data_classifier_t *to_c,
151 : const data_feature_t *to_f )
152 : {
153 0 : assert( (*this_).interface != NULL );
154 0 : assert( (*this_).objectdata != NULL );
155 0 : assert( (*((*this_).interface)).assemble_relationship != NULL );
156 0 : return (*( (*((*this_).interface)).assemble_relationship )) ( (*this_).objectdata,
157 : host,
158 : relation_ptr,
159 : from_c,
160 : from_f,
161 : to_c,
162 : to_f
163 : );
164 : }
165 :
166 0 : static inline u8_error_t io_element_writer_end_relationship( io_element_writer_t *this_,
167 : data_classifier_type_t host_type,
168 : const data_relationship_t *relation_ptr )
169 : {
170 0 : assert( (*this_).interface != NULL );
171 0 : assert( (*this_).objectdata != NULL );
172 0 : assert( (*((*this_).interface)).end_relationship != NULL );
173 0 : return (*( (*((*this_).interface)).end_relationship )) ( (*this_).objectdata, host_type, relation_ptr );
174 : }
175 :
176 0 : static inline u8_error_t io_element_writer_start_diagram( io_element_writer_t *this_, const data_diagram_t *diag_ptr )
177 : {
178 0 : assert( (*this_).interface != NULL );
179 0 : assert( (*this_).objectdata != NULL );
180 0 : assert( (*((*this_).interface)).start_diagram != NULL );
181 0 : return (*( (*((*this_).interface)).start_diagram )) ( (*this_).objectdata, diag_ptr );
182 : }
183 :
184 0 : static inline u8_error_t io_element_writer_assemble_diagram( io_element_writer_t *this_,
185 : const data_diagram_t *parent,
186 : const data_diagram_t *diag_ptr,
187 : const char *diagram_file_base_name )
188 : {
189 0 : assert( (*this_).interface != NULL );
190 0 : assert( (*this_).objectdata != NULL );
191 0 : assert( (*((*this_).interface)).assemble_diagram != NULL );
192 0 : return (*( (*((*this_).interface)).assemble_diagram )) ( (*this_).objectdata, parent, diag_ptr, diagram_file_base_name );
193 : }
194 :
195 0 : static inline u8_error_t io_element_writer_end_diagram( io_element_writer_t *this_, const data_diagram_t *diag_ptr )
196 : {
197 0 : assert( (*this_).interface != NULL );
198 0 : assert( (*this_).objectdata != NULL );
199 0 : assert( (*((*this_).interface)).end_diagram != NULL );
200 0 : return (*( (*((*this_).interface)).end_diagram )) ( (*this_).objectdata, diag_ptr );
201 : }
202 :
203 0 : static inline u8_error_t io_element_writer_start_diagramelement( io_element_writer_t *this_,
204 : const data_diagram_t *parent,
205 : const data_diagramelement_t *diagramelement_ptr )
206 : {
207 0 : assert( (*this_).interface != NULL );
208 0 : assert( (*this_).objectdata != NULL );
209 0 : assert( (*((*this_).interface)).start_diagramelement != NULL );
210 0 : return (*( (*((*this_).interface)).start_diagramelement )) ( (*this_).objectdata, parent, diagramelement_ptr );
211 : }
212 :
213 0 : static inline u8_error_t io_element_writer_assemble_diagramelement( io_element_writer_t *this_,
214 : const data_diagram_t *parent,
215 : const data_diagramelement_t *diagramelement_ptr,
216 : const data_classifier_t *occurrence,
217 : const data_feature_t *feat_occur )
218 : {
219 0 : assert( (*this_).interface != NULL );
220 0 : assert( (*this_).objectdata != NULL );
221 0 : assert( (*((*this_).interface)).assemble_diagramelement != NULL );
222 0 : return (*( (*((*this_).interface)).assemble_diagramelement )) ( (*this_).objectdata,
223 : parent,
224 : diagramelement_ptr,
225 : occurrence,
226 : feat_occur
227 : );
228 : }
229 :
230 0 : static inline u8_error_t io_element_writer_end_diagramelement( io_element_writer_t *this_,
231 : const data_diagram_t *parent,
232 : const data_diagramelement_t *diagramelement_ptr )
233 : {
234 0 : assert( (*this_).interface != NULL );
235 0 : assert( (*this_).objectdata != NULL );
236 0 : assert( (*((*this_).interface)).end_diagramelement != NULL );
237 0 : return (*( (*((*this_).interface)).end_diagramelement )) ( (*this_).objectdata, parent, diagramelement_ptr );
238 : }
239 :
240 0 : static inline u8_error_t io_element_writer_end_main( io_element_writer_t *this_ )
241 : {
242 0 : assert( (*this_).interface != NULL );
243 0 : assert( (*this_).objectdata != NULL );
244 0 : assert( (*((*this_).interface)).end_main != NULL );
245 0 : return (*( (*((*this_).interface)).end_main )) ( (*this_).objectdata );
246 : }
247 :
248 0 : static inline u8_error_t io_element_writer_write_footer( io_element_writer_t *this_ )
249 : {
250 0 : assert( (*this_).interface != NULL );
251 0 : assert( (*this_).objectdata != NULL );
252 0 : assert( (*((*this_).interface)).write_footer != NULL );
253 0 : return (*( (*((*this_).interface)).write_footer )) ( (*this_).objectdata );
254 : }
255 :
256 :
257 : /*
258 : Copyright 2021-2024 Andreas Warnke
259 :
260 : Licensed under the Apache License, Version 2.0 (the "License");
261 : you may not use this file except in compliance with the License.
262 : You may obtain a copy of the License at
263 :
264 : http://www.apache.org/licenses/LICENSE-2.0
265 :
266 : Unless required by applicable law or agreed to in writing, software
267 : distributed under the License is distributed on an "AS IS" BASIS,
268 : WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
269 : See the License for the specific language governing permissions and
270 : limitations under the License.
271 : */
|