1 /* inlinecontent.c generated by valac, the Vala compiler
2  * generated from inlinecontent.vala, do not modify */
3 
4 /* inlinecontent.vala
5  *
6  * Copyright (C) 2008-2009 Didier Villevalois
7  * Copyright (C) 2008-2012 Florian Brosch
8  *
9  * This library is free software; you can redistribute it and/or
10  * modify it under the terms of the GNU Lesser General Public
11  * License as published by the Free Software Foundation; either
12  * version 2.1 of the License, or (at your option) any later version.
13  *
14  * This library is distributed in the hope that it will be useful,
15  * but WITHOUT ANY WARRANTY; without even the implied warranty of
16  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
17  * Lesser General Public License for more details.
18  *
19  * You should have received a copy of the GNU Lesser General Public
20  * License along with this library; if not, write to the Free Software
21  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301  USA
22  *
23  * Author:
24  * 	Didier 'Ptitjes Villevalois <ptitjes@free.fr>
25  */
26 
27 #include "valadoc.h"
28 #include <valagee.h>
29 #include <glib-object.h>
30 #include <stdlib.h>
31 #include <string.h>
32 #include <glib.h>
33 
34 enum  {
35 	VALADOC_CONTENT_INLINE_CONTENT_0_PROPERTY,
36 	VALADOC_CONTENT_INLINE_CONTENT_CONTENT_PROPERTY,
37 	VALADOC_CONTENT_INLINE_CONTENT_NUM_PROPERTIES
38 };
39 static GParamSpec* valadoc_content_inline_content_properties[VALADOC_CONTENT_INLINE_CONTENT_NUM_PROPERTIES];
40 #define _vala_iterable_unref0(var) ((var == NULL) ? NULL : (var = (vala_iterable_unref (var), NULL)))
41 #define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
42 #define _vala_assert(expr, msg) if G_LIKELY (expr) ; else g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
43 #define _vala_return_if_fail(expr, msg) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return; }
44 #define _vala_return_val_if_fail(expr, msg, val) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return val; }
45 #define _vala_warn_if_fail(expr, msg) if G_LIKELY (expr) ; else g_warn_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
46 
47 struct _ValadocContentInlineContentPrivate {
48 	ValaList* _content;
49 };
50 
51 static gint ValadocContentInlineContent_private_offset;
52 static gpointer valadoc_content_inline_content_parent_class = NULL;
53 
54 G_GNUC_INTERNAL ValadocContentInlineContent* valadoc_content_inline_content_construct (GType object_type);
55 static void valadoc_content_inline_content_real_check (ValadocContentContentElement* base,
56                                                 ValadocApiTree* api_root,
57                                                 ValadocApiNode* container,
58                                                 const gchar* file_path,
59                                                 ValadocErrorReporter* reporter,
60                                                 ValadocSettings* settings);
61 G_GNUC_INTERNAL void valadoc_content_content_element_set_parent (ValadocContentContentElement* self,
62                                                  ValadocContentContentElement* value);
63 static void valadoc_content_inline_content_real_accept_children (ValadocContentContentElement* base,
64                                                           ValadocContentContentVisitor* visitor);
65 static gboolean valadoc_content_inline_content_real_is_empty (ValadocContentContentElement* base);
66 G_GNUC_INTERNAL void valadoc_content_inline_content_replace_node (ValadocContentInlineContent* self,
67                                                   ValadocContentInline* old,
68                                                   ValadocContentInline* replacement);
69 static GObject * valadoc_content_inline_content_constructor (GType type,
70                                                       guint n_construct_properties,
71                                                       GObjectConstructParam * construct_properties);
72 static void valadoc_content_inline_content_finalize (GObject * obj);
73 static GType valadoc_content_inline_content_get_type_once (void);
74 static void _vala_valadoc_content_inline_content_get_property (GObject * object,
75                                                         guint property_id,
76                                                         GValue * value,
77                                                         GParamSpec * pspec);
78 
79 static inline gpointer
valadoc_content_inline_content_get_instance_private(ValadocContentInlineContent * self)80 valadoc_content_inline_content_get_instance_private (ValadocContentInlineContent* self)
81 {
82 	return G_STRUCT_MEMBER_P (self, ValadocContentInlineContent_private_offset);
83 }
84 
85 ValaList*
valadoc_content_inline_content_get_content(ValadocContentInlineContent * self)86 valadoc_content_inline_content_get_content (ValadocContentInlineContent* self)
87 {
88 	ValaList* result;
89 	ValaList* _tmp0_;
90 	g_return_val_if_fail (self != NULL, NULL);
91 	_tmp0_ = self->priv->_content;
92 	result = _tmp0_;
93 	return result;
94 }
95 
96 G_GNUC_INTERNAL ValadocContentInlineContent*
valadoc_content_inline_content_construct(GType object_type)97 valadoc_content_inline_content_construct (GType object_type)
98 {
99 	ValadocContentInlineContent * self = NULL;
100 	self = (ValadocContentInlineContent*) valadoc_content_content_element_construct (object_type);
101 	return self;
102 }
103 
104 static gpointer
_vala_iterable_ref0(gpointer self)105 _vala_iterable_ref0 (gpointer self)
106 {
107 	return self ? vala_iterable_ref (self) : NULL;
108 }
109 
110 static void
valadoc_content_inline_content_real_check(ValadocContentContentElement * base,ValadocApiTree * api_root,ValadocApiNode * container,const gchar * file_path,ValadocErrorReporter * reporter,ValadocSettings * settings)111 valadoc_content_inline_content_real_check (ValadocContentContentElement* base,
112                                            ValadocApiTree* api_root,
113                                            ValadocApiNode* container,
114                                            const gchar* file_path,
115                                            ValadocErrorReporter* reporter,
116                                            ValadocSettings* settings)
117 {
118 	ValadocContentInlineContent * self;
119 	self = (ValadocContentInlineContent*) base;
120 	g_return_if_fail (api_root != NULL);
121 	g_return_if_fail (container != NULL);
122 	g_return_if_fail (file_path != NULL);
123 	g_return_if_fail (reporter != NULL);
124 	g_return_if_fail (settings != NULL);
125 	{
126 		ValaList* _element_list = NULL;
127 		ValaList* _tmp0_;
128 		ValaList* _tmp1_;
129 		gint _element_size = 0;
130 		ValaList* _tmp2_;
131 		gint _tmp3_;
132 		gint _tmp4_;
133 		gint _element_index = 0;
134 		_tmp0_ = self->priv->_content;
135 		_tmp1_ = _vala_iterable_ref0 (_tmp0_);
136 		_element_list = _tmp1_;
137 		_tmp2_ = _element_list;
138 		_tmp3_ = vala_collection_get_size ((ValaCollection*) _tmp2_);
139 		_tmp4_ = _tmp3_;
140 		_element_size = _tmp4_;
141 		_element_index = -1;
142 		while (TRUE) {
143 			gint _tmp5_;
144 			gint _tmp6_;
145 			ValadocContentInline* element = NULL;
146 			ValaList* _tmp7_;
147 			gpointer _tmp8_;
148 			ValadocContentInline* _tmp9_;
149 			ValadocContentInline* _tmp10_;
150 			_element_index = _element_index + 1;
151 			_tmp5_ = _element_index;
152 			_tmp6_ = _element_size;
153 			if (!(_tmp5_ < _tmp6_)) {
154 				break;
155 			}
156 			_tmp7_ = _element_list;
157 			_tmp8_ = vala_list_get (_tmp7_, _element_index);
158 			element = (ValadocContentInline*) _tmp8_;
159 			_tmp9_ = element;
160 			valadoc_content_content_element_set_parent ((ValadocContentContentElement*) _tmp9_, (ValadocContentContentElement*) self);
161 			_tmp10_ = element;
162 			valadoc_content_content_element_check ((ValadocContentContentElement*) _tmp10_, api_root, container, file_path, reporter, settings);
163 			_g_object_unref0 (element);
164 		}
165 		_vala_iterable_unref0 (_element_list);
166 	}
167 }
168 
169 static void
valadoc_content_inline_content_real_accept_children(ValadocContentContentElement * base,ValadocContentContentVisitor * visitor)170 valadoc_content_inline_content_real_accept_children (ValadocContentContentElement* base,
171                                                      ValadocContentContentVisitor* visitor)
172 {
173 	ValadocContentInlineContent * self;
174 	self = (ValadocContentInlineContent*) base;
175 	g_return_if_fail (visitor != NULL);
176 	{
177 		ValaList* _element_list = NULL;
178 		ValaList* _tmp0_;
179 		ValaList* _tmp1_;
180 		gint _element_size = 0;
181 		ValaList* _tmp2_;
182 		gint _tmp3_;
183 		gint _tmp4_;
184 		gint _element_index = 0;
185 		_tmp0_ = self->priv->_content;
186 		_tmp1_ = _vala_iterable_ref0 (_tmp0_);
187 		_element_list = _tmp1_;
188 		_tmp2_ = _element_list;
189 		_tmp3_ = vala_collection_get_size ((ValaCollection*) _tmp2_);
190 		_tmp4_ = _tmp3_;
191 		_element_size = _tmp4_;
192 		_element_index = -1;
193 		while (TRUE) {
194 			gint _tmp5_;
195 			gint _tmp6_;
196 			ValadocContentInline* element = NULL;
197 			ValaList* _tmp7_;
198 			gpointer _tmp8_;
199 			ValadocContentInline* _tmp9_;
200 			_element_index = _element_index + 1;
201 			_tmp5_ = _element_index;
202 			_tmp6_ = _element_size;
203 			if (!(_tmp5_ < _tmp6_)) {
204 				break;
205 			}
206 			_tmp7_ = _element_list;
207 			_tmp8_ = vala_list_get (_tmp7_, _element_index);
208 			element = (ValadocContentInline*) _tmp8_;
209 			_tmp9_ = element;
210 			valadoc_content_content_element_accept ((ValadocContentContentElement*) _tmp9_, visitor);
211 			_g_object_unref0 (element);
212 		}
213 		_vala_iterable_unref0 (_element_list);
214 	}
215 }
216 
217 static gboolean
valadoc_content_inline_content_real_is_empty(ValadocContentContentElement * base)218 valadoc_content_inline_content_real_is_empty (ValadocContentContentElement* base)
219 {
220 	ValadocContentInlineContent * self;
221 	gboolean result = FALSE;
222 	self = (ValadocContentInlineContent*) base;
223 	{
224 		ValaList* _item_list = NULL;
225 		ValaList* _tmp0_;
226 		ValaList* _tmp1_;
227 		ValaList* _tmp2_;
228 		gint _item_size = 0;
229 		ValaList* _tmp3_;
230 		gint _tmp4_;
231 		gint _tmp5_;
232 		gint _item_index = 0;
233 		_tmp0_ = valadoc_content_inline_content_get_content (self);
234 		_tmp1_ = _tmp0_;
235 		_tmp2_ = _vala_iterable_ref0 (_tmp1_);
236 		_item_list = _tmp2_;
237 		_tmp3_ = _item_list;
238 		_tmp4_ = vala_collection_get_size ((ValaCollection*) _tmp3_);
239 		_tmp5_ = _tmp4_;
240 		_item_size = _tmp5_;
241 		_item_index = -1;
242 		while (TRUE) {
243 			gint _tmp6_;
244 			gint _tmp7_;
245 			ValadocContentInline* item = NULL;
246 			ValaList* _tmp8_;
247 			gpointer _tmp9_;
248 			ValadocContentInline* _tmp10_;
249 			_item_index = _item_index + 1;
250 			_tmp6_ = _item_index;
251 			_tmp7_ = _item_size;
252 			if (!(_tmp6_ < _tmp7_)) {
253 				break;
254 			}
255 			_tmp8_ = _item_list;
256 			_tmp9_ = vala_list_get (_tmp8_, _item_index);
257 			item = (ValadocContentInline*) _tmp9_;
258 			_tmp10_ = item;
259 			if (!valadoc_content_content_element_is_empty ((ValadocContentContentElement*) _tmp10_)) {
260 				result = FALSE;
261 				_g_object_unref0 (item);
262 				_vala_iterable_unref0 (_item_list);
263 				return result;
264 			}
265 			_g_object_unref0 (item);
266 		}
267 		_vala_iterable_unref0 (_item_list);
268 	}
269 	result = TRUE;
270 	return result;
271 }
272 
273 G_GNUC_INTERNAL void
valadoc_content_inline_content_replace_node(ValadocContentInlineContent * self,ValadocContentInline * old,ValadocContentInline * replacement)274 valadoc_content_inline_content_replace_node (ValadocContentInlineContent* self,
275                                              ValadocContentInline* old,
276                                              ValadocContentInline* replacement)
277 {
278 	gint index = 0;
279 	ValaList* _tmp0_;
280 	ValaList* _tmp1_;
281 	g_return_if_fail (self != NULL);
282 	g_return_if_fail (old != NULL);
283 	g_return_if_fail (replacement != NULL);
284 	_tmp0_ = self->priv->_content;
285 	index = vala_list_index_of (_tmp0_, old);
286 	_vala_assert (index >= 0, "index >= 0");
287 	_tmp1_ = self->priv->_content;
288 	vala_list_set (_tmp1_, index, replacement);
289 }
290 
291 static GObject *
valadoc_content_inline_content_constructor(GType type,guint n_construct_properties,GObjectConstructParam * construct_properties)292 valadoc_content_inline_content_constructor (GType type,
293                                             guint n_construct_properties,
294                                             GObjectConstructParam * construct_properties)
295 {
296 	GObject * obj;
297 	GObjectClass * parent_class;
298 	ValadocContentInlineContent * self;
299 	GEqualFunc _tmp0_;
300 	ValaArrayList* _tmp1_;
301 	parent_class = G_OBJECT_CLASS (valadoc_content_inline_content_parent_class);
302 	obj = parent_class->constructor (type, n_construct_properties, construct_properties);
303 	self = G_TYPE_CHECK_INSTANCE_CAST (obj, VALADOC_CONTENT_TYPE_INLINE_CONTENT, ValadocContentInlineContent);
304 	_tmp0_ = g_direct_equal;
305 	_tmp1_ = vala_array_list_new (VALADOC_CONTENT_TYPE_INLINE, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, _tmp0_);
306 	_vala_iterable_unref0 (self->priv->_content);
307 	self->priv->_content = (ValaList*) _tmp1_;
308 	return obj;
309 }
310 
311 static void
valadoc_content_inline_content_class_init(ValadocContentInlineContentClass * klass,gpointer klass_data)312 valadoc_content_inline_content_class_init (ValadocContentInlineContentClass * klass,
313                                            gpointer klass_data)
314 {
315 	valadoc_content_inline_content_parent_class = g_type_class_peek_parent (klass);
316 	g_type_class_adjust_private_offset (klass, &ValadocContentInlineContent_private_offset);
317 	((ValadocContentContentElementClass *) klass)->check = (void (*) (ValadocContentContentElement*, ValadocApiTree*, ValadocApiNode*, const gchar*, ValadocErrorReporter*, ValadocSettings*)) valadoc_content_inline_content_real_check;
318 	((ValadocContentContentElementClass *) klass)->accept_children = (void (*) (ValadocContentContentElement*, ValadocContentContentVisitor*)) valadoc_content_inline_content_real_accept_children;
319 	((ValadocContentContentElementClass *) klass)->is_empty = (gboolean (*) (ValadocContentContentElement*)) valadoc_content_inline_content_real_is_empty;
320 	G_OBJECT_CLASS (klass)->get_property = _vala_valadoc_content_inline_content_get_property;
321 	G_OBJECT_CLASS (klass)->constructor = valadoc_content_inline_content_constructor;
322 	G_OBJECT_CLASS (klass)->finalize = valadoc_content_inline_content_finalize;
323 	g_object_class_install_property (G_OBJECT_CLASS (klass), VALADOC_CONTENT_INLINE_CONTENT_CONTENT_PROPERTY, valadoc_content_inline_content_properties[VALADOC_CONTENT_INLINE_CONTENT_CONTENT_PROPERTY] = vala_param_spec_iterable ("content", "content", "content", VALA_TYPE_LIST, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE));
324 }
325 
326 static void
valadoc_content_inline_content_instance_init(ValadocContentInlineContent * self,gpointer klass)327 valadoc_content_inline_content_instance_init (ValadocContentInlineContent * self,
328                                               gpointer klass)
329 {
330 	self->priv = valadoc_content_inline_content_get_instance_private (self);
331 }
332 
333 static void
valadoc_content_inline_content_finalize(GObject * obj)334 valadoc_content_inline_content_finalize (GObject * obj)
335 {
336 	ValadocContentInlineContent * self;
337 	self = G_TYPE_CHECK_INSTANCE_CAST (obj, VALADOC_CONTENT_TYPE_INLINE_CONTENT, ValadocContentInlineContent);
338 	_vala_iterable_unref0 (self->priv->_content);
339 	G_OBJECT_CLASS (valadoc_content_inline_content_parent_class)->finalize (obj);
340 }
341 
342 static GType
valadoc_content_inline_content_get_type_once(void)343 valadoc_content_inline_content_get_type_once (void)
344 {
345 	static const GTypeInfo g_define_type_info = { sizeof (ValadocContentInlineContentClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) valadoc_content_inline_content_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ValadocContentInlineContent), 0, (GInstanceInitFunc) valadoc_content_inline_content_instance_init, NULL };
346 	GType valadoc_content_inline_content_type_id;
347 	valadoc_content_inline_content_type_id = g_type_register_static (VALADOC_CONTENT_TYPE_CONTENT_ELEMENT, "ValadocContentInlineContent", &g_define_type_info, G_TYPE_FLAG_ABSTRACT);
348 	ValadocContentInlineContent_private_offset = g_type_add_instance_private (valadoc_content_inline_content_type_id, sizeof (ValadocContentInlineContentPrivate));
349 	return valadoc_content_inline_content_type_id;
350 }
351 
352 GType
valadoc_content_inline_content_get_type(void)353 valadoc_content_inline_content_get_type (void)
354 {
355 	static volatile gsize valadoc_content_inline_content_type_id__volatile = 0;
356 	if (g_once_init_enter (&valadoc_content_inline_content_type_id__volatile)) {
357 		GType valadoc_content_inline_content_type_id;
358 		valadoc_content_inline_content_type_id = valadoc_content_inline_content_get_type_once ();
359 		g_once_init_leave (&valadoc_content_inline_content_type_id__volatile, valadoc_content_inline_content_type_id);
360 	}
361 	return valadoc_content_inline_content_type_id__volatile;
362 }
363 
364 static void
_vala_valadoc_content_inline_content_get_property(GObject * object,guint property_id,GValue * value,GParamSpec * pspec)365 _vala_valadoc_content_inline_content_get_property (GObject * object,
366                                                    guint property_id,
367                                                    GValue * value,
368                                                    GParamSpec * pspec)
369 {
370 	ValadocContentInlineContent * self;
371 	self = G_TYPE_CHECK_INSTANCE_CAST (object, VALADOC_CONTENT_TYPE_INLINE_CONTENT, ValadocContentInlineContent);
372 	switch (property_id) {
373 		case VALADOC_CONTENT_INLINE_CONTENT_CONTENT_PROPERTY:
374 		vala_value_set_iterable (value, valadoc_content_inline_content_get_content (self));
375 		break;
376 		default:
377 		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
378 		break;
379 	}
380 }
381 
382