1 /* hierarchychart.c generated by valac, the Vala compiler
2 * generated from hierarchychart.vala, do not modify */
3
4 /* hierarchychart.vala
5 *
6 * Copyright (C) 2008 Florian Brosch
7 *
8 * This library is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU Lesser General Public
10 * License as published by the Free Software Foundation; either
11 * version 2.1 of the License, or (at your option) any later version.
12 *
13 * This library is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 * Lesser General Public License for more details.
17 *
18 * You should have received a copy of the GNU Lesser General Public
19 * License along with this library; if not, write to the Free Software
20 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
21 *
22 * Author:
23 * Florian Brosch <flo.brosch@gmail.com>
24 */
25
26 #include "valadoc.h"
27 #include <glib.h>
28 #include <graphviz/gvc.h>
29 #include <valagee.h>
30 #include <glib-object.h>
31
32 enum {
33 VALADOC_CHARTS_HIERARCHY_0_PROPERTY,
34 VALADOC_CHARTS_HIERARCHY_NUM_PROPERTIES
35 };
36 static GParamSpec* valadoc_charts_hierarchy_properties[VALADOC_CHARTS_HIERARCHY_NUM_PROPERTIES];
37 #define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
38 #define _vala_iterator_unref0(var) ((var == NULL) ? NULL : (var = (vala_iterator_unref (var), NULL)))
39 #define _vala_iterable_unref0(var) ((var == NULL) ? NULL : (var = (vala_iterable_unref (var), NULL)))
40
41 static gpointer valadoc_charts_hierarchy_parent_class = NULL;
42
43 static void valadoc_charts_hierarchy_draw_implemented_interfaces (ValadocChartsHierarchy* self,
44 Agnode_t* child,
45 ValaCollection* interfaces);
46 static void valadoc_charts_hierarchy_draw_parent_classes (ValadocChartsHierarchy* self,
47 ValadocApiClass* item,
48 Agnode_t* child);
49 static void valadoc_charts_hierarchy_draw_parent_structs (ValadocChartsHierarchy* self,
50 ValadocApiStruct* item,
51 Agnode_t* child);
52 static void valadoc_charts_hierarchy_real_visit_interface (ValadocApiVisitor* base,
53 ValadocApiInterface* item);
54 static void valadoc_charts_hierarchy_real_visit_class (ValadocApiVisitor* base,
55 ValadocApiClass* item);
56 static void valadoc_charts_hierarchy_real_visit_struct (ValadocApiVisitor* base,
57 ValadocApiStruct* item);
58 static GType valadoc_charts_hierarchy_get_type_once (void);
59
60 ValadocChartsHierarchy*
valadoc_charts_hierarchy_construct(GType object_type,ValadocChartsFactory * factory,ValadocApiNode * node)61 valadoc_charts_hierarchy_construct (GType object_type,
62 ValadocChartsFactory* factory,
63 ValadocApiNode* node)
64 {
65 ValadocChartsHierarchy * self = NULL;
66 g_return_val_if_fail (factory != NULL, NULL);
67 g_return_val_if_fail (node != NULL, NULL);
68 self = (ValadocChartsHierarchy*) valadoc_charts_chart_construct (object_type, factory, node);
69 return self;
70 }
71
72 ValadocChartsHierarchy*
valadoc_charts_hierarchy_new(ValadocChartsFactory * factory,ValadocApiNode * node)73 valadoc_charts_hierarchy_new (ValadocChartsFactory* factory,
74 ValadocApiNode* node)
75 {
76 return valadoc_charts_hierarchy_construct (VALADOC_CHARTS_TYPE_HIERARCHY, factory, node);
77 }
78
79 static void
valadoc_charts_hierarchy_draw_implemented_interfaces(ValadocChartsHierarchy * self,Agnode_t * child,ValaCollection * interfaces)80 valadoc_charts_hierarchy_draw_implemented_interfaces (ValadocChartsHierarchy* self,
81 Agnode_t* child,
82 ValaCollection* interfaces)
83 {
84 g_return_if_fail (self != NULL);
85 g_return_if_fail (child != NULL);
86 g_return_if_fail (interfaces != NULL);
87 {
88 ValaIterator* _typeref_it = NULL;
89 ValaIterator* _tmp0_;
90 _tmp0_ = vala_iterable_iterator ((ValaIterable*) interfaces);
91 _typeref_it = _tmp0_;
92 while (TRUE) {
93 ValaIterator* _tmp1_;
94 ValadocApiTypeReference* typeref = NULL;
95 ValaIterator* _tmp2_;
96 gpointer _tmp3_;
97 Agnode_t* parent = NULL;
98 ValadocChartsFactory* _tmp4_;
99 Agraph_t* _tmp5_;
100 ValadocApiTypeReference* _tmp6_;
101 ValadocApiItem* _tmp7_;
102 ValadocApiItem* _tmp8_;
103 Agnode_t* _tmp9_;
104 ValadocChartsFactory* _tmp10_;
105 Agraph_t* _tmp11_;
106 Agnode_t* _tmp12_;
107 Agedge_t* _tmp13_;
108 _tmp1_ = _typeref_it;
109 if (!vala_iterator_next (_tmp1_)) {
110 break;
111 }
112 _tmp2_ = _typeref_it;
113 _tmp3_ = vala_iterator_get (_tmp2_);
114 typeref = (ValadocApiTypeReference*) _tmp3_;
115 _tmp4_ = ((ValadocChartsChart*) self)->factory;
116 _tmp5_ = ((ValadocChartsChart*) self)->graph;
117 _tmp6_ = typeref;
118 _tmp7_ = valadoc_api_typereference_get_data_type (_tmp6_);
119 _tmp8_ = _tmp7_;
120 _tmp9_ = valadoc_charts_factory_create_interface (_tmp4_, _tmp5_, G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, VALADOC_API_TYPE_INTERFACE, ValadocApiInterface));
121 parent = _tmp9_;
122 _tmp10_ = ((ValadocChartsChart*) self)->factory;
123 _tmp11_ = ((ValadocChartsChart*) self)->graph;
124 _tmp12_ = parent;
125 _tmp13_ = valadoc_charts_factory_add_children (_tmp10_, _tmp11_, _tmp12_, child);
126 _g_object_unref0 (typeref);
127 }
128 _vala_iterator_unref0 (_typeref_it);
129 }
130 }
131
132 static void
valadoc_charts_hierarchy_draw_parent_classes(ValadocChartsHierarchy * self,ValadocApiClass * item,Agnode_t * child)133 valadoc_charts_hierarchy_draw_parent_classes (ValadocChartsHierarchy* self,
134 ValadocApiClass* item,
135 Agnode_t* child)
136 {
137 Agnode_t* parent = NULL;
138 ValadocChartsFactory* _tmp0_;
139 Agraph_t* _tmp1_;
140 Agnode_t* _tmp2_;
141 ValadocApiTypeReference* _tmp7_;
142 ValadocApiTypeReference* _tmp8_;
143 Agnode_t* _tmp14_;
144 ValaCollection* _tmp15_;
145 ValaCollection* _tmp16_;
146 g_return_if_fail (self != NULL);
147 g_return_if_fail (item != NULL);
148 _tmp0_ = ((ValadocChartsChart*) self)->factory;
149 _tmp1_ = ((ValadocChartsChart*) self)->graph;
150 _tmp2_ = valadoc_charts_factory_create_class (_tmp0_, _tmp1_, item);
151 parent = _tmp2_;
152 if (child != NULL) {
153 ValadocChartsFactory* _tmp3_;
154 Agraph_t* _tmp4_;
155 Agnode_t* _tmp5_;
156 Agedge_t* _tmp6_;
157 _tmp3_ = ((ValadocChartsChart*) self)->factory;
158 _tmp4_ = ((ValadocChartsChart*) self)->graph;
159 _tmp5_ = parent;
160 _tmp6_ = valadoc_charts_factory_add_children (_tmp3_, _tmp4_, _tmp5_, child);
161 }
162 _tmp7_ = valadoc_api_class_get_base_type (item);
163 _tmp8_ = _tmp7_;
164 if (_tmp8_ != NULL) {
165 ValadocApiTypeReference* _tmp9_;
166 ValadocApiTypeReference* _tmp10_;
167 ValadocApiItem* _tmp11_;
168 ValadocApiItem* _tmp12_;
169 Agnode_t* _tmp13_;
170 _tmp9_ = valadoc_api_class_get_base_type (item);
171 _tmp10_ = _tmp9_;
172 _tmp11_ = valadoc_api_typereference_get_data_type (_tmp10_);
173 _tmp12_ = _tmp11_;
174 _tmp13_ = parent;
175 valadoc_charts_hierarchy_draw_parent_classes (self, G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, VALADOC_API_TYPE_CLASS, ValadocApiClass), _tmp13_);
176 }
177 _tmp14_ = parent;
178 _tmp15_ = valadoc_api_class_get_implemented_interface_list (item);
179 _tmp16_ = _tmp15_;
180 valadoc_charts_hierarchy_draw_implemented_interfaces (self, _tmp14_, _tmp16_);
181 _vala_iterable_unref0 (_tmp16_);
182 }
183
184 static void
valadoc_charts_hierarchy_draw_parent_structs(ValadocChartsHierarchy * self,ValadocApiStruct * item,Agnode_t * child)185 valadoc_charts_hierarchy_draw_parent_structs (ValadocChartsHierarchy* self,
186 ValadocApiStruct* item,
187 Agnode_t* child)
188 {
189 Agnode_t* parent = NULL;
190 ValadocChartsFactory* _tmp0_;
191 Agraph_t* _tmp1_;
192 Agnode_t* _tmp2_;
193 ValadocApiTypeReference* _tmp7_;
194 ValadocApiTypeReference* _tmp8_;
195 g_return_if_fail (self != NULL);
196 g_return_if_fail (item != NULL);
197 _tmp0_ = ((ValadocChartsChart*) self)->factory;
198 _tmp1_ = ((ValadocChartsChart*) self)->graph;
199 _tmp2_ = valadoc_charts_factory_create_struct (_tmp0_, _tmp1_, item);
200 parent = _tmp2_;
201 if (child != NULL) {
202 ValadocChartsFactory* _tmp3_;
203 Agraph_t* _tmp4_;
204 Agnode_t* _tmp5_;
205 Agedge_t* _tmp6_;
206 _tmp3_ = ((ValadocChartsChart*) self)->factory;
207 _tmp4_ = ((ValadocChartsChart*) self)->graph;
208 _tmp5_ = parent;
209 _tmp6_ = valadoc_charts_factory_add_children (_tmp3_, _tmp4_, _tmp5_, child);
210 }
211 _tmp7_ = valadoc_api_struct_get_base_type (item);
212 _tmp8_ = _tmp7_;
213 if (_tmp8_ != NULL) {
214 ValadocApiTypeReference* _tmp9_;
215 ValadocApiTypeReference* _tmp10_;
216 ValadocApiItem* _tmp11_;
217 ValadocApiItem* _tmp12_;
218 Agnode_t* _tmp13_;
219 _tmp9_ = valadoc_api_struct_get_base_type (item);
220 _tmp10_ = _tmp9_;
221 _tmp11_ = valadoc_api_typereference_get_data_type (_tmp10_);
222 _tmp12_ = _tmp11_;
223 _tmp13_ = parent;
224 valadoc_charts_hierarchy_draw_parent_structs (self, G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, VALADOC_API_TYPE_STRUCT, ValadocApiStruct), _tmp13_);
225 }
226 }
227
228 static void
valadoc_charts_hierarchy_real_visit_interface(ValadocApiVisitor * base,ValadocApiInterface * item)229 valadoc_charts_hierarchy_real_visit_interface (ValadocApiVisitor* base,
230 ValadocApiInterface* item)
231 {
232 ValadocChartsHierarchy * self;
233 Agnode_t* iface = NULL;
234 ValadocChartsFactory* _tmp0_;
235 Agraph_t* _tmp1_;
236 Agnode_t* _tmp2_;
237 ValadocApiTypeReference* _tmp3_;
238 ValadocApiTypeReference* _tmp4_;
239 Agnode_t* _tmp10_;
240 ValaCollection* _tmp11_;
241 ValaCollection* _tmp12_;
242 self = (ValadocChartsHierarchy*) base;
243 g_return_if_fail (item != NULL);
244 _tmp0_ = ((ValadocChartsChart*) self)->factory;
245 _tmp1_ = ((ValadocChartsChart*) self)->graph;
246 _tmp2_ = valadoc_charts_factory_create_interface (_tmp0_, _tmp1_, item);
247 iface = _tmp2_;
248 _tmp3_ = valadoc_api_interface_get_base_type (item);
249 _tmp4_ = _tmp3_;
250 if (_tmp4_ != NULL) {
251 ValadocApiTypeReference* _tmp5_;
252 ValadocApiTypeReference* _tmp6_;
253 ValadocApiItem* _tmp7_;
254 ValadocApiItem* _tmp8_;
255 Agnode_t* _tmp9_;
256 _tmp5_ = valadoc_api_interface_get_base_type (item);
257 _tmp6_ = _tmp5_;
258 _tmp7_ = valadoc_api_typereference_get_data_type (_tmp6_);
259 _tmp8_ = _tmp7_;
260 _tmp9_ = iface;
261 valadoc_charts_hierarchy_draw_parent_classes (self, G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, VALADOC_API_TYPE_CLASS, ValadocApiClass), _tmp9_);
262 }
263 _tmp10_ = iface;
264 _tmp11_ = valadoc_api_interface_get_implemented_interface_list (item);
265 _tmp12_ = _tmp11_;
266 valadoc_charts_hierarchy_draw_implemented_interfaces (self, _tmp10_, _tmp12_);
267 _vala_iterable_unref0 (_tmp12_);
268 }
269
270 static void
valadoc_charts_hierarchy_real_visit_class(ValadocApiVisitor * base,ValadocApiClass * item)271 valadoc_charts_hierarchy_real_visit_class (ValadocApiVisitor* base,
272 ValadocApiClass* item)
273 {
274 ValadocChartsHierarchy * self;
275 self = (ValadocChartsHierarchy*) base;
276 g_return_if_fail (item != NULL);
277 valadoc_charts_hierarchy_draw_parent_classes (self, item, NULL);
278 }
279
280 static void
valadoc_charts_hierarchy_real_visit_struct(ValadocApiVisitor * base,ValadocApiStruct * item)281 valadoc_charts_hierarchy_real_visit_struct (ValadocApiVisitor* base,
282 ValadocApiStruct* item)
283 {
284 ValadocChartsHierarchy * self;
285 self = (ValadocChartsHierarchy*) base;
286 g_return_if_fail (item != NULL);
287 valadoc_charts_hierarchy_draw_parent_structs (self, item, NULL);
288 }
289
290 static void
valadoc_charts_hierarchy_class_init(ValadocChartsHierarchyClass * klass,gpointer klass_data)291 valadoc_charts_hierarchy_class_init (ValadocChartsHierarchyClass * klass,
292 gpointer klass_data)
293 {
294 valadoc_charts_hierarchy_parent_class = g_type_class_peek_parent (klass);
295 ((ValadocApiVisitorClass *) klass)->visit_interface = (void (*) (ValadocApiVisitor*, ValadocApiInterface*)) valadoc_charts_hierarchy_real_visit_interface;
296 ((ValadocApiVisitorClass *) klass)->visit_class = (void (*) (ValadocApiVisitor*, ValadocApiClass*)) valadoc_charts_hierarchy_real_visit_class;
297 ((ValadocApiVisitorClass *) klass)->visit_struct = (void (*) (ValadocApiVisitor*, ValadocApiStruct*)) valadoc_charts_hierarchy_real_visit_struct;
298 }
299
300 static void
valadoc_charts_hierarchy_instance_init(ValadocChartsHierarchy * self,gpointer klass)301 valadoc_charts_hierarchy_instance_init (ValadocChartsHierarchy * self,
302 gpointer klass)
303 {
304 }
305
306 static GType
valadoc_charts_hierarchy_get_type_once(void)307 valadoc_charts_hierarchy_get_type_once (void)
308 {
309 static const GTypeInfo g_define_type_info = { sizeof (ValadocChartsHierarchyClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) valadoc_charts_hierarchy_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ValadocChartsHierarchy), 0, (GInstanceInitFunc) valadoc_charts_hierarchy_instance_init, NULL };
310 GType valadoc_charts_hierarchy_type_id;
311 valadoc_charts_hierarchy_type_id = g_type_register_static (VALADOC_CHARTS_TYPE_CHART, "ValadocChartsHierarchy", &g_define_type_info, 0);
312 return valadoc_charts_hierarchy_type_id;
313 }
314
315 GType
valadoc_charts_hierarchy_get_type(void)316 valadoc_charts_hierarchy_get_type (void)
317 {
318 static volatile gsize valadoc_charts_hierarchy_type_id__volatile = 0;
319 if (g_once_init_enter (&valadoc_charts_hierarchy_type_id__volatile)) {
320 GType valadoc_charts_hierarchy_type_id;
321 valadoc_charts_hierarchy_type_id = valadoc_charts_hierarchy_get_type_once ();
322 g_once_init_leave (&valadoc_charts_hierarchy_type_id__volatile, valadoc_charts_hierarchy_type_id);
323 }
324 return valadoc_charts_hierarchy_type_id__volatile;
325 }
326
327