1 /* valaerrortype.c generated by valac, the Vala compiler
2 * generated from valaerrortype.vala, do not modify */
3
4 /* valaerrortype.vala
5 *
6 * Copyright (C) 2008-2010 Jürg Billeter
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 * Jürg Billeter <j@bitron.ch>
24 * Raffaele Sandrini <raffaele@sandrini.ch>
25 */
26
27 #include "vala.h"
28 #include <glib.h>
29 #include <stdlib.h>
30 #include <string.h>
31
32 #define _vala_code_node_unref0(var) ((var == NULL) ? NULL : (var = (vala_code_node_unref (var), NULL)))
33 #define _vala_code_context_unref0(var) ((var == NULL) ? NULL : (var = (vala_code_context_unref (var), NULL)))
34 #define _g_free0(var) (var = (g_free (var), NULL))
35
36 struct _ValaErrorTypePrivate {
37 ValaErrorCode* _error_code;
38 gboolean _dynamic_error;
39 };
40
41 static gint ValaErrorType_private_offset;
42 static gpointer vala_error_type_parent_class = NULL;
43
44 static gboolean vala_error_type_real_compatible (ValaDataType* base,
45 ValaDataType* target_type);
46 static gchar* vala_error_type_real_to_qualified_string (ValaDataType* base,
47 ValaScope* scope);
48 static ValaDataType* vala_error_type_real_copy (ValaDataType* base);
49 static gboolean vala_error_type_real_equals (ValaDataType* base,
50 ValaDataType* type2);
51 static ValaSymbol* vala_error_type_real_get_member (ValaDataType* base,
52 const gchar* member_name);
53 static gboolean vala_error_type_real_is_reference_type_or_type_parameter (ValaDataType* base);
54 static gboolean vala_error_type_real_check (ValaCodeNode* base,
55 ValaCodeContext* context);
56 static void vala_error_type_finalize (ValaCodeNode * obj);
57 static GType vala_error_type_get_type_once (void);
58
59 static inline gpointer
vala_error_type_get_instance_private(ValaErrorType * self)60 vala_error_type_get_instance_private (ValaErrorType* self)
61 {
62 return G_STRUCT_MEMBER_P (self, ValaErrorType_private_offset);
63 }
64
65 ValaErrorDomain*
vala_error_type_get_error_domain(ValaErrorType * self)66 vala_error_type_get_error_domain (ValaErrorType* self)
67 {
68 ValaErrorDomain* result;
69 ValaSymbol* _tmp0_;
70 ValaSymbol* _tmp1_;
71 g_return_val_if_fail (self != NULL, NULL);
72 _tmp0_ = vala_data_type_get_symbol ((ValaDataType*) self);
73 _tmp1_ = _tmp0_;
74 result = VALA_IS_ERROR_DOMAIN (_tmp1_) ? ((ValaErrorDomain*) _tmp1_) : NULL;
75 return result;
76 }
77
78 ValaErrorCode*
vala_error_type_get_error_code(ValaErrorType * self)79 vala_error_type_get_error_code (ValaErrorType* self)
80 {
81 ValaErrorCode* result;
82 ValaErrorCode* _tmp0_;
83 g_return_val_if_fail (self != NULL, NULL);
84 _tmp0_ = self->priv->_error_code;
85 result = _tmp0_;
86 return result;
87 }
88
89 void
vala_error_type_set_error_code(ValaErrorType * self,ValaErrorCode * value)90 vala_error_type_set_error_code (ValaErrorType* self,
91 ValaErrorCode* value)
92 {
93 g_return_if_fail (self != NULL);
94 self->priv->_error_code = value;
95 }
96
97 gboolean
vala_error_type_get_dynamic_error(ValaErrorType * self)98 vala_error_type_get_dynamic_error (ValaErrorType* self)
99 {
100 gboolean result;
101 g_return_val_if_fail (self != NULL, FALSE);
102 result = self->priv->_dynamic_error;
103 return result;
104 }
105
106 void
vala_error_type_set_dynamic_error(ValaErrorType * self,gboolean value)107 vala_error_type_set_dynamic_error (ValaErrorType* self,
108 gboolean value)
109 {
110 g_return_if_fail (self != NULL);
111 self->priv->_dynamic_error = value;
112 }
113
114 static gpointer
_vala_code_node_ref0(gpointer self)115 _vala_code_node_ref0 (gpointer self)
116 {
117 return self ? vala_code_node_ref (self) : NULL;
118 }
119
120 ValaErrorType*
vala_error_type_construct(GType object_type,ValaErrorDomain * error_domain,ValaErrorCode * error_code,ValaSourceReference * source_reference)121 vala_error_type_construct (GType object_type,
122 ValaErrorDomain* error_domain,
123 ValaErrorCode* error_code,
124 ValaSourceReference* source_reference)
125 {
126 ValaErrorType* self = NULL;
127 ValaSymbol* _tmp0_ = NULL;
128 ValaSymbol* _tmp1_;
129 _tmp1_ = _vala_code_node_ref0 (G_TYPE_CHECK_INSTANCE_CAST (error_domain, VALA_TYPE_SYMBOL, ValaSymbol));
130 _tmp0_ = _tmp1_;
131 if (_tmp0_ == NULL) {
132 ValaCodeContext* _tmp2_;
133 ValaCodeContext* _tmp3_;
134 ValaNamespace* _tmp4_;
135 ValaNamespace* _tmp5_;
136 ValaScope* _tmp6_;
137 ValaScope* _tmp7_;
138 ValaSymbol* _tmp8_;
139 ValaSymbol* _tmp9_;
140 ValaScope* _tmp10_;
141 ValaScope* _tmp11_;
142 ValaSymbol* _tmp12_;
143 _tmp2_ = vala_code_context_get ();
144 _tmp3_ = _tmp2_;
145 _tmp4_ = vala_code_context_get_root (_tmp3_);
146 _tmp5_ = _tmp4_;
147 _tmp6_ = vala_symbol_get_scope ((ValaSymbol*) _tmp5_);
148 _tmp7_ = _tmp6_;
149 _tmp8_ = vala_scope_lookup (_tmp7_, "GLib");
150 _tmp9_ = _tmp8_;
151 _tmp10_ = vala_symbol_get_scope (_tmp9_);
152 _tmp11_ = _tmp10_;
153 _tmp12_ = vala_scope_lookup (_tmp11_, "Error");
154 _vala_code_node_unref0 (_tmp0_);
155 _tmp0_ = _tmp12_;
156 _vala_code_node_unref0 (_tmp9_);
157 _vala_code_context_unref0 (_tmp3_);
158 }
159 self = (ValaErrorType*) vala_reference_type_construct (object_type, _tmp0_);
160 vala_error_type_set_error_code (self, error_code);
161 vala_code_node_set_source_reference ((ValaCodeNode*) self, source_reference);
162 _vala_code_node_unref0 (_tmp0_);
163 return self;
164 }
165
166 ValaErrorType*
vala_error_type_new(ValaErrorDomain * error_domain,ValaErrorCode * error_code,ValaSourceReference * source_reference)167 vala_error_type_new (ValaErrorDomain* error_domain,
168 ValaErrorCode* error_code,
169 ValaSourceReference* source_reference)
170 {
171 return vala_error_type_construct (VALA_TYPE_ERROR_TYPE, error_domain, error_code, source_reference);
172 }
173
174 static gboolean
vala_error_type_real_compatible(ValaDataType * base,ValaDataType * target_type)175 vala_error_type_real_compatible (ValaDataType* base,
176 ValaDataType* target_type)
177 {
178 ValaErrorType * self;
179 ValaErrorType* et = NULL;
180 ValaErrorType* _tmp0_;
181 ValaErrorType* _tmp1_;
182 ValaErrorDomain* _tmp2_;
183 ValaErrorDomain* _tmp3_;
184 ValaErrorType* _tmp4_;
185 ValaErrorDomain* _tmp5_;
186 ValaErrorDomain* _tmp6_;
187 ValaErrorDomain* _tmp7_;
188 ValaErrorDomain* _tmp8_;
189 ValaErrorType* _tmp9_;
190 ValaErrorCode* _tmp10_;
191 ValaErrorType* _tmp11_;
192 ValaErrorCode* _tmp12_;
193 ValaErrorCode* _tmp13_;
194 gboolean result = FALSE;
195 self = (ValaErrorType*) base;
196 g_return_val_if_fail (target_type != NULL, FALSE);
197 if (VALA_IS_GENERIC_TYPE (target_type)) {
198 result = TRUE;
199 return result;
200 }
201 et = VALA_IS_ERROR_TYPE (target_type) ? ((ValaErrorType*) target_type) : NULL;
202 _tmp0_ = et;
203 if (_tmp0_ == NULL) {
204 result = FALSE;
205 return result;
206 }
207 _tmp1_ = et;
208 _tmp2_ = vala_error_type_get_error_domain (_tmp1_);
209 _tmp3_ = _tmp2_;
210 if (_tmp3_ == NULL) {
211 result = TRUE;
212 return result;
213 }
214 _tmp4_ = et;
215 _tmp5_ = vala_error_type_get_error_domain (_tmp4_);
216 _tmp6_ = _tmp5_;
217 _tmp7_ = vala_error_type_get_error_domain (self);
218 _tmp8_ = _tmp7_;
219 if (_tmp6_ != _tmp8_) {
220 result = FALSE;
221 return result;
222 }
223 _tmp9_ = et;
224 _tmp10_ = _tmp9_->priv->_error_code;
225 if (_tmp10_ == NULL) {
226 result = TRUE;
227 return result;
228 }
229 _tmp11_ = et;
230 _tmp12_ = _tmp11_->priv->_error_code;
231 _tmp13_ = self->priv->_error_code;
232 result = _tmp12_ == _tmp13_;
233 return result;
234 }
235
236 static gchar*
vala_error_type_real_to_qualified_string(ValaDataType * base,ValaScope * scope)237 vala_error_type_real_to_qualified_string (ValaDataType* base,
238 ValaScope* scope)
239 {
240 ValaErrorType * self;
241 gchar* _result_ = NULL;
242 ValaErrorDomain* _tmp0_;
243 ValaErrorDomain* _tmp1_;
244 gboolean _tmp6_;
245 gboolean _tmp7_;
246 gchar* result = NULL;
247 self = (ValaErrorType*) base;
248 _tmp0_ = vala_error_type_get_error_domain (self);
249 _tmp1_ = _tmp0_;
250 if (_tmp1_ == NULL) {
251 gchar* _tmp2_;
252 _tmp2_ = g_strdup ("GLib.Error");
253 _g_free0 (_result_);
254 _result_ = _tmp2_;
255 } else {
256 ValaErrorDomain* _tmp3_;
257 ValaErrorDomain* _tmp4_;
258 gchar* _tmp5_;
259 _tmp3_ = vala_error_type_get_error_domain (self);
260 _tmp4_ = _tmp3_;
261 _tmp5_ = vala_symbol_get_full_name ((ValaSymbol*) _tmp4_);
262 _g_free0 (_result_);
263 _result_ = _tmp5_;
264 }
265 _tmp6_ = vala_data_type_get_nullable ((ValaDataType*) self);
266 _tmp7_ = _tmp6_;
267 if (_tmp7_) {
268 const gchar* _tmp8_;
269 gchar* _tmp9_;
270 _tmp8_ = _result_;
271 _tmp9_ = g_strconcat (_tmp8_, "?", NULL);
272 _g_free0 (_result_);
273 _result_ = _tmp9_;
274 }
275 result = _result_;
276 return result;
277 }
278
279 static ValaDataType*
vala_error_type_real_copy(ValaDataType * base)280 vala_error_type_real_copy (ValaDataType* base)
281 {
282 ValaErrorType * self;
283 ValaErrorType* _result_ = NULL;
284 ValaErrorDomain* _tmp0_;
285 ValaErrorDomain* _tmp1_;
286 ValaErrorCode* _tmp2_;
287 ValaSourceReference* _tmp3_;
288 ValaSourceReference* _tmp4_;
289 ValaErrorType* _tmp5_;
290 gboolean _tmp6_;
291 gboolean _tmp7_;
292 gboolean _tmp8_;
293 gboolean _tmp9_;
294 gboolean _tmp10_;
295 ValaDataType* result = NULL;
296 self = (ValaErrorType*) base;
297 _tmp0_ = vala_error_type_get_error_domain (self);
298 _tmp1_ = _tmp0_;
299 _tmp2_ = self->priv->_error_code;
300 _tmp3_ = vala_code_node_get_source_reference ((ValaCodeNode*) self);
301 _tmp4_ = _tmp3_;
302 _tmp5_ = vala_error_type_new (_tmp1_, _tmp2_, _tmp4_);
303 _result_ = _tmp5_;
304 _tmp6_ = vala_data_type_get_value_owned ((ValaDataType*) self);
305 _tmp7_ = _tmp6_;
306 vala_data_type_set_value_owned ((ValaDataType*) _result_, _tmp7_);
307 _tmp8_ = vala_data_type_get_nullable ((ValaDataType*) self);
308 _tmp9_ = _tmp8_;
309 vala_data_type_set_nullable ((ValaDataType*) _result_, _tmp9_);
310 _tmp10_ = self->priv->_dynamic_error;
311 vala_error_type_set_dynamic_error (_result_, _tmp10_);
312 result = (ValaDataType*) _result_;
313 return result;
314 }
315
316 static gboolean
vala_error_type_real_equals(ValaDataType * base,ValaDataType * type2)317 vala_error_type_real_equals (ValaDataType* base,
318 ValaDataType* type2)
319 {
320 ValaErrorType * self;
321 ValaErrorType* et = NULL;
322 ValaErrorType* _tmp0_;
323 ValaErrorDomain* _tmp1_;
324 ValaErrorDomain* _tmp2_;
325 ValaErrorType* _tmp3_;
326 ValaErrorDomain* _tmp4_;
327 ValaErrorDomain* _tmp5_;
328 gboolean result = FALSE;
329 self = (ValaErrorType*) base;
330 g_return_val_if_fail (type2 != NULL, FALSE);
331 et = VALA_IS_ERROR_TYPE (type2) ? ((ValaErrorType*) type2) : NULL;
332 _tmp0_ = et;
333 if (_tmp0_ == NULL) {
334 result = FALSE;
335 return result;
336 }
337 _tmp1_ = vala_error_type_get_error_domain (self);
338 _tmp2_ = _tmp1_;
339 _tmp3_ = et;
340 _tmp4_ = vala_error_type_get_error_domain (_tmp3_);
341 _tmp5_ = _tmp4_;
342 result = _tmp2_ == _tmp5_;
343 return result;
344 }
345
346 static ValaSymbol*
vala_error_type_real_get_member(ValaDataType * base,const gchar * member_name)347 vala_error_type_real_get_member (ValaDataType* base,
348 const gchar* member_name)
349 {
350 ValaErrorType * self;
351 ValaSymbol* gerror_symbol = NULL;
352 ValaCodeContext* _tmp0_;
353 ValaCodeContext* _tmp1_;
354 ValaNamespace* _tmp2_;
355 ValaNamespace* _tmp3_;
356 ValaScope* _tmp4_;
357 ValaScope* _tmp5_;
358 ValaSymbol* _tmp6_;
359 ValaSymbol* _tmp7_;
360 ValaScope* _tmp8_;
361 ValaScope* _tmp9_;
362 ValaSymbol* _tmp10_;
363 ValaSymbol* _tmp11_;
364 ValaScope* _tmp12_;
365 ValaScope* _tmp13_;
366 ValaSymbol* _tmp14_;
367 ValaSymbol* result = NULL;
368 self = (ValaErrorType*) base;
369 g_return_val_if_fail (member_name != NULL, NULL);
370 _tmp0_ = vala_code_context_get ();
371 _tmp1_ = _tmp0_;
372 _tmp2_ = vala_code_context_get_root (_tmp1_);
373 _tmp3_ = _tmp2_;
374 _tmp4_ = vala_symbol_get_scope ((ValaSymbol*) _tmp3_);
375 _tmp5_ = _tmp4_;
376 _tmp6_ = vala_scope_lookup (_tmp5_, "GLib");
377 _tmp7_ = _tmp6_;
378 _tmp8_ = vala_symbol_get_scope (_tmp7_);
379 _tmp9_ = _tmp8_;
380 _tmp10_ = vala_scope_lookup (_tmp9_, "Error");
381 _tmp11_ = _tmp10_;
382 _vala_code_node_unref0 (_tmp7_);
383 _vala_code_context_unref0 (_tmp1_);
384 gerror_symbol = _tmp11_;
385 _tmp12_ = vala_symbol_get_scope (gerror_symbol);
386 _tmp13_ = _tmp12_;
387 _tmp14_ = vala_scope_lookup (_tmp13_, member_name);
388 result = _tmp14_;
389 _vala_code_node_unref0 (gerror_symbol);
390 return result;
391 }
392
393 static gboolean
vala_error_type_real_is_reference_type_or_type_parameter(ValaDataType * base)394 vala_error_type_real_is_reference_type_or_type_parameter (ValaDataType* base)
395 {
396 ValaErrorType * self;
397 gboolean result = FALSE;
398 self = (ValaErrorType*) base;
399 result = TRUE;
400 return result;
401 }
402
403 static gboolean
vala_error_type_real_check(ValaCodeNode * base,ValaCodeContext * context)404 vala_error_type_real_check (ValaCodeNode* base,
405 ValaCodeContext* context)
406 {
407 ValaErrorType * self;
408 ValaErrorDomain* _tmp0_;
409 ValaErrorDomain* _tmp1_;
410 gboolean result = FALSE;
411 self = (ValaErrorType*) base;
412 g_return_val_if_fail (context != NULL, FALSE);
413 _tmp0_ = vala_error_type_get_error_domain (self);
414 _tmp1_ = _tmp0_;
415 if (_tmp1_ != NULL) {
416 ValaErrorDomain* _tmp2_;
417 ValaErrorDomain* _tmp3_;
418 _tmp2_ = vala_error_type_get_error_domain (self);
419 _tmp3_ = _tmp2_;
420 result = vala_code_node_check ((ValaCodeNode*) _tmp3_, context);
421 return result;
422 }
423 result = TRUE;
424 return result;
425 }
426
427 static void
vala_error_type_class_init(ValaErrorTypeClass * klass,gpointer klass_data)428 vala_error_type_class_init (ValaErrorTypeClass * klass,
429 gpointer klass_data)
430 {
431 vala_error_type_parent_class = g_type_class_peek_parent (klass);
432 ((ValaCodeNodeClass *) klass)->finalize = vala_error_type_finalize;
433 g_type_class_adjust_private_offset (klass, &ValaErrorType_private_offset);
434 ((ValaDataTypeClass *) klass)->compatible = (gboolean (*) (ValaDataType*, ValaDataType*)) vala_error_type_real_compatible;
435 ((ValaDataTypeClass *) klass)->to_qualified_string = (gchar* (*) (ValaDataType*, ValaScope*)) vala_error_type_real_to_qualified_string;
436 ((ValaDataTypeClass *) klass)->copy = (ValaDataType* (*) (ValaDataType*)) vala_error_type_real_copy;
437 ((ValaDataTypeClass *) klass)->equals = (gboolean (*) (ValaDataType*, ValaDataType*)) vala_error_type_real_equals;
438 ((ValaDataTypeClass *) klass)->get_member = (ValaSymbol* (*) (ValaDataType*, const gchar*)) vala_error_type_real_get_member;
439 ((ValaDataTypeClass *) klass)->is_reference_type_or_type_parameter = (gboolean (*) (ValaDataType*)) vala_error_type_real_is_reference_type_or_type_parameter;
440 ((ValaCodeNodeClass *) klass)->check = (gboolean (*) (ValaCodeNode*, ValaCodeContext*)) vala_error_type_real_check;
441 }
442
443 static void
vala_error_type_instance_init(ValaErrorType * self,gpointer klass)444 vala_error_type_instance_init (ValaErrorType * self,
445 gpointer klass)
446 {
447 self->priv = vala_error_type_get_instance_private (self);
448 }
449
450 static void
vala_error_type_finalize(ValaCodeNode * obj)451 vala_error_type_finalize (ValaCodeNode * obj)
452 {
453 ValaErrorType * self;
454 self = G_TYPE_CHECK_INSTANCE_CAST (obj, VALA_TYPE_ERROR_TYPE, ValaErrorType);
455 VALA_CODE_NODE_CLASS (vala_error_type_parent_class)->finalize (obj);
456 }
457
458 /**
459 * A class type.
460 */
461 static GType
vala_error_type_get_type_once(void)462 vala_error_type_get_type_once (void)
463 {
464 static const GTypeInfo g_define_type_info = { sizeof (ValaErrorTypeClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) vala_error_type_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ValaErrorType), 0, (GInstanceInitFunc) vala_error_type_instance_init, NULL };
465 GType vala_error_type_type_id;
466 vala_error_type_type_id = g_type_register_static (VALA_TYPE_REFERENCE_TYPE, "ValaErrorType", &g_define_type_info, 0);
467 ValaErrorType_private_offset = g_type_add_instance_private (vala_error_type_type_id, sizeof (ValaErrorTypePrivate));
468 return vala_error_type_type_id;
469 }
470
471 GType
vala_error_type_get_type(void)472 vala_error_type_get_type (void)
473 {
474 static volatile gsize vala_error_type_type_id__volatile = 0;
475 if (g_once_init_enter (&vala_error_type_type_id__volatile)) {
476 GType vala_error_type_type_id;
477 vala_error_type_type_id = vala_error_type_get_type_once ();
478 g_once_init_leave (&vala_error_type_type_id__volatile, vala_error_type_type_id);
479 }
480 return vala_error_type_type_id__volatile;
481 }
482
483