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

/* contentrenderer.vala
 *
 * Copyright (C) 2008-2009 Florian Brosch, Didier Villevalois
 *
 * 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, write to the Free Software
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301  USA
 *
 * Author:
 * 	Didier 'Ptitjes Villevalois <ptitjes@free.fr>
 */

#include "valadoc.h"
#include <glib.h>

enum  {
	VALADOC_CONTENT_CONTENT_RENDERER_0_PROPERTY,
	VALADOC_CONTENT_CONTENT_RENDERER_NUM_PROPERTIES
};
static GParamSpec* valadoc_content_content_renderer_properties[VALADOC_CONTENT_CONTENT_RENDERER_NUM_PROPERTIES];

static gpointer valadoc_content_content_renderer_parent_class = NULL;

static void valadoc_content_content_renderer_real_render (ValadocContentContentRenderer* self,
                                                   ValadocContentContentElement* element);
static void valadoc_content_content_renderer_real_render_children (ValadocContentContentRenderer* self,
                                                            ValadocContentContentElement* element);
static GType valadoc_content_content_renderer_get_type_once (void);

static void
valadoc_content_content_renderer_real_render (ValadocContentContentRenderer* self,
                                              ValadocContentContentElement* element)
{
	g_critical ("Type `%s' does not implement abstract method `valadoc_content_content_renderer_render'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
	return;
}

void
valadoc_content_content_renderer_render (ValadocContentContentRenderer* self,
                                         ValadocContentContentElement* element)
{
	ValadocContentContentRendererClass* _klass_;
	g_return_if_fail (self != NULL);
	_klass_ = VALADOC_CONTENT_CONTENT_RENDERER_GET_CLASS (self);
	if (_klass_->render) {
		_klass_->render (self, element);
	}
}

static void
valadoc_content_content_renderer_real_render_children (ValadocContentContentRenderer* self,
                                                       ValadocContentContentElement* element)
{
	g_critical ("Type `%s' does not implement abstract method `valadoc_content_content_renderer_render_children'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
	return;
}

void
valadoc_content_content_renderer_render_children (ValadocContentContentRenderer* self,
                                                  ValadocContentContentElement* element)
{
	ValadocContentContentRendererClass* _klass_;
	g_return_if_fail (self != NULL);
	_klass_ = VALADOC_CONTENT_CONTENT_RENDERER_GET_CLASS (self);
	if (_klass_->render_children) {
		_klass_->render_children (self, element);
	}
}

ValadocContentContentRenderer*
valadoc_content_content_renderer_construct (GType object_type)
{
	ValadocContentContentRenderer * self = NULL;
	self = (ValadocContentContentRenderer*) valadoc_content_content_visitor_construct (object_type);
	return self;
}

static void
valadoc_content_content_renderer_class_init (ValadocContentContentRendererClass * klass,
                                             gpointer klass_data)
{
	valadoc_content_content_renderer_parent_class = g_type_class_peek_parent (klass);
	((ValadocContentContentRendererClass *) klass)->render = (void (*) (ValadocContentContentRenderer*, ValadocContentContentElement*)) valadoc_content_content_renderer_real_render;
	((ValadocContentContentRendererClass *) klass)->render_children = (void (*) (ValadocContentContentRenderer*, ValadocContentContentElement*)) valadoc_content_content_renderer_real_render_children;
}

static void
valadoc_content_content_renderer_instance_init (ValadocContentContentRenderer * self,
                                                gpointer klass)
{
}

static GType
valadoc_content_content_renderer_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (ValadocContentContentRendererClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) valadoc_content_content_renderer_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ValadocContentContentRenderer), 0, (GInstanceInitFunc) valadoc_content_content_renderer_instance_init, NULL };
	GType valadoc_content_content_renderer_type_id;
	valadoc_content_content_renderer_type_id = g_type_register_static (VALADOC_CONTENT_TYPE_CONTENT_VISITOR, "ValadocContentContentRenderer", &g_define_type_info, G_TYPE_FLAG_ABSTRACT);
	return valadoc_content_content_renderer_type_id;
}

GType
valadoc_content_content_renderer_get_type (void)
{
	static volatile gsize valadoc_content_content_renderer_type_id__once = 0;
	if (g_once_init_enter (&valadoc_content_content_renderer_type_id__once)) {
		GType valadoc_content_content_renderer_type_id;
		valadoc_content_content_renderer_type_id = valadoc_content_content_renderer_get_type_once ();
		g_once_init_leave (&valadoc_content_content_renderer_type_id__once, valadoc_content_content_renderer_type_id);
	}
	return valadoc_content_content_renderer_type_id__once;
}

