/* DomNode.c generated by valac 0.56.19, the Vala compiler
 * generated from DomNode.vala, do not modify */

/* -*- Mode: vala; indent-tabs-mode: nil; c-basic-offset: 2; tab-width: 2 -*- */
/*
 *
 * Copyright (C) 2016  Daniel Espinosa <esodan@gmail.com>
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.

 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.

 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, see <http://www.gnu.org/licenses/>.
 *
 * Authors:
 *      Daniel Espinosa <esodan@gmail.com>
 */

#include "gxml/gxml.h"
#include <glib.h>
#include <stdlib.h>
#include <string.h>
#include <gee.h>
#include <glib-object.h>
#include <glib/gi18n-lib.h>
#include "gxml.h"

#if !defined(VALA_STRICT_C)
#if !defined(__clang__) && defined(__GNUC__) && (__GNUC__ >= 14)
#pragma GCC diagnostic warning "-Wincompatible-pointer-types"
#elif defined(__clang__) && (__clang_major__ >= 16)
#pragma clang diagnostic ignored "-Wincompatible-function-pointer-types"
#pragma clang diagnostic ignored "-Wincompatible-pointer-types"
#endif
#endif

#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
#define _g_free0(var) (var = (g_free (var), NULL))
enum  {
	GXML_DOM_ERROR_NAME_0_PROPERTY,
	GXML_DOM_ERROR_NAME_NUM_PROPERTIES
};
static GParamSpec* gxml_dom_error_name_properties[GXML_DOM_ERROR_NAME_NUM_PROPERTIES];

/**
 * DOM4 error codes.
 */
struct _GXmlDomErrorNamePrivate {
	GeeHashMap* names;
};

static gint GXmlDomErrorName_private_offset;
static gpointer gxml_dom_error_name_parent_class = NULL;

static GType gxml_dom_node_get_type_once (void);
static GObject * gxml_dom_error_name_constructor (GType type,
                                           guint n_construct_properties,
                                           GObjectConstructParam * construct_properties);
static void gxml_dom_error_name_finalize (GObject * obj);
static GType gxml_dom_error_name_get_type_once (void);

static GType
gxml_dom_node_node_type_get_type_once (void)
{
	static const GEnumValue values[] = {{GXML_DOM_NODE_NODE_TYPE_INVALID, "GXML_DOM_NODE_NODE_TYPE_INVALID", "invalid"}, {GXML_DOM_NODE_NODE_TYPE_ELEMENT_NODE, "GXML_DOM_NODE_NODE_TYPE_ELEMENT_NODE", "element-node"}, {GXML_DOM_NODE_NODE_TYPE_ATTRIBUTE_NODE, "GXML_DOM_NODE_NODE_TYPE_ATTRIBUTE_NODE", "attribute-node"}, {GXML_DOM_NODE_NODE_TYPE_TEXT_NODE, "GXML_DOM_NODE_NODE_TYPE_TEXT_NODE", "text-node"}, {GXML_DOM_NODE_NODE_TYPE_CDATA_SECTION_NODE, "GXML_DOM_NODE_NODE_TYPE_CDATA_SECTION_NODE", "cdata-section-node"}, {GXML_DOM_NODE_NODE_TYPE_ENTITY_REFERENCE_NODE, "GXML_DOM_NODE_NODE_TYPE_ENTITY_REFERENCE_NODE", "entity-reference-node"}, {GXML_DOM_NODE_NODE_TYPE_ENTITY_NODE, "GXML_DOM_NODE_NODE_TYPE_ENTITY_NODE", "entity-node"}, {GXML_DOM_NODE_NODE_TYPE_PROCESSING_INSTRUCTION_NODE, "GXML_DOM_NODE_NODE_TYPE_PROCESSING_INSTRUCTION_NODE", "processing-instruction-node"}, {GXML_DOM_NODE_NODE_TYPE_COMMENT_NODE, "GXML_DOM_NODE_NODE_TYPE_COMMENT_NODE", "comment-node"}, {GXML_DOM_NODE_NODE_TYPE_DOCUMENT_NODE, "GXML_DOM_NODE_NODE_TYPE_DOCUMENT_NODE", "document-node"}, {GXML_DOM_NODE_NODE_TYPE_DOCUMENT_TYPE_NODE, "GXML_DOM_NODE_NODE_TYPE_DOCUMENT_TYPE_NODE", "document-type-node"}, {GXML_DOM_NODE_NODE_TYPE_DOCUMENT_FRAGMENT_NODE, "GXML_DOM_NODE_NODE_TYPE_DOCUMENT_FRAGMENT_NODE", "document-fragment-node"}, {GXML_DOM_NODE_NODE_TYPE_NOTATION_NODE, "GXML_DOM_NODE_NODE_TYPE_NOTATION_NODE", "notation-node"}, {0, NULL, NULL}};
	GType gxml_dom_node_node_type_type_id;
	gxml_dom_node_node_type_type_id = g_enum_register_static ("GXmlDomNodeNodeType", values);
	return gxml_dom_node_node_type_type_id;
}

GType
gxml_dom_node_node_type_get_type (void)
{
	static volatile gsize gxml_dom_node_node_type_type_id__once = 0;
	if (g_once_init_enter (&gxml_dom_node_node_type_type_id__once)) {
		GType gxml_dom_node_node_type_type_id;
		gxml_dom_node_node_type_type_id = gxml_dom_node_node_type_get_type_once ();
		g_once_init_leave (&gxml_dom_node_node_type_type_id__once, gxml_dom_node_node_type_type_id);
	}
	return gxml_dom_node_node_type_type_id__once;
}

static GType
gxml_dom_node_document_position_get_type_once (void)
{
	static const GFlagsValue values[] = {{GXML_DOM_NODE_DOCUMENT_POSITION_NONE, "GXML_DOM_NODE_DOCUMENT_POSITION_NONE", "none"}, {GXML_DOM_NODE_DOCUMENT_POSITION_DISCONNECTED, "GXML_DOM_NODE_DOCUMENT_POSITION_DISCONNECTED", "disconnected"}, {GXML_DOM_NODE_DOCUMENT_POSITION_PRECEDING, "GXML_DOM_NODE_DOCUMENT_POSITION_PRECEDING", "preceding"}, {GXML_DOM_NODE_DOCUMENT_POSITION_FOLLOWING, "GXML_DOM_NODE_DOCUMENT_POSITION_FOLLOWING", "following"}, {GXML_DOM_NODE_DOCUMENT_POSITION_CONTAINS, "GXML_DOM_NODE_DOCUMENT_POSITION_CONTAINS", "contains"}, {GXML_DOM_NODE_DOCUMENT_POSITION_CONTAINED_BY, "GXML_DOM_NODE_DOCUMENT_POSITION_CONTAINED_BY", "contained-by"}, {GXML_DOM_NODE_DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC, "GXML_DOM_NODE_DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC", "implementation-specific"}, {0, NULL, NULL}};
	GType gxml_dom_node_document_position_type_id;
	gxml_dom_node_document_position_type_id = g_flags_register_static ("GXmlDomNodeDocumentPosition", values);
	return gxml_dom_node_document_position_type_id;
}

GType
gxml_dom_node_document_position_get_type (void)
{
	static volatile gsize gxml_dom_node_document_position_type_id__once = 0;
	if (g_once_init_enter (&gxml_dom_node_document_position_type_id__once)) {
		GType gxml_dom_node_document_position_type_id;
		gxml_dom_node_document_position_type_id = gxml_dom_node_document_position_get_type_once ();
		g_once_init_leave (&gxml_dom_node_document_position_type_id__once, gxml_dom_node_document_position_type_id);
	}
	return gxml_dom_node_document_position_type_id__once;
}

GXmlDomNodeNodeType
gxml_dom_node_get_node_type (GXmlDomNode* self)
{
	GXmlDomNodeIface* _iface_;
	g_return_val_if_fail (self != NULL, 0);
	_iface_ = GXML_DOM_NODE_GET_INTERFACE (self);
	if (_iface_->get_node_type) {
		return _iface_->get_node_type (self);
	}
	return 0;
}

gchar*
gxml_dom_node_get_node_name (GXmlDomNode* self)
{
	GXmlDomNodeIface* _iface_;
	g_return_val_if_fail (self != NULL, NULL);
	_iface_ = GXML_DOM_NODE_GET_INTERFACE (self);
	if (_iface_->get_node_name) {
		return _iface_->get_node_name (self);
	}
	return NULL;
}

const gchar*
gxml_dom_node_get_base_uri (GXmlDomNode* self)
{
	GXmlDomNodeIface* _iface_;
	g_return_val_if_fail (self != NULL, NULL);
	_iface_ = GXML_DOM_NODE_GET_INTERFACE (self);
	if (_iface_->get_base_uri) {
		return _iface_->get_base_uri (self);
	}
	return NULL;
}

GXmlDomDocument*
gxml_dom_node_get_owner_document (GXmlDomNode* self)
{
	GXmlDomNodeIface* _iface_;
	g_return_val_if_fail (self != NULL, NULL);
	_iface_ = GXML_DOM_NODE_GET_INTERFACE (self);
	if (_iface_->get_owner_document) {
		return _iface_->get_owner_document (self);
	}
	return NULL;
}

void
gxml_dom_node_set_owner_document (GXmlDomNode* self,
                                  GXmlDomDocument* value)
{
	GXmlDomNodeIface* _iface_;
	g_return_if_fail (self != NULL);
	_iface_ = GXML_DOM_NODE_GET_INTERFACE (self);
	if (_iface_->set_owner_document) {
		_iface_->set_owner_document (self, value);
	}
}

GXmlDomNode*
gxml_dom_node_get_parent_node (GXmlDomNode* self)
{
	GXmlDomNodeIface* _iface_;
	g_return_val_if_fail (self != NULL, NULL);
	_iface_ = GXML_DOM_NODE_GET_INTERFACE (self);
	if (_iface_->get_parent_node) {
		return _iface_->get_parent_node (self);
	}
	return NULL;
}

GXmlDomElement*
gxml_dom_node_get_parent_element (GXmlDomNode* self)
{
	GXmlDomNodeIface* _iface_;
	g_return_val_if_fail (self != NULL, NULL);
	_iface_ = GXML_DOM_NODE_GET_INTERFACE (self);
	if (_iface_->get_parent_element) {
		return _iface_->get_parent_element (self);
	}
	return NULL;
}

GXmlDomNodeList*
gxml_dom_node_get_child_nodes (GXmlDomNode* self)
{
	GXmlDomNodeIface* _iface_;
	g_return_val_if_fail (self != NULL, NULL);
	_iface_ = GXML_DOM_NODE_GET_INTERFACE (self);
	if (_iface_->get_child_nodes) {
		return _iface_->get_child_nodes (self);
	}
	return NULL;
}

GXmlDomNode*
gxml_dom_node_get_first_child (GXmlDomNode* self)
{
	GXmlDomNodeIface* _iface_;
	g_return_val_if_fail (self != NULL, NULL);
	_iface_ = GXML_DOM_NODE_GET_INTERFACE (self);
	if (_iface_->get_first_child) {
		return _iface_->get_first_child (self);
	}
	return NULL;
}

GXmlDomNode*
gxml_dom_node_get_last_child (GXmlDomNode* self)
{
	GXmlDomNodeIface* _iface_;
	g_return_val_if_fail (self != NULL, NULL);
	_iface_ = GXML_DOM_NODE_GET_INTERFACE (self);
	if (_iface_->get_last_child) {
		return _iface_->get_last_child (self);
	}
	return NULL;
}

GXmlDomNode*
gxml_dom_node_get_previous_sibling (GXmlDomNode* self)
{
	GXmlDomNodeIface* _iface_;
	g_return_val_if_fail (self != NULL, NULL);
	_iface_ = GXML_DOM_NODE_GET_INTERFACE (self);
	if (_iface_->get_previous_sibling) {
		return _iface_->get_previous_sibling (self);
	}
	return NULL;
}

GXmlDomNode*
gxml_dom_node_get_next_sibling (GXmlDomNode* self)
{
	GXmlDomNodeIface* _iface_;
	g_return_val_if_fail (self != NULL, NULL);
	_iface_ = GXML_DOM_NODE_GET_INTERFACE (self);
	if (_iface_->get_next_sibling) {
		return _iface_->get_next_sibling (self);
	}
	return NULL;
}

gchar*
gxml_dom_node_get_node_value (GXmlDomNode* self)
{
	GXmlDomNodeIface* _iface_;
	g_return_val_if_fail (self != NULL, NULL);
	_iface_ = GXML_DOM_NODE_GET_INTERFACE (self);
	if (_iface_->get_node_value) {
		return _iface_->get_node_value (self);
	}
	return NULL;
}

void
gxml_dom_node_set_node_value (GXmlDomNode* self,
                              const gchar* value)
{
	GXmlDomNodeIface* _iface_;
	g_return_if_fail (self != NULL);
	_iface_ = GXML_DOM_NODE_GET_INTERFACE (self);
	if (_iface_->set_node_value) {
		_iface_->set_node_value (self, value);
	}
}

gchar*
gxml_dom_node_get_text_content (GXmlDomNode* self)
{
	GXmlDomNodeIface* _iface_;
	g_return_val_if_fail (self != NULL, NULL);
	_iface_ = GXML_DOM_NODE_GET_INTERFACE (self);
	if (_iface_->get_text_content) {
		return _iface_->get_text_content (self);
	}
	return NULL;
}

void
gxml_dom_node_set_text_content (GXmlDomNode* self,
                                const gchar* value)
{
	GXmlDomNodeIface* _iface_;
	g_return_if_fail (self != NULL);
	_iface_ = GXML_DOM_NODE_GET_INTERFACE (self);
	if (_iface_->set_text_content) {
		_iface_->set_text_content (self, value);
	}
}

gboolean
gxml_dom_node_has_child_nodes (GXmlDomNode* self)
{
	GXmlDomNodeIface* _iface_;
	g_return_val_if_fail (self != NULL, FALSE);
	_iface_ = GXML_DOM_NODE_GET_INTERFACE (self);
	if (_iface_->has_child_nodes) {
		return _iface_->has_child_nodes (self);
	}
	return FALSE;
}

void
gxml_dom_node_normalize (GXmlDomNode* self)
{
	GXmlDomNodeIface* _iface_;
	g_return_if_fail (self != NULL);
	_iface_ = GXML_DOM_NODE_GET_INTERFACE (self);
	if (_iface_->normalize) {
		_iface_->normalize (self);
	}
}

gboolean
gxml_dom_node_is_equal_node (GXmlDomNode* self,
                             GXmlDomNode* node)
{
	GXmlDomNodeIface* _iface_;
	g_return_val_if_fail (self != NULL, FALSE);
	_iface_ = GXML_DOM_NODE_GET_INTERFACE (self);
	if (_iface_->is_equal_node) {
		return _iface_->is_equal_node (self, node);
	}
	return FALSE;
}

GXmlDomNodeDocumentPosition
gxml_dom_node_compare_document_position (GXmlDomNode* self,
                                         GXmlDomNode* other)
{
	GXmlDomNodeIface* _iface_;
	g_return_val_if_fail (self != NULL, 0U);
	_iface_ = GXML_DOM_NODE_GET_INTERFACE (self);
	if (_iface_->compare_document_position) {
		return _iface_->compare_document_position (self, other);
	}
	return 0U;
}

gboolean
gxml_dom_node_contains (GXmlDomNode* self,
                        GXmlDomNode* other)
{
	GXmlDomNodeIface* _iface_;
	g_return_val_if_fail (self != NULL, FALSE);
	_iface_ = GXML_DOM_NODE_GET_INTERFACE (self);
	if (_iface_->contains) {
		return _iface_->contains (self, other);
	}
	return FALSE;
}

gchar*
gxml_dom_node_lookup_prefix (GXmlDomNode* self,
                             const gchar* nspace)
{
	GXmlDomNodeIface* _iface_;
	g_return_val_if_fail (self != NULL, NULL);
	_iface_ = GXML_DOM_NODE_GET_INTERFACE (self);
	if (_iface_->lookup_prefix) {
		return _iface_->lookup_prefix (self, nspace);
	}
	return NULL;
}

gchar*
gxml_dom_node_lookup_namespace_uri (GXmlDomNode* self,
                                    const gchar* prefix)
{
	GXmlDomNodeIface* _iface_;
	g_return_val_if_fail (self != NULL, NULL);
	_iface_ = GXML_DOM_NODE_GET_INTERFACE (self);
	if (_iface_->lookup_namespace_uri) {
		return _iface_->lookup_namespace_uri (self, prefix);
	}
	return NULL;
}

gboolean
gxml_dom_node_is_default_namespace (GXmlDomNode* self,
                                    const gchar* nspace)
{
	GXmlDomNodeIface* _iface_;
	g_return_val_if_fail (self != NULL, FALSE);
	_iface_ = GXML_DOM_NODE_GET_INTERFACE (self);
	if (_iface_->is_default_namespace) {
		return _iface_->is_default_namespace (self, nspace);
	}
	return FALSE;
}

GXmlDomNode*
gxml_dom_node_insert_before (GXmlDomNode* self,
                             GXmlDomNode* node,
                             GXmlDomNode* child,
                             GError** error)
{
	GXmlDomNodeIface* _iface_;
	g_return_val_if_fail (self != NULL, NULL);
	_iface_ = GXML_DOM_NODE_GET_INTERFACE (self);
	if (_iface_->insert_before) {
		return _iface_->insert_before (self, node, child, error);
	}
	return NULL;
}

GXmlDomNode*
gxml_dom_node_append_child (GXmlDomNode* self,
                            GXmlDomNode* node,
                            GError** error)
{
	GXmlDomNodeIface* _iface_;
	g_return_val_if_fail (self != NULL, NULL);
	_iface_ = GXML_DOM_NODE_GET_INTERFACE (self);
	if (_iface_->append_child) {
		return _iface_->append_child (self, node, error);
	}
	return NULL;
}

GXmlDomNode*
gxml_dom_node_replace_child (GXmlDomNode* self,
                             GXmlDomNode* node,
                             GXmlDomNode* child,
                             GError** error)
{
	GXmlDomNodeIface* _iface_;
	g_return_val_if_fail (self != NULL, NULL);
	_iface_ = GXML_DOM_NODE_GET_INTERFACE (self);
	if (_iface_->replace_child) {
		return _iface_->replace_child (self, node, child, error);
	}
	return NULL;
}

GXmlDomNode*
gxml_dom_node_remove_child (GXmlDomNode* self,
                            GXmlDomNode* child,
                            GError** error)
{
	GXmlDomNodeIface* _iface_;
	g_return_val_if_fail (self != NULL, NULL);
	_iface_ = GXML_DOM_NODE_GET_INTERFACE (self);
	if (_iface_->remove_child) {
		return _iface_->remove_child (self, child, error);
	}
	return NULL;
}

/**
   * Copy a {@link GXml.DomNode} relaying on {@link GXml.DomDocument} to other {@link GXml.DomNode}.
   *
   * {@link node} could belongs from different {@link GXml.DomDocument}, while source is a node
   * belonging to given document.
   *
   * Only {@link GXml.DomElement} objects are supported. For attributes, use
   * {@link GXml.DomElement.set_attribute} method, passing source's name and value as arguments.
   *
   * @param doc a {@link GXml.DomDocument} owning destiny node
   * @param node a {@link GXml.DomElement} to copy nodes to
   * @param source a {@link GXml.DomElement} to copy nodes from, it could be holded by different {@link GXml.DomDocument}
   */
gboolean
gxml_dom_node_copy (GXmlDomDocument* doc,
                    GXmlDomNode* node,
                    GXmlDomNode* source,
                    gboolean deep,
                    GError** error)
{
	gboolean _tmp0_ = FALSE;
	GError* _inner_error0_ = NULL;
	gboolean result;
	g_return_val_if_fail (doc != NULL, FALSE);
	g_return_val_if_fail (node != NULL, FALSE);
	g_return_val_if_fail (source != NULL, FALSE);
	if (GXML_IS_DOM_DOCUMENT (node)) {
		result = FALSE;
		return result;
	}
	if (GXML_IS_DOM_ELEMENT (source)) {
		_tmp0_ = GXML_IS_DOM_ELEMENT (node);
	} else {
		_tmp0_ = FALSE;
	}
	if (_tmp0_) {
		{
			GeeIterator* _p_it = NULL;
			GXmlDomNamedNodeMap* _tmp1_;
			GXmlDomNamedNodeMap* _tmp2_;
			GXmlDomNamedNodeMap* _tmp3_;
			GeeCollection* _tmp4_;
			GeeCollection* _tmp5_;
			GeeCollection* _tmp6_;
			GeeIterator* _tmp7_;
			GeeIterator* _tmp8_;
			_tmp1_ = gxml_dom_element_get_attributes (G_TYPE_CHECK_INSTANCE_CAST (source, GXML_TYPE_DOM_ELEMENT, GXmlDomElement));
			_tmp2_ = _tmp1_;
			_tmp3_ = _tmp2_;
			_tmp4_ = gee_map_get_values ((GeeMap*) _tmp3_);
			_tmp5_ = _tmp4_;
			_tmp6_ = _tmp5_;
			_tmp7_ = gee_iterable_iterator ((GeeIterable*) _tmp6_);
			_tmp8_ = _tmp7_;
			_g_object_unref0 (_tmp6_);
			_g_object_unref0 (_tmp3_);
			_p_it = _tmp8_;
			while (TRUE) {
				GeeIterator* _tmp9_;
				GXmlDomNode* p = NULL;
				GeeIterator* _tmp10_;
				gpointer _tmp11_;
				GXmlDomNode* _tmp12_;
				gchar* _tmp13_;
				gchar* _tmp14_;
				gchar* _tmp15_;
				GXmlDomNode* _tmp16_;
				gchar* _tmp17_;
				gchar* _tmp18_;
				gchar* _tmp19_;
				_tmp9_ = _p_it;
				if (!gee_iterator_next (_tmp9_)) {
					break;
				}
				_tmp10_ = _p_it;
				_tmp11_ = gee_iterator_get (_tmp10_);
				p = (GXmlDomNode*) _tmp11_;
				_tmp12_ = p;
				_tmp13_ = gxml_dom_node_get_node_name (_tmp12_);
				_tmp14_ = _tmp13_;
				_tmp15_ = _tmp14_;
				_tmp16_ = p;
				_tmp17_ = gxml_dom_node_get_node_value (_tmp16_);
				_tmp18_ = _tmp17_;
				_tmp19_ = _tmp18_;
				gxml_dom_element_set_attribute (G_TYPE_CHECK_INSTANCE_CAST (node, GXML_TYPE_DOM_ELEMENT, GXmlDomElement), _tmp15_, _tmp19_, &_inner_error0_);
				_g_free0 (_tmp19_);
				_g_free0 (_tmp15_);
				if (G_UNLIKELY (_inner_error0_ != NULL)) {
					gboolean _tmp20_ = FALSE;
					g_propagate_error (error, _inner_error0_);
					_g_object_unref0 (p);
					_g_object_unref0 (_p_it);
					return _tmp20_;
				}
				_g_object_unref0 (p);
			}
			_g_object_unref0 (_p_it);
		}
		if (!deep) {
			result = TRUE;
			return result;
		}
		{
			GXmlDomNodeList* _c_list = NULL;
			GXmlDomNodeList* _tmp21_;
			GXmlDomNodeList* _tmp22_;
			gint _c_size = 0;
			GXmlDomNodeList* _tmp23_;
			gint _tmp24_;
			gint _tmp25_;
			gint _c_index = 0;
			_tmp21_ = gxml_dom_node_get_child_nodes (source);
			_tmp22_ = _tmp21_;
			_c_list = _tmp22_;
			_tmp23_ = _c_list;
			_tmp24_ = gee_collection_get_size ((GeeCollection*) _tmp23_);
			_tmp25_ = _tmp24_;
			_c_size = _tmp25_;
			_c_index = -1;
			while (TRUE) {
				gint _tmp26_;
				gint _tmp27_;
				GXmlDomNode* c = NULL;
				GXmlDomNodeList* _tmp28_;
				gpointer _tmp29_;
				GXmlDomNode* _tmp30_;
				GXmlDomNode* _tmp49_;
				_c_index = _c_index + 1;
				_tmp26_ = _c_index;
				_tmp27_ = _c_size;
				if (!(_tmp26_ < _tmp27_)) {
					break;
				}
				_tmp28_ = _c_list;
				_tmp29_ = gee_list_get ((GeeList*) _tmp28_, _c_index);
				c = (GXmlDomNode*) _tmp29_;
				_tmp30_ = c;
				if (GXML_IS_DOM_ELEMENT (_tmp30_)) {
					GXmlDomNode* _tmp31_;
					gchar* _tmp32_;
					gchar* _tmp33_;
					gchar* _tmp34_;
					gboolean _tmp35_;
					_tmp31_ = c;
					_tmp32_ = gxml_dom_node_get_node_name (_tmp31_);
					_tmp33_ = _tmp32_;
					_tmp34_ = _tmp33_;
					_tmp35_ = _tmp34_ == NULL;
					_g_free0 (_tmp34_);
					if (_tmp35_) {
						_g_object_unref0 (c);
						continue;
					}
					{
						GXmlDomElement* e = NULL;
						GXmlDomNode* _tmp36_;
						gchar* _tmp37_;
						gchar* _tmp38_;
						gchar* _tmp39_;
						GXmlDomElement* _tmp40_;
						GXmlDomElement* _tmp41_;
						GXmlDomNodeList* _tmp42_;
						GXmlDomNodeList* _tmp43_;
						GXmlDomNodeList* _tmp44_;
						GXmlDomElement* _tmp45_;
						GXmlDomElement* _tmp46_;
						GXmlDomNode* _tmp47_;
						_tmp36_ = c;
						_tmp37_ = gxml_dom_node_get_node_name (_tmp36_);
						_tmp38_ = _tmp37_;
						_tmp39_ = _tmp38_;
						_tmp40_ = gxml_dom_document_create_element (doc, _tmp39_, &_inner_error0_);
						_tmp41_ = _tmp40_;
						_g_free0 (_tmp39_);
						e = _tmp41_;
						if (G_UNLIKELY (_inner_error0_ != NULL)) {
							goto __catch0_g_error;
						}
						_tmp42_ = gxml_dom_node_get_child_nodes (node);
						_tmp43_ = _tmp42_;
						_tmp44_ = _tmp43_;
						_tmp45_ = e;
						gee_collection_add ((GeeCollection*) _tmp44_, (GXmlDomNode*) _tmp45_);
						_g_object_unref0 (_tmp44_);
						_tmp46_ = e;
						_tmp47_ = c;
						gxml_dom_node_copy (doc, (GXmlDomNode*) _tmp46_, _tmp47_, deep, &_inner_error0_);
						if (G_UNLIKELY (_inner_error0_ != NULL)) {
							_g_object_unref0 (e);
							goto __catch0_g_error;
						}
						_g_object_unref0 (e);
					}
					goto __finally0;
					__catch0_g_error:
					{
						g_clear_error (&_inner_error0_);
					}
					__finally0:
					if (G_UNLIKELY (_inner_error0_ != NULL)) {
						gboolean _tmp48_ = FALSE;
						g_propagate_error (error, _inner_error0_);
						_g_object_unref0 (c);
						_g_object_unref0 (_c_list);
						return _tmp48_;
					}
				}
				_tmp49_ = c;
				if (GXML_IS_DOM_TEXT (_tmp49_)) {
					GXmlDomNode* _tmp50_;
					gchar* _tmp51_;
					gchar* _tmp52_;
					gchar* _tmp53_;
					gboolean _tmp54_;
					_tmp50_ = c;
					_tmp51_ = gxml_dom_character_data_get_data ((GXmlDomCharacterData*) G_TYPE_CHECK_INSTANCE_CAST (_tmp50_, GXML_TYPE_DOM_TEXT, GXmlDomText));
					_tmp52_ = _tmp51_;
					_tmp53_ = _tmp52_;
					_tmp54_ = _tmp53_ == NULL;
					_g_free0 (_tmp53_);
					if (_tmp54_) {
						g_warning ("DomNode.vala:133: %s", _ ("Text node with NULL string"));
						_g_object_unref0 (c);
						continue;
					}
					{
						GXmlDomText* t = NULL;
						GXmlDomNode* _tmp55_;
						gchar* _tmp56_;
						gchar* _tmp57_;
						gchar* _tmp58_;
						GXmlDomText* _tmp59_;
						GXmlDomText* _tmp60_;
						GXmlDomNodeList* _tmp61_;
						GXmlDomNodeList* _tmp62_;
						GXmlDomNodeList* _tmp63_;
						GXmlDomText* _tmp64_;
						_tmp55_ = c;
						_tmp56_ = gxml_dom_character_data_get_data ((GXmlDomCharacterData*) G_TYPE_CHECK_INSTANCE_CAST (_tmp55_, GXML_TYPE_DOM_TEXT, GXmlDomText));
						_tmp57_ = _tmp56_;
						_tmp58_ = _tmp57_;
						_tmp59_ = gxml_dom_document_create_text_node (doc, _tmp58_, &_inner_error0_);
						_tmp60_ = _tmp59_;
						_g_free0 (_tmp58_);
						t = _tmp60_;
						if (G_UNLIKELY (_inner_error0_ != NULL)) {
							goto __catch1_g_error;
						}
						_tmp61_ = gxml_dom_node_get_child_nodes (node);
						_tmp62_ = _tmp61_;
						_tmp63_ = _tmp62_;
						_tmp64_ = t;
						gee_collection_add ((GeeCollection*) _tmp63_, (GXmlDomNode*) _tmp64_);
						_g_object_unref0 (_tmp63_);
						_g_object_unref0 (t);
					}
					goto __finally1;
					__catch1_g_error:
					{
						g_clear_error (&_inner_error0_);
						g_warning ("DomNode.vala:140: %s", _ ("Can't copy child text node"));
					}
					__finally1:
					if (G_UNLIKELY (_inner_error0_ != NULL)) {
						gboolean _tmp65_ = FALSE;
						g_propagate_error (error, _inner_error0_);
						_g_object_unref0 (c);
						_g_object_unref0 (_c_list);
						return _tmp65_;
					}
				}
				_g_object_unref0 (c);
			}
			_g_object_unref0 (_c_list);
		}
	}
	result = FALSE;
	return result;
}

static void
gxml_dom_node_default_init (GXmlDomNodeIface * iface,
                            gpointer iface_data)
{
	g_object_interface_install_property (iface, g_param_spec_enum ("node-type", "node-type", "node-type", GXML_DOM_NODE_TYPE_NODE_TYPE, 0, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE));
	g_object_interface_install_property (iface, g_param_spec_string ("node-name", "node-name", "node-name", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE));
	g_object_interface_install_property (iface, g_param_spec_string ("base-uri", "base-uri", "base-uri", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE));
	g_object_interface_install_property (iface, g_param_spec_object ("owner-document", "owner-document", "owner-document", GXML_TYPE_DOM_DOCUMENT, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT));
	g_object_interface_install_property (iface, g_param_spec_object ("parent-node", "parent-node", "parent-node", GXML_TYPE_DOM_NODE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE));
	g_object_interface_install_property (iface, g_param_spec_object ("parent-element", "parent-element", "parent-element", GXML_TYPE_DOM_ELEMENT, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE));
	g_object_interface_install_property (iface, g_param_spec_object ("child-nodes", "child-nodes", "child-nodes", GXML_TYPE_DOM_NODE_LIST, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE));
	g_object_interface_install_property (iface, g_param_spec_object ("first-child", "first-child", "first-child", GXML_TYPE_DOM_NODE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE));
	g_object_interface_install_property (iface, g_param_spec_object ("last-child", "last-child", "last-child", GXML_TYPE_DOM_NODE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE));
	g_object_interface_install_property (iface, g_param_spec_object ("previous-sibling", "previous-sibling", "previous-sibling", GXML_TYPE_DOM_NODE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE));
	g_object_interface_install_property (iface, g_param_spec_object ("next-sibling", "next-sibling", "next-sibling", GXML_TYPE_DOM_NODE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE));
	g_object_interface_install_property (iface, g_param_spec_string ("node-value", "node-value", "node-value", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_interface_install_property (iface, g_param_spec_string ("text-content", "text-content", "text-content", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
}

/**
 * Base interface for all DOM4 implementations
 */
static GType
gxml_dom_node_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (GXmlDomNodeIface), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gxml_dom_node_default_init, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
	GType gxml_dom_node_type_id;
	gxml_dom_node_type_id = g_type_register_static (G_TYPE_INTERFACE, "GXmlDomNode", &g_define_type_info, 0);
	g_type_interface_add_prerequisite (gxml_dom_node_type_id, G_TYPE_OBJECT);
	g_type_interface_add_prerequisite (gxml_dom_node_type_id, GXML_TYPE_DOM_EVENT_TARGET);
	return gxml_dom_node_type_id;
}

GType
gxml_dom_node_get_type (void)
{
	static volatile gsize gxml_dom_node_type_id__once = 0;
	if (g_once_init_enter (&gxml_dom_node_type_id__once)) {
		GType gxml_dom_node_type_id;
		gxml_dom_node_type_id = gxml_dom_node_get_type_once ();
		g_once_init_leave (&gxml_dom_node_type_id__once, gxml_dom_node_type_id);
	}
	return gxml_dom_node_type_id__once;
}

GQuark
gxml_dom_error_quark (void)
{
	return g_quark_from_static_string ("gxml-dom-error-quark");
}

static GType
gxml_dom_error_get_type_once (void)
{
	static const GEnumValue values[] = {{GXML_DOM_ERROR_INDEX_SIZE_ERROR, "GXML_DOM_ERROR_INDEX_SIZE_ERROR", "index-size-error"}, {GXML_DOM_ERROR_DOMSTRING_SIZE_ERROR, "GXML_DOM_ERROR_DOMSTRING_SIZE_ERROR", "domstring-size-error"}, {GXML_DOM_ERROR_HIERARCHY_REQUEST_ERROR, "GXML_DOM_ERROR_HIERARCHY_REQUEST_ERROR", "hierarchy-request-error"}, {GXML_DOM_ERROR_WRONG_DOCUMENT_ERROR, "GXML_DOM_ERROR_WRONG_DOCUMENT_ERROR", "wrong-document-error"}, {GXML_DOM_ERROR_INVALID_CHARACTER_ERROR, "GXML_DOM_ERROR_INVALID_CHARACTER_ERROR", "invalid-character-error"}, {GXML_DOM_ERROR_NO_DATA_ALLOWED_ERROR, "GXML_DOM_ERROR_NO_DATA_ALLOWED_ERROR", "no-data-allowed-error"}, {GXML_DOM_ERROR_NO_MODIFICATION_ALLOWED_ERROR, "GXML_DOM_ERROR_NO_MODIFICATION_ALLOWED_ERROR", "no-modification-allowed-error"}, {GXML_DOM_ERROR_NOT_FOUND_ERROR, "GXML_DOM_ERROR_NOT_FOUND_ERROR", "not-found-error"}, {GXML_DOM_ERROR_NOT_SUPPORTED_ERROR, "GXML_DOM_ERROR_NOT_SUPPORTED_ERROR", "not-supported-error"}, {GXML_DOM_ERROR_INUSE_ATTRIBUTE_ERROR, "GXML_DOM_ERROR_INUSE_ATTRIBUTE_ERROR", "inuse-attribute-error"}, {GXML_DOM_ERROR_INVALID_STATE_ERROR, "GXML_DOM_ERROR_INVALID_STATE_ERROR", "invalid-state-error"}, {GXML_DOM_ERROR_SYNTAX_ERROR, "GXML_DOM_ERROR_SYNTAX_ERROR", "syntax-error"}, {GXML_DOM_ERROR_INVALID_MODIFICATION_ERROR, "GXML_DOM_ERROR_INVALID_MODIFICATION_ERROR", "invalid-modification-error"}, {GXML_DOM_ERROR_NAMESPACE_ERROR, "GXML_DOM_ERROR_NAMESPACE_ERROR", "namespace-error"}, {GXML_DOM_ERROR_INVALID_ACCESS_ERROR, "GXML_DOM_ERROR_INVALID_ACCESS_ERROR", "invalid-access-error"}, {GXML_DOM_ERROR_VALIDATION_ERROR, "GXML_DOM_ERROR_VALIDATION_ERROR", "validation-error"}, {GXML_DOM_ERROR_TYPE_MISMATCH_ERROR, "GXML_DOM_ERROR_TYPE_MISMATCH_ERROR", "type-mismatch-error"}, {GXML_DOM_ERROR_SECURITY_ERROR, "GXML_DOM_ERROR_SECURITY_ERROR", "security-error"}, {GXML_DOM_ERROR_NETWORK_ERROR, "GXML_DOM_ERROR_NETWORK_ERROR", "network-error"}, {GXML_DOM_ERROR_ABORT_ERROR, "GXML_DOM_ERROR_ABORT_ERROR", "abort-error"}, {GXML_DOM_ERROR_URL_MISMATCH_ERROR, "GXML_DOM_ERROR_URL_MISMATCH_ERROR", "url-mismatch-error"}, {GXML_DOM_ERROR_QUOTA_EXCEEDED_ERROR, "GXML_DOM_ERROR_QUOTA_EXCEEDED_ERROR", "quota-exceeded-error"}, {GXML_DOM_ERROR_TIME_OUT_ERROR, "GXML_DOM_ERROR_TIME_OUT_ERROR", "time-out-error"}, {GXML_DOM_ERROR_INVALID_NODE_TYPE_ERROR, "GXML_DOM_ERROR_INVALID_NODE_TYPE_ERROR", "invalid-node-type-error"}, {GXML_DOM_ERROR_DATA_CLONE_ERROR, "GXML_DOM_ERROR_DATA_CLONE_ERROR", "data-clone-error"}, {0, NULL, NULL}};
	GType gxml_dom_error_type_id;
	gxml_dom_error_type_id = g_enum_register_static ("GXmlDomError", values);
	return gxml_dom_error_type_id;
}

GType
gxml_dom_error_get_type (void)
{
	static volatile gsize gxml_dom_error_type_id__once = 0;
	if (g_once_init_enter (&gxml_dom_error_type_id__once)) {
		GType gxml_dom_error_type_id;
		gxml_dom_error_type_id = gxml_dom_error_get_type_once ();
		g_once_init_leave (&gxml_dom_error_type_id__once, gxml_dom_error_type_id);
	}
	return gxml_dom_error_type_id__once;
}

static inline gpointer
gxml_dom_error_name_get_instance_private (GXmlDomErrorName* self)
{
	return G_STRUCT_MEMBER_P (self, GXmlDomErrorName_private_offset);
}

gchar*
gxml_dom_error_name_get_name (GXmlDomErrorName* self,
                              gint error_code)
{
	gchar* _tmp12_;
	gchar* result;
	g_return_val_if_fail (self != NULL, NULL);
	{
		GeeIterator* _k_it = NULL;
		GeeHashMap* _tmp0_;
		GeeSet* _tmp1_;
		GeeSet* _tmp2_;
		GeeSet* _tmp3_;
		GeeIterator* _tmp4_;
		GeeIterator* _tmp5_;
		_tmp0_ = self->priv->names;
		_tmp1_ = gee_abstract_map_get_keys ((GeeAbstractMap*) _tmp0_);
		_tmp2_ = _tmp1_;
		_tmp3_ = _tmp2_;
		_tmp4_ = gee_iterable_iterator ((GeeIterable*) _tmp3_);
		_tmp5_ = _tmp4_;
		_g_object_unref0 (_tmp3_);
		_k_it = _tmp5_;
		while (TRUE) {
			GeeIterator* _tmp6_;
			gchar* k = NULL;
			GeeIterator* _tmp7_;
			gpointer _tmp8_;
			GeeHashMap* _tmp9_;
			const gchar* _tmp10_;
			gpointer _tmp11_;
			_tmp6_ = _k_it;
			if (!gee_iterator_next (_tmp6_)) {
				break;
			}
			_tmp7_ = _k_it;
			_tmp8_ = gee_iterator_get (_tmp7_);
			k = (gchar*) _tmp8_;
			_tmp9_ = self->priv->names;
			_tmp10_ = k;
			_tmp11_ = gee_abstract_map_get ((GeeAbstractMap*) _tmp9_, _tmp10_);
			if (((gint) ((gintptr) _tmp11_)) == error_code) {
				result = k;
				_g_object_unref0 (_k_it);
				return result;
			}
			_g_free0 (k);
		}
		_g_object_unref0 (_k_it);
	}
	_tmp12_ = g_strdup ("");
	result = _tmp12_;
	return result;
}

gint
gxml_dom_error_name_get_code (GXmlDomErrorName* self,
                              const gchar* error_name)
{
	GeeHashMap* _tmp0_;
	GeeHashMap* _tmp1_;
	gpointer _tmp2_;
	gint result;
	g_return_val_if_fail (self != NULL, -1);
	g_return_val_if_fail (error_name != NULL, -1);
	_tmp0_ = self->priv->names;
	if (!gee_abstract_map_has_key ((GeeAbstractMap*) _tmp0_, error_name)) {
		result = 0;
		return result;
	}
	_tmp1_ = self->priv->names;
	_tmp2_ = gee_abstract_map_get ((GeeAbstractMap*) _tmp1_, error_name);
	result = (gint) ((gintptr) _tmp2_);
	return result;
}

GXmlDomErrorName*
gxml_dom_error_name_construct (GType object_type)
{
	GXmlDomErrorName * self = NULL;
	self = (GXmlDomErrorName*) g_object_new (object_type, NULL);
	return self;
}

GXmlDomErrorName*
gxml_dom_error_name_new (void)
{
	return gxml_dom_error_name_construct (GXML_TYPE_DOM_ERROR_NAME);
}

static GObject *
gxml_dom_error_name_constructor (GType type,
                                 guint n_construct_properties,
                                 GObjectConstructParam * construct_properties)
{
	GObject * obj;
	GObjectClass * parent_class;
	GXmlDomErrorName * self;
	GeeHashMap* _tmp0_;
	GeeHashMap* _tmp1_;
	GeeHashMap* _tmp2_;
	GeeHashMap* _tmp3_;
	GeeHashMap* _tmp4_;
	GeeHashMap* _tmp5_;
	GeeHashMap* _tmp6_;
	GeeHashMap* _tmp7_;
	GeeHashMap* _tmp8_;
	GeeHashMap* _tmp9_;
	GeeHashMap* _tmp10_;
	GeeHashMap* _tmp11_;
	GeeHashMap* _tmp12_;
	GeeHashMap* _tmp13_;
	GeeHashMap* _tmp14_;
	GeeHashMap* _tmp15_;
	GeeHashMap* _tmp16_;
	GeeHashMap* _tmp17_;
	GeeHashMap* _tmp18_;
	GeeHashMap* _tmp19_;
	GeeHashMap* _tmp20_;
	GeeHashMap* _tmp21_;
	parent_class = G_OBJECT_CLASS (gxml_dom_error_name_parent_class);
	obj = parent_class->constructor (type, n_construct_properties, construct_properties);
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, GXML_TYPE_DOM_ERROR_NAME, GXmlDomErrorName);
	_tmp0_ = self->priv->names;
	gee_abstract_map_set ((GeeAbstractMap*) _tmp0_, "IndexSizeError", (gpointer) ((gintptr) 1));
	_tmp1_ = self->priv->names;
	gee_abstract_map_set ((GeeAbstractMap*) _tmp1_, "HierarchyRequestError", (gpointer) ((gintptr) 3));
	_tmp2_ = self->priv->names;
	gee_abstract_map_set ((GeeAbstractMap*) _tmp2_, "WrongDocumentError", (gpointer) ((gintptr) 4));
	_tmp3_ = self->priv->names;
	gee_abstract_map_set ((GeeAbstractMap*) _tmp3_, "InvalidCharacterError", (gpointer) ((gintptr) 5));
	_tmp4_ = self->priv->names;
	gee_abstract_map_set ((GeeAbstractMap*) _tmp4_, "NoModificationAllowedError", (gpointer) ((gintptr) 7));
	_tmp5_ = self->priv->names;
	gee_abstract_map_set ((GeeAbstractMap*) _tmp5_, "NotFoundError", (gpointer) ((gintptr) 8));
	_tmp6_ = self->priv->names;
	gee_abstract_map_set ((GeeAbstractMap*) _tmp6_, "NotSupportedError", (gpointer) ((gintptr) 9));
	_tmp7_ = self->priv->names;
	gee_abstract_map_set ((GeeAbstractMap*) _tmp7_, "InvalidStateError", (gpointer) ((gintptr) 11));
	_tmp8_ = self->priv->names;
	gee_abstract_map_set ((GeeAbstractMap*) _tmp8_, "SyntaxError", (gpointer) ((gintptr) 12));
	_tmp9_ = self->priv->names;
	gee_abstract_map_set ((GeeAbstractMap*) _tmp9_, "InvalidModificationError", (gpointer) ((gintptr) 13));
	_tmp10_ = self->priv->names;
	gee_abstract_map_set ((GeeAbstractMap*) _tmp10_, "NamespaceError", (gpointer) ((gintptr) 14));
	_tmp11_ = self->priv->names;
	gee_abstract_map_set ((GeeAbstractMap*) _tmp11_, "InvalidAccessError", (gpointer) ((gintptr) 15));
	_tmp12_ = self->priv->names;
	gee_abstract_map_set ((GeeAbstractMap*) _tmp12_, "SecurityError", (gpointer) ((gintptr) 18));
	_tmp13_ = self->priv->names;
	gee_abstract_map_set ((GeeAbstractMap*) _tmp13_, "NetworkError", (gpointer) ((gintptr) 19));
	_tmp14_ = self->priv->names;
	gee_abstract_map_set ((GeeAbstractMap*) _tmp14_, "AbortError", (gpointer) ((gintptr) 20));
	_tmp15_ = self->priv->names;
	gee_abstract_map_set ((GeeAbstractMap*) _tmp15_, "URLMismatchError", (gpointer) ((gintptr) 21));
	_tmp16_ = self->priv->names;
	gee_abstract_map_set ((GeeAbstractMap*) _tmp16_, "QuotaExceededError", (gpointer) ((gintptr) 22));
	_tmp17_ = self->priv->names;
	gee_abstract_map_set ((GeeAbstractMap*) _tmp17_, "TimeoutError", (gpointer) ((gintptr) 23));
	_tmp18_ = self->priv->names;
	gee_abstract_map_set ((GeeAbstractMap*) _tmp18_, "InvalidNodeTypeError", (gpointer) ((gintptr) 24));
	_tmp19_ = self->priv->names;
	gee_abstract_map_set ((GeeAbstractMap*) _tmp19_, "DataCloneError", (gpointer) ((gintptr) 25));
	_tmp20_ = self->priv->names;
	gee_abstract_map_set ((GeeAbstractMap*) _tmp20_, "EncodingError", (gpointer) ((gintptr) -1));
	_tmp21_ = self->priv->names;
	gee_abstract_map_set ((GeeAbstractMap*) _tmp21_, "NotReadableError", (gpointer) ((gintptr) -2));
	return obj;
}

static void
gxml_dom_error_name_class_init (GXmlDomErrorNameClass * klass,
                                gpointer klass_data)
{
	gxml_dom_error_name_parent_class = g_type_class_peek_parent (klass);
	g_type_class_adjust_private_offset (klass, &GXmlDomErrorName_private_offset);
	G_OBJECT_CLASS (klass)->constructor = gxml_dom_error_name_constructor;
	G_OBJECT_CLASS (klass)->finalize = gxml_dom_error_name_finalize;
}

static void
gxml_dom_error_name_instance_init (GXmlDomErrorName * self,
                                   gpointer klass)
{
	GeeHashMap* _tmp0_;
	self->priv = gxml_dom_error_name_get_instance_private (self);
	_tmp0_ = gee_hash_map_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, G_TYPE_INT, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
	self->priv->names = _tmp0_;
}

static void
gxml_dom_error_name_finalize (GObject * obj)
{
	GXmlDomErrorName * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, GXML_TYPE_DOM_ERROR_NAME, GXmlDomErrorName);
	_g_object_unref0 (self->priv->names);
	G_OBJECT_CLASS (gxml_dom_error_name_parent_class)->finalize (obj);
}

static GType
gxml_dom_error_name_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (GXmlDomErrorNameClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gxml_dom_error_name_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GXmlDomErrorName), 0, (GInstanceInitFunc) gxml_dom_error_name_instance_init, NULL };
	GType gxml_dom_error_name_type_id;
	gxml_dom_error_name_type_id = g_type_register_static (G_TYPE_OBJECT, "GXmlDomErrorName", &g_define_type_info, 0);
	GXmlDomErrorName_private_offset = g_type_add_instance_private (gxml_dom_error_name_type_id, sizeof (GXmlDomErrorNamePrivate));
	return gxml_dom_error_name_type_id;
}

GType
gxml_dom_error_name_get_type (void)
{
	static volatile gsize gxml_dom_error_name_type_id__once = 0;
	if (g_once_init_enter (&gxml_dom_error_name_type_id__once)) {
		GType gxml_dom_error_name_type_id;
		gxml_dom_error_name_type_id = gxml_dom_error_name_get_type_once ();
		g_once_init_leave (&gxml_dom_error_name_type_id__once, gxml_dom_error_name_type_id);
	}
	return gxml_dom_error_name_type_id__once;
}

