1 /* symbol.c generated by valac, the Vala compiler
2 * generated from symbol.vala, do not modify */
3
4 /* symbol.vala
5 *
6 * Copyright (C) 2008-2009 Florian Brosch, Didier Villevalois
7 * Copyright (C) 2011 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 <glib.h>
31 #include <vala.h>
32 #include <stdlib.h>
33 #include <string.h>
34
35 enum {
36 VALADOC_API_SYMBOL_0_PROPERTY,
37 VALADOC_API_SYMBOL_IS_DEPRECATED_PROPERTY,
38 VALADOC_API_SYMBOL_ACCESSIBILITY_PROPERTY,
39 VALADOC_API_SYMBOL_IS_PUBLIC_PROPERTY,
40 VALADOC_API_SYMBOL_IS_PROTECTED_PROPERTY,
41 VALADOC_API_SYMBOL_IS_INTERNAL_PROPERTY,
42 VALADOC_API_SYMBOL_IS_PRIVATE_PROPERTY,
43 VALADOC_API_SYMBOL_NUM_PROPERTIES
44 };
45 static GParamSpec* valadoc_api_symbol_properties[VALADOC_API_SYMBOL_NUM_PROPERTIES];
46 #define _vala_iterable_unref0(var) ((var == NULL) ? NULL : (var = (vala_iterable_unref (var), NULL)))
47 #define _valadoc_api_source_comment_unref0(var) ((var == NULL) ? NULL : (var = (valadoc_api_source_comment_unref (var), NULL)))
48 #define _g_free0(var) (var = (g_free (var), NULL))
49 #define _vala_code_node_unref0(var) ((var == NULL) ? NULL : (var = (vala_code_node_unref (var), NULL)))
50 #define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
51
52 struct _ValadocApiSymbolPrivate {
53 ValaArrayList* attributes;
54 ValadocApiSourceComment* source_comment;
55 gboolean _is_deprecated;
56 ValaSymbolAccessibility _accessibility;
57 };
58
59 static gint ValadocApiSymbol_private_offset;
60 static gpointer valadoc_api_symbol_parent_class = NULL;
61
62 G_GNUC_INTERNAL void valadoc_api_item_parse_comments (ValadocApiItem* self,
63 ValadocSettings* settings,
64 ValadocDocumentationParser* parser);
65 G_GNUC_INTERNAL void valadoc_api_item_check_comments (ValadocApiItem* self,
66 ValadocSettings* settings,
67 ValadocDocumentationParser* parser);
68 static void valadoc_api_symbol_set_is_deprecated (ValadocApiSymbol* self,
69 gboolean value);
70 static void valadoc_api_symbol_set_accessibility (ValadocApiSymbol* self,
71 ValaSymbolAccessibility value);
72 G_GNUC_INTERNAL void valadoc_api_package_register_deprecated_symbol (ValadocApiPackage* self,
73 ValadocApiSymbol* symbol,
74 const gchar* version);
75 static gboolean valadoc_api_symbol_real_is_browsable (ValadocApiNode* base,
76 ValadocSettings* settings);
77 static void valadoc_api_symbol_real_parse_comments (ValadocApiItem* base,
78 ValadocSettings* settings,
79 ValadocDocumentationParser* parser);
80 G_GNUC_INTERNAL void valadoc_api_node_set_documentation (ValadocApiNode* self,
81 ValadocContentComment* value);
82 static void valadoc_api_symbol_real_check_comments (ValadocApiItem* base,
83 ValadocSettings* settings,
84 ValadocDocumentationParser* parser);
85 static void valadoc_api_symbol_finalize (GObject * obj);
86 static GType valadoc_api_symbol_get_type_once (void);
87 static void _vala_valadoc_api_symbol_get_property (GObject * object,
88 guint property_id,
89 GValue * value,
90 GParamSpec * pspec);
91 static void _vala_valadoc_api_symbol_set_property (GObject * object,
92 guint property_id,
93 const GValue * value,
94 GParamSpec * pspec);
95
96 static inline gpointer
valadoc_api_symbol_get_instance_private(ValadocApiSymbol * self)97 valadoc_api_symbol_get_instance_private (ValadocApiSymbol* self)
98 {
99 return G_STRUCT_MEMBER_P (self, ValadocApiSymbol_private_offset);
100 }
101
102 gboolean
valadoc_api_symbol_get_is_deprecated(ValadocApiSymbol * self)103 valadoc_api_symbol_get_is_deprecated (ValadocApiSymbol* self)
104 {
105 gboolean result;
106 g_return_val_if_fail (self != NULL, FALSE);
107 result = self->priv->_is_deprecated;
108 return result;
109 }
110
111 static void
valadoc_api_symbol_set_is_deprecated(ValadocApiSymbol * self,gboolean value)112 valadoc_api_symbol_set_is_deprecated (ValadocApiSymbol* self,
113 gboolean value)
114 {
115 gboolean old_value;
116 g_return_if_fail (self != NULL);
117 old_value = valadoc_api_symbol_get_is_deprecated (self);
118 if (old_value != value) {
119 self->priv->_is_deprecated = value;
120 g_object_notify_by_pspec ((GObject *) self, valadoc_api_symbol_properties[VALADOC_API_SYMBOL_IS_DEPRECATED_PROPERTY]);
121 }
122 }
123
124 static gpointer
_valadoc_api_source_comment_ref0(gpointer self)125 _valadoc_api_source_comment_ref0 (gpointer self)
126 {
127 return self ? valadoc_api_source_comment_ref (self) : NULL;
128 }
129
130 ValadocApiSymbol*
valadoc_api_symbol_construct(GType object_type,ValadocApiNode * parent,ValadocApiSourceFile * file,const gchar * name,ValaSymbolAccessibility accessibility,ValadocApiSourceComment * comment,ValaSymbol * data)131 valadoc_api_symbol_construct (GType object_type,
132 ValadocApiNode* parent,
133 ValadocApiSourceFile* file,
134 const gchar* name,
135 ValaSymbolAccessibility accessibility,
136 ValadocApiSourceComment* comment,
137 ValaSymbol* data)
138 {
139 ValadocApiSymbol * self = NULL;
140 ValadocApiSourceComment* _tmp0_;
141 g_return_val_if_fail (parent != NULL, NULL);
142 g_return_val_if_fail (file != NULL, NULL);
143 g_return_val_if_fail (data != NULL, NULL);
144 self = (ValadocApiSymbol*) valadoc_api_node_construct (object_type, parent, file, name, (ValaCodeNode*) data);
145 valadoc_api_symbol_set_accessibility (self, accessibility);
146 _tmp0_ = _valadoc_api_source_comment_ref0 (comment);
147 _valadoc_api_source_comment_unref0 (self->priv->source_comment);
148 self->priv->source_comment = _tmp0_;
149 return self;
150 }
151
152 static gpointer
_vala_code_node_ref0(gpointer self)153 _vala_code_node_ref0 (gpointer self)
154 {
155 return self ? vala_code_node_ref (self) : NULL;
156 }
157
158 void
valadoc_api_symbol_add_attribute(ValadocApiSymbol * self,ValadocApiAttribute * att)159 valadoc_api_symbol_add_attribute (ValadocApiSymbol* self,
160 ValadocApiAttribute* att)
161 {
162 ValaArrayList* _tmp0_;
163 ValaAttribute* attr = NULL;
164 ValaCodeNode* _tmp3_;
165 ValaCodeNode* _tmp4_;
166 ValaAttribute* _tmp5_;
167 const gchar* _tmp6_;
168 const gchar* _tmp7_;
169 ValaArrayList* _tmp23_;
170 g_return_if_fail (self != NULL);
171 g_return_if_fail (att != NULL);
172 _tmp0_ = self->priv->attributes;
173 if (_tmp0_ == NULL) {
174 GEqualFunc _tmp1_;
175 ValaArrayList* _tmp2_;
176 _tmp1_ = g_direct_equal;
177 _tmp2_ = vala_array_list_new (VALADOC_API_TYPE_ATTRIBUTE, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, _tmp1_);
178 _vala_iterable_unref0 (self->priv->attributes);
179 self->priv->attributes = _tmp2_;
180 }
181 _tmp3_ = valadoc_api_item_get_data ((ValadocApiItem*) att);
182 _tmp4_ = _tmp3_;
183 _tmp5_ = _vala_code_node_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, VALA_TYPE_ATTRIBUTE, ValaAttribute));
184 attr = _tmp5_;
185 _tmp6_ = valadoc_api_attribute_get_name (att);
186 _tmp7_ = _tmp6_;
187 if (g_strcmp0 (_tmp7_, "Version") == 0) {
188 gboolean deprecated = FALSE;
189 ValaAttribute* _tmp8_;
190 gchar* version = NULL;
191 ValaAttribute* _tmp9_;
192 gchar* _tmp10_;
193 gboolean _tmp11_ = FALSE;
194 _tmp8_ = attr;
195 deprecated = vala_attribute_get_bool (_tmp8_, "deprecated", FALSE);
196 _tmp9_ = attr;
197 _tmp10_ = vala_attribute_get_string (_tmp9_, "deprecated_since", NULL);
198 version = _tmp10_;
199 if (deprecated) {
200 _tmp11_ = TRUE;
201 } else {
202 const gchar* _tmp12_;
203 _tmp12_ = version;
204 _tmp11_ = _tmp12_ != NULL;
205 }
206 if (_tmp11_) {
207 ValadocApiPackage* _tmp13_;
208 ValadocApiPackage* _tmp14_;
209 const gchar* _tmp15_;
210 _tmp13_ = valadoc_documentation_get_package ((ValadocDocumentation*) self);
211 _tmp14_ = _tmp13_;
212 _tmp15_ = version;
213 valadoc_api_package_register_deprecated_symbol (_tmp14_, self, _tmp15_);
214 valadoc_api_symbol_set_is_deprecated (self, TRUE);
215 }
216 _g_free0 (version);
217 } else {
218 const gchar* _tmp16_;
219 const gchar* _tmp17_;
220 _tmp16_ = valadoc_api_attribute_get_name (att);
221 _tmp17_ = _tmp16_;
222 if (g_strcmp0 (_tmp17_, "Deprecated") == 0) {
223 gchar* version = NULL;
224 ValaAttribute* _tmp18_;
225 gchar* _tmp19_;
226 ValadocApiPackage* _tmp20_;
227 ValadocApiPackage* _tmp21_;
228 const gchar* _tmp22_;
229 _tmp18_ = attr;
230 _tmp19_ = vala_attribute_get_string (_tmp18_, "version", NULL);
231 version = _tmp19_;
232 _tmp20_ = valadoc_documentation_get_package ((ValadocDocumentation*) self);
233 _tmp21_ = _tmp20_;
234 _tmp22_ = version;
235 valadoc_api_package_register_deprecated_symbol (_tmp21_, self, _tmp22_);
236 valadoc_api_symbol_set_is_deprecated (self, TRUE);
237 _g_free0 (version);
238 }
239 }
240 _tmp23_ = self->priv->attributes;
241 vala_collection_add ((ValaCollection*) _tmp23_, att);
242 _vala_code_node_unref0 (attr);
243 }
244
245 static gpointer
_vala_iterable_ref0(gpointer self)246 _vala_iterable_ref0 (gpointer self)
247 {
248 return self ? vala_iterable_ref (self) : NULL;
249 }
250
251 ValaCollection*
valadoc_api_symbol_get_attributes(ValadocApiSymbol * self)252 valadoc_api_symbol_get_attributes (ValadocApiSymbol* self)
253 {
254 ValaArrayList* _tmp0_;
255 ValaCollection* result = NULL;
256 g_return_val_if_fail (self != NULL, NULL);
257 _tmp0_ = self->priv->attributes;
258 if (_tmp0_ == NULL) {
259 GEqualFunc _tmp1_;
260 ValaArrayList* _tmp2_;
261 _tmp1_ = g_direct_equal;
262 _tmp2_ = vala_array_list_new (VALADOC_API_TYPE_ATTRIBUTE, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, _tmp1_);
263 result = (ValaCollection*) _tmp2_;
264 return result;
265 } else {
266 ValaArrayList* _tmp3_;
267 ValaCollection* _tmp4_;
268 _tmp3_ = self->priv->attributes;
269 _tmp4_ = _vala_iterable_ref0 ((ValaCollection*) _tmp3_);
270 result = _tmp4_;
271 return result;
272 }
273 }
274
275 ValadocApiAttribute*
valadoc_api_symbol_get_attribute(ValadocApiSymbol * self,const gchar * name)276 valadoc_api_symbol_get_attribute (ValadocApiSymbol* self,
277 const gchar* name)
278 {
279 ValaArrayList* _tmp0_;
280 ValadocApiAttribute* result = NULL;
281 g_return_val_if_fail (self != NULL, NULL);
282 g_return_val_if_fail (name != NULL, NULL);
283 _tmp0_ = self->priv->attributes;
284 if (_tmp0_ != NULL) {
285 {
286 ValaArrayList* _att_list = NULL;
287 ValaArrayList* _tmp1_;
288 ValaArrayList* _tmp2_;
289 gint _att_size = 0;
290 ValaArrayList* _tmp3_;
291 gint _tmp4_;
292 gint _tmp5_;
293 gint _att_index = 0;
294 _tmp1_ = self->priv->attributes;
295 _tmp2_ = _vala_iterable_ref0 (_tmp1_);
296 _att_list = _tmp2_;
297 _tmp3_ = _att_list;
298 _tmp4_ = vala_collection_get_size ((ValaCollection*) _tmp3_);
299 _tmp5_ = _tmp4_;
300 _att_size = _tmp5_;
301 _att_index = -1;
302 while (TRUE) {
303 gint _tmp6_;
304 gint _tmp7_;
305 ValadocApiAttribute* att = NULL;
306 ValaArrayList* _tmp8_;
307 gpointer _tmp9_;
308 ValadocApiAttribute* _tmp10_;
309 const gchar* _tmp11_;
310 const gchar* _tmp12_;
311 _att_index = _att_index + 1;
312 _tmp6_ = _att_index;
313 _tmp7_ = _att_size;
314 if (!(_tmp6_ < _tmp7_)) {
315 break;
316 }
317 _tmp8_ = _att_list;
318 _tmp9_ = vala_list_get ((ValaList*) _tmp8_, _att_index);
319 att = (ValadocApiAttribute*) _tmp9_;
320 _tmp10_ = att;
321 _tmp11_ = valadoc_api_attribute_get_name (_tmp10_);
322 _tmp12_ = _tmp11_;
323 if (g_strcmp0 (_tmp12_, name) == 0) {
324 result = att;
325 _vala_iterable_unref0 (_att_list);
326 return result;
327 }
328 _g_object_unref0 (att);
329 }
330 _vala_iterable_unref0 (_att_list);
331 }
332 }
333 result = NULL;
334 return result;
335 }
336
337 /**
338 * {@inheritDoc}
339 */
340 static gpointer
_g_object_ref0(gpointer self)341 _g_object_ref0 (gpointer self)
342 {
343 return self ? g_object_ref (self) : NULL;
344 }
345
346 static gboolean
valadoc_api_symbol_real_is_browsable(ValadocApiNode * base,ValadocSettings * settings)347 valadoc_api_symbol_real_is_browsable (ValadocApiNode* base,
348 ValadocSettings* settings)
349 {
350 ValadocApiSymbol * self;
351 gboolean _tmp0_ = FALSE;
352 gboolean _tmp3_ = FALSE;
353 gboolean _tmp6_ = FALSE;
354 ValadocApiItem* pos = NULL;
355 ValadocApiItem* _tmp9_;
356 ValadocApiItem* _tmp10_;
357 ValadocApiItem* _tmp11_;
358 gboolean result = FALSE;
359 self = (ValadocApiSymbol*) base;
360 g_return_val_if_fail (settings != NULL, FALSE);
361 if (!settings->_private) {
362 gboolean _tmp1_;
363 gboolean _tmp2_;
364 _tmp1_ = valadoc_api_symbol_get_is_private (self);
365 _tmp2_ = _tmp1_;
366 _tmp0_ = _tmp2_;
367 } else {
368 _tmp0_ = FALSE;
369 }
370 if (_tmp0_) {
371 result = FALSE;
372 return result;
373 }
374 if (!settings->_internal) {
375 gboolean _tmp4_;
376 gboolean _tmp5_;
377 _tmp4_ = valadoc_api_symbol_get_is_internal (self);
378 _tmp5_ = _tmp4_;
379 _tmp3_ = _tmp5_;
380 } else {
381 _tmp3_ = FALSE;
382 }
383 if (_tmp3_) {
384 result = FALSE;
385 return result;
386 }
387 if (!settings->_protected) {
388 gboolean _tmp7_;
389 gboolean _tmp8_;
390 _tmp7_ = valadoc_api_symbol_get_is_protected (self);
391 _tmp8_ = _tmp7_;
392 _tmp6_ = _tmp8_;
393 } else {
394 _tmp6_ = FALSE;
395 }
396 if (_tmp6_) {
397 result = FALSE;
398 return result;
399 }
400 _tmp9_ = valadoc_api_item_get_parent ((ValadocApiItem*) self);
401 _tmp10_ = _tmp9_;
402 _tmp11_ = _g_object_ref0 (_tmp10_);
403 pos = _tmp11_;
404 while (TRUE) {
405 gboolean _tmp12_ = FALSE;
406 gboolean _tmp13_ = FALSE;
407 ValadocApiItem* _tmp14_;
408 ValadocApiItem* _tmp17_;
409 ValadocApiItem* _tmp18_;
410 ValadocApiItem* _tmp19_;
411 ValadocApiItem* _tmp20_;
412 ValadocApiItem* _tmp21_;
413 _tmp14_ = pos;
414 if (_tmp14_ != NULL) {
415 ValadocApiItem* _tmp15_;
416 _tmp15_ = pos;
417 _tmp13_ = VALADOC_API_IS_SYMBOL (_tmp15_);
418 } else {
419 _tmp13_ = FALSE;
420 }
421 if (_tmp13_) {
422 ValadocApiItem* _tmp16_;
423 _tmp16_ = pos;
424 _tmp12_ = VALADOC_API_IS_NAMESPACE (_tmp16_) == FALSE;
425 } else {
426 _tmp12_ = FALSE;
427 }
428 if (!_tmp12_) {
429 break;
430 }
431 _tmp17_ = pos;
432 if (valadoc_api_node_is_browsable ((ValadocApiNode*) G_TYPE_CHECK_INSTANCE_CAST (_tmp17_, VALADOC_API_TYPE_SYMBOL, ValadocApiSymbol), settings) == FALSE) {
433 result = FALSE;
434 _g_object_unref0 (pos);
435 return result;
436 }
437 _tmp18_ = pos;
438 _tmp19_ = valadoc_api_item_get_parent (_tmp18_);
439 _tmp20_ = _tmp19_;
440 _tmp21_ = _g_object_ref0 (_tmp20_);
441 _g_object_unref0 (pos);
442 pos = _tmp21_;
443 }
444 result = TRUE;
445 _g_object_unref0 (pos);
446 return result;
447 }
448
449 ValaSymbolAccessibility
valadoc_api_symbol_get_accessibility(ValadocApiSymbol * self)450 valadoc_api_symbol_get_accessibility (ValadocApiSymbol* self)
451 {
452 ValaSymbolAccessibility result;
453 ValaSymbolAccessibility _tmp0_;
454 g_return_val_if_fail (self != NULL, 0);
455 _tmp0_ = self->priv->_accessibility;
456 result = _tmp0_;
457 return result;
458 }
459
460 static void
valadoc_api_symbol_set_accessibility(ValadocApiSymbol * self,ValaSymbolAccessibility value)461 valadoc_api_symbol_set_accessibility (ValadocApiSymbol* self,
462 ValaSymbolAccessibility value)
463 {
464 ValaSymbolAccessibility old_value;
465 g_return_if_fail (self != NULL);
466 old_value = valadoc_api_symbol_get_accessibility (self);
467 if (old_value != value) {
468 self->priv->_accessibility = value;
469 g_object_notify_by_pspec ((GObject *) self, valadoc_api_symbol_properties[VALADOC_API_SYMBOL_ACCESSIBILITY_PROPERTY]);
470 }
471 }
472
473 gboolean
valadoc_api_symbol_get_is_public(ValadocApiSymbol * self)474 valadoc_api_symbol_get_is_public (ValadocApiSymbol* self)
475 {
476 gboolean result;
477 ValaSymbolAccessibility _tmp0_;
478 g_return_val_if_fail (self != NULL, FALSE);
479 _tmp0_ = self->priv->_accessibility;
480 result = _tmp0_ == VALA_SYMBOL_ACCESSIBILITY_PUBLIC;
481 return result;
482 }
483
484 gboolean
valadoc_api_symbol_get_is_protected(ValadocApiSymbol * self)485 valadoc_api_symbol_get_is_protected (ValadocApiSymbol* self)
486 {
487 gboolean result;
488 ValaSymbolAccessibility _tmp0_;
489 g_return_val_if_fail (self != NULL, FALSE);
490 _tmp0_ = self->priv->_accessibility;
491 result = _tmp0_ == VALA_SYMBOL_ACCESSIBILITY_PROTECTED;
492 return result;
493 }
494
495 gboolean
valadoc_api_symbol_get_is_internal(ValadocApiSymbol * self)496 valadoc_api_symbol_get_is_internal (ValadocApiSymbol* self)
497 {
498 gboolean result;
499 ValaSymbolAccessibility _tmp0_;
500 g_return_val_if_fail (self != NULL, FALSE);
501 _tmp0_ = self->priv->_accessibility;
502 result = _tmp0_ == VALA_SYMBOL_ACCESSIBILITY_INTERNAL;
503 return result;
504 }
505
506 gboolean
valadoc_api_symbol_get_is_private(ValadocApiSymbol * self)507 valadoc_api_symbol_get_is_private (ValadocApiSymbol* self)
508 {
509 gboolean result;
510 ValaSymbolAccessibility _tmp0_;
511 g_return_val_if_fail (self != NULL, FALSE);
512 _tmp0_ = self->priv->_accessibility;
513 result = _tmp0_ == VALA_SYMBOL_ACCESSIBILITY_PRIVATE;
514 return result;
515 }
516
517 /**
518 * {@inheritDoc}
519 */
520 static void
valadoc_api_symbol_real_parse_comments(ValadocApiItem * base,ValadocSettings * settings,ValadocDocumentationParser * parser)521 valadoc_api_symbol_real_parse_comments (ValadocApiItem* base,
522 ValadocSettings* settings,
523 ValadocDocumentationParser* parser)
524 {
525 ValadocApiSymbol * self;
526 ValadocContentComment* _tmp0_;
527 ValadocContentComment* _tmp1_;
528 ValadocApiSourceComment* _tmp2_;
529 self = (ValadocApiSymbol*) base;
530 g_return_if_fail (settings != NULL);
531 g_return_if_fail (parser != NULL);
532 _tmp0_ = valadoc_api_node_get_documentation ((ValadocApiNode*) self);
533 _tmp1_ = _tmp0_;
534 if (_tmp1_ != NULL) {
535 return;
536 }
537 _tmp2_ = self->priv->source_comment;
538 if (_tmp2_ != NULL) {
539 ValadocApiSourceComment* _tmp3_;
540 ValadocContentComment* _tmp4_;
541 ValadocContentComment* _tmp5_;
542 _tmp3_ = self->priv->source_comment;
543 _tmp4_ = valadoc_documentation_parser_parse (parser, (ValadocApiNode*) self, _tmp3_);
544 _tmp5_ = _tmp4_;
545 valadoc_api_node_set_documentation ((ValadocApiNode*) self, _tmp5_);
546 _g_object_unref0 (_tmp5_);
547 }
548 VALADOC_API_ITEM_CLASS (valadoc_api_symbol_parent_class)->parse_comments ((ValadocApiItem*) G_TYPE_CHECK_INSTANCE_CAST (self, VALADOC_API_TYPE_NODE, ValadocApiNode), settings, parser);
549 }
550
551 /**
552 * {@inheritDoc}
553 */
554 static void
valadoc_api_symbol_real_check_comments(ValadocApiItem * base,ValadocSettings * settings,ValadocDocumentationParser * parser)555 valadoc_api_symbol_real_check_comments (ValadocApiItem* base,
556 ValadocSettings* settings,
557 ValadocDocumentationParser* parser)
558 {
559 ValadocApiSymbol * self;
560 ValadocContentComment* _tmp0_;
561 ValadocContentComment* _tmp1_;
562 self = (ValadocApiSymbol*) base;
563 g_return_if_fail (settings != NULL);
564 g_return_if_fail (parser != NULL);
565 _tmp0_ = valadoc_api_node_get_documentation ((ValadocApiNode*) self);
566 _tmp1_ = _tmp0_;
567 if (_tmp1_ != NULL) {
568 ValadocContentComment* _tmp2_;
569 ValadocContentComment* _tmp3_;
570 _tmp2_ = valadoc_api_node_get_documentation ((ValadocApiNode*) self);
571 _tmp3_ = _tmp2_;
572 valadoc_documentation_parser_check (parser, (ValadocApiNode*) self, _tmp3_);
573 }
574 VALADOC_API_ITEM_CLASS (valadoc_api_symbol_parent_class)->check_comments ((ValadocApiItem*) G_TYPE_CHECK_INSTANCE_CAST (self, VALADOC_API_TYPE_NODE, ValadocApiNode), settings, parser);
575 }
576
577 static void
valadoc_api_symbol_class_init(ValadocApiSymbolClass * klass,gpointer klass_data)578 valadoc_api_symbol_class_init (ValadocApiSymbolClass * klass,
579 gpointer klass_data)
580 {
581 valadoc_api_symbol_parent_class = g_type_class_peek_parent (klass);
582 g_type_class_adjust_private_offset (klass, &ValadocApiSymbol_private_offset);
583 ((ValadocApiNodeClass *) klass)->is_browsable = (gboolean (*) (ValadocApiNode*, ValadocSettings*)) valadoc_api_symbol_real_is_browsable;
584 ((ValadocApiItemClass *) klass)->parse_comments = (void (*) (ValadocApiItem*, ValadocSettings*, ValadocDocumentationParser*)) valadoc_api_symbol_real_parse_comments;
585 ((ValadocApiItemClass *) klass)->check_comments = (void (*) (ValadocApiItem*, ValadocSettings*, ValadocDocumentationParser*)) valadoc_api_symbol_real_check_comments;
586 G_OBJECT_CLASS (klass)->get_property = _vala_valadoc_api_symbol_get_property;
587 G_OBJECT_CLASS (klass)->set_property = _vala_valadoc_api_symbol_set_property;
588 G_OBJECT_CLASS (klass)->finalize = valadoc_api_symbol_finalize;
589 g_object_class_install_property (G_OBJECT_CLASS (klass), VALADOC_API_SYMBOL_IS_DEPRECATED_PROPERTY, valadoc_api_symbol_properties[VALADOC_API_SYMBOL_IS_DEPRECATED_PROPERTY] = g_param_spec_boolean ("is-deprecated", "is-deprecated", "is-deprecated", FALSE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE));
590 g_object_class_install_property (G_OBJECT_CLASS (klass), VALADOC_API_SYMBOL_ACCESSIBILITY_PROPERTY, valadoc_api_symbol_properties[VALADOC_API_SYMBOL_ACCESSIBILITY_PROPERTY] = g_param_spec_enum ("accessibility", "accessibility", "accessibility", VALA_TYPE_SYMBOL_ACCESSIBILITY, 0, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE));
591 /**
592 * Specifies whether this symbol is public.
593 */
594 g_object_class_install_property (G_OBJECT_CLASS (klass), VALADOC_API_SYMBOL_IS_PUBLIC_PROPERTY, valadoc_api_symbol_properties[VALADOC_API_SYMBOL_IS_PUBLIC_PROPERTY] = g_param_spec_boolean ("is-public", "is-public", "is-public", FALSE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE));
595 /**
596 * Specifies whether this symbol is protected.
597 */
598 g_object_class_install_property (G_OBJECT_CLASS (klass), VALADOC_API_SYMBOL_IS_PROTECTED_PROPERTY, valadoc_api_symbol_properties[VALADOC_API_SYMBOL_IS_PROTECTED_PROPERTY] = g_param_spec_boolean ("is-protected", "is-protected", "is-protected", FALSE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE));
599 /**
600 * Specifies whether this symbol is internal.
601 */
602 g_object_class_install_property (G_OBJECT_CLASS (klass), VALADOC_API_SYMBOL_IS_INTERNAL_PROPERTY, valadoc_api_symbol_properties[VALADOC_API_SYMBOL_IS_INTERNAL_PROPERTY] = g_param_spec_boolean ("is-internal", "is-internal", "is-internal", FALSE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE));
603 /**
604 * Specifies whether this symbol is private.
605 */
606 g_object_class_install_property (G_OBJECT_CLASS (klass), VALADOC_API_SYMBOL_IS_PRIVATE_PROPERTY, valadoc_api_symbol_properties[VALADOC_API_SYMBOL_IS_PRIVATE_PROPERTY] = g_param_spec_boolean ("is-private", "is-private", "is-private", FALSE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE));
607 }
608
609 static void
valadoc_api_symbol_instance_init(ValadocApiSymbol * self,gpointer klass)610 valadoc_api_symbol_instance_init (ValadocApiSymbol * self,
611 gpointer klass)
612 {
613 self->priv = valadoc_api_symbol_get_instance_private (self);
614 self->priv->_is_deprecated = FALSE;
615 }
616
617 static void
valadoc_api_symbol_finalize(GObject * obj)618 valadoc_api_symbol_finalize (GObject * obj)
619 {
620 ValadocApiSymbol * self;
621 self = G_TYPE_CHECK_INSTANCE_CAST (obj, VALADOC_API_TYPE_SYMBOL, ValadocApiSymbol);
622 _vala_iterable_unref0 (self->priv->attributes);
623 _valadoc_api_source_comment_unref0 (self->priv->source_comment);
624 G_OBJECT_CLASS (valadoc_api_symbol_parent_class)->finalize (obj);
625 }
626
627 /**
628 * Represents a node in the symbol tree.
629 */
630 static GType
valadoc_api_symbol_get_type_once(void)631 valadoc_api_symbol_get_type_once (void)
632 {
633 static const GTypeInfo g_define_type_info = { sizeof (ValadocApiSymbolClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) valadoc_api_symbol_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ValadocApiSymbol), 0, (GInstanceInitFunc) valadoc_api_symbol_instance_init, NULL };
634 GType valadoc_api_symbol_type_id;
635 valadoc_api_symbol_type_id = g_type_register_static (VALADOC_API_TYPE_NODE, "ValadocApiSymbol", &g_define_type_info, G_TYPE_FLAG_ABSTRACT);
636 ValadocApiSymbol_private_offset = g_type_add_instance_private (valadoc_api_symbol_type_id, sizeof (ValadocApiSymbolPrivate));
637 return valadoc_api_symbol_type_id;
638 }
639
640 GType
valadoc_api_symbol_get_type(void)641 valadoc_api_symbol_get_type (void)
642 {
643 static volatile gsize valadoc_api_symbol_type_id__volatile = 0;
644 if (g_once_init_enter (&valadoc_api_symbol_type_id__volatile)) {
645 GType valadoc_api_symbol_type_id;
646 valadoc_api_symbol_type_id = valadoc_api_symbol_get_type_once ();
647 g_once_init_leave (&valadoc_api_symbol_type_id__volatile, valadoc_api_symbol_type_id);
648 }
649 return valadoc_api_symbol_type_id__volatile;
650 }
651
652 static void
_vala_valadoc_api_symbol_get_property(GObject * object,guint property_id,GValue * value,GParamSpec * pspec)653 _vala_valadoc_api_symbol_get_property (GObject * object,
654 guint property_id,
655 GValue * value,
656 GParamSpec * pspec)
657 {
658 ValadocApiSymbol * self;
659 self = G_TYPE_CHECK_INSTANCE_CAST (object, VALADOC_API_TYPE_SYMBOL, ValadocApiSymbol);
660 switch (property_id) {
661 case VALADOC_API_SYMBOL_IS_DEPRECATED_PROPERTY:
662 g_value_set_boolean (value, valadoc_api_symbol_get_is_deprecated (self));
663 break;
664 case VALADOC_API_SYMBOL_ACCESSIBILITY_PROPERTY:
665 g_value_set_enum (value, valadoc_api_symbol_get_accessibility (self));
666 break;
667 case VALADOC_API_SYMBOL_IS_PUBLIC_PROPERTY:
668 g_value_set_boolean (value, valadoc_api_symbol_get_is_public (self));
669 break;
670 case VALADOC_API_SYMBOL_IS_PROTECTED_PROPERTY:
671 g_value_set_boolean (value, valadoc_api_symbol_get_is_protected (self));
672 break;
673 case VALADOC_API_SYMBOL_IS_INTERNAL_PROPERTY:
674 g_value_set_boolean (value, valadoc_api_symbol_get_is_internal (self));
675 break;
676 case VALADOC_API_SYMBOL_IS_PRIVATE_PROPERTY:
677 g_value_set_boolean (value, valadoc_api_symbol_get_is_private (self));
678 break;
679 default:
680 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
681 break;
682 }
683 }
684
685 static void
_vala_valadoc_api_symbol_set_property(GObject * object,guint property_id,const GValue * value,GParamSpec * pspec)686 _vala_valadoc_api_symbol_set_property (GObject * object,
687 guint property_id,
688 const GValue * value,
689 GParamSpec * pspec)
690 {
691 ValadocApiSymbol * self;
692 self = G_TYPE_CHECK_INSTANCE_CAST (object, VALADOC_API_TYPE_SYMBOL, ValadocApiSymbol);
693 switch (property_id) {
694 case VALADOC_API_SYMBOL_IS_DEPRECATED_PROPERTY:
695 valadoc_api_symbol_set_is_deprecated (self, g_value_get_boolean (value));
696 break;
697 case VALADOC_API_SYMBOL_ACCESSIBILITY_PROPERTY:
698 valadoc_api_symbol_set_accessibility (self, g_value_get_enum (value));
699 break;
700 default:
701 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
702 break;
703 }
704 }
705
706