[glibmm/gmmproc-refactor] Add API objects.
- From: Krzesimir Nowak <krnowak src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [glibmm/gmmproc-refactor] Add API objects.
- Date: Mon, 21 Nov 2011 12:05:06 +0000 (UTC)
commit 55c8b15bcfdfe14eccaea8498e6df287e5b7ed67
Author: Krzesimir Nowak <qdlacz gmail com>
Date: Mon Nov 21 12:51:44 2011 +0100
Add API objects.
These are used by handlers and others.
tools/pm/Gir/Api/Alias.pm | 229 ++++++++++++
tools/pm/Gir/Api/Array.pm | 229 ++++++++++++
tools/pm/Gir/Api/Attribute.pm | 97 ++++++
tools/pm/Gir/Api/Bitfield.pm | 307 ++++++++++++++++
tools/pm/Gir/Api/CInclude.pm | 81 +++++
tools/pm/Gir/Api/Callback.pm | 291 ++++++++++++++++
tools/pm/Gir/Api/Class.pm | 691 +++++++++++++++++++++++++++++++++++++
tools/pm/Gir/Api/Common/Base.pm | 215 ++++++++++++
tools/pm/Gir/Api/Constant.pm | 197 +++++++++++
tools/pm/Gir/Api/Constructor.pm | 339 ++++++++++++++++++
tools/pm/Gir/Api/Doc.pm | 81 +++++
tools/pm/Gir/Api/Enumeration.pm | 323 +++++++++++++++++
tools/pm/Gir/Api/Field.pm | 367 ++++++++++++++++++++
tools/pm/Gir/Api/Function.pm | 339 ++++++++++++++++++
tools/pm/Gir/Api/GlibBoxed.pm | 273 +++++++++++++++
tools/pm/Gir/Api/GlibSignal.pm | 339 ++++++++++++++++++
tools/pm/Gir/Api/Implements.pm | 81 +++++
tools/pm/Gir/Api/Include.pm | 97 ++++++
tools/pm/Gir/Api/Interface.pm | 549 +++++++++++++++++++++++++++++
tools/pm/Gir/Api/Member.pm | 129 +++++++
tools/pm/Gir/Api/Method.pm | 339 ++++++++++++++++++
tools/pm/Gir/Api/Namespace.pm | 469 +++++++++++++++++++++++++
tools/pm/Gir/Api/Package.pm | 81 +++++
tools/pm/Gir/Api/Parameter.pm | 353 +++++++++++++++++++
tools/pm/Gir/Api/Parameters.pm | 93 +++++
tools/pm/Gir/Api/Prerequisite.pm | 81 +++++
tools/pm/Gir/Api/Property.pm | 369 ++++++++++++++++++++
tools/pm/Gir/Api/Record.pm | 491 ++++++++++++++++++++++++++
tools/pm/Gir/Api/Repository.pm | 243 +++++++++++++
tools/pm/Gir/Api/ReturnValue.pm | 241 +++++++++++++
tools/pm/Gir/Api/TopLevel.pm | 93 +++++
tools/pm/Gir/Api/Type.pm | 197 +++++++++++
tools/pm/Gir/Api/Union.pm | 443 ++++++++++++++++++++++++
tools/pm/Gir/Api/Varargs.pm | 69 ++++
tools/pm/Gir/Api/VirtualMethod.pm | 291 ++++++++++++++++
35 files changed, 9107 insertions(+), 0 deletions(-)
---
diff --git a/tools/pm/Gir/Api/Alias.pm b/tools/pm/Gir/Api/Alias.pm
new file mode 100644
index 0000000..59e8b79
--- /dev/null
+++ b/tools/pm/Gir/Api/Alias.pm
@@ -0,0 +1,229 @@
+## This file was generated by taghandlerwriter.pl script.
+##
+## Copyright 2011 Krzesimir Nowak
+##
+## This program is free software; you can redistribute it and/or modify
+## it under the terms of the GNU General Public License as published by
+## the Free Software Foundation; either version 2 of the License, or
+## (at your option) any later version.
+##
+## This program 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 General Public License for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with this program; if not, write to the Free Software
+## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+##
+
+package Gir::Api::Alias;
+
+use strict;
+use warnings;
+
+use parent qw(Gir::Api::Common::Base);
+
+use Gir::Api::Attribute;
+use Gir::Api::Doc;
+use Gir::Api::Type;
+
+sub new ($)
+{
+ my $type = shift;
+ my $class = (ref ($type) or $type or 'Gir::Api::Alias');
+ my $groups =
+ [
+ 'group_attribute',
+ 'group_doc',
+ 'group_type'
+ ];
+ my $attributes =
+ [
+ 'attribute_c_type',
+ 'attribute_deprecated',
+ 'attribute_deprecated_version',
+ 'attribute_introspectable',
+ 'attribute_name'
+ ];
+ my $self = $class->SUPER::new ($groups, $attributes);
+
+ bless ($self, $class);
+ return $self;
+}
+
+sub new_with_params ($$)
+{
+ my ($type, $params) = @_;
+ my $self = Gir::Api::Alias::new ($type);
+
+ $self->set_a_c_type($params->{'c:type'});
+ $self->set_a_deprecated($params->{'deprecated'});
+ $self->set_a_deprecated_version($params->{'deprecated-version'});
+ $self->set_a_introspectable($params->{'introspectable'});
+ $self->set_a_name($params->{'name'});
+
+ return $self;
+}
+
+sub get_g_attribute_by_name ($$)
+{
+ my ($self, $name) = @_;
+
+ return $self->_get_group_member_by_name ('group_attribute', $name);
+}
+
+sub get_g_doc_by_name ($$)
+{
+ my ($self, $name) = @_;
+
+ return $self->_get_group_member_by_name ('group_doc', $name);
+}
+
+sub get_g_type_by_name ($$)
+{
+ my ($self, $name) = @_;
+
+ return $self->_get_group_member_by_name ('group_type', $name);
+}
+
+
+sub get_g_attribute_by_index ($$)
+{
+ my ($self, $index) = @_;
+
+ return $self->_get_group_member_by_index ('group_attribute', $index);
+}
+
+sub get_g_doc_by_index ($$)
+{
+ my ($self, $index) = @_;
+
+ return $self->_get_group_member_by_index ('group_doc', $index);
+}
+
+sub get_g_type_by_index ($$)
+{
+ my ($self, $index) = @_;
+
+ return $self->_get_group_member_by_index ('group_type', $index);
+}
+
+
+sub get_g_attribute_count ($)
+{
+ my $self = shift;
+
+ return $self->_get_group_member_count ('group_attribute');
+}
+
+sub get_g_doc_count ($)
+{
+ my $self = shift;
+
+ return $self->_get_group_member_count ('group_doc');
+}
+
+sub get_g_type_count ($)
+{
+ my $self = shift;
+
+ return $self->_get_group_member_count ('group_type');
+}
+
+
+sub add_g_attribute ($$$)
+{
+ my ($self, $member_name, $member) = @_;
+
+ $self->_add_member_to_group ('group_attribute', $member_name, $member);
+}
+
+sub add_g_doc ($$$)
+{
+ my ($self, $member_name, $member) = @_;
+
+ $self->_add_member_to_group ('group_doc', $member_name, $member);
+}
+
+sub add_g_type ($$$)
+{
+ my ($self, $member_name, $member) = @_;
+
+ $self->_add_member_to_group ('group_type', $member_name, $member);
+}
+
+
+sub get_a_c_type ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_c_type');
+}
+
+sub get_a_deprecated ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_deprecated');
+}
+
+sub get_a_deprecated_version ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_deprecated_version');
+}
+
+sub get_a_introspectable ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_introspectable');
+}
+
+sub get_a_name ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_name');
+}
+
+
+sub set_a_c_type ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_c_type', $value);
+}
+
+sub set_a_deprecated ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_deprecated', $value);
+}
+
+sub set_a_deprecated_version ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_deprecated_version', $value);
+}
+
+sub set_a_introspectable ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_introspectable', $value);
+}
+
+sub set_a_name ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_name', $value);
+}
+
+
+1; # indicate proper module load.
diff --git a/tools/pm/Gir/Api/Array.pm b/tools/pm/Gir/Api/Array.pm
new file mode 100644
index 0000000..2af0b78
--- /dev/null
+++ b/tools/pm/Gir/Api/Array.pm
@@ -0,0 +1,229 @@
+## This file was generated by taghandlerwriter.pl script.
+##
+## Copyright 2011 Krzesimir Nowak
+##
+## This program is free software; you can redistribute it and/or modify
+## it under the terms of the GNU General Public License as published by
+## the Free Software Foundation; either version 2 of the License, or
+## (at your option) any later version.
+##
+## This program 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 General Public License for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with this program; if not, write to the Free Software
+## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+##
+
+package Gir::Api::Array;
+
+use strict;
+use warnings;
+
+use parent qw(Gir::Api::Common::Base);
+
+use Gir::Api::Array;
+use Gir::Api::Type;
+use Gir::Api::Varargs;
+
+sub new ($)
+{
+ my $type = shift;
+ my $class = (ref ($type) or $type or 'Gir::Api::Array');
+ my $groups =
+ [
+ 'group_array',
+ 'group_type',
+ 'group_varargs'
+ ];
+ my $attributes =
+ [
+ 'attribute_c_type',
+ 'attribute_fixed_size',
+ 'attribute_length',
+ 'attribute_name',
+ 'attribute_zero_terminated'
+ ];
+ my $self = $class->SUPER::new ($groups, $attributes);
+
+ bless ($self, $class);
+ return $self;
+}
+
+sub new_with_params ($$)
+{
+ my ($type, $params) = @_;
+ my $self = Gir::Api::Array::new ($type);
+
+ $self->set_a_c_type($params->{'c:type'});
+ $self->set_a_fixed_size($params->{'fixed-size'});
+ $self->set_a_length($params->{'length'});
+ $self->set_a_name($params->{'name'});
+ $self->set_a_zero_terminated($params->{'zero-terminated'});
+
+ return $self;
+}
+
+sub get_g_array_by_name ($$)
+{
+ my ($self, $name) = @_;
+
+ return $self->_get_group_member_by_name ('group_array', $name);
+}
+
+sub get_g_type_by_name ($$)
+{
+ my ($self, $name) = @_;
+
+ return $self->_get_group_member_by_name ('group_type', $name);
+}
+
+sub get_g_varargs_by_name ($$)
+{
+ my ($self, $name) = @_;
+
+ return $self->_get_group_member_by_name ('group_varargs', $name);
+}
+
+
+sub get_g_array_by_index ($$)
+{
+ my ($self, $index) = @_;
+
+ return $self->_get_group_member_by_index ('group_array', $index);
+}
+
+sub get_g_type_by_index ($$)
+{
+ my ($self, $index) = @_;
+
+ return $self->_get_group_member_by_index ('group_type', $index);
+}
+
+sub get_g_varargs_by_index ($$)
+{
+ my ($self, $index) = @_;
+
+ return $self->_get_group_member_by_index ('group_varargs', $index);
+}
+
+
+sub get_g_array_count ($)
+{
+ my $self = shift;
+
+ return $self->_get_group_member_count ('group_array');
+}
+
+sub get_g_type_count ($)
+{
+ my $self = shift;
+
+ return $self->_get_group_member_count ('group_type');
+}
+
+sub get_g_varargs_count ($)
+{
+ my $self = shift;
+
+ return $self->_get_group_member_count ('group_varargs');
+}
+
+
+sub add_g_array ($$$)
+{
+ my ($self, $member_name, $member) = @_;
+
+ $self->_add_member_to_group ('group_array', $member_name, $member);
+}
+
+sub add_g_type ($$$)
+{
+ my ($self, $member_name, $member) = @_;
+
+ $self->_add_member_to_group ('group_type', $member_name, $member);
+}
+
+sub add_g_varargs ($$$)
+{
+ my ($self, $member_name, $member) = @_;
+
+ $self->_add_member_to_group ('group_varargs', $member_name, $member);
+}
+
+
+sub get_a_c_type ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_c_type');
+}
+
+sub get_a_fixed_size ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_fixed_size');
+}
+
+sub get_a_length ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_length');
+}
+
+sub get_a_name ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_name');
+}
+
+sub get_a_zero_terminated ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_zero_terminated');
+}
+
+
+sub set_a_c_type ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_c_type', $value);
+}
+
+sub set_a_fixed_size ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_fixed_size', $value);
+}
+
+sub set_a_length ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_length', $value);
+}
+
+sub set_a_name ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_name', $value);
+}
+
+sub set_a_zero_terminated ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_zero_terminated', $value);
+}
+
+
+1; # indicate proper module load.
diff --git a/tools/pm/Gir/Api/Attribute.pm b/tools/pm/Gir/Api/Attribute.pm
new file mode 100644
index 0000000..9a3330c
--- /dev/null
+++ b/tools/pm/Gir/Api/Attribute.pm
@@ -0,0 +1,97 @@
+## This file was generated by taghandlerwriter.pl script.
+##
+## Copyright 2011 Krzesimir Nowak
+##
+## This program is free software; you can redistribute it and/or modify
+## it under the terms of the GNU General Public License as published by
+## the Free Software Foundation; either version 2 of the License, or
+## (at your option) any later version.
+##
+## This program 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 General Public License for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with this program; if not, write to the Free Software
+## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+##
+
+package Gir::Api::Attribute;
+
+use strict;
+use warnings;
+
+use parent qw(Gir::Api::Common::Base);
+
+
+
+sub new ($)
+{
+ my $type = shift;
+ my $class = (ref ($type) or $type or 'Gir::Api::Attribute');
+ my $groups =
+ [
+
+ ];
+ my $attributes =
+ [
+ 'attribute_name',
+ 'attribute_value'
+ ];
+ my $self = $class->SUPER::new ($groups, $attributes);
+
+ bless ($self, $class);
+ return $self;
+}
+
+sub new_with_params ($$)
+{
+ my ($type, $params) = @_;
+ my $self = Gir::Api::Attribute::new ($type);
+
+ $self->set_a_name($params->{'name'});
+ $self->set_a_value($params->{'value'});
+
+ return $self;
+}
+
+
+
+
+
+
+
+
+
+sub get_a_name ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_name');
+}
+
+sub get_a_value ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_value');
+}
+
+
+sub set_a_name ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_name', $value);
+}
+
+sub set_a_value ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_value', $value);
+}
+
+
+1; # indicate proper module load.
diff --git a/tools/pm/Gir/Api/Bitfield.pm b/tools/pm/Gir/Api/Bitfield.pm
new file mode 100644
index 0000000..f1e1396
--- /dev/null
+++ b/tools/pm/Gir/Api/Bitfield.pm
@@ -0,0 +1,307 @@
+## This file was generated by taghandlerwriter.pl script.
+##
+## Copyright 2011 Krzesimir Nowak
+##
+## This program is free software; you can redistribute it and/or modify
+## it under the terms of the GNU General Public License as published by
+## the Free Software Foundation; either version 2 of the License, or
+## (at your option) any later version.
+##
+## This program 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 General Public License for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with this program; if not, write to the Free Software
+## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+##
+
+package Gir::Api::Bitfield;
+
+use strict;
+use warnings;
+
+use parent qw(Gir::Api::Common::Base);
+
+use Gir::Api::Attribute;
+use Gir::Api::Doc;
+use Gir::Api::Function;
+use Gir::Api::Member;
+
+sub new ($)
+{
+ my $type = shift;
+ my $class = (ref ($type) or $type or 'Gir::Api::Bitfield');
+ my $groups =
+ [
+ 'group_attribute',
+ 'group_doc',
+ 'group_function',
+ 'group_member'
+ ];
+ my $attributes =
+ [
+ 'attribute_c_type',
+ 'attribute_deprecated',
+ 'attribute_deprecated_version',
+ 'attribute_glib_get_type',
+ 'attribute_glib_type_name',
+ 'attribute_introspectable',
+ 'attribute_name',
+ 'attribute_version'
+ ];
+ my $self = $class->SUPER::new ($groups, $attributes);
+
+ bless ($self, $class);
+ return $self;
+}
+
+sub new_with_params ($$)
+{
+ my ($type, $params) = @_;
+ my $self = Gir::Api::Bitfield::new ($type);
+
+ $self->set_a_c_type($params->{'c:type'});
+ $self->set_a_deprecated($params->{'deprecated'});
+ $self->set_a_deprecated_version($params->{'deprecated-version'});
+ $self->set_a_glib_get_type($params->{'glib:get-type'});
+ $self->set_a_glib_type_name($params->{'glib:type-name'});
+ $self->set_a_introspectable($params->{'introspectable'});
+ $self->set_a_name($params->{'name'});
+ $self->set_a_version($params->{'version'});
+
+ return $self;
+}
+
+sub get_g_attribute_by_name ($$)
+{
+ my ($self, $name) = @_;
+
+ return $self->_get_group_member_by_name ('group_attribute', $name);
+}
+
+sub get_g_doc_by_name ($$)
+{
+ my ($self, $name) = @_;
+
+ return $self->_get_group_member_by_name ('group_doc', $name);
+}
+
+sub get_g_function_by_name ($$)
+{
+ my ($self, $name) = @_;
+
+ return $self->_get_group_member_by_name ('group_function', $name);
+}
+
+sub get_g_member_by_name ($$)
+{
+ my ($self, $name) = @_;
+
+ return $self->_get_group_member_by_name ('group_member', $name);
+}
+
+
+sub get_g_attribute_by_index ($$)
+{
+ my ($self, $index) = @_;
+
+ return $self->_get_group_member_by_index ('group_attribute', $index);
+}
+
+sub get_g_doc_by_index ($$)
+{
+ my ($self, $index) = @_;
+
+ return $self->_get_group_member_by_index ('group_doc', $index);
+}
+
+sub get_g_function_by_index ($$)
+{
+ my ($self, $index) = @_;
+
+ return $self->_get_group_member_by_index ('group_function', $index);
+}
+
+sub get_g_member_by_index ($$)
+{
+ my ($self, $index) = @_;
+
+ return $self->_get_group_member_by_index ('group_member', $index);
+}
+
+
+sub get_g_attribute_count ($)
+{
+ my $self = shift;
+
+ return $self->_get_group_member_count ('group_attribute');
+}
+
+sub get_g_doc_count ($)
+{
+ my $self = shift;
+
+ return $self->_get_group_member_count ('group_doc');
+}
+
+sub get_g_function_count ($)
+{
+ my $self = shift;
+
+ return $self->_get_group_member_count ('group_function');
+}
+
+sub get_g_member_count ($)
+{
+ my $self = shift;
+
+ return $self->_get_group_member_count ('group_member');
+}
+
+
+sub add_g_attribute ($$$)
+{
+ my ($self, $member_name, $member) = @_;
+
+ $self->_add_member_to_group ('group_attribute', $member_name, $member);
+}
+
+sub add_g_doc ($$$)
+{
+ my ($self, $member_name, $member) = @_;
+
+ $self->_add_member_to_group ('group_doc', $member_name, $member);
+}
+
+sub add_g_function ($$$)
+{
+ my ($self, $member_name, $member) = @_;
+
+ $self->_add_member_to_group ('group_function', $member_name, $member);
+}
+
+sub add_g_member ($$$)
+{
+ my ($self, $member_name, $member) = @_;
+
+ $self->_add_member_to_group ('group_member', $member_name, $member);
+}
+
+
+sub get_a_c_type ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_c_type');
+}
+
+sub get_a_deprecated ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_deprecated');
+}
+
+sub get_a_deprecated_version ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_deprecated_version');
+}
+
+sub get_a_glib_get_type ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_glib_get_type');
+}
+
+sub get_a_glib_type_name ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_glib_type_name');
+}
+
+sub get_a_introspectable ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_introspectable');
+}
+
+sub get_a_name ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_name');
+}
+
+sub get_a_version ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_version');
+}
+
+
+sub set_a_c_type ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_c_type', $value);
+}
+
+sub set_a_deprecated ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_deprecated', $value);
+}
+
+sub set_a_deprecated_version ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_deprecated_version', $value);
+}
+
+sub set_a_glib_get_type ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_glib_get_type', $value);
+}
+
+sub set_a_glib_type_name ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_glib_type_name', $value);
+}
+
+sub set_a_introspectable ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_introspectable', $value);
+}
+
+sub set_a_name ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_name', $value);
+}
+
+sub set_a_version ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_version', $value);
+}
+
+
+1; # indicate proper module load.
diff --git a/tools/pm/Gir/Api/CInclude.pm b/tools/pm/Gir/Api/CInclude.pm
new file mode 100644
index 0000000..c92ad2a
--- /dev/null
+++ b/tools/pm/Gir/Api/CInclude.pm
@@ -0,0 +1,81 @@
+## This file was generated by taghandlerwriter.pl script.
+##
+## Copyright 2011 Krzesimir Nowak
+##
+## This program is free software; you can redistribute it and/or modify
+## it under the terms of the GNU General Public License as published by
+## the Free Software Foundation; either version 2 of the License, or
+## (at your option) any later version.
+##
+## This program 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 General Public License for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with this program; if not, write to the Free Software
+## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+##
+
+package Gir::Api::CInclude;
+
+use strict;
+use warnings;
+
+use parent qw(Gir::Api::Common::Base);
+
+
+
+sub new ($)
+{
+ my $type = shift;
+ my $class = (ref ($type) or $type or 'Gir::Api::CInclude');
+ my $groups =
+ [
+
+ ];
+ my $attributes =
+ [
+ 'attribute_name'
+ ];
+ my $self = $class->SUPER::new ($groups, $attributes);
+
+ bless ($self, $class);
+ return $self;
+}
+
+sub new_with_params ($$)
+{
+ my ($type, $params) = @_;
+ my $self = Gir::Api::CInclude::new ($type);
+
+ $self->set_a_name($params->{'name'});
+
+ return $self;
+}
+
+
+
+
+
+
+
+
+
+sub get_a_name ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_name');
+}
+
+
+sub set_a_name ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_name', $value);
+}
+
+
+1; # indicate proper module load.
diff --git a/tools/pm/Gir/Api/Callback.pm b/tools/pm/Gir/Api/Callback.pm
new file mode 100644
index 0000000..1dc2a55
--- /dev/null
+++ b/tools/pm/Gir/Api/Callback.pm
@@ -0,0 +1,291 @@
+## This file was generated by taghandlerwriter.pl script.
+##
+## Copyright 2011 Krzesimir Nowak
+##
+## This program is free software; you can redistribute it and/or modify
+## it under the terms of the GNU General Public License as published by
+## the Free Software Foundation; either version 2 of the License, or
+## (at your option) any later version.
+##
+## This program 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 General Public License for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with this program; if not, write to the Free Software
+## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+##
+
+package Gir::Api::Callback;
+
+use strict;
+use warnings;
+
+use parent qw(Gir::Api::Common::Base);
+
+use Gir::Api::Attribute;
+use Gir::Api::Doc;
+use Gir::Api::Parameters;
+use Gir::Api::ReturnValue;
+
+sub new ($)
+{
+ my $type = shift;
+ my $class = (ref ($type) or $type or 'Gir::Api::Callback');
+ my $groups =
+ [
+ 'group_attribute',
+ 'group_doc',
+ 'group_parameters',
+ 'group_return_value'
+ ];
+ my $attributes =
+ [
+ 'attribute_c_type',
+ 'attribute_deprecated',
+ 'attribute_deprecated_version',
+ 'attribute_introspectable',
+ 'attribute_name',
+ 'attribute_throws',
+ 'attribute_version'
+ ];
+ my $self = $class->SUPER::new ($groups, $attributes);
+
+ bless ($self, $class);
+ return $self;
+}
+
+sub new_with_params ($$)
+{
+ my ($type, $params) = @_;
+ my $self = Gir::Api::Callback::new ($type);
+
+ $self->set_a_c_type($params->{'c:type'});
+ $self->set_a_deprecated($params->{'deprecated'});
+ $self->set_a_deprecated_version($params->{'deprecated-version'});
+ $self->set_a_introspectable($params->{'introspectable'});
+ $self->set_a_name($params->{'name'});
+ $self->set_a_throws($params->{'throws'});
+ $self->set_a_version($params->{'version'});
+
+ return $self;
+}
+
+sub get_g_attribute_by_name ($$)
+{
+ my ($self, $name) = @_;
+
+ return $self->_get_group_member_by_name ('group_attribute', $name);
+}
+
+sub get_g_doc_by_name ($$)
+{
+ my ($self, $name) = @_;
+
+ return $self->_get_group_member_by_name ('group_doc', $name);
+}
+
+sub get_g_parameters_by_name ($$)
+{
+ my ($self, $name) = @_;
+
+ return $self->_get_group_member_by_name ('group_parameters', $name);
+}
+
+sub get_g_return_value_by_name ($$)
+{
+ my ($self, $name) = @_;
+
+ return $self->_get_group_member_by_name ('group_return_value', $name);
+}
+
+
+sub get_g_attribute_by_index ($$)
+{
+ my ($self, $index) = @_;
+
+ return $self->_get_group_member_by_index ('group_attribute', $index);
+}
+
+sub get_g_doc_by_index ($$)
+{
+ my ($self, $index) = @_;
+
+ return $self->_get_group_member_by_index ('group_doc', $index);
+}
+
+sub get_g_parameters_by_index ($$)
+{
+ my ($self, $index) = @_;
+
+ return $self->_get_group_member_by_index ('group_parameters', $index);
+}
+
+sub get_g_return_value_by_index ($$)
+{
+ my ($self, $index) = @_;
+
+ return $self->_get_group_member_by_index ('group_return_value', $index);
+}
+
+
+sub get_g_attribute_count ($)
+{
+ my $self = shift;
+
+ return $self->_get_group_member_count ('group_attribute');
+}
+
+sub get_g_doc_count ($)
+{
+ my $self = shift;
+
+ return $self->_get_group_member_count ('group_doc');
+}
+
+sub get_g_parameters_count ($)
+{
+ my $self = shift;
+
+ return $self->_get_group_member_count ('group_parameters');
+}
+
+sub get_g_return_value_count ($)
+{
+ my $self = shift;
+
+ return $self->_get_group_member_count ('group_return_value');
+}
+
+
+sub add_g_attribute ($$$)
+{
+ my ($self, $member_name, $member) = @_;
+
+ $self->_add_member_to_group ('group_attribute', $member_name, $member);
+}
+
+sub add_g_doc ($$$)
+{
+ my ($self, $member_name, $member) = @_;
+
+ $self->_add_member_to_group ('group_doc', $member_name, $member);
+}
+
+sub add_g_parameters ($$$)
+{
+ my ($self, $member_name, $member) = @_;
+
+ $self->_add_member_to_group ('group_parameters', $member_name, $member);
+}
+
+sub add_g_return_value ($$$)
+{
+ my ($self, $member_name, $member) = @_;
+
+ $self->_add_member_to_group ('group_return_value', $member_name, $member);
+}
+
+
+sub get_a_c_type ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_c_type');
+}
+
+sub get_a_deprecated ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_deprecated');
+}
+
+sub get_a_deprecated_version ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_deprecated_version');
+}
+
+sub get_a_introspectable ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_introspectable');
+}
+
+sub get_a_name ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_name');
+}
+
+sub get_a_throws ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_throws');
+}
+
+sub get_a_version ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_version');
+}
+
+
+sub set_a_c_type ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_c_type', $value);
+}
+
+sub set_a_deprecated ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_deprecated', $value);
+}
+
+sub set_a_deprecated_version ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_deprecated_version', $value);
+}
+
+sub set_a_introspectable ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_introspectable', $value);
+}
+
+sub set_a_name ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_name', $value);
+}
+
+sub set_a_throws ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_throws', $value);
+}
+
+sub set_a_version ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_version', $value);
+}
+
+
+1; # indicate proper module load.
diff --git a/tools/pm/Gir/Api/Class.pm b/tools/pm/Gir/Api/Class.pm
new file mode 100644
index 0000000..b2ef54d
--- /dev/null
+++ b/tools/pm/Gir/Api/Class.pm
@@ -0,0 +1,691 @@
+## This file was generated by taghandlerwriter.pl script.
+##
+## Copyright 2011 Krzesimir Nowak
+##
+## This program is free software; you can redistribute it and/or modify
+## it under the terms of the GNU General Public License as published by
+## the Free Software Foundation; either version 2 of the License, or
+## (at your option) any later version.
+##
+## This program 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 General Public License for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with this program; if not, write to the Free Software
+## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+##
+
+package Gir::Api::Class;
+
+use strict;
+use warnings;
+
+use parent qw(Gir::Api::Common::Base);
+
+use Gir::Api::Attribute;
+use Gir::Api::Constructor;
+use Gir::Api::Doc;
+use Gir::Api::Field;
+use Gir::Api::Function;
+use Gir::Api::GlibSignal;
+use Gir::Api::Implements;
+use Gir::Api::Method;
+use Gir::Api::Property;
+use Gir::Api::Record;
+use Gir::Api::Union;
+use Gir::Api::VirtualMethod;
+
+sub new ($)
+{
+ my $type = shift;
+ my $class = (ref ($type) or $type or 'Gir::Api::Class');
+ my $groups =
+ [
+ 'group_attribute',
+ 'group_constructor',
+ 'group_doc',
+ 'group_field',
+ 'group_function',
+ 'group_glib_signal',
+ 'group_implements',
+ 'group_method',
+ 'group_property',
+ 'group_record',
+ 'group_union',
+ 'group_virtual_method'
+ ];
+ my $attributes =
+ [
+ 'attribute_abstract',
+ 'attribute_c_symbol_prefix',
+ 'attribute_c_type',
+ 'attribute_deprecated',
+ 'attribute_deprecated_version',
+ 'attribute_glib_fundamental',
+ 'attribute_glib_get_type',
+ 'attribute_glib_get_value_func',
+ 'attribute_glib_ref_func',
+ 'attribute_glib_set_value_func',
+ 'attribute_glib_type_name',
+ 'attribute_glib_type_struct',
+ 'attribute_glib_unref_func',
+ 'attribute_introspectable',
+ 'attribute_name',
+ 'attribute_parent',
+ 'attribute_version'
+ ];
+ my $self = $class->SUPER::new ($groups, $attributes);
+
+ bless ($self, $class);
+ return $self;
+}
+
+sub new_with_params ($$)
+{
+ my ($type, $params) = @_;
+ my $self = Gir::Api::Class::new ($type);
+
+ $self->set_a_abstract($params->{'abstract'});
+ $self->set_a_c_symbol_prefix($params->{'c:symbol-prefix'});
+ $self->set_a_c_type($params->{'c:type'});
+ $self->set_a_deprecated($params->{'deprecated'});
+ $self->set_a_deprecated_version($params->{'deprecated-version'});
+ $self->set_a_glib_fundamental($params->{'glib:fundamental'});
+ $self->set_a_glib_get_type($params->{'glib:get-type'});
+ $self->set_a_glib_get_value_func($params->{'glib:get-value-func'});
+ $self->set_a_glib_ref_func($params->{'glib:ref-func'});
+ $self->set_a_glib_set_value_func($params->{'glib:set-value-func'});
+ $self->set_a_glib_type_name($params->{'glib:type-name'});
+ $self->set_a_glib_type_struct($params->{'glib:type-struct'});
+ $self->set_a_glib_unref_func($params->{'glib:unref-func'});
+ $self->set_a_introspectable($params->{'introspectable'});
+ $self->set_a_name($params->{'name'});
+ $self->set_a_parent($params->{'parent'});
+ $self->set_a_version($params->{'version'});
+
+ return $self;
+}
+
+sub get_g_attribute_by_name ($$)
+{
+ my ($self, $name) = @_;
+
+ return $self->_get_group_member_by_name ('group_attribute', $name);
+}
+
+sub get_g_constructor_by_name ($$)
+{
+ my ($self, $name) = @_;
+
+ return $self->_get_group_member_by_name ('group_constructor', $name);
+}
+
+sub get_g_doc_by_name ($$)
+{
+ my ($self, $name) = @_;
+
+ return $self->_get_group_member_by_name ('group_doc', $name);
+}
+
+sub get_g_field_by_name ($$)
+{
+ my ($self, $name) = @_;
+
+ return $self->_get_group_member_by_name ('group_field', $name);
+}
+
+sub get_g_function_by_name ($$)
+{
+ my ($self, $name) = @_;
+
+ return $self->_get_group_member_by_name ('group_function', $name);
+}
+
+sub get_g_glib_signal_by_name ($$)
+{
+ my ($self, $name) = @_;
+
+ return $self->_get_group_member_by_name ('group_glib_signal', $name);
+}
+
+sub get_g_implements_by_name ($$)
+{
+ my ($self, $name) = @_;
+
+ return $self->_get_group_member_by_name ('group_implements', $name);
+}
+
+sub get_g_method_by_name ($$)
+{
+ my ($self, $name) = @_;
+
+ return $self->_get_group_member_by_name ('group_method', $name);
+}
+
+sub get_g_property_by_name ($$)
+{
+ my ($self, $name) = @_;
+
+ return $self->_get_group_member_by_name ('group_property', $name);
+}
+
+sub get_g_record_by_name ($$)
+{
+ my ($self, $name) = @_;
+
+ return $self->_get_group_member_by_name ('group_record', $name);
+}
+
+sub get_g_union_by_name ($$)
+{
+ my ($self, $name) = @_;
+
+ return $self->_get_group_member_by_name ('group_union', $name);
+}
+
+sub get_g_virtual_method_by_name ($$)
+{
+ my ($self, $name) = @_;
+
+ return $self->_get_group_member_by_name ('group_virtual_method', $name);
+}
+
+
+sub get_g_attribute_by_index ($$)
+{
+ my ($self, $index) = @_;
+
+ return $self->_get_group_member_by_index ('group_attribute', $index);
+}
+
+sub get_g_constructor_by_index ($$)
+{
+ my ($self, $index) = @_;
+
+ return $self->_get_group_member_by_index ('group_constructor', $index);
+}
+
+sub get_g_doc_by_index ($$)
+{
+ my ($self, $index) = @_;
+
+ return $self->_get_group_member_by_index ('group_doc', $index);
+}
+
+sub get_g_field_by_index ($$)
+{
+ my ($self, $index) = @_;
+
+ return $self->_get_group_member_by_index ('group_field', $index);
+}
+
+sub get_g_function_by_index ($$)
+{
+ my ($self, $index) = @_;
+
+ return $self->_get_group_member_by_index ('group_function', $index);
+}
+
+sub get_g_glib_signal_by_index ($$)
+{
+ my ($self, $index) = @_;
+
+ return $self->_get_group_member_by_index ('group_glib_signal', $index);
+}
+
+sub get_g_implements_by_index ($$)
+{
+ my ($self, $index) = @_;
+
+ return $self->_get_group_member_by_index ('group_implements', $index);
+}
+
+sub get_g_method_by_index ($$)
+{
+ my ($self, $index) = @_;
+
+ return $self->_get_group_member_by_index ('group_method', $index);
+}
+
+sub get_g_property_by_index ($$)
+{
+ my ($self, $index) = @_;
+
+ return $self->_get_group_member_by_index ('group_property', $index);
+}
+
+sub get_g_record_by_index ($$)
+{
+ my ($self, $index) = @_;
+
+ return $self->_get_group_member_by_index ('group_record', $index);
+}
+
+sub get_g_union_by_index ($$)
+{
+ my ($self, $index) = @_;
+
+ return $self->_get_group_member_by_index ('group_union', $index);
+}
+
+sub get_g_virtual_method_by_index ($$)
+{
+ my ($self, $index) = @_;
+
+ return $self->_get_group_member_by_index ('group_virtual_method', $index);
+}
+
+
+sub get_g_attribute_count ($)
+{
+ my $self = shift;
+
+ return $self->_get_group_member_count ('group_attribute');
+}
+
+sub get_g_constructor_count ($)
+{
+ my $self = shift;
+
+ return $self->_get_group_member_count ('group_constructor');
+}
+
+sub get_g_doc_count ($)
+{
+ my $self = shift;
+
+ return $self->_get_group_member_count ('group_doc');
+}
+
+sub get_g_field_count ($)
+{
+ my $self = shift;
+
+ return $self->_get_group_member_count ('group_field');
+}
+
+sub get_g_function_count ($)
+{
+ my $self = shift;
+
+ return $self->_get_group_member_count ('group_function');
+}
+
+sub get_g_glib_signal_count ($)
+{
+ my $self = shift;
+
+ return $self->_get_group_member_count ('group_glib_signal');
+}
+
+sub get_g_implements_count ($)
+{
+ my $self = shift;
+
+ return $self->_get_group_member_count ('group_implements');
+}
+
+sub get_g_method_count ($)
+{
+ my $self = shift;
+
+ return $self->_get_group_member_count ('group_method');
+}
+
+sub get_g_property_count ($)
+{
+ my $self = shift;
+
+ return $self->_get_group_member_count ('group_property');
+}
+
+sub get_g_record_count ($)
+{
+ my $self = shift;
+
+ return $self->_get_group_member_count ('group_record');
+}
+
+sub get_g_union_count ($)
+{
+ my $self = shift;
+
+ return $self->_get_group_member_count ('group_union');
+}
+
+sub get_g_virtual_method_count ($)
+{
+ my $self = shift;
+
+ return $self->_get_group_member_count ('group_virtual_method');
+}
+
+
+sub add_g_attribute ($$$)
+{
+ my ($self, $member_name, $member) = @_;
+
+ $self->_add_member_to_group ('group_attribute', $member_name, $member);
+}
+
+sub add_g_constructor ($$$)
+{
+ my ($self, $member_name, $member) = @_;
+
+ $self->_add_member_to_group ('group_constructor', $member_name, $member);
+}
+
+sub add_g_doc ($$$)
+{
+ my ($self, $member_name, $member) = @_;
+
+ $self->_add_member_to_group ('group_doc', $member_name, $member);
+}
+
+sub add_g_field ($$$)
+{
+ my ($self, $member_name, $member) = @_;
+
+ $self->_add_member_to_group ('group_field', $member_name, $member);
+}
+
+sub add_g_function ($$$)
+{
+ my ($self, $member_name, $member) = @_;
+
+ $self->_add_member_to_group ('group_function', $member_name, $member);
+}
+
+sub add_g_glib_signal ($$$)
+{
+ my ($self, $member_name, $member) = @_;
+
+ $self->_add_member_to_group ('group_glib_signal', $member_name, $member);
+}
+
+sub add_g_implements ($$$)
+{
+ my ($self, $member_name, $member) = @_;
+
+ $self->_add_member_to_group ('group_implements', $member_name, $member);
+}
+
+sub add_g_method ($$$)
+{
+ my ($self, $member_name, $member) = @_;
+
+ $self->_add_member_to_group ('group_method', $member_name, $member);
+}
+
+sub add_g_property ($$$)
+{
+ my ($self, $member_name, $member) = @_;
+
+ $self->_add_member_to_group ('group_property', $member_name, $member);
+}
+
+sub add_g_record ($$$)
+{
+ my ($self, $member_name, $member) = @_;
+
+ $self->_add_member_to_group ('group_record', $member_name, $member);
+}
+
+sub add_g_union ($$$)
+{
+ my ($self, $member_name, $member) = @_;
+
+ $self->_add_member_to_group ('group_union', $member_name, $member);
+}
+
+sub add_g_virtual_method ($$$)
+{
+ my ($self, $member_name, $member) = @_;
+
+ $self->_add_member_to_group ('group_virtual_method', $member_name, $member);
+}
+
+
+sub get_a_abstract ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_abstract');
+}
+
+sub get_a_c_symbol_prefix ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_c_symbol_prefix');
+}
+
+sub get_a_c_type ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_c_type');
+}
+
+sub get_a_deprecated ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_deprecated');
+}
+
+sub get_a_deprecated_version ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_deprecated_version');
+}
+
+sub get_a_glib_fundamental ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_glib_fundamental');
+}
+
+sub get_a_glib_get_type ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_glib_get_type');
+}
+
+sub get_a_glib_get_value_func ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_glib_get_value_func');
+}
+
+sub get_a_glib_ref_func ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_glib_ref_func');
+}
+
+sub get_a_glib_set_value_func ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_glib_set_value_func');
+}
+
+sub get_a_glib_type_name ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_glib_type_name');
+}
+
+sub get_a_glib_type_struct ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_glib_type_struct');
+}
+
+sub get_a_glib_unref_func ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_glib_unref_func');
+}
+
+sub get_a_introspectable ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_introspectable');
+}
+
+sub get_a_name ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_name');
+}
+
+sub get_a_parent ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_parent');
+}
+
+sub get_a_version ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_version');
+}
+
+
+sub set_a_abstract ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_abstract', $value);
+}
+
+sub set_a_c_symbol_prefix ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_c_symbol_prefix', $value);
+}
+
+sub set_a_c_type ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_c_type', $value);
+}
+
+sub set_a_deprecated ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_deprecated', $value);
+}
+
+sub set_a_deprecated_version ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_deprecated_version', $value);
+}
+
+sub set_a_glib_fundamental ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_glib_fundamental', $value);
+}
+
+sub set_a_glib_get_type ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_glib_get_type', $value);
+}
+
+sub set_a_glib_get_value_func ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_glib_get_value_func', $value);
+}
+
+sub set_a_glib_ref_func ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_glib_ref_func', $value);
+}
+
+sub set_a_glib_set_value_func ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_glib_set_value_func', $value);
+}
+
+sub set_a_glib_type_name ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_glib_type_name', $value);
+}
+
+sub set_a_glib_type_struct ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_glib_type_struct', $value);
+}
+
+sub set_a_glib_unref_func ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_glib_unref_func', $value);
+}
+
+sub set_a_introspectable ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_introspectable', $value);
+}
+
+sub set_a_name ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_name', $value);
+}
+
+sub set_a_parent ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_parent', $value);
+}
+
+sub set_a_version ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_version', $value);
+}
+
+
+1; # indicate proper module load.
diff --git a/tools/pm/Gir/Api/Common/Base.pm b/tools/pm/Gir/Api/Common/Base.pm
new file mode 100644
index 0000000..8e42123
--- /dev/null
+++ b/tools/pm/Gir/Api/Common/Base.pm
@@ -0,0 +1,215 @@
+# -*- mode: perl; perl-indent-level: 2; indent-tabs-mode: nil -*-
+## Copyright 2011 Krzesimir Nowak
+##
+## This program is free software; you can redistribute it and/or modify
+## it under the terms of the GNU General Public License as published by
+## the Free Software Foundation; either version 2 of the License, or
+## (at your option) any later version.
+##
+## This program 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 General Public License for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with this program; if not, write to the Free Software
+## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+##
+
+package Gir::Api::Common::Base;
+
+use strict;
+use warnings;
+
+##
+## protected:
+##
+
+##
+## Takes group name and member name and tries to retrieve such member from
+## a group. Note that asking for a member of nonexistent group is fatal.
+## When such member does not exist then undef is returned.
+##
+sub _get_group_member_by_name ($$$)
+{
+ my ($self, $group_name, $member_name) = @_;
+ my $groups = $self->{'groups'};
+
+ unless (exists ($groups->{$group_name}))
+ {
+ # TODO: throw error.
+ print STDERR 'No such group: ' . $group_name . '.' . "\n";
+ exit 1;
+ }
+
+ my $group = $groups->{$group_name};
+ my $unordered = $group->{'unordered'};
+
+ if (exists ($unordered->{$member_name}))
+ {
+ return $group->{'ordered'}[$unordered->{$member_name}];
+ }
+ return undef;
+}
+
+##
+## Takes group name and index of a member and tries to retrieve a member
+## at given index from a group. Note that asking for a member of nonexistent
+## group or noexistent index is fatal. This method always returns a valid
+## member.
+##
+sub _get_group_member_by_index ($$$)
+{
+ my ($self, $group_name, $index) = @_;
+ my $groups = $self->{'groups'};
+
+ unless (exists ($groups->{$group_name}))
+ {
+ # TODO: throw error.
+ print STDERR 'No such group: ' . $group_name . '.' . "\n";
+ exit 1;
+ }
+
+ my $group = $groups->{$group_name};
+ my $ordered = $group->{'ordered'};
+
+ unless ($index < @{$ordered})
+ {
+ # TODO: throw error.
+ print STDERR 'No member under index ' . $index . ' in group ' . $group_name . '.' . "\n";
+ exit 1;
+ }
+ return $ordered->[$index];
+}
+
+##
+## Takes group name and returns a count of members in the group. Note that asking
+## for a count of nonexistent group is fatal. This method always return a correct
+## count.
+##
+sub _get_group_member_count ($$)
+{
+ my ($self, $group_name) = @_;
+ my $groups = $self->{'groups'};
+
+ unless (exists ($groups->{$group_name}))
+ {
+ # TODO: throw error.
+ print STDERR 'No such group: ' . $group_name . '.' . "\n";
+ exit 1;
+ }
+
+ return @{$groups->{$group_name}{'ordered'}};
+}
+
+##
+## Takes group name, member name and member itself and puts the member into
+## a group. Note that trying to put a member into nonexistent group or trying
+## to put a member whose name is already in group is fatal.
+##
+sub _add_member_to_group ($$$$)
+{
+ my ($self, $group_name, $member_name, $member) = @_;
+ my $groups = $self->{'groups'};
+
+ unless (exists ($groups->{$group_name}))
+ {
+ # TODO: throw error.
+ print STDERR 'No such group: ' . $group_name . '.' . "\n";
+ exit 1;
+ }
+
+ my $group = $groups->{$group_name};
+ my $unordered = $group->{'unordered'};
+
+ if (exists ($unordered->{$member_name}))
+ {
+ # TODO: throw error.
+ print STDERR 'Member ' . $member_name . ' already exists in group: ' . $group_name . '.' . "\n";
+ exit 1;
+ }
+
+ my $ordered = $group->{'ordered'};
+ my $new_index = @{$ordered};
+
+ push (@{$ordered}, $member);
+ $unordered->{$member_name} = $new_index;
+}
+
+##
+## Takes attribute name and tries returns its value. Note that asking for
+## a value of nonexistent attribute is fatal.
+##
+sub _get_attribute ($$)
+{
+ my ($self, $attribute_name) = @_;
+ my $attributes = $self->{'attributes'};
+
+ unless (exists ($attributes->{$attribute_name}))
+ {
+ # TODO: throw error.
+ print STDERR 'No such attribute: ' . $attribute_name . '.' . "\n";
+ exit 1;
+ }
+
+ return $attributes->{$attribute_name};
+}
+
+##
+## Takes attribute name and attribute value and sets the value for the name.
+## Note that asking for setting a value to nonexistent attribute is fatal.
+##
+sub _set_attribute ($$$)
+{
+ my ($self, $attribute_name, $attribute_value) = @_;
+ my $attributes = $self->{'attributes'};
+
+ unless (exists ($attributes->{$attribute_name}))
+ {
+ # TODO: throw error.
+ print STDERR 'No such attribute: ' . $attribute_name . '.' . "\n";
+ exit 1;
+ }
+
+ $attributes->{$attribute_name} = $attribute_value;
+}
+
+##
+## Takes attribute name and check if this object have such attribute.
+##
+sub _has_attribute ($$)
+{
+ my ($self, $attribute_name) = @_;
+ my $attributes = $self->{'attributes'};
+
+ return exists ($attributes->{$attribute_name});
+}
+
+##
+## public:
+##
+
+##
+## Takes an array of group names and an array of attribute names and creates
+## an instance of a class. This is the only method where actual group names
+## and attribute names can be set.
+##
+sub new ($$$)
+{
+ my ($type, $groups, $attributes) = @_;
+ my $class = (ref ($type) or $type or 'Gir::Api::Common::Base');
+ my %member_groups = map { $_ => {'ordered' => [], 'unordered' => {}}; } @{$groups};
+ my %member_attributes = map { $_ => undef } @{$attributes};
+ my $self =
+ {
+ # group_name => {'ordered' => [{obj1}, {obj2}, ...], 'unordered' => {name_of_obj1 => idx_of_obj1, name_of_obj2 => idx_of_obj2}}
+ 'groups' => \%member_groups,
+ # attribute => value
+ 'attributes' => \%member_attributes
+ };
+
+ bless ($self, $class);
+ return $self;
+}
+
+1; # indicate proper module load.
diff --git a/tools/pm/Gir/Api/Constant.pm b/tools/pm/Gir/Api/Constant.pm
new file mode 100644
index 0000000..f005136
--- /dev/null
+++ b/tools/pm/Gir/Api/Constant.pm
@@ -0,0 +1,197 @@
+## This file was generated by taghandlerwriter.pl script.
+##
+## Copyright 2011 Krzesimir Nowak
+##
+## This program is free software; you can redistribute it and/or modify
+## it under the terms of the GNU General Public License as published by
+## the Free Software Foundation; either version 2 of the License, or
+## (at your option) any later version.
+##
+## This program 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 General Public License for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with this program; if not, write to the Free Software
+## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+##
+
+package Gir::Api::Constant;
+
+use strict;
+use warnings;
+
+use parent qw(Gir::Api::Common::Base);
+
+use Gir::Api::Array;
+use Gir::Api::Type;
+use Gir::Api::Varargs;
+
+sub new ($)
+{
+ my $type = shift;
+ my $class = (ref ($type) or $type or 'Gir::Api::Constant');
+ my $groups =
+ [
+ 'group_array',
+ 'group_type',
+ 'group_varargs'
+ ];
+ my $attributes =
+ [
+ 'attribute_c_type',
+ 'attribute_name',
+ 'attribute_value'
+ ];
+ my $self = $class->SUPER::new ($groups, $attributes);
+
+ bless ($self, $class);
+ return $self;
+}
+
+sub new_with_params ($$)
+{
+ my ($type, $params) = @_;
+ my $self = Gir::Api::Constant::new ($type);
+
+ $self->set_a_c_type($params->{'c:type'});
+ $self->set_a_name($params->{'name'});
+ $self->set_a_value($params->{'value'});
+
+ return $self;
+}
+
+sub get_g_array_by_name ($$)
+{
+ my ($self, $name) = @_;
+
+ return $self->_get_group_member_by_name ('group_array', $name);
+}
+
+sub get_g_type_by_name ($$)
+{
+ my ($self, $name) = @_;
+
+ return $self->_get_group_member_by_name ('group_type', $name);
+}
+
+sub get_g_varargs_by_name ($$)
+{
+ my ($self, $name) = @_;
+
+ return $self->_get_group_member_by_name ('group_varargs', $name);
+}
+
+
+sub get_g_array_by_index ($$)
+{
+ my ($self, $index) = @_;
+
+ return $self->_get_group_member_by_index ('group_array', $index);
+}
+
+sub get_g_type_by_index ($$)
+{
+ my ($self, $index) = @_;
+
+ return $self->_get_group_member_by_index ('group_type', $index);
+}
+
+sub get_g_varargs_by_index ($$)
+{
+ my ($self, $index) = @_;
+
+ return $self->_get_group_member_by_index ('group_varargs', $index);
+}
+
+
+sub get_g_array_count ($)
+{
+ my $self = shift;
+
+ return $self->_get_group_member_count ('group_array');
+}
+
+sub get_g_type_count ($)
+{
+ my $self = shift;
+
+ return $self->_get_group_member_count ('group_type');
+}
+
+sub get_g_varargs_count ($)
+{
+ my $self = shift;
+
+ return $self->_get_group_member_count ('group_varargs');
+}
+
+
+sub add_g_array ($$$)
+{
+ my ($self, $member_name, $member) = @_;
+
+ $self->_add_member_to_group ('group_array', $member_name, $member);
+}
+
+sub add_g_type ($$$)
+{
+ my ($self, $member_name, $member) = @_;
+
+ $self->_add_member_to_group ('group_type', $member_name, $member);
+}
+
+sub add_g_varargs ($$$)
+{
+ my ($self, $member_name, $member) = @_;
+
+ $self->_add_member_to_group ('group_varargs', $member_name, $member);
+}
+
+
+sub get_a_c_type ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_c_type');
+}
+
+sub get_a_name ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_name');
+}
+
+sub get_a_value ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_value');
+}
+
+
+sub set_a_c_type ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_c_type', $value);
+}
+
+sub set_a_name ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_name', $value);
+}
+
+sub set_a_value ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_value', $value);
+}
+
+
+1; # indicate proper module load.
diff --git a/tools/pm/Gir/Api/Constructor.pm b/tools/pm/Gir/Api/Constructor.pm
new file mode 100644
index 0000000..e7b89db
--- /dev/null
+++ b/tools/pm/Gir/Api/Constructor.pm
@@ -0,0 +1,339 @@
+## This file was generated by taghandlerwriter.pl script.
+##
+## Copyright 2011 Krzesimir Nowak
+##
+## This program is free software; you can redistribute it and/or modify
+## it under the terms of the GNU General Public License as published by
+## the Free Software Foundation; either version 2 of the License, or
+## (at your option) any later version.
+##
+## This program 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 General Public License for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with this program; if not, write to the Free Software
+## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+##
+
+package Gir::Api::Constructor;
+
+use strict;
+use warnings;
+
+use parent qw(Gir::Api::Common::Base);
+
+use Gir::Api::Attribute;
+use Gir::Api::Doc;
+use Gir::Api::Parameters;
+use Gir::Api::ReturnValue;
+
+sub new ($)
+{
+ my $type = shift;
+ my $class = (ref ($type) or $type or 'Gir::Api::Constructor');
+ my $groups =
+ [
+ 'group_attribute',
+ 'group_doc',
+ 'group_parameters',
+ 'group_return_value'
+ ];
+ my $attributes =
+ [
+ 'attribute_c_identifier',
+ 'attribute_deprecated',
+ 'attribute_deprecated_version',
+ 'attribute_introspectable',
+ 'attribute_moved_to',
+ 'attribute_name',
+ 'attribute_shadowed_by',
+ 'attribute_shadows',
+ 'attribute_throws',
+ 'attribute_version'
+ ];
+ my $self = $class->SUPER::new ($groups, $attributes);
+
+ bless ($self, $class);
+ return $self;
+}
+
+sub new_with_params ($$)
+{
+ my ($type, $params) = @_;
+ my $self = Gir::Api::Constructor::new ($type);
+
+ $self->set_a_c_identifier($params->{'c:identifier'});
+ $self->set_a_deprecated($params->{'deprecated'});
+ $self->set_a_deprecated_version($params->{'deprecated-version'});
+ $self->set_a_introspectable($params->{'introspectable'});
+ $self->set_a_moved_to($params->{'moved-to'});
+ $self->set_a_name($params->{'name'});
+ $self->set_a_shadowed_by($params->{'shadowed-by'});
+ $self->set_a_shadows($params->{'shadows'});
+ $self->set_a_throws($params->{'throws'});
+ $self->set_a_version($params->{'version'});
+
+ return $self;
+}
+
+sub get_g_attribute_by_name ($$)
+{
+ my ($self, $name) = @_;
+
+ return $self->_get_group_member_by_name ('group_attribute', $name);
+}
+
+sub get_g_doc_by_name ($$)
+{
+ my ($self, $name) = @_;
+
+ return $self->_get_group_member_by_name ('group_doc', $name);
+}
+
+sub get_g_parameters_by_name ($$)
+{
+ my ($self, $name) = @_;
+
+ return $self->_get_group_member_by_name ('group_parameters', $name);
+}
+
+sub get_g_return_value_by_name ($$)
+{
+ my ($self, $name) = @_;
+
+ return $self->_get_group_member_by_name ('group_return_value', $name);
+}
+
+
+sub get_g_attribute_by_index ($$)
+{
+ my ($self, $index) = @_;
+
+ return $self->_get_group_member_by_index ('group_attribute', $index);
+}
+
+sub get_g_doc_by_index ($$)
+{
+ my ($self, $index) = @_;
+
+ return $self->_get_group_member_by_index ('group_doc', $index);
+}
+
+sub get_g_parameters_by_index ($$)
+{
+ my ($self, $index) = @_;
+
+ return $self->_get_group_member_by_index ('group_parameters', $index);
+}
+
+sub get_g_return_value_by_index ($$)
+{
+ my ($self, $index) = @_;
+
+ return $self->_get_group_member_by_index ('group_return_value', $index);
+}
+
+
+sub get_g_attribute_count ($)
+{
+ my $self = shift;
+
+ return $self->_get_group_member_count ('group_attribute');
+}
+
+sub get_g_doc_count ($)
+{
+ my $self = shift;
+
+ return $self->_get_group_member_count ('group_doc');
+}
+
+sub get_g_parameters_count ($)
+{
+ my $self = shift;
+
+ return $self->_get_group_member_count ('group_parameters');
+}
+
+sub get_g_return_value_count ($)
+{
+ my $self = shift;
+
+ return $self->_get_group_member_count ('group_return_value');
+}
+
+
+sub add_g_attribute ($$$)
+{
+ my ($self, $member_name, $member) = @_;
+
+ $self->_add_member_to_group ('group_attribute', $member_name, $member);
+}
+
+sub add_g_doc ($$$)
+{
+ my ($self, $member_name, $member) = @_;
+
+ $self->_add_member_to_group ('group_doc', $member_name, $member);
+}
+
+sub add_g_parameters ($$$)
+{
+ my ($self, $member_name, $member) = @_;
+
+ $self->_add_member_to_group ('group_parameters', $member_name, $member);
+}
+
+sub add_g_return_value ($$$)
+{
+ my ($self, $member_name, $member) = @_;
+
+ $self->_add_member_to_group ('group_return_value', $member_name, $member);
+}
+
+
+sub get_a_c_identifier ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_c_identifier');
+}
+
+sub get_a_deprecated ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_deprecated');
+}
+
+sub get_a_deprecated_version ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_deprecated_version');
+}
+
+sub get_a_introspectable ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_introspectable');
+}
+
+sub get_a_moved_to ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_moved_to');
+}
+
+sub get_a_name ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_name');
+}
+
+sub get_a_shadowed_by ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_shadowed_by');
+}
+
+sub get_a_shadows ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_shadows');
+}
+
+sub get_a_throws ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_throws');
+}
+
+sub get_a_version ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_version');
+}
+
+
+sub set_a_c_identifier ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_c_identifier', $value);
+}
+
+sub set_a_deprecated ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_deprecated', $value);
+}
+
+sub set_a_deprecated_version ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_deprecated_version', $value);
+}
+
+sub set_a_introspectable ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_introspectable', $value);
+}
+
+sub set_a_moved_to ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_moved_to', $value);
+}
+
+sub set_a_name ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_name', $value);
+}
+
+sub set_a_shadowed_by ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_shadowed_by', $value);
+}
+
+sub set_a_shadows ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_shadows', $value);
+}
+
+sub set_a_throws ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_throws', $value);
+}
+
+sub set_a_version ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_version', $value);
+}
+
+
+1; # indicate proper module load.
diff --git a/tools/pm/Gir/Api/Doc.pm b/tools/pm/Gir/Api/Doc.pm
new file mode 100644
index 0000000..62fd864
--- /dev/null
+++ b/tools/pm/Gir/Api/Doc.pm
@@ -0,0 +1,81 @@
+## This file was generated by taghandlerwriter.pl script.
+##
+## Copyright 2011 Krzesimir Nowak
+##
+## This program is free software; you can redistribute it and/or modify
+## it under the terms of the GNU General Public License as published by
+## the Free Software Foundation; either version 2 of the License, or
+## (at your option) any later version.
+##
+## This program 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 General Public License for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with this program; if not, write to the Free Software
+## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+##
+
+package Gir::Api::Doc;
+
+use strict;
+use warnings;
+
+use parent qw(Gir::Api::Common::Base);
+
+
+
+sub new ($)
+{
+ my $type = shift;
+ my $class = (ref ($type) or $type or 'Gir::Api::Doc');
+ my $groups =
+ [
+
+ ];
+ my $attributes =
+ [
+ 'attribute_xml_whitespace'
+ ];
+ my $self = $class->SUPER::new ($groups, $attributes);
+
+ bless ($self, $class);
+ return $self;
+}
+
+sub new_with_params ($$)
+{
+ my ($type, $params) = @_;
+ my $self = Gir::Api::Doc::new ($type);
+
+ $self->set_a_xml_whitespace($params->{'xml:whitespace'});
+
+ return $self;
+}
+
+
+
+
+
+
+
+
+
+sub get_a_xml_whitespace ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_xml_whitespace');
+}
+
+
+sub set_a_xml_whitespace ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_xml_whitespace', $value);
+}
+
+
+1; # indicate proper module load.
diff --git a/tools/pm/Gir/Api/Enumeration.pm b/tools/pm/Gir/Api/Enumeration.pm
new file mode 100644
index 0000000..efd94ec
--- /dev/null
+++ b/tools/pm/Gir/Api/Enumeration.pm
@@ -0,0 +1,323 @@
+## This file was generated by taghandlerwriter.pl script.
+##
+## Copyright 2011 Krzesimir Nowak
+##
+## This program is free software; you can redistribute it and/or modify
+## it under the terms of the GNU General Public License as published by
+## the Free Software Foundation; either version 2 of the License, or
+## (at your option) any later version.
+##
+## This program 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 General Public License for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with this program; if not, write to the Free Software
+## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+##
+
+package Gir::Api::Enumeration;
+
+use strict;
+use warnings;
+
+use parent qw(Gir::Api::Common::Base);
+
+use Gir::Api::Attribute;
+use Gir::Api::Doc;
+use Gir::Api::Function;
+use Gir::Api::Member;
+
+sub new ($)
+{
+ my $type = shift;
+ my $class = (ref ($type) or $type or 'Gir::Api::Enumeration');
+ my $groups =
+ [
+ 'group_attribute',
+ 'group_doc',
+ 'group_function',
+ 'group_member'
+ ];
+ my $attributes =
+ [
+ 'attribute_c_type',
+ 'attribute_deprecated',
+ 'attribute_deprecated_version',
+ 'attribute_glib_error_domain',
+ 'attribute_glib_get_type',
+ 'attribute_glib_type_name',
+ 'attribute_introspectable',
+ 'attribute_name',
+ 'attribute_version'
+ ];
+ my $self = $class->SUPER::new ($groups, $attributes);
+
+ bless ($self, $class);
+ return $self;
+}
+
+sub new_with_params ($$)
+{
+ my ($type, $params) = @_;
+ my $self = Gir::Api::Enumeration::new ($type);
+
+ $self->set_a_c_type($params->{'c:type'});
+ $self->set_a_deprecated($params->{'deprecated'});
+ $self->set_a_deprecated_version($params->{'deprecated-version'});
+ $self->set_a_glib_error_domain($params->{'glib:error-domain'});
+ $self->set_a_glib_get_type($params->{'glib:get-type'});
+ $self->set_a_glib_type_name($params->{'glib:type-name'});
+ $self->set_a_introspectable($params->{'introspectable'});
+ $self->set_a_name($params->{'name'});
+ $self->set_a_version($params->{'version'});
+
+ return $self;
+}
+
+sub get_g_attribute_by_name ($$)
+{
+ my ($self, $name) = @_;
+
+ return $self->_get_group_member_by_name ('group_attribute', $name);
+}
+
+sub get_g_doc_by_name ($$)
+{
+ my ($self, $name) = @_;
+
+ return $self->_get_group_member_by_name ('group_doc', $name);
+}
+
+sub get_g_function_by_name ($$)
+{
+ my ($self, $name) = @_;
+
+ return $self->_get_group_member_by_name ('group_function', $name);
+}
+
+sub get_g_member_by_name ($$)
+{
+ my ($self, $name) = @_;
+
+ return $self->_get_group_member_by_name ('group_member', $name);
+}
+
+
+sub get_g_attribute_by_index ($$)
+{
+ my ($self, $index) = @_;
+
+ return $self->_get_group_member_by_index ('group_attribute', $index);
+}
+
+sub get_g_doc_by_index ($$)
+{
+ my ($self, $index) = @_;
+
+ return $self->_get_group_member_by_index ('group_doc', $index);
+}
+
+sub get_g_function_by_index ($$)
+{
+ my ($self, $index) = @_;
+
+ return $self->_get_group_member_by_index ('group_function', $index);
+}
+
+sub get_g_member_by_index ($$)
+{
+ my ($self, $index) = @_;
+
+ return $self->_get_group_member_by_index ('group_member', $index);
+}
+
+
+sub get_g_attribute_count ($)
+{
+ my $self = shift;
+
+ return $self->_get_group_member_count ('group_attribute');
+}
+
+sub get_g_doc_count ($)
+{
+ my $self = shift;
+
+ return $self->_get_group_member_count ('group_doc');
+}
+
+sub get_g_function_count ($)
+{
+ my $self = shift;
+
+ return $self->_get_group_member_count ('group_function');
+}
+
+sub get_g_member_count ($)
+{
+ my $self = shift;
+
+ return $self->_get_group_member_count ('group_member');
+}
+
+
+sub add_g_attribute ($$$)
+{
+ my ($self, $member_name, $member) = @_;
+
+ $self->_add_member_to_group ('group_attribute', $member_name, $member);
+}
+
+sub add_g_doc ($$$)
+{
+ my ($self, $member_name, $member) = @_;
+
+ $self->_add_member_to_group ('group_doc', $member_name, $member);
+}
+
+sub add_g_function ($$$)
+{
+ my ($self, $member_name, $member) = @_;
+
+ $self->_add_member_to_group ('group_function', $member_name, $member);
+}
+
+sub add_g_member ($$$)
+{
+ my ($self, $member_name, $member) = @_;
+
+ $self->_add_member_to_group ('group_member', $member_name, $member);
+}
+
+
+sub get_a_c_type ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_c_type');
+}
+
+sub get_a_deprecated ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_deprecated');
+}
+
+sub get_a_deprecated_version ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_deprecated_version');
+}
+
+sub get_a_glib_error_domain ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_glib_error_domain');
+}
+
+sub get_a_glib_get_type ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_glib_get_type');
+}
+
+sub get_a_glib_type_name ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_glib_type_name');
+}
+
+sub get_a_introspectable ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_introspectable');
+}
+
+sub get_a_name ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_name');
+}
+
+sub get_a_version ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_version');
+}
+
+
+sub set_a_c_type ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_c_type', $value);
+}
+
+sub set_a_deprecated ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_deprecated', $value);
+}
+
+sub set_a_deprecated_version ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_deprecated_version', $value);
+}
+
+sub set_a_glib_error_domain ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_glib_error_domain', $value);
+}
+
+sub set_a_glib_get_type ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_glib_get_type', $value);
+}
+
+sub set_a_glib_type_name ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_glib_type_name', $value);
+}
+
+sub set_a_introspectable ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_introspectable', $value);
+}
+
+sub set_a_name ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_name', $value);
+}
+
+sub set_a_version ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_version', $value);
+}
+
+
+1; # indicate proper module load.
diff --git a/tools/pm/Gir/Api/Field.pm b/tools/pm/Gir/Api/Field.pm
new file mode 100644
index 0000000..b24144f
--- /dev/null
+++ b/tools/pm/Gir/Api/Field.pm
@@ -0,0 +1,367 @@
+## This file was generated by taghandlerwriter.pl script.
+##
+## Copyright 2011 Krzesimir Nowak
+##
+## This program is free software; you can redistribute it and/or modify
+## it under the terms of the GNU General Public License as published by
+## the Free Software Foundation; either version 2 of the License, or
+## (at your option) any later version.
+##
+## This program 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 General Public License for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with this program; if not, write to the Free Software
+## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+##
+
+package Gir::Api::Field;
+
+use strict;
+use warnings;
+
+use parent qw(Gir::Api::Common::Base);
+
+use Gir::Api::Array;
+use Gir::Api::Attribute;
+use Gir::Api::Callback;
+use Gir::Api::Doc;
+use Gir::Api::Type;
+use Gir::Api::Varargs;
+
+sub new ($)
+{
+ my $type = shift;
+ my $class = (ref ($type) or $type or 'Gir::Api::Field');
+ my $groups =
+ [
+ 'group_array',
+ 'group_attribute',
+ 'group_callback',
+ 'group_doc',
+ 'group_type',
+ 'group_varargs'
+ ];
+ my $attributes =
+ [
+ 'attribute_bits',
+ 'attribute_deprecated',
+ 'attribute_deprecated_version',
+ 'attribute_introspectable',
+ 'attribute_name',
+ 'attribute_private',
+ 'attribute_readable',
+ 'attribute_writable'
+ ];
+ my $self = $class->SUPER::new ($groups, $attributes);
+
+ bless ($self, $class);
+ return $self;
+}
+
+sub new_with_params ($$)
+{
+ my ($type, $params) = @_;
+ my $self = Gir::Api::Field::new ($type);
+
+ $self->set_a_bits($params->{'bits'});
+ $self->set_a_deprecated($params->{'deprecated'});
+ $self->set_a_deprecated_version($params->{'deprecated-version'});
+ $self->set_a_introspectable($params->{'introspectable'});
+ $self->set_a_name($params->{'name'});
+ $self->set_a_private($params->{'private'});
+ $self->set_a_readable($params->{'readable'});
+ $self->set_a_writable($params->{'writable'});
+
+ return $self;
+}
+
+sub get_g_array_by_name ($$)
+{
+ my ($self, $name) = @_;
+
+ return $self->_get_group_member_by_name ('group_array', $name);
+}
+
+sub get_g_attribute_by_name ($$)
+{
+ my ($self, $name) = @_;
+
+ return $self->_get_group_member_by_name ('group_attribute', $name);
+}
+
+sub get_g_callback_by_name ($$)
+{
+ my ($self, $name) = @_;
+
+ return $self->_get_group_member_by_name ('group_callback', $name);
+}
+
+sub get_g_doc_by_name ($$)
+{
+ my ($self, $name) = @_;
+
+ return $self->_get_group_member_by_name ('group_doc', $name);
+}
+
+sub get_g_type_by_name ($$)
+{
+ my ($self, $name) = @_;
+
+ return $self->_get_group_member_by_name ('group_type', $name);
+}
+
+sub get_g_varargs_by_name ($$)
+{
+ my ($self, $name) = @_;
+
+ return $self->_get_group_member_by_name ('group_varargs', $name);
+}
+
+
+sub get_g_array_by_index ($$)
+{
+ my ($self, $index) = @_;
+
+ return $self->_get_group_member_by_index ('group_array', $index);
+}
+
+sub get_g_attribute_by_index ($$)
+{
+ my ($self, $index) = @_;
+
+ return $self->_get_group_member_by_index ('group_attribute', $index);
+}
+
+sub get_g_callback_by_index ($$)
+{
+ my ($self, $index) = @_;
+
+ return $self->_get_group_member_by_index ('group_callback', $index);
+}
+
+sub get_g_doc_by_index ($$)
+{
+ my ($self, $index) = @_;
+
+ return $self->_get_group_member_by_index ('group_doc', $index);
+}
+
+sub get_g_type_by_index ($$)
+{
+ my ($self, $index) = @_;
+
+ return $self->_get_group_member_by_index ('group_type', $index);
+}
+
+sub get_g_varargs_by_index ($$)
+{
+ my ($self, $index) = @_;
+
+ return $self->_get_group_member_by_index ('group_varargs', $index);
+}
+
+
+sub get_g_array_count ($)
+{
+ my $self = shift;
+
+ return $self->_get_group_member_count ('group_array');
+}
+
+sub get_g_attribute_count ($)
+{
+ my $self = shift;
+
+ return $self->_get_group_member_count ('group_attribute');
+}
+
+sub get_g_callback_count ($)
+{
+ my $self = shift;
+
+ return $self->_get_group_member_count ('group_callback');
+}
+
+sub get_g_doc_count ($)
+{
+ my $self = shift;
+
+ return $self->_get_group_member_count ('group_doc');
+}
+
+sub get_g_type_count ($)
+{
+ my $self = shift;
+
+ return $self->_get_group_member_count ('group_type');
+}
+
+sub get_g_varargs_count ($)
+{
+ my $self = shift;
+
+ return $self->_get_group_member_count ('group_varargs');
+}
+
+
+sub add_g_array ($$$)
+{
+ my ($self, $member_name, $member) = @_;
+
+ $self->_add_member_to_group ('group_array', $member_name, $member);
+}
+
+sub add_g_attribute ($$$)
+{
+ my ($self, $member_name, $member) = @_;
+
+ $self->_add_member_to_group ('group_attribute', $member_name, $member);
+}
+
+sub add_g_callback ($$$)
+{
+ my ($self, $member_name, $member) = @_;
+
+ $self->_add_member_to_group ('group_callback', $member_name, $member);
+}
+
+sub add_g_doc ($$$)
+{
+ my ($self, $member_name, $member) = @_;
+
+ $self->_add_member_to_group ('group_doc', $member_name, $member);
+}
+
+sub add_g_type ($$$)
+{
+ my ($self, $member_name, $member) = @_;
+
+ $self->_add_member_to_group ('group_type', $member_name, $member);
+}
+
+sub add_g_varargs ($$$)
+{
+ my ($self, $member_name, $member) = @_;
+
+ $self->_add_member_to_group ('group_varargs', $member_name, $member);
+}
+
+
+sub get_a_bits ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_bits');
+}
+
+sub get_a_deprecated ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_deprecated');
+}
+
+sub get_a_deprecated_version ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_deprecated_version');
+}
+
+sub get_a_introspectable ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_introspectable');
+}
+
+sub get_a_name ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_name');
+}
+
+sub get_a_private ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_private');
+}
+
+sub get_a_readable ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_readable');
+}
+
+sub get_a_writable ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_writable');
+}
+
+
+sub set_a_bits ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_bits', $value);
+}
+
+sub set_a_deprecated ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_deprecated', $value);
+}
+
+sub set_a_deprecated_version ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_deprecated_version', $value);
+}
+
+sub set_a_introspectable ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_introspectable', $value);
+}
+
+sub set_a_name ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_name', $value);
+}
+
+sub set_a_private ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_private', $value);
+}
+
+sub set_a_readable ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_readable', $value);
+}
+
+sub set_a_writable ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_writable', $value);
+}
+
+
+1; # indicate proper module load.
diff --git a/tools/pm/Gir/Api/Function.pm b/tools/pm/Gir/Api/Function.pm
new file mode 100644
index 0000000..5fe8e30
--- /dev/null
+++ b/tools/pm/Gir/Api/Function.pm
@@ -0,0 +1,339 @@
+## This file was generated by taghandlerwriter.pl script.
+##
+## Copyright 2011 Krzesimir Nowak
+##
+## This program is free software; you can redistribute it and/or modify
+## it under the terms of the GNU General Public License as published by
+## the Free Software Foundation; either version 2 of the License, or
+## (at your option) any later version.
+##
+## This program 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 General Public License for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with this program; if not, write to the Free Software
+## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+##
+
+package Gir::Api::Function;
+
+use strict;
+use warnings;
+
+use parent qw(Gir::Api::Common::Base);
+
+use Gir::Api::Attribute;
+use Gir::Api::Doc;
+use Gir::Api::Parameters;
+use Gir::Api::ReturnValue;
+
+sub new ($)
+{
+ my $type = shift;
+ my $class = (ref ($type) or $type or 'Gir::Api::Function');
+ my $groups =
+ [
+ 'group_attribute',
+ 'group_doc',
+ 'group_parameters',
+ 'group_return_value'
+ ];
+ my $attributes =
+ [
+ 'attribute_c_identifier',
+ 'attribute_deprecated',
+ 'attribute_deprecated_version',
+ 'attribute_introspectable',
+ 'attribute_moved_to',
+ 'attribute_name',
+ 'attribute_shadowed_by',
+ 'attribute_shadows',
+ 'attribute_throws',
+ 'attribute_version'
+ ];
+ my $self = $class->SUPER::new ($groups, $attributes);
+
+ bless ($self, $class);
+ return $self;
+}
+
+sub new_with_params ($$)
+{
+ my ($type, $params) = @_;
+ my $self = Gir::Api::Function::new ($type);
+
+ $self->set_a_c_identifier($params->{'c:identifier'});
+ $self->set_a_deprecated($params->{'deprecated'});
+ $self->set_a_deprecated_version($params->{'deprecated-version'});
+ $self->set_a_introspectable($params->{'introspectable'});
+ $self->set_a_moved_to($params->{'moved-to'});
+ $self->set_a_name($params->{'name'});
+ $self->set_a_shadowed_by($params->{'shadowed-by'});
+ $self->set_a_shadows($params->{'shadows'});
+ $self->set_a_throws($params->{'throws'});
+ $self->set_a_version($params->{'version'});
+
+ return $self;
+}
+
+sub get_g_attribute_by_name ($$)
+{
+ my ($self, $name) = @_;
+
+ return $self->_get_group_member_by_name ('group_attribute', $name);
+}
+
+sub get_g_doc_by_name ($$)
+{
+ my ($self, $name) = @_;
+
+ return $self->_get_group_member_by_name ('group_doc', $name);
+}
+
+sub get_g_parameters_by_name ($$)
+{
+ my ($self, $name) = @_;
+
+ return $self->_get_group_member_by_name ('group_parameters', $name);
+}
+
+sub get_g_return_value_by_name ($$)
+{
+ my ($self, $name) = @_;
+
+ return $self->_get_group_member_by_name ('group_return_value', $name);
+}
+
+
+sub get_g_attribute_by_index ($$)
+{
+ my ($self, $index) = @_;
+
+ return $self->_get_group_member_by_index ('group_attribute', $index);
+}
+
+sub get_g_doc_by_index ($$)
+{
+ my ($self, $index) = @_;
+
+ return $self->_get_group_member_by_index ('group_doc', $index);
+}
+
+sub get_g_parameters_by_index ($$)
+{
+ my ($self, $index) = @_;
+
+ return $self->_get_group_member_by_index ('group_parameters', $index);
+}
+
+sub get_g_return_value_by_index ($$)
+{
+ my ($self, $index) = @_;
+
+ return $self->_get_group_member_by_index ('group_return_value', $index);
+}
+
+
+sub get_g_attribute_count ($)
+{
+ my $self = shift;
+
+ return $self->_get_group_member_count ('group_attribute');
+}
+
+sub get_g_doc_count ($)
+{
+ my $self = shift;
+
+ return $self->_get_group_member_count ('group_doc');
+}
+
+sub get_g_parameters_count ($)
+{
+ my $self = shift;
+
+ return $self->_get_group_member_count ('group_parameters');
+}
+
+sub get_g_return_value_count ($)
+{
+ my $self = shift;
+
+ return $self->_get_group_member_count ('group_return_value');
+}
+
+
+sub add_g_attribute ($$$)
+{
+ my ($self, $member_name, $member) = @_;
+
+ $self->_add_member_to_group ('group_attribute', $member_name, $member);
+}
+
+sub add_g_doc ($$$)
+{
+ my ($self, $member_name, $member) = @_;
+
+ $self->_add_member_to_group ('group_doc', $member_name, $member);
+}
+
+sub add_g_parameters ($$$)
+{
+ my ($self, $member_name, $member) = @_;
+
+ $self->_add_member_to_group ('group_parameters', $member_name, $member);
+}
+
+sub add_g_return_value ($$$)
+{
+ my ($self, $member_name, $member) = @_;
+
+ $self->_add_member_to_group ('group_return_value', $member_name, $member);
+}
+
+
+sub get_a_c_identifier ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_c_identifier');
+}
+
+sub get_a_deprecated ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_deprecated');
+}
+
+sub get_a_deprecated_version ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_deprecated_version');
+}
+
+sub get_a_introspectable ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_introspectable');
+}
+
+sub get_a_moved_to ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_moved_to');
+}
+
+sub get_a_name ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_name');
+}
+
+sub get_a_shadowed_by ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_shadowed_by');
+}
+
+sub get_a_shadows ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_shadows');
+}
+
+sub get_a_throws ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_throws');
+}
+
+sub get_a_version ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_version');
+}
+
+
+sub set_a_c_identifier ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_c_identifier', $value);
+}
+
+sub set_a_deprecated ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_deprecated', $value);
+}
+
+sub set_a_deprecated_version ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_deprecated_version', $value);
+}
+
+sub set_a_introspectable ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_introspectable', $value);
+}
+
+sub set_a_moved_to ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_moved_to', $value);
+}
+
+sub set_a_name ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_name', $value);
+}
+
+sub set_a_shadowed_by ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_shadowed_by', $value);
+}
+
+sub set_a_shadows ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_shadows', $value);
+}
+
+sub set_a_throws ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_throws', $value);
+}
+
+sub set_a_version ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_version', $value);
+}
+
+
+1; # indicate proper module load.
diff --git a/tools/pm/Gir/Api/GlibBoxed.pm b/tools/pm/Gir/Api/GlibBoxed.pm
new file mode 100644
index 0000000..e24a36b
--- /dev/null
+++ b/tools/pm/Gir/Api/GlibBoxed.pm
@@ -0,0 +1,273 @@
+## This file was generated by taghandlerwriter.pl script.
+##
+## Copyright 2011 Krzesimir Nowak
+##
+## This program is free software; you can redistribute it and/or modify
+## it under the terms of the GNU General Public License as published by
+## the Free Software Foundation; either version 2 of the License, or
+## (at your option) any later version.
+##
+## This program 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 General Public License for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with this program; if not, write to the Free Software
+## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+##
+
+package Gir::Api::GlibBoxed;
+
+use strict;
+use warnings;
+
+use parent qw(Gir::Api::Common::Base);
+
+use Gir::Api::Attribute;
+use Gir::Api::Constructor;
+use Gir::Api::Doc;
+use Gir::Api::Function;
+use Gir::Api::Method;
+
+sub new ($)
+{
+ my $type = shift;
+ my $class = (ref ($type) or $type or 'Gir::Api::GlibBoxed');
+ my $groups =
+ [
+ 'group_attribute',
+ 'group_constructor',
+ 'group_doc',
+ 'group_function',
+ 'group_method'
+ ];
+ my $attributes =
+ [
+ 'attribute_c_symbol_prefix',
+ 'attribute_glib_get_type',
+ 'attribute_glib_name',
+ 'attribute_glib_type_name'
+ ];
+ my $self = $class->SUPER::new ($groups, $attributes);
+
+ bless ($self, $class);
+ return $self;
+}
+
+sub new_with_params ($$)
+{
+ my ($type, $params) = @_;
+ my $self = Gir::Api::GlibBoxed::new ($type);
+
+ $self->set_a_c_symbol_prefix($params->{'c:symbol-prefix'});
+ $self->set_a_glib_get_type($params->{'glib:get-type'});
+ $self->set_a_glib_name($params->{'glib:name'});
+ $self->set_a_glib_type_name($params->{'glib:type-name'});
+
+ return $self;
+}
+
+sub get_g_attribute_by_name ($$)
+{
+ my ($self, $name) = @_;
+
+ return $self->_get_group_member_by_name ('group_attribute', $name);
+}
+
+sub get_g_constructor_by_name ($$)
+{
+ my ($self, $name) = @_;
+
+ return $self->_get_group_member_by_name ('group_constructor', $name);
+}
+
+sub get_g_doc_by_name ($$)
+{
+ my ($self, $name) = @_;
+
+ return $self->_get_group_member_by_name ('group_doc', $name);
+}
+
+sub get_g_function_by_name ($$)
+{
+ my ($self, $name) = @_;
+
+ return $self->_get_group_member_by_name ('group_function', $name);
+}
+
+sub get_g_method_by_name ($$)
+{
+ my ($self, $name) = @_;
+
+ return $self->_get_group_member_by_name ('group_method', $name);
+}
+
+
+sub get_g_attribute_by_index ($$)
+{
+ my ($self, $index) = @_;
+
+ return $self->_get_group_member_by_index ('group_attribute', $index);
+}
+
+sub get_g_constructor_by_index ($$)
+{
+ my ($self, $index) = @_;
+
+ return $self->_get_group_member_by_index ('group_constructor', $index);
+}
+
+sub get_g_doc_by_index ($$)
+{
+ my ($self, $index) = @_;
+
+ return $self->_get_group_member_by_index ('group_doc', $index);
+}
+
+sub get_g_function_by_index ($$)
+{
+ my ($self, $index) = @_;
+
+ return $self->_get_group_member_by_index ('group_function', $index);
+}
+
+sub get_g_method_by_index ($$)
+{
+ my ($self, $index) = @_;
+
+ return $self->_get_group_member_by_index ('group_method', $index);
+}
+
+
+sub get_g_attribute_count ($)
+{
+ my $self = shift;
+
+ return $self->_get_group_member_count ('group_attribute');
+}
+
+sub get_g_constructor_count ($)
+{
+ my $self = shift;
+
+ return $self->_get_group_member_count ('group_constructor');
+}
+
+sub get_g_doc_count ($)
+{
+ my $self = shift;
+
+ return $self->_get_group_member_count ('group_doc');
+}
+
+sub get_g_function_count ($)
+{
+ my $self = shift;
+
+ return $self->_get_group_member_count ('group_function');
+}
+
+sub get_g_method_count ($)
+{
+ my $self = shift;
+
+ return $self->_get_group_member_count ('group_method');
+}
+
+
+sub add_g_attribute ($$$)
+{
+ my ($self, $member_name, $member) = @_;
+
+ $self->_add_member_to_group ('group_attribute', $member_name, $member);
+}
+
+sub add_g_constructor ($$$)
+{
+ my ($self, $member_name, $member) = @_;
+
+ $self->_add_member_to_group ('group_constructor', $member_name, $member);
+}
+
+sub add_g_doc ($$$)
+{
+ my ($self, $member_name, $member) = @_;
+
+ $self->_add_member_to_group ('group_doc', $member_name, $member);
+}
+
+sub add_g_function ($$$)
+{
+ my ($self, $member_name, $member) = @_;
+
+ $self->_add_member_to_group ('group_function', $member_name, $member);
+}
+
+sub add_g_method ($$$)
+{
+ my ($self, $member_name, $member) = @_;
+
+ $self->_add_member_to_group ('group_method', $member_name, $member);
+}
+
+
+sub get_a_c_symbol_prefix ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_c_symbol_prefix');
+}
+
+sub get_a_glib_get_type ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_glib_get_type');
+}
+
+sub get_a_glib_name ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_glib_name');
+}
+
+sub get_a_glib_type_name ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_glib_type_name');
+}
+
+
+sub set_a_c_symbol_prefix ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_c_symbol_prefix', $value);
+}
+
+sub set_a_glib_get_type ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_glib_get_type', $value);
+}
+
+sub set_a_glib_name ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_glib_name', $value);
+}
+
+sub set_a_glib_type_name ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_glib_type_name', $value);
+}
+
+
+1; # indicate proper module load.
diff --git a/tools/pm/Gir/Api/GlibSignal.pm b/tools/pm/Gir/Api/GlibSignal.pm
new file mode 100644
index 0000000..37c5291
--- /dev/null
+++ b/tools/pm/Gir/Api/GlibSignal.pm
@@ -0,0 +1,339 @@
+## This file was generated by taghandlerwriter.pl script.
+##
+## Copyright 2011 Krzesimir Nowak
+##
+## This program is free software; you can redistribute it and/or modify
+## it under the terms of the GNU General Public License as published by
+## the Free Software Foundation; either version 2 of the License, or
+## (at your option) any later version.
+##
+## This program 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 General Public License for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with this program; if not, write to the Free Software
+## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+##
+
+package Gir::Api::GlibSignal;
+
+use strict;
+use warnings;
+
+use parent qw(Gir::Api::Common::Base);
+
+use Gir::Api::Attribute;
+use Gir::Api::Doc;
+use Gir::Api::Parameters;
+use Gir::Api::ReturnValue;
+
+sub new ($)
+{
+ my $type = shift;
+ my $class = (ref ($type) or $type or 'Gir::Api::GlibSignal');
+ my $groups =
+ [
+ 'group_attribute',
+ 'group_doc',
+ 'group_parameters',
+ 'group_return_value'
+ ];
+ my $attributes =
+ [
+ 'attribute_action',
+ 'attribute_deprecated',
+ 'attribute_deprecated_version',
+ 'attribute_detailed',
+ 'attribute_introspectable',
+ 'attribute_name',
+ 'attribute_no_hooks',
+ 'attribute_no_recurse',
+ 'attribute_version',
+ 'attribute_when'
+ ];
+ my $self = $class->SUPER::new ($groups, $attributes);
+
+ bless ($self, $class);
+ return $self;
+}
+
+sub new_with_params ($$)
+{
+ my ($type, $params) = @_;
+ my $self = Gir::Api::GlibSignal::new ($type);
+
+ $self->set_a_action($params->{'action'});
+ $self->set_a_deprecated($params->{'deprecated'});
+ $self->set_a_deprecated_version($params->{'deprecated-version'});
+ $self->set_a_detailed($params->{'detailed'});
+ $self->set_a_introspectable($params->{'introspectable'});
+ $self->set_a_name($params->{'name'});
+ $self->set_a_no_hooks($params->{'no-hooks'});
+ $self->set_a_no_recurse($params->{'no-recurse'});
+ $self->set_a_version($params->{'version'});
+ $self->set_a_when($params->{'when'});
+
+ return $self;
+}
+
+sub get_g_attribute_by_name ($$)
+{
+ my ($self, $name) = @_;
+
+ return $self->_get_group_member_by_name ('group_attribute', $name);
+}
+
+sub get_g_doc_by_name ($$)
+{
+ my ($self, $name) = @_;
+
+ return $self->_get_group_member_by_name ('group_doc', $name);
+}
+
+sub get_g_parameters_by_name ($$)
+{
+ my ($self, $name) = @_;
+
+ return $self->_get_group_member_by_name ('group_parameters', $name);
+}
+
+sub get_g_return_value_by_name ($$)
+{
+ my ($self, $name) = @_;
+
+ return $self->_get_group_member_by_name ('group_return_value', $name);
+}
+
+
+sub get_g_attribute_by_index ($$)
+{
+ my ($self, $index) = @_;
+
+ return $self->_get_group_member_by_index ('group_attribute', $index);
+}
+
+sub get_g_doc_by_index ($$)
+{
+ my ($self, $index) = @_;
+
+ return $self->_get_group_member_by_index ('group_doc', $index);
+}
+
+sub get_g_parameters_by_index ($$)
+{
+ my ($self, $index) = @_;
+
+ return $self->_get_group_member_by_index ('group_parameters', $index);
+}
+
+sub get_g_return_value_by_index ($$)
+{
+ my ($self, $index) = @_;
+
+ return $self->_get_group_member_by_index ('group_return_value', $index);
+}
+
+
+sub get_g_attribute_count ($)
+{
+ my $self = shift;
+
+ return $self->_get_group_member_count ('group_attribute');
+}
+
+sub get_g_doc_count ($)
+{
+ my $self = shift;
+
+ return $self->_get_group_member_count ('group_doc');
+}
+
+sub get_g_parameters_count ($)
+{
+ my $self = shift;
+
+ return $self->_get_group_member_count ('group_parameters');
+}
+
+sub get_g_return_value_count ($)
+{
+ my $self = shift;
+
+ return $self->_get_group_member_count ('group_return_value');
+}
+
+
+sub add_g_attribute ($$$)
+{
+ my ($self, $member_name, $member) = @_;
+
+ $self->_add_member_to_group ('group_attribute', $member_name, $member);
+}
+
+sub add_g_doc ($$$)
+{
+ my ($self, $member_name, $member) = @_;
+
+ $self->_add_member_to_group ('group_doc', $member_name, $member);
+}
+
+sub add_g_parameters ($$$)
+{
+ my ($self, $member_name, $member) = @_;
+
+ $self->_add_member_to_group ('group_parameters', $member_name, $member);
+}
+
+sub add_g_return_value ($$$)
+{
+ my ($self, $member_name, $member) = @_;
+
+ $self->_add_member_to_group ('group_return_value', $member_name, $member);
+}
+
+
+sub get_a_action ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_action');
+}
+
+sub get_a_deprecated ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_deprecated');
+}
+
+sub get_a_deprecated_version ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_deprecated_version');
+}
+
+sub get_a_detailed ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_detailed');
+}
+
+sub get_a_introspectable ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_introspectable');
+}
+
+sub get_a_name ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_name');
+}
+
+sub get_a_no_hooks ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_no_hooks');
+}
+
+sub get_a_no_recurse ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_no_recurse');
+}
+
+sub get_a_version ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_version');
+}
+
+sub get_a_when ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_when');
+}
+
+
+sub set_a_action ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_action', $value);
+}
+
+sub set_a_deprecated ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_deprecated', $value);
+}
+
+sub set_a_deprecated_version ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_deprecated_version', $value);
+}
+
+sub set_a_detailed ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_detailed', $value);
+}
+
+sub set_a_introspectable ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_introspectable', $value);
+}
+
+sub set_a_name ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_name', $value);
+}
+
+sub set_a_no_hooks ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_no_hooks', $value);
+}
+
+sub set_a_no_recurse ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_no_recurse', $value);
+}
+
+sub set_a_version ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_version', $value);
+}
+
+sub set_a_when ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_when', $value);
+}
+
+
+1; # indicate proper module load.
diff --git a/tools/pm/Gir/Api/Implements.pm b/tools/pm/Gir/Api/Implements.pm
new file mode 100644
index 0000000..f5ff30d
--- /dev/null
+++ b/tools/pm/Gir/Api/Implements.pm
@@ -0,0 +1,81 @@
+## This file was generated by taghandlerwriter.pl script.
+##
+## Copyright 2011 Krzesimir Nowak
+##
+## This program is free software; you can redistribute it and/or modify
+## it under the terms of the GNU General Public License as published by
+## the Free Software Foundation; either version 2 of the License, or
+## (at your option) any later version.
+##
+## This program 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 General Public License for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with this program; if not, write to the Free Software
+## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+##
+
+package Gir::Api::Implements;
+
+use strict;
+use warnings;
+
+use parent qw(Gir::Api::Common::Base);
+
+
+
+sub new ($)
+{
+ my $type = shift;
+ my $class = (ref ($type) or $type or 'Gir::Api::Implements');
+ my $groups =
+ [
+
+ ];
+ my $attributes =
+ [
+ 'attribute_name'
+ ];
+ my $self = $class->SUPER::new ($groups, $attributes);
+
+ bless ($self, $class);
+ return $self;
+}
+
+sub new_with_params ($$)
+{
+ my ($type, $params) = @_;
+ my $self = Gir::Api::Implements::new ($type);
+
+ $self->set_a_name($params->{'name'});
+
+ return $self;
+}
+
+
+
+
+
+
+
+
+
+sub get_a_name ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_name');
+}
+
+
+sub set_a_name ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_name', $value);
+}
+
+
+1; # indicate proper module load.
diff --git a/tools/pm/Gir/Api/Include.pm b/tools/pm/Gir/Api/Include.pm
new file mode 100644
index 0000000..e9181a1
--- /dev/null
+++ b/tools/pm/Gir/Api/Include.pm
@@ -0,0 +1,97 @@
+## This file was generated by taghandlerwriter.pl script.
+##
+## Copyright 2011 Krzesimir Nowak
+##
+## This program is free software; you can redistribute it and/or modify
+## it under the terms of the GNU General Public License as published by
+## the Free Software Foundation; either version 2 of the License, or
+## (at your option) any later version.
+##
+## This program 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 General Public License for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with this program; if not, write to the Free Software
+## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+##
+
+package Gir::Api::Include;
+
+use strict;
+use warnings;
+
+use parent qw(Gir::Api::Common::Base);
+
+
+
+sub new ($)
+{
+ my $type = shift;
+ my $class = (ref ($type) or $type or 'Gir::Api::Include');
+ my $groups =
+ [
+
+ ];
+ my $attributes =
+ [
+ 'attribute_name',
+ 'attribute_version'
+ ];
+ my $self = $class->SUPER::new ($groups, $attributes);
+
+ bless ($self, $class);
+ return $self;
+}
+
+sub new_with_params ($$)
+{
+ my ($type, $params) = @_;
+ my $self = Gir::Api::Include::new ($type);
+
+ $self->set_a_name($params->{'name'});
+ $self->set_a_version($params->{'version'});
+
+ return $self;
+}
+
+
+
+
+
+
+
+
+
+sub get_a_name ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_name');
+}
+
+sub get_a_version ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_version');
+}
+
+
+sub set_a_name ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_name', $value);
+}
+
+sub set_a_version ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_version', $value);
+}
+
+
+1; # indicate proper module load.
diff --git a/tools/pm/Gir/Api/Interface.pm b/tools/pm/Gir/Api/Interface.pm
new file mode 100644
index 0000000..2e5e86e
--- /dev/null
+++ b/tools/pm/Gir/Api/Interface.pm
@@ -0,0 +1,549 @@
+## This file was generated by taghandlerwriter.pl script.
+##
+## Copyright 2011 Krzesimir Nowak
+##
+## This program is free software; you can redistribute it and/or modify
+## it under the terms of the GNU General Public License as published by
+## the Free Software Foundation; either version 2 of the License, or
+## (at your option) any later version.
+##
+## This program 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 General Public License for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with this program; if not, write to the Free Software
+## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+##
+
+package Gir::Api::Interface;
+
+use strict;
+use warnings;
+
+use parent qw(Gir::Api::Common::Base);
+
+use Gir::Api::Attribute;
+use Gir::Api::Doc;
+use Gir::Api::Field;
+use Gir::Api::Function;
+use Gir::Api::GlibSignal;
+use Gir::Api::Method;
+use Gir::Api::Prerequisite;
+use Gir::Api::Property;
+use Gir::Api::Record;
+use Gir::Api::Union;
+use Gir::Api::VirtualMethod;
+
+sub new ($)
+{
+ my $type = shift;
+ my $class = (ref ($type) or $type or 'Gir::Api::Interface');
+ my $groups =
+ [
+ 'group_attribute',
+ 'group_doc',
+ 'group_field',
+ 'group_function',
+ 'group_glib_signal',
+ 'group_method',
+ 'group_prerequisite',
+ 'group_property',
+ 'group_record',
+ 'group_union',
+ 'group_virtual_method'
+ ];
+ my $attributes =
+ [
+ 'attribute_c_symbol_prefix',
+ 'attribute_c_type',
+ 'attribute_deprecated',
+ 'attribute_deprecated_version',
+ 'attribute_glib_get_type',
+ 'attribute_glib_type_name',
+ 'attribute_glib_type_struct',
+ 'attribute_introspectable',
+ 'attribute_name',
+ 'attribute_version'
+ ];
+ my $self = $class->SUPER::new ($groups, $attributes);
+
+ bless ($self, $class);
+ return $self;
+}
+
+sub new_with_params ($$)
+{
+ my ($type, $params) = @_;
+ my $self = Gir::Api::Interface::new ($type);
+
+ $self->set_a_c_symbol_prefix($params->{'c:symbol-prefix'});
+ $self->set_a_c_type($params->{'c:type'});
+ $self->set_a_deprecated($params->{'deprecated'});
+ $self->set_a_deprecated_version($params->{'deprecated-version'});
+ $self->set_a_glib_get_type($params->{'glib:get-type'});
+ $self->set_a_glib_type_name($params->{'glib:type-name'});
+ $self->set_a_glib_type_struct($params->{'glib:type-struct'});
+ $self->set_a_introspectable($params->{'introspectable'});
+ $self->set_a_name($params->{'name'});
+ $self->set_a_version($params->{'version'});
+
+ return $self;
+}
+
+sub get_g_attribute_by_name ($$)
+{
+ my ($self, $name) = @_;
+
+ return $self->_get_group_member_by_name ('group_attribute', $name);
+}
+
+sub get_g_doc_by_name ($$)
+{
+ my ($self, $name) = @_;
+
+ return $self->_get_group_member_by_name ('group_doc', $name);
+}
+
+sub get_g_field_by_name ($$)
+{
+ my ($self, $name) = @_;
+
+ return $self->_get_group_member_by_name ('group_field', $name);
+}
+
+sub get_g_function_by_name ($$)
+{
+ my ($self, $name) = @_;
+
+ return $self->_get_group_member_by_name ('group_function', $name);
+}
+
+sub get_g_glib_signal_by_name ($$)
+{
+ my ($self, $name) = @_;
+
+ return $self->_get_group_member_by_name ('group_glib_signal', $name);
+}
+
+sub get_g_method_by_name ($$)
+{
+ my ($self, $name) = @_;
+
+ return $self->_get_group_member_by_name ('group_method', $name);
+}
+
+sub get_g_prerequisite_by_name ($$)
+{
+ my ($self, $name) = @_;
+
+ return $self->_get_group_member_by_name ('group_prerequisite', $name);
+}
+
+sub get_g_property_by_name ($$)
+{
+ my ($self, $name) = @_;
+
+ return $self->_get_group_member_by_name ('group_property', $name);
+}
+
+sub get_g_record_by_name ($$)
+{
+ my ($self, $name) = @_;
+
+ return $self->_get_group_member_by_name ('group_record', $name);
+}
+
+sub get_g_union_by_name ($$)
+{
+ my ($self, $name) = @_;
+
+ return $self->_get_group_member_by_name ('group_union', $name);
+}
+
+sub get_g_virtual_method_by_name ($$)
+{
+ my ($self, $name) = @_;
+
+ return $self->_get_group_member_by_name ('group_virtual_method', $name);
+}
+
+
+sub get_g_attribute_by_index ($$)
+{
+ my ($self, $index) = @_;
+
+ return $self->_get_group_member_by_index ('group_attribute', $index);
+}
+
+sub get_g_doc_by_index ($$)
+{
+ my ($self, $index) = @_;
+
+ return $self->_get_group_member_by_index ('group_doc', $index);
+}
+
+sub get_g_field_by_index ($$)
+{
+ my ($self, $index) = @_;
+
+ return $self->_get_group_member_by_index ('group_field', $index);
+}
+
+sub get_g_function_by_index ($$)
+{
+ my ($self, $index) = @_;
+
+ return $self->_get_group_member_by_index ('group_function', $index);
+}
+
+sub get_g_glib_signal_by_index ($$)
+{
+ my ($self, $index) = @_;
+
+ return $self->_get_group_member_by_index ('group_glib_signal', $index);
+}
+
+sub get_g_method_by_index ($$)
+{
+ my ($self, $index) = @_;
+
+ return $self->_get_group_member_by_index ('group_method', $index);
+}
+
+sub get_g_prerequisite_by_index ($$)
+{
+ my ($self, $index) = @_;
+
+ return $self->_get_group_member_by_index ('group_prerequisite', $index);
+}
+
+sub get_g_property_by_index ($$)
+{
+ my ($self, $index) = @_;
+
+ return $self->_get_group_member_by_index ('group_property', $index);
+}
+
+sub get_g_record_by_index ($$)
+{
+ my ($self, $index) = @_;
+
+ return $self->_get_group_member_by_index ('group_record', $index);
+}
+
+sub get_g_union_by_index ($$)
+{
+ my ($self, $index) = @_;
+
+ return $self->_get_group_member_by_index ('group_union', $index);
+}
+
+sub get_g_virtual_method_by_index ($$)
+{
+ my ($self, $index) = @_;
+
+ return $self->_get_group_member_by_index ('group_virtual_method', $index);
+}
+
+
+sub get_g_attribute_count ($)
+{
+ my $self = shift;
+
+ return $self->_get_group_member_count ('group_attribute');
+}
+
+sub get_g_doc_count ($)
+{
+ my $self = shift;
+
+ return $self->_get_group_member_count ('group_doc');
+}
+
+sub get_g_field_count ($)
+{
+ my $self = shift;
+
+ return $self->_get_group_member_count ('group_field');
+}
+
+sub get_g_function_count ($)
+{
+ my $self = shift;
+
+ return $self->_get_group_member_count ('group_function');
+}
+
+sub get_g_glib_signal_count ($)
+{
+ my $self = shift;
+
+ return $self->_get_group_member_count ('group_glib_signal');
+}
+
+sub get_g_method_count ($)
+{
+ my $self = shift;
+
+ return $self->_get_group_member_count ('group_method');
+}
+
+sub get_g_prerequisite_count ($)
+{
+ my $self = shift;
+
+ return $self->_get_group_member_count ('group_prerequisite');
+}
+
+sub get_g_property_count ($)
+{
+ my $self = shift;
+
+ return $self->_get_group_member_count ('group_property');
+}
+
+sub get_g_record_count ($)
+{
+ my $self = shift;
+
+ return $self->_get_group_member_count ('group_record');
+}
+
+sub get_g_union_count ($)
+{
+ my $self = shift;
+
+ return $self->_get_group_member_count ('group_union');
+}
+
+sub get_g_virtual_method_count ($)
+{
+ my $self = shift;
+
+ return $self->_get_group_member_count ('group_virtual_method');
+}
+
+
+sub add_g_attribute ($$$)
+{
+ my ($self, $member_name, $member) = @_;
+
+ $self->_add_member_to_group ('group_attribute', $member_name, $member);
+}
+
+sub add_g_doc ($$$)
+{
+ my ($self, $member_name, $member) = @_;
+
+ $self->_add_member_to_group ('group_doc', $member_name, $member);
+}
+
+sub add_g_field ($$$)
+{
+ my ($self, $member_name, $member) = @_;
+
+ $self->_add_member_to_group ('group_field', $member_name, $member);
+}
+
+sub add_g_function ($$$)
+{
+ my ($self, $member_name, $member) = @_;
+
+ $self->_add_member_to_group ('group_function', $member_name, $member);
+}
+
+sub add_g_glib_signal ($$$)
+{
+ my ($self, $member_name, $member) = @_;
+
+ $self->_add_member_to_group ('group_glib_signal', $member_name, $member);
+}
+
+sub add_g_method ($$$)
+{
+ my ($self, $member_name, $member) = @_;
+
+ $self->_add_member_to_group ('group_method', $member_name, $member);
+}
+
+sub add_g_prerequisite ($$$)
+{
+ my ($self, $member_name, $member) = @_;
+
+ $self->_add_member_to_group ('group_prerequisite', $member_name, $member);
+}
+
+sub add_g_property ($$$)
+{
+ my ($self, $member_name, $member) = @_;
+
+ $self->_add_member_to_group ('group_property', $member_name, $member);
+}
+
+sub add_g_record ($$$)
+{
+ my ($self, $member_name, $member) = @_;
+
+ $self->_add_member_to_group ('group_record', $member_name, $member);
+}
+
+sub add_g_union ($$$)
+{
+ my ($self, $member_name, $member) = @_;
+
+ $self->_add_member_to_group ('group_union', $member_name, $member);
+}
+
+sub add_g_virtual_method ($$$)
+{
+ my ($self, $member_name, $member) = @_;
+
+ $self->_add_member_to_group ('group_virtual_method', $member_name, $member);
+}
+
+
+sub get_a_c_symbol_prefix ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_c_symbol_prefix');
+}
+
+sub get_a_c_type ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_c_type');
+}
+
+sub get_a_deprecated ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_deprecated');
+}
+
+sub get_a_deprecated_version ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_deprecated_version');
+}
+
+sub get_a_glib_get_type ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_glib_get_type');
+}
+
+sub get_a_glib_type_name ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_glib_type_name');
+}
+
+sub get_a_glib_type_struct ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_glib_type_struct');
+}
+
+sub get_a_introspectable ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_introspectable');
+}
+
+sub get_a_name ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_name');
+}
+
+sub get_a_version ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_version');
+}
+
+
+sub set_a_c_symbol_prefix ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_c_symbol_prefix', $value);
+}
+
+sub set_a_c_type ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_c_type', $value);
+}
+
+sub set_a_deprecated ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_deprecated', $value);
+}
+
+sub set_a_deprecated_version ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_deprecated_version', $value);
+}
+
+sub set_a_glib_get_type ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_glib_get_type', $value);
+}
+
+sub set_a_glib_type_name ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_glib_type_name', $value);
+}
+
+sub set_a_glib_type_struct ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_glib_type_struct', $value);
+}
+
+sub set_a_introspectable ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_introspectable', $value);
+}
+
+sub set_a_name ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_name', $value);
+}
+
+sub set_a_version ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_version', $value);
+}
+
+
+1; # indicate proper module load.
diff --git a/tools/pm/Gir/Api/Member.pm b/tools/pm/Gir/Api/Member.pm
new file mode 100644
index 0000000..3810925
--- /dev/null
+++ b/tools/pm/Gir/Api/Member.pm
@@ -0,0 +1,129 @@
+## This file was generated by taghandlerwriter.pl script.
+##
+## Copyright 2011 Krzesimir Nowak
+##
+## This program is free software; you can redistribute it and/or modify
+## it under the terms of the GNU General Public License as published by
+## the Free Software Foundation; either version 2 of the License, or
+## (at your option) any later version.
+##
+## This program 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 General Public License for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with this program; if not, write to the Free Software
+## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+##
+
+package Gir::Api::Member;
+
+use strict;
+use warnings;
+
+use parent qw(Gir::Api::Common::Base);
+
+
+
+sub new ($)
+{
+ my $type = shift;
+ my $class = (ref ($type) or $type or 'Gir::Api::Member');
+ my $groups =
+ [
+
+ ];
+ my $attributes =
+ [
+ 'attribute_c_identifier',
+ 'attribute_glib_nick',
+ 'attribute_name',
+ 'attribute_value'
+ ];
+ my $self = $class->SUPER::new ($groups, $attributes);
+
+ bless ($self, $class);
+ return $self;
+}
+
+sub new_with_params ($$)
+{
+ my ($type, $params) = @_;
+ my $self = Gir::Api::Member::new ($type);
+
+ $self->set_a_c_identifier($params->{'c:identifier'});
+ $self->set_a_glib_nick($params->{'glib:nick'});
+ $self->set_a_name($params->{'name'});
+ $self->set_a_value($params->{'value'});
+
+ return $self;
+}
+
+
+
+
+
+
+
+
+
+sub get_a_c_identifier ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_c_identifier');
+}
+
+sub get_a_glib_nick ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_glib_nick');
+}
+
+sub get_a_name ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_name');
+}
+
+sub get_a_value ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_value');
+}
+
+
+sub set_a_c_identifier ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_c_identifier', $value);
+}
+
+sub set_a_glib_nick ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_glib_nick', $value);
+}
+
+sub set_a_name ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_name', $value);
+}
+
+sub set_a_value ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_value', $value);
+}
+
+
+1; # indicate proper module load.
diff --git a/tools/pm/Gir/Api/Method.pm b/tools/pm/Gir/Api/Method.pm
new file mode 100644
index 0000000..4130a02
--- /dev/null
+++ b/tools/pm/Gir/Api/Method.pm
@@ -0,0 +1,339 @@
+## This file was generated by taghandlerwriter.pl script.
+##
+## Copyright 2011 Krzesimir Nowak
+##
+## This program is free software; you can redistribute it and/or modify
+## it under the terms of the GNU General Public License as published by
+## the Free Software Foundation; either version 2 of the License, or
+## (at your option) any later version.
+##
+## This program 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 General Public License for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with this program; if not, write to the Free Software
+## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+##
+
+package Gir::Api::Method;
+
+use strict;
+use warnings;
+
+use parent qw(Gir::Api::Common::Base);
+
+use Gir::Api::Attribute;
+use Gir::Api::Doc;
+use Gir::Api::Parameters;
+use Gir::Api::ReturnValue;
+
+sub new ($)
+{
+ my $type = shift;
+ my $class = (ref ($type) or $type or 'Gir::Api::Method');
+ my $groups =
+ [
+ 'group_attribute',
+ 'group_doc',
+ 'group_parameters',
+ 'group_return_value'
+ ];
+ my $attributes =
+ [
+ 'attribute_c_identifier',
+ 'attribute_deprecated',
+ 'attribute_deprecated_version',
+ 'attribute_introspectable',
+ 'attribute_moved_to',
+ 'attribute_name',
+ 'attribute_shadowed_by',
+ 'attribute_shadows',
+ 'attribute_throws',
+ 'attribute_version'
+ ];
+ my $self = $class->SUPER::new ($groups, $attributes);
+
+ bless ($self, $class);
+ return $self;
+}
+
+sub new_with_params ($$)
+{
+ my ($type, $params) = @_;
+ my $self = Gir::Api::Method::new ($type);
+
+ $self->set_a_c_identifier($params->{'c:identifier'});
+ $self->set_a_deprecated($params->{'deprecated'});
+ $self->set_a_deprecated_version($params->{'deprecated-version'});
+ $self->set_a_introspectable($params->{'introspectable'});
+ $self->set_a_moved_to($params->{'moved-to'});
+ $self->set_a_name($params->{'name'});
+ $self->set_a_shadowed_by($params->{'shadowed-by'});
+ $self->set_a_shadows($params->{'shadows'});
+ $self->set_a_throws($params->{'throws'});
+ $self->set_a_version($params->{'version'});
+
+ return $self;
+}
+
+sub get_g_attribute_by_name ($$)
+{
+ my ($self, $name) = @_;
+
+ return $self->_get_group_member_by_name ('group_attribute', $name);
+}
+
+sub get_g_doc_by_name ($$)
+{
+ my ($self, $name) = @_;
+
+ return $self->_get_group_member_by_name ('group_doc', $name);
+}
+
+sub get_g_parameters_by_name ($$)
+{
+ my ($self, $name) = @_;
+
+ return $self->_get_group_member_by_name ('group_parameters', $name);
+}
+
+sub get_g_return_value_by_name ($$)
+{
+ my ($self, $name) = @_;
+
+ return $self->_get_group_member_by_name ('group_return_value', $name);
+}
+
+
+sub get_g_attribute_by_index ($$)
+{
+ my ($self, $index) = @_;
+
+ return $self->_get_group_member_by_index ('group_attribute', $index);
+}
+
+sub get_g_doc_by_index ($$)
+{
+ my ($self, $index) = @_;
+
+ return $self->_get_group_member_by_index ('group_doc', $index);
+}
+
+sub get_g_parameters_by_index ($$)
+{
+ my ($self, $index) = @_;
+
+ return $self->_get_group_member_by_index ('group_parameters', $index);
+}
+
+sub get_g_return_value_by_index ($$)
+{
+ my ($self, $index) = @_;
+
+ return $self->_get_group_member_by_index ('group_return_value', $index);
+}
+
+
+sub get_g_attribute_count ($)
+{
+ my $self = shift;
+
+ return $self->_get_group_member_count ('group_attribute');
+}
+
+sub get_g_doc_count ($)
+{
+ my $self = shift;
+
+ return $self->_get_group_member_count ('group_doc');
+}
+
+sub get_g_parameters_count ($)
+{
+ my $self = shift;
+
+ return $self->_get_group_member_count ('group_parameters');
+}
+
+sub get_g_return_value_count ($)
+{
+ my $self = shift;
+
+ return $self->_get_group_member_count ('group_return_value');
+}
+
+
+sub add_g_attribute ($$$)
+{
+ my ($self, $member_name, $member) = @_;
+
+ $self->_add_member_to_group ('group_attribute', $member_name, $member);
+}
+
+sub add_g_doc ($$$)
+{
+ my ($self, $member_name, $member) = @_;
+
+ $self->_add_member_to_group ('group_doc', $member_name, $member);
+}
+
+sub add_g_parameters ($$$)
+{
+ my ($self, $member_name, $member) = @_;
+
+ $self->_add_member_to_group ('group_parameters', $member_name, $member);
+}
+
+sub add_g_return_value ($$$)
+{
+ my ($self, $member_name, $member) = @_;
+
+ $self->_add_member_to_group ('group_return_value', $member_name, $member);
+}
+
+
+sub get_a_c_identifier ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_c_identifier');
+}
+
+sub get_a_deprecated ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_deprecated');
+}
+
+sub get_a_deprecated_version ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_deprecated_version');
+}
+
+sub get_a_introspectable ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_introspectable');
+}
+
+sub get_a_moved_to ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_moved_to');
+}
+
+sub get_a_name ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_name');
+}
+
+sub get_a_shadowed_by ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_shadowed_by');
+}
+
+sub get_a_shadows ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_shadows');
+}
+
+sub get_a_throws ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_throws');
+}
+
+sub get_a_version ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_version');
+}
+
+
+sub set_a_c_identifier ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_c_identifier', $value);
+}
+
+sub set_a_deprecated ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_deprecated', $value);
+}
+
+sub set_a_deprecated_version ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_deprecated_version', $value);
+}
+
+sub set_a_introspectable ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_introspectable', $value);
+}
+
+sub set_a_moved_to ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_moved_to', $value);
+}
+
+sub set_a_name ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_name', $value);
+}
+
+sub set_a_shadowed_by ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_shadowed_by', $value);
+}
+
+sub set_a_shadows ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_shadows', $value);
+}
+
+sub set_a_throws ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_throws', $value);
+}
+
+sub set_a_version ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_version', $value);
+}
+
+
+1; # indicate proper module load.
diff --git a/tools/pm/Gir/Api/Namespace.pm b/tools/pm/Gir/Api/Namespace.pm
new file mode 100644
index 0000000..cedac4d
--- /dev/null
+++ b/tools/pm/Gir/Api/Namespace.pm
@@ -0,0 +1,469 @@
+## This file was generated by taghandlerwriter.pl script.
+##
+## Copyright 2011 Krzesimir Nowak
+##
+## This program is free software; you can redistribute it and/or modify
+## it under the terms of the GNU General Public License as published by
+## the Free Software Foundation; either version 2 of the License, or
+## (at your option) any later version.
+##
+## This program 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 General Public License for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with this program; if not, write to the Free Software
+## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+##
+
+package Gir::Api::Namespace;
+
+use strict;
+use warnings;
+
+use parent qw(Gir::Api::Common::Base);
+
+use Gir::Api::Alias;
+use Gir::Api::Bitfield;
+use Gir::Api::Callback;
+use Gir::Api::Class;
+use Gir::Api::Constant;
+use Gir::Api::Enumeration;
+use Gir::Api::Function;
+use Gir::Api::GlibBoxed;
+use Gir::Api::Interface;
+use Gir::Api::Record;
+use Gir::Api::Union;
+
+sub new ($)
+{
+ my $type = shift;
+ my $class = (ref ($type) or $type or 'Gir::Api::Namespace');
+ my $groups =
+ [
+ 'group_alias',
+ 'group_bitfield',
+ 'group_callback',
+ 'group_class',
+ 'group_constant',
+ 'group_enumeration',
+ 'group_function',
+ 'group_glib_boxed',
+ 'group_interface',
+ 'group_record',
+ 'group_union'
+ ];
+ my $attributes =
+ [
+ 'attribute_c_identifier_prefixes',
+ 'attribute_c_symbol_prefixes',
+ 'attribute_name',
+ 'attribute_shared_library',
+ 'attribute_version'
+ ];
+ my $self = $class->SUPER::new ($groups, $attributes);
+
+ bless ($self, $class);
+ return $self;
+}
+
+sub new_with_params ($$)
+{
+ my ($type, $params) = @_;
+ my $self = Gir::Api::Namespace::new ($type);
+
+ $self->set_a_c_identifier_prefixes($params->{'c:identifier-prefixes'});
+ $self->set_a_c_symbol_prefixes($params->{'c:symbol-prefixes'});
+ $self->set_a_name($params->{'name'});
+ $self->set_a_shared_library($params->{'shared-library'});
+ $self->set_a_version($params->{'version'});
+
+ return $self;
+}
+
+sub get_g_alias_by_name ($$)
+{
+ my ($self, $name) = @_;
+
+ return $self->_get_group_member_by_name ('group_alias', $name);
+}
+
+sub get_g_bitfield_by_name ($$)
+{
+ my ($self, $name) = @_;
+
+ return $self->_get_group_member_by_name ('group_bitfield', $name);
+}
+
+sub get_g_callback_by_name ($$)
+{
+ my ($self, $name) = @_;
+
+ return $self->_get_group_member_by_name ('group_callback', $name);
+}
+
+sub get_g_class_by_name ($$)
+{
+ my ($self, $name) = @_;
+
+ return $self->_get_group_member_by_name ('group_class', $name);
+}
+
+sub get_g_constant_by_name ($$)
+{
+ my ($self, $name) = @_;
+
+ return $self->_get_group_member_by_name ('group_constant', $name);
+}
+
+sub get_g_enumeration_by_name ($$)
+{
+ my ($self, $name) = @_;
+
+ return $self->_get_group_member_by_name ('group_enumeration', $name);
+}
+
+sub get_g_function_by_name ($$)
+{
+ my ($self, $name) = @_;
+
+ return $self->_get_group_member_by_name ('group_function', $name);
+}
+
+sub get_g_glib_boxed_by_name ($$)
+{
+ my ($self, $name) = @_;
+
+ return $self->_get_group_member_by_name ('group_glib_boxed', $name);
+}
+
+sub get_g_interface_by_name ($$)
+{
+ my ($self, $name) = @_;
+
+ return $self->_get_group_member_by_name ('group_interface', $name);
+}
+
+sub get_g_record_by_name ($$)
+{
+ my ($self, $name) = @_;
+
+ return $self->_get_group_member_by_name ('group_record', $name);
+}
+
+sub get_g_union_by_name ($$)
+{
+ my ($self, $name) = @_;
+
+ return $self->_get_group_member_by_name ('group_union', $name);
+}
+
+
+sub get_g_alias_by_index ($$)
+{
+ my ($self, $index) = @_;
+
+ return $self->_get_group_member_by_index ('group_alias', $index);
+}
+
+sub get_g_bitfield_by_index ($$)
+{
+ my ($self, $index) = @_;
+
+ return $self->_get_group_member_by_index ('group_bitfield', $index);
+}
+
+sub get_g_callback_by_index ($$)
+{
+ my ($self, $index) = @_;
+
+ return $self->_get_group_member_by_index ('group_callback', $index);
+}
+
+sub get_g_class_by_index ($$)
+{
+ my ($self, $index) = @_;
+
+ return $self->_get_group_member_by_index ('group_class', $index);
+}
+
+sub get_g_constant_by_index ($$)
+{
+ my ($self, $index) = @_;
+
+ return $self->_get_group_member_by_index ('group_constant', $index);
+}
+
+sub get_g_enumeration_by_index ($$)
+{
+ my ($self, $index) = @_;
+
+ return $self->_get_group_member_by_index ('group_enumeration', $index);
+}
+
+sub get_g_function_by_index ($$)
+{
+ my ($self, $index) = @_;
+
+ return $self->_get_group_member_by_index ('group_function', $index);
+}
+
+sub get_g_glib_boxed_by_index ($$)
+{
+ my ($self, $index) = @_;
+
+ return $self->_get_group_member_by_index ('group_glib_boxed', $index);
+}
+
+sub get_g_interface_by_index ($$)
+{
+ my ($self, $index) = @_;
+
+ return $self->_get_group_member_by_index ('group_interface', $index);
+}
+
+sub get_g_record_by_index ($$)
+{
+ my ($self, $index) = @_;
+
+ return $self->_get_group_member_by_index ('group_record', $index);
+}
+
+sub get_g_union_by_index ($$)
+{
+ my ($self, $index) = @_;
+
+ return $self->_get_group_member_by_index ('group_union', $index);
+}
+
+
+sub get_g_alias_count ($)
+{
+ my $self = shift;
+
+ return $self->_get_group_member_count ('group_alias');
+}
+
+sub get_g_bitfield_count ($)
+{
+ my $self = shift;
+
+ return $self->_get_group_member_count ('group_bitfield');
+}
+
+sub get_g_callback_count ($)
+{
+ my $self = shift;
+
+ return $self->_get_group_member_count ('group_callback');
+}
+
+sub get_g_class_count ($)
+{
+ my $self = shift;
+
+ return $self->_get_group_member_count ('group_class');
+}
+
+sub get_g_constant_count ($)
+{
+ my $self = shift;
+
+ return $self->_get_group_member_count ('group_constant');
+}
+
+sub get_g_enumeration_count ($)
+{
+ my $self = shift;
+
+ return $self->_get_group_member_count ('group_enumeration');
+}
+
+sub get_g_function_count ($)
+{
+ my $self = shift;
+
+ return $self->_get_group_member_count ('group_function');
+}
+
+sub get_g_glib_boxed_count ($)
+{
+ my $self = shift;
+
+ return $self->_get_group_member_count ('group_glib_boxed');
+}
+
+sub get_g_interface_count ($)
+{
+ my $self = shift;
+
+ return $self->_get_group_member_count ('group_interface');
+}
+
+sub get_g_record_count ($)
+{
+ my $self = shift;
+
+ return $self->_get_group_member_count ('group_record');
+}
+
+sub get_g_union_count ($)
+{
+ my $self = shift;
+
+ return $self->_get_group_member_count ('group_union');
+}
+
+
+sub add_g_alias ($$$)
+{
+ my ($self, $member_name, $member) = @_;
+
+ $self->_add_member_to_group ('group_alias', $member_name, $member);
+}
+
+sub add_g_bitfield ($$$)
+{
+ my ($self, $member_name, $member) = @_;
+
+ $self->_add_member_to_group ('group_bitfield', $member_name, $member);
+}
+
+sub add_g_callback ($$$)
+{
+ my ($self, $member_name, $member) = @_;
+
+ $self->_add_member_to_group ('group_callback', $member_name, $member);
+}
+
+sub add_g_class ($$$)
+{
+ my ($self, $member_name, $member) = @_;
+
+ $self->_add_member_to_group ('group_class', $member_name, $member);
+}
+
+sub add_g_constant ($$$)
+{
+ my ($self, $member_name, $member) = @_;
+
+ $self->_add_member_to_group ('group_constant', $member_name, $member);
+}
+
+sub add_g_enumeration ($$$)
+{
+ my ($self, $member_name, $member) = @_;
+
+ $self->_add_member_to_group ('group_enumeration', $member_name, $member);
+}
+
+sub add_g_function ($$$)
+{
+ my ($self, $member_name, $member) = @_;
+
+ $self->_add_member_to_group ('group_function', $member_name, $member);
+}
+
+sub add_g_glib_boxed ($$$)
+{
+ my ($self, $member_name, $member) = @_;
+
+ $self->_add_member_to_group ('group_glib_boxed', $member_name, $member);
+}
+
+sub add_g_interface ($$$)
+{
+ my ($self, $member_name, $member) = @_;
+
+ $self->_add_member_to_group ('group_interface', $member_name, $member);
+}
+
+sub add_g_record ($$$)
+{
+ my ($self, $member_name, $member) = @_;
+
+ $self->_add_member_to_group ('group_record', $member_name, $member);
+}
+
+sub add_g_union ($$$)
+{
+ my ($self, $member_name, $member) = @_;
+
+ $self->_add_member_to_group ('group_union', $member_name, $member);
+}
+
+
+sub get_a_c_identifier_prefixes ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_c_identifier_prefixes');
+}
+
+sub get_a_c_symbol_prefixes ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_c_symbol_prefixes');
+}
+
+sub get_a_name ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_name');
+}
+
+sub get_a_shared_library ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_shared_library');
+}
+
+sub get_a_version ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_version');
+}
+
+
+sub set_a_c_identifier_prefixes ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_c_identifier_prefixes', $value);
+}
+
+sub set_a_c_symbol_prefixes ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_c_symbol_prefixes', $value);
+}
+
+sub set_a_name ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_name', $value);
+}
+
+sub set_a_shared_library ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_shared_library', $value);
+}
+
+sub set_a_version ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_version', $value);
+}
+
+
+1; # indicate proper module load.
diff --git a/tools/pm/Gir/Api/Package.pm b/tools/pm/Gir/Api/Package.pm
new file mode 100644
index 0000000..d50550d
--- /dev/null
+++ b/tools/pm/Gir/Api/Package.pm
@@ -0,0 +1,81 @@
+## This file was generated by taghandlerwriter.pl script.
+##
+## Copyright 2011 Krzesimir Nowak
+##
+## This program is free software; you can redistribute it and/or modify
+## it under the terms of the GNU General Public License as published by
+## the Free Software Foundation; either version 2 of the License, or
+## (at your option) any later version.
+##
+## This program 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 General Public License for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with this program; if not, write to the Free Software
+## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+##
+
+package Gir::Api::Package;
+
+use strict;
+use warnings;
+
+use parent qw(Gir::Api::Common::Base);
+
+
+
+sub new ($)
+{
+ my $type = shift;
+ my $class = (ref ($type) or $type or 'Gir::Api::Package');
+ my $groups =
+ [
+
+ ];
+ my $attributes =
+ [
+ 'attribute_name'
+ ];
+ my $self = $class->SUPER::new ($groups, $attributes);
+
+ bless ($self, $class);
+ return $self;
+}
+
+sub new_with_params ($$)
+{
+ my ($type, $params) = @_;
+ my $self = Gir::Api::Package::new ($type);
+
+ $self->set_a_name($params->{'name'});
+
+ return $self;
+}
+
+
+
+
+
+
+
+
+
+sub get_a_name ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_name');
+}
+
+
+sub set_a_name ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_name', $value);
+}
+
+
+1; # indicate proper module load.
diff --git a/tools/pm/Gir/Api/Parameter.pm b/tools/pm/Gir/Api/Parameter.pm
new file mode 100644
index 0000000..edc72da
--- /dev/null
+++ b/tools/pm/Gir/Api/Parameter.pm
@@ -0,0 +1,353 @@
+## This file was generated by taghandlerwriter.pl script.
+##
+## Copyright 2011 Krzesimir Nowak
+##
+## This program is free software; you can redistribute it and/or modify
+## it under the terms of the GNU General Public License as published by
+## the Free Software Foundation; either version 2 of the License, or
+## (at your option) any later version.
+##
+## This program 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 General Public License for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with this program; if not, write to the Free Software
+## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+##
+
+package Gir::Api::Parameter;
+
+use strict;
+use warnings;
+
+use parent qw(Gir::Api::Common::Base);
+
+use Gir::Api::Array;
+use Gir::Api::Attribute;
+use Gir::Api::Doc;
+use Gir::Api::Type;
+use Gir::Api::Varargs;
+
+sub new ($)
+{
+ my $type = shift;
+ my $class = (ref ($type) or $type or 'Gir::Api::Parameter');
+ my $groups =
+ [
+ 'group_array',
+ 'group_attribute',
+ 'group_doc',
+ 'group_type',
+ 'group_varargs'
+ ];
+ my $attributes =
+ [
+ 'attribute_allow_none',
+ 'attribute_caller_allocates',
+ 'attribute_closure',
+ 'attribute_destroy',
+ 'attribute_direction',
+ 'attribute_name',
+ 'attribute_scope',
+ 'attribute_skip',
+ 'attribute_transfer_ownership'
+ ];
+ my $self = $class->SUPER::new ($groups, $attributes);
+
+ bless ($self, $class);
+ return $self;
+}
+
+sub new_with_params ($$)
+{
+ my ($type, $params) = @_;
+ my $self = Gir::Api::Parameter::new ($type);
+
+ $self->set_a_allow_none($params->{'allow-none'});
+ $self->set_a_caller_allocates($params->{'caller-allocates'});
+ $self->set_a_closure($params->{'closure'});
+ $self->set_a_destroy($params->{'destroy'});
+ $self->set_a_direction($params->{'direction'});
+ $self->set_a_name($params->{'name'});
+ $self->set_a_scope($params->{'scope'});
+ $self->set_a_skip($params->{'skip'});
+ $self->set_a_transfer_ownership($params->{'transfer-ownership'});
+
+ return $self;
+}
+
+sub get_g_array_by_name ($$)
+{
+ my ($self, $name) = @_;
+
+ return $self->_get_group_member_by_name ('group_array', $name);
+}
+
+sub get_g_attribute_by_name ($$)
+{
+ my ($self, $name) = @_;
+
+ return $self->_get_group_member_by_name ('group_attribute', $name);
+}
+
+sub get_g_doc_by_name ($$)
+{
+ my ($self, $name) = @_;
+
+ return $self->_get_group_member_by_name ('group_doc', $name);
+}
+
+sub get_g_type_by_name ($$)
+{
+ my ($self, $name) = @_;
+
+ return $self->_get_group_member_by_name ('group_type', $name);
+}
+
+sub get_g_varargs_by_name ($$)
+{
+ my ($self, $name) = @_;
+
+ return $self->_get_group_member_by_name ('group_varargs', $name);
+}
+
+
+sub get_g_array_by_index ($$)
+{
+ my ($self, $index) = @_;
+
+ return $self->_get_group_member_by_index ('group_array', $index);
+}
+
+sub get_g_attribute_by_index ($$)
+{
+ my ($self, $index) = @_;
+
+ return $self->_get_group_member_by_index ('group_attribute', $index);
+}
+
+sub get_g_doc_by_index ($$)
+{
+ my ($self, $index) = @_;
+
+ return $self->_get_group_member_by_index ('group_doc', $index);
+}
+
+sub get_g_type_by_index ($$)
+{
+ my ($self, $index) = @_;
+
+ return $self->_get_group_member_by_index ('group_type', $index);
+}
+
+sub get_g_varargs_by_index ($$)
+{
+ my ($self, $index) = @_;
+
+ return $self->_get_group_member_by_index ('group_varargs', $index);
+}
+
+
+sub get_g_array_count ($)
+{
+ my $self = shift;
+
+ return $self->_get_group_member_count ('group_array');
+}
+
+sub get_g_attribute_count ($)
+{
+ my $self = shift;
+
+ return $self->_get_group_member_count ('group_attribute');
+}
+
+sub get_g_doc_count ($)
+{
+ my $self = shift;
+
+ return $self->_get_group_member_count ('group_doc');
+}
+
+sub get_g_type_count ($)
+{
+ my $self = shift;
+
+ return $self->_get_group_member_count ('group_type');
+}
+
+sub get_g_varargs_count ($)
+{
+ my $self = shift;
+
+ return $self->_get_group_member_count ('group_varargs');
+}
+
+
+sub add_g_array ($$$)
+{
+ my ($self, $member_name, $member) = @_;
+
+ $self->_add_member_to_group ('group_array', $member_name, $member);
+}
+
+sub add_g_attribute ($$$)
+{
+ my ($self, $member_name, $member) = @_;
+
+ $self->_add_member_to_group ('group_attribute', $member_name, $member);
+}
+
+sub add_g_doc ($$$)
+{
+ my ($self, $member_name, $member) = @_;
+
+ $self->_add_member_to_group ('group_doc', $member_name, $member);
+}
+
+sub add_g_type ($$$)
+{
+ my ($self, $member_name, $member) = @_;
+
+ $self->_add_member_to_group ('group_type', $member_name, $member);
+}
+
+sub add_g_varargs ($$$)
+{
+ my ($self, $member_name, $member) = @_;
+
+ $self->_add_member_to_group ('group_varargs', $member_name, $member);
+}
+
+
+sub get_a_allow_none ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_allow_none');
+}
+
+sub get_a_caller_allocates ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_caller_allocates');
+}
+
+sub get_a_closure ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_closure');
+}
+
+sub get_a_destroy ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_destroy');
+}
+
+sub get_a_direction ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_direction');
+}
+
+sub get_a_name ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_name');
+}
+
+sub get_a_scope ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_scope');
+}
+
+sub get_a_skip ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_skip');
+}
+
+sub get_a_transfer_ownership ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_transfer_ownership');
+}
+
+
+sub set_a_allow_none ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_allow_none', $value);
+}
+
+sub set_a_caller_allocates ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_caller_allocates', $value);
+}
+
+sub set_a_closure ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_closure', $value);
+}
+
+sub set_a_destroy ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_destroy', $value);
+}
+
+sub set_a_direction ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_direction', $value);
+}
+
+sub set_a_name ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_name', $value);
+}
+
+sub set_a_scope ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_scope', $value);
+}
+
+sub set_a_skip ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_skip', $value);
+}
+
+sub set_a_transfer_ownership ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_transfer_ownership', $value);
+}
+
+
+1; # indicate proper module load.
diff --git a/tools/pm/Gir/Api/Parameters.pm b/tools/pm/Gir/Api/Parameters.pm
new file mode 100644
index 0000000..344059d
--- /dev/null
+++ b/tools/pm/Gir/Api/Parameters.pm
@@ -0,0 +1,93 @@
+## This file was generated by taghandlerwriter.pl script.
+##
+## Copyright 2011 Krzesimir Nowak
+##
+## This program is free software; you can redistribute it and/or modify
+## it under the terms of the GNU General Public License as published by
+## the Free Software Foundation; either version 2 of the License, or
+## (at your option) any later version.
+##
+## This program 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 General Public License for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with this program; if not, write to the Free Software
+## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+##
+
+package Gir::Api::Parameters;
+
+use strict;
+use warnings;
+
+use parent qw(Gir::Api::Common::Base);
+
+use Gir::Api::Parameter;
+
+sub new ($)
+{
+ my $type = shift;
+ my $class = (ref ($type) or $type or 'Gir::Api::Parameters');
+ my $groups =
+ [
+ 'group_parameter'
+ ];
+ my $attributes =
+ [
+
+ ];
+ my $self = $class->SUPER::new ($groups, $attributes);
+
+ bless ($self, $class);
+ return $self;
+}
+
+sub new_with_params ($$)
+{
+ my ($type, $params) = @_;
+ my $self = Gir::Api::Parameters::new ($type);
+
+
+
+ return $self;
+}
+
+sub get_g_parameter_by_name ($$)
+{
+ my ($self, $name) = @_;
+
+ return $self->_get_group_member_by_name ('group_parameter', $name);
+}
+
+
+sub get_g_parameter_by_index ($$)
+{
+ my ($self, $index) = @_;
+
+ return $self->_get_group_member_by_index ('group_parameter', $index);
+}
+
+
+sub get_g_parameter_count ($)
+{
+ my $self = shift;
+
+ return $self->_get_group_member_count ('group_parameter');
+}
+
+
+sub add_g_parameter ($$$)
+{
+ my ($self, $member_name, $member) = @_;
+
+ $self->_add_member_to_group ('group_parameter', $member_name, $member);
+}
+
+
+
+
+
+
+1; # indicate proper module load.
diff --git a/tools/pm/Gir/Api/Prerequisite.pm b/tools/pm/Gir/Api/Prerequisite.pm
new file mode 100644
index 0000000..c784b97
--- /dev/null
+++ b/tools/pm/Gir/Api/Prerequisite.pm
@@ -0,0 +1,81 @@
+## This file was generated by taghandlerwriter.pl script.
+##
+## Copyright 2011 Krzesimir Nowak
+##
+## This program is free software; you can redistribute it and/or modify
+## it under the terms of the GNU General Public License as published by
+## the Free Software Foundation; either version 2 of the License, or
+## (at your option) any later version.
+##
+## This program 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 General Public License for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with this program; if not, write to the Free Software
+## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+##
+
+package Gir::Api::Prerequisite;
+
+use strict;
+use warnings;
+
+use parent qw(Gir::Api::Common::Base);
+
+
+
+sub new ($)
+{
+ my $type = shift;
+ my $class = (ref ($type) or $type or 'Gir::Api::Prerequisite');
+ my $groups =
+ [
+
+ ];
+ my $attributes =
+ [
+ 'attribute_name'
+ ];
+ my $self = $class->SUPER::new ($groups, $attributes);
+
+ bless ($self, $class);
+ return $self;
+}
+
+sub new_with_params ($$)
+{
+ my ($type, $params) = @_;
+ my $self = Gir::Api::Prerequisite::new ($type);
+
+ $self->set_a_name($params->{'name'});
+
+ return $self;
+}
+
+
+
+
+
+
+
+
+
+sub get_a_name ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_name');
+}
+
+
+sub set_a_name ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_name', $value);
+}
+
+
+1; # indicate proper module load.
diff --git a/tools/pm/Gir/Api/Property.pm b/tools/pm/Gir/Api/Property.pm
new file mode 100644
index 0000000..0085534
--- /dev/null
+++ b/tools/pm/Gir/Api/Property.pm
@@ -0,0 +1,369 @@
+## This file was generated by taghandlerwriter.pl script.
+##
+## Copyright 2011 Krzesimir Nowak
+##
+## This program is free software; you can redistribute it and/or modify
+## it under the terms of the GNU General Public License as published by
+## the Free Software Foundation; either version 2 of the License, or
+## (at your option) any later version.
+##
+## This program 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 General Public License for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with this program; if not, write to the Free Software
+## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+##
+
+package Gir::Api::Property;
+
+use strict;
+use warnings;
+
+use parent qw(Gir::Api::Common::Base);
+
+use Gir::Api::Array;
+use Gir::Api::Attribute;
+use Gir::Api::Doc;
+use Gir::Api::Type;
+use Gir::Api::Varargs;
+
+sub new ($)
+{
+ my $type = shift;
+ my $class = (ref ($type) or $type or 'Gir::Api::Property');
+ my $groups =
+ [
+ 'group_array',
+ 'group_attribute',
+ 'group_doc',
+ 'group_type',
+ 'group_varargs'
+ ];
+ my $attributes =
+ [
+ 'attribute_construct',
+ 'attribute_construct_only',
+ 'attribute_deprecated',
+ 'attribute_deprecated_version',
+ 'attribute_introspectable',
+ 'attribute_name',
+ 'attribute_readable',
+ 'attribute_transfer_ownership',
+ 'attribute_version',
+ 'attribute_writable'
+ ];
+ my $self = $class->SUPER::new ($groups, $attributes);
+
+ bless ($self, $class);
+ return $self;
+}
+
+sub new_with_params ($$)
+{
+ my ($type, $params) = @_;
+ my $self = Gir::Api::Property::new ($type);
+
+ $self->set_a_construct($params->{'construct'});
+ $self->set_a_construct_only($params->{'construct-only'});
+ $self->set_a_deprecated($params->{'deprecated'});
+ $self->set_a_deprecated_version($params->{'deprecated-version'});
+ $self->set_a_introspectable($params->{'introspectable'});
+ $self->set_a_name($params->{'name'});
+ $self->set_a_readable($params->{'readable'});
+ $self->set_a_transfer_ownership($params->{'transfer-ownership'});
+ $self->set_a_version($params->{'version'});
+ $self->set_a_writable($params->{'writable'});
+
+ return $self;
+}
+
+sub get_g_array_by_name ($$)
+{
+ my ($self, $name) = @_;
+
+ return $self->_get_group_member_by_name ('group_array', $name);
+}
+
+sub get_g_attribute_by_name ($$)
+{
+ my ($self, $name) = @_;
+
+ return $self->_get_group_member_by_name ('group_attribute', $name);
+}
+
+sub get_g_doc_by_name ($$)
+{
+ my ($self, $name) = @_;
+
+ return $self->_get_group_member_by_name ('group_doc', $name);
+}
+
+sub get_g_type_by_name ($$)
+{
+ my ($self, $name) = @_;
+
+ return $self->_get_group_member_by_name ('group_type', $name);
+}
+
+sub get_g_varargs_by_name ($$)
+{
+ my ($self, $name) = @_;
+
+ return $self->_get_group_member_by_name ('group_varargs', $name);
+}
+
+
+sub get_g_array_by_index ($$)
+{
+ my ($self, $index) = @_;
+
+ return $self->_get_group_member_by_index ('group_array', $index);
+}
+
+sub get_g_attribute_by_index ($$)
+{
+ my ($self, $index) = @_;
+
+ return $self->_get_group_member_by_index ('group_attribute', $index);
+}
+
+sub get_g_doc_by_index ($$)
+{
+ my ($self, $index) = @_;
+
+ return $self->_get_group_member_by_index ('group_doc', $index);
+}
+
+sub get_g_type_by_index ($$)
+{
+ my ($self, $index) = @_;
+
+ return $self->_get_group_member_by_index ('group_type', $index);
+}
+
+sub get_g_varargs_by_index ($$)
+{
+ my ($self, $index) = @_;
+
+ return $self->_get_group_member_by_index ('group_varargs', $index);
+}
+
+
+sub get_g_array_count ($)
+{
+ my $self = shift;
+
+ return $self->_get_group_member_count ('group_array');
+}
+
+sub get_g_attribute_count ($)
+{
+ my $self = shift;
+
+ return $self->_get_group_member_count ('group_attribute');
+}
+
+sub get_g_doc_count ($)
+{
+ my $self = shift;
+
+ return $self->_get_group_member_count ('group_doc');
+}
+
+sub get_g_type_count ($)
+{
+ my $self = shift;
+
+ return $self->_get_group_member_count ('group_type');
+}
+
+sub get_g_varargs_count ($)
+{
+ my $self = shift;
+
+ return $self->_get_group_member_count ('group_varargs');
+}
+
+
+sub add_g_array ($$$)
+{
+ my ($self, $member_name, $member) = @_;
+
+ $self->_add_member_to_group ('group_array', $member_name, $member);
+}
+
+sub add_g_attribute ($$$)
+{
+ my ($self, $member_name, $member) = @_;
+
+ $self->_add_member_to_group ('group_attribute', $member_name, $member);
+}
+
+sub add_g_doc ($$$)
+{
+ my ($self, $member_name, $member) = @_;
+
+ $self->_add_member_to_group ('group_doc', $member_name, $member);
+}
+
+sub add_g_type ($$$)
+{
+ my ($self, $member_name, $member) = @_;
+
+ $self->_add_member_to_group ('group_type', $member_name, $member);
+}
+
+sub add_g_varargs ($$$)
+{
+ my ($self, $member_name, $member) = @_;
+
+ $self->_add_member_to_group ('group_varargs', $member_name, $member);
+}
+
+
+sub get_a_construct ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_construct');
+}
+
+sub get_a_construct_only ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_construct_only');
+}
+
+sub get_a_deprecated ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_deprecated');
+}
+
+sub get_a_deprecated_version ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_deprecated_version');
+}
+
+sub get_a_introspectable ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_introspectable');
+}
+
+sub get_a_name ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_name');
+}
+
+sub get_a_readable ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_readable');
+}
+
+sub get_a_transfer_ownership ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_transfer_ownership');
+}
+
+sub get_a_version ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_version');
+}
+
+sub get_a_writable ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_writable');
+}
+
+
+sub set_a_construct ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_construct', $value);
+}
+
+sub set_a_construct_only ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_construct_only', $value);
+}
+
+sub set_a_deprecated ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_deprecated', $value);
+}
+
+sub set_a_deprecated_version ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_deprecated_version', $value);
+}
+
+sub set_a_introspectable ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_introspectable', $value);
+}
+
+sub set_a_name ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_name', $value);
+}
+
+sub set_a_readable ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_readable', $value);
+}
+
+sub set_a_transfer_ownership ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_transfer_ownership', $value);
+}
+
+sub set_a_version ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_version', $value);
+}
+
+sub set_a_writable ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_writable', $value);
+}
+
+
+1; # indicate proper module load.
diff --git a/tools/pm/Gir/Api/Record.pm b/tools/pm/Gir/Api/Record.pm
new file mode 100644
index 0000000..dcefbf2
--- /dev/null
+++ b/tools/pm/Gir/Api/Record.pm
@@ -0,0 +1,491 @@
+## This file was generated by taghandlerwriter.pl script.
+##
+## Copyright 2011 Krzesimir Nowak
+##
+## This program is free software; you can redistribute it and/or modify
+## it under the terms of the GNU General Public License as published by
+## the Free Software Foundation; either version 2 of the License, or
+## (at your option) any later version.
+##
+## This program 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 General Public License for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with this program; if not, write to the Free Software
+## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+##
+
+package Gir::Api::Record;
+
+use strict;
+use warnings;
+
+use parent qw(Gir::Api::Common::Base);
+
+use Gir::Api::Attribute;
+use Gir::Api::Constructor;
+use Gir::Api::Doc;
+use Gir::Api::Field;
+use Gir::Api::Function;
+use Gir::Api::Method;
+use Gir::Api::Record;
+use Gir::Api::Union;
+
+sub new ($)
+{
+ my $type = shift;
+ my $class = (ref ($type) or $type or 'Gir::Api::Record');
+ my $groups =
+ [
+ 'group_attribute',
+ 'group_constructor',
+ 'group_doc',
+ 'group_field',
+ 'group_function',
+ 'group_method',
+ 'group_record',
+ 'group_union'
+ ];
+ my $attributes =
+ [
+ 'attribute_c_symbol_prefix',
+ 'attribute_c_type',
+ 'attribute_deprecated',
+ 'attribute_deprecated_version',
+ 'attribute_disguised',
+ 'attribute_foreign',
+ 'attribute_glib_get_type',
+ 'attribute_glib_is_gtype_struct_for',
+ 'attribute_glib_type_name',
+ 'attribute_introspectable',
+ 'attribute_name',
+ 'attribute_version'
+ ];
+ my $self = $class->SUPER::new ($groups, $attributes);
+
+ bless ($self, $class);
+ return $self;
+}
+
+sub new_with_params ($$)
+{
+ my ($type, $params) = @_;
+ my $self = Gir::Api::Record::new ($type);
+
+ $self->set_a_c_symbol_prefix($params->{'c:symbol-prefix'});
+ $self->set_a_c_type($params->{'c:type'});
+ $self->set_a_deprecated($params->{'deprecated'});
+ $self->set_a_deprecated_version($params->{'deprecated-version'});
+ $self->set_a_disguised($params->{'disguised'});
+ $self->set_a_foreign($params->{'foreign'});
+ $self->set_a_glib_get_type($params->{'glib:get-type'});
+ $self->set_a_glib_is_gtype_struct_for($params->{'glib:is-gtype-struct-for'});
+ $self->set_a_glib_type_name($params->{'glib:type-name'});
+ $self->set_a_introspectable($params->{'introspectable'});
+ $self->set_a_name($params->{'name'});
+ $self->set_a_version($params->{'version'});
+
+ return $self;
+}
+
+sub get_g_attribute_by_name ($$)
+{
+ my ($self, $name) = @_;
+
+ return $self->_get_group_member_by_name ('group_attribute', $name);
+}
+
+sub get_g_constructor_by_name ($$)
+{
+ my ($self, $name) = @_;
+
+ return $self->_get_group_member_by_name ('group_constructor', $name);
+}
+
+sub get_g_doc_by_name ($$)
+{
+ my ($self, $name) = @_;
+
+ return $self->_get_group_member_by_name ('group_doc', $name);
+}
+
+sub get_g_field_by_name ($$)
+{
+ my ($self, $name) = @_;
+
+ return $self->_get_group_member_by_name ('group_field', $name);
+}
+
+sub get_g_function_by_name ($$)
+{
+ my ($self, $name) = @_;
+
+ return $self->_get_group_member_by_name ('group_function', $name);
+}
+
+sub get_g_method_by_name ($$)
+{
+ my ($self, $name) = @_;
+
+ return $self->_get_group_member_by_name ('group_method', $name);
+}
+
+sub get_g_record_by_name ($$)
+{
+ my ($self, $name) = @_;
+
+ return $self->_get_group_member_by_name ('group_record', $name);
+}
+
+sub get_g_union_by_name ($$)
+{
+ my ($self, $name) = @_;
+
+ return $self->_get_group_member_by_name ('group_union', $name);
+}
+
+
+sub get_g_attribute_by_index ($$)
+{
+ my ($self, $index) = @_;
+
+ return $self->_get_group_member_by_index ('group_attribute', $index);
+}
+
+sub get_g_constructor_by_index ($$)
+{
+ my ($self, $index) = @_;
+
+ return $self->_get_group_member_by_index ('group_constructor', $index);
+}
+
+sub get_g_doc_by_index ($$)
+{
+ my ($self, $index) = @_;
+
+ return $self->_get_group_member_by_index ('group_doc', $index);
+}
+
+sub get_g_field_by_index ($$)
+{
+ my ($self, $index) = @_;
+
+ return $self->_get_group_member_by_index ('group_field', $index);
+}
+
+sub get_g_function_by_index ($$)
+{
+ my ($self, $index) = @_;
+
+ return $self->_get_group_member_by_index ('group_function', $index);
+}
+
+sub get_g_method_by_index ($$)
+{
+ my ($self, $index) = @_;
+
+ return $self->_get_group_member_by_index ('group_method', $index);
+}
+
+sub get_g_record_by_index ($$)
+{
+ my ($self, $index) = @_;
+
+ return $self->_get_group_member_by_index ('group_record', $index);
+}
+
+sub get_g_union_by_index ($$)
+{
+ my ($self, $index) = @_;
+
+ return $self->_get_group_member_by_index ('group_union', $index);
+}
+
+
+sub get_g_attribute_count ($)
+{
+ my $self = shift;
+
+ return $self->_get_group_member_count ('group_attribute');
+}
+
+sub get_g_constructor_count ($)
+{
+ my $self = shift;
+
+ return $self->_get_group_member_count ('group_constructor');
+}
+
+sub get_g_doc_count ($)
+{
+ my $self = shift;
+
+ return $self->_get_group_member_count ('group_doc');
+}
+
+sub get_g_field_count ($)
+{
+ my $self = shift;
+
+ return $self->_get_group_member_count ('group_field');
+}
+
+sub get_g_function_count ($)
+{
+ my $self = shift;
+
+ return $self->_get_group_member_count ('group_function');
+}
+
+sub get_g_method_count ($)
+{
+ my $self = shift;
+
+ return $self->_get_group_member_count ('group_method');
+}
+
+sub get_g_record_count ($)
+{
+ my $self = shift;
+
+ return $self->_get_group_member_count ('group_record');
+}
+
+sub get_g_union_count ($)
+{
+ my $self = shift;
+
+ return $self->_get_group_member_count ('group_union');
+}
+
+
+sub add_g_attribute ($$$)
+{
+ my ($self, $member_name, $member) = @_;
+
+ $self->_add_member_to_group ('group_attribute', $member_name, $member);
+}
+
+sub add_g_constructor ($$$)
+{
+ my ($self, $member_name, $member) = @_;
+
+ $self->_add_member_to_group ('group_constructor', $member_name, $member);
+}
+
+sub add_g_doc ($$$)
+{
+ my ($self, $member_name, $member) = @_;
+
+ $self->_add_member_to_group ('group_doc', $member_name, $member);
+}
+
+sub add_g_field ($$$)
+{
+ my ($self, $member_name, $member) = @_;
+
+ $self->_add_member_to_group ('group_field', $member_name, $member);
+}
+
+sub add_g_function ($$$)
+{
+ my ($self, $member_name, $member) = @_;
+
+ $self->_add_member_to_group ('group_function', $member_name, $member);
+}
+
+sub add_g_method ($$$)
+{
+ my ($self, $member_name, $member) = @_;
+
+ $self->_add_member_to_group ('group_method', $member_name, $member);
+}
+
+sub add_g_record ($$$)
+{
+ my ($self, $member_name, $member) = @_;
+
+ $self->_add_member_to_group ('group_record', $member_name, $member);
+}
+
+sub add_g_union ($$$)
+{
+ my ($self, $member_name, $member) = @_;
+
+ $self->_add_member_to_group ('group_union', $member_name, $member);
+}
+
+
+sub get_a_c_symbol_prefix ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_c_symbol_prefix');
+}
+
+sub get_a_c_type ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_c_type');
+}
+
+sub get_a_deprecated ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_deprecated');
+}
+
+sub get_a_deprecated_version ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_deprecated_version');
+}
+
+sub get_a_disguised ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_disguised');
+}
+
+sub get_a_foreign ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_foreign');
+}
+
+sub get_a_glib_get_type ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_glib_get_type');
+}
+
+sub get_a_glib_is_gtype_struct_for ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_glib_is_gtype_struct_for');
+}
+
+sub get_a_glib_type_name ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_glib_type_name');
+}
+
+sub get_a_introspectable ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_introspectable');
+}
+
+sub get_a_name ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_name');
+}
+
+sub get_a_version ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_version');
+}
+
+
+sub set_a_c_symbol_prefix ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_c_symbol_prefix', $value);
+}
+
+sub set_a_c_type ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_c_type', $value);
+}
+
+sub set_a_deprecated ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_deprecated', $value);
+}
+
+sub set_a_deprecated_version ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_deprecated_version', $value);
+}
+
+sub set_a_disguised ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_disguised', $value);
+}
+
+sub set_a_foreign ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_foreign', $value);
+}
+
+sub set_a_glib_get_type ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_glib_get_type', $value);
+}
+
+sub set_a_glib_is_gtype_struct_for ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_glib_is_gtype_struct_for', $value);
+}
+
+sub set_a_glib_type_name ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_glib_type_name', $value);
+}
+
+sub set_a_introspectable ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_introspectable', $value);
+}
+
+sub set_a_name ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_name', $value);
+}
+
+sub set_a_version ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_version', $value);
+}
+
+
+1; # indicate proper module load.
diff --git a/tools/pm/Gir/Api/Repository.pm b/tools/pm/Gir/Api/Repository.pm
new file mode 100644
index 0000000..2ca392d
--- /dev/null
+++ b/tools/pm/Gir/Api/Repository.pm
@@ -0,0 +1,243 @@
+## This file was generated by taghandlerwriter.pl script.
+##
+## Copyright 2011 Krzesimir Nowak
+##
+## This program is free software; you can redistribute it and/or modify
+## it under the terms of the GNU General Public License as published by
+## the Free Software Foundation; either version 2 of the License, or
+## (at your option) any later version.
+##
+## This program 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 General Public License for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with this program; if not, write to the Free Software
+## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+##
+
+package Gir::Api::Repository;
+
+use strict;
+use warnings;
+
+use parent qw(Gir::Api::Common::Base);
+
+use Gir::Api::CInclude;
+use Gir::Api::Include;
+use Gir::Api::Namespace;
+use Gir::Api::Package;
+
+sub new ($)
+{
+ my $type = shift;
+ my $class = (ref ($type) or $type or 'Gir::Api::Repository');
+ my $groups =
+ [
+ 'group_c_include',
+ 'group_include',
+ 'group_namespace',
+ 'group_package'
+ ];
+ my $attributes =
+ [
+ 'attribute_version',
+ 'attribute_xmlns',
+ 'attribute_xmlns_c',
+ 'attribute_xmlns_glib'
+ ];
+ my $self = $class->SUPER::new ($groups, $attributes);
+
+ bless ($self, $class);
+ return $self;
+}
+
+sub new_with_params ($$)
+{
+ my ($type, $params) = @_;
+ my $self = Gir::Api::Repository::new ($type);
+
+ $self->set_a_version($params->{'version'});
+ $self->set_a_xmlns($params->{'xmlns'});
+ $self->set_a_xmlns_c($params->{'xmlns:c'});
+ $self->set_a_xmlns_glib($params->{'xmlns:glib'});
+
+ return $self;
+}
+
+sub get_g_c_include_by_name ($$)
+{
+ my ($self, $name) = @_;
+
+ return $self->_get_group_member_by_name ('group_c_include', $name);
+}
+
+sub get_g_include_by_name ($$)
+{
+ my ($self, $name) = @_;
+
+ return $self->_get_group_member_by_name ('group_include', $name);
+}
+
+sub get_g_namespace_by_name ($$)
+{
+ my ($self, $name) = @_;
+
+ return $self->_get_group_member_by_name ('group_namespace', $name);
+}
+
+sub get_g_package_by_name ($$)
+{
+ my ($self, $name) = @_;
+
+ return $self->_get_group_member_by_name ('group_package', $name);
+}
+
+
+sub get_g_c_include_by_index ($$)
+{
+ my ($self, $index) = @_;
+
+ return $self->_get_group_member_by_index ('group_c_include', $index);
+}
+
+sub get_g_include_by_index ($$)
+{
+ my ($self, $index) = @_;
+
+ return $self->_get_group_member_by_index ('group_include', $index);
+}
+
+sub get_g_namespace_by_index ($$)
+{
+ my ($self, $index) = @_;
+
+ return $self->_get_group_member_by_index ('group_namespace', $index);
+}
+
+sub get_g_package_by_index ($$)
+{
+ my ($self, $index) = @_;
+
+ return $self->_get_group_member_by_index ('group_package', $index);
+}
+
+
+sub get_g_c_include_count ($)
+{
+ my $self = shift;
+
+ return $self->_get_group_member_count ('group_c_include');
+}
+
+sub get_g_include_count ($)
+{
+ my $self = shift;
+
+ return $self->_get_group_member_count ('group_include');
+}
+
+sub get_g_namespace_count ($)
+{
+ my $self = shift;
+
+ return $self->_get_group_member_count ('group_namespace');
+}
+
+sub get_g_package_count ($)
+{
+ my $self = shift;
+
+ return $self->_get_group_member_count ('group_package');
+}
+
+
+sub add_g_c_include ($$$)
+{
+ my ($self, $member_name, $member) = @_;
+
+ $self->_add_member_to_group ('group_c_include', $member_name, $member);
+}
+
+sub add_g_include ($$$)
+{
+ my ($self, $member_name, $member) = @_;
+
+ $self->_add_member_to_group ('group_include', $member_name, $member);
+}
+
+sub add_g_namespace ($$$)
+{
+ my ($self, $member_name, $member) = @_;
+
+ $self->_add_member_to_group ('group_namespace', $member_name, $member);
+}
+
+sub add_g_package ($$$)
+{
+ my ($self, $member_name, $member) = @_;
+
+ $self->_add_member_to_group ('group_package', $member_name, $member);
+}
+
+
+sub get_a_version ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_version');
+}
+
+sub get_a_xmlns ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_xmlns');
+}
+
+sub get_a_xmlns_c ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_xmlns_c');
+}
+
+sub get_a_xmlns_glib ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_xmlns_glib');
+}
+
+
+sub set_a_version ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_version', $value);
+}
+
+sub set_a_xmlns ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_xmlns', $value);
+}
+
+sub set_a_xmlns_c ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_xmlns_c', $value);
+}
+
+sub set_a_xmlns_glib ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_xmlns_glib', $value);
+}
+
+
+1; # indicate proper module load.
diff --git a/tools/pm/Gir/Api/ReturnValue.pm b/tools/pm/Gir/Api/ReturnValue.pm
new file mode 100644
index 0000000..a956f47
--- /dev/null
+++ b/tools/pm/Gir/Api/ReturnValue.pm
@@ -0,0 +1,241 @@
+## This file was generated by taghandlerwriter.pl script.
+##
+## Copyright 2011 Krzesimir Nowak
+##
+## This program is free software; you can redistribute it and/or modify
+## it under the terms of the GNU General Public License as published by
+## the Free Software Foundation; either version 2 of the License, or
+## (at your option) any later version.
+##
+## This program 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 General Public License for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with this program; if not, write to the Free Software
+## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+##
+
+package Gir::Api::ReturnValue;
+
+use strict;
+use warnings;
+
+use parent qw(Gir::Api::Common::Base);
+
+use Gir::Api::Array;
+use Gir::Api::Attribute;
+use Gir::Api::Doc;
+use Gir::Api::Type;
+use Gir::Api::Varargs;
+
+sub new ($)
+{
+ my $type = shift;
+ my $class = (ref ($type) or $type or 'Gir::Api::ReturnValue');
+ my $groups =
+ [
+ 'group_array',
+ 'group_attribute',
+ 'group_doc',
+ 'group_type',
+ 'group_varargs'
+ ];
+ my $attributes =
+ [
+ 'attribute_skip',
+ 'attribute_transfer_ownership'
+ ];
+ my $self = $class->SUPER::new ($groups, $attributes);
+
+ bless ($self, $class);
+ return $self;
+}
+
+sub new_with_params ($$)
+{
+ my ($type, $params) = @_;
+ my $self = Gir::Api::ReturnValue::new ($type);
+
+ $self->set_a_skip($params->{'skip'});
+ $self->set_a_transfer_ownership($params->{'transfer-ownership'});
+
+ return $self;
+}
+
+sub get_g_array_by_name ($$)
+{
+ my ($self, $name) = @_;
+
+ return $self->_get_group_member_by_name ('group_array', $name);
+}
+
+sub get_g_attribute_by_name ($$)
+{
+ my ($self, $name) = @_;
+
+ return $self->_get_group_member_by_name ('group_attribute', $name);
+}
+
+sub get_g_doc_by_name ($$)
+{
+ my ($self, $name) = @_;
+
+ return $self->_get_group_member_by_name ('group_doc', $name);
+}
+
+sub get_g_type_by_name ($$)
+{
+ my ($self, $name) = @_;
+
+ return $self->_get_group_member_by_name ('group_type', $name);
+}
+
+sub get_g_varargs_by_name ($$)
+{
+ my ($self, $name) = @_;
+
+ return $self->_get_group_member_by_name ('group_varargs', $name);
+}
+
+
+sub get_g_array_by_index ($$)
+{
+ my ($self, $index) = @_;
+
+ return $self->_get_group_member_by_index ('group_array', $index);
+}
+
+sub get_g_attribute_by_index ($$)
+{
+ my ($self, $index) = @_;
+
+ return $self->_get_group_member_by_index ('group_attribute', $index);
+}
+
+sub get_g_doc_by_index ($$)
+{
+ my ($self, $index) = @_;
+
+ return $self->_get_group_member_by_index ('group_doc', $index);
+}
+
+sub get_g_type_by_index ($$)
+{
+ my ($self, $index) = @_;
+
+ return $self->_get_group_member_by_index ('group_type', $index);
+}
+
+sub get_g_varargs_by_index ($$)
+{
+ my ($self, $index) = @_;
+
+ return $self->_get_group_member_by_index ('group_varargs', $index);
+}
+
+
+sub get_g_array_count ($)
+{
+ my $self = shift;
+
+ return $self->_get_group_member_count ('group_array');
+}
+
+sub get_g_attribute_count ($)
+{
+ my $self = shift;
+
+ return $self->_get_group_member_count ('group_attribute');
+}
+
+sub get_g_doc_count ($)
+{
+ my $self = shift;
+
+ return $self->_get_group_member_count ('group_doc');
+}
+
+sub get_g_type_count ($)
+{
+ my $self = shift;
+
+ return $self->_get_group_member_count ('group_type');
+}
+
+sub get_g_varargs_count ($)
+{
+ my $self = shift;
+
+ return $self->_get_group_member_count ('group_varargs');
+}
+
+
+sub add_g_array ($$$)
+{
+ my ($self, $member_name, $member) = @_;
+
+ $self->_add_member_to_group ('group_array', $member_name, $member);
+}
+
+sub add_g_attribute ($$$)
+{
+ my ($self, $member_name, $member) = @_;
+
+ $self->_add_member_to_group ('group_attribute', $member_name, $member);
+}
+
+sub add_g_doc ($$$)
+{
+ my ($self, $member_name, $member) = @_;
+
+ $self->_add_member_to_group ('group_doc', $member_name, $member);
+}
+
+sub add_g_type ($$$)
+{
+ my ($self, $member_name, $member) = @_;
+
+ $self->_add_member_to_group ('group_type', $member_name, $member);
+}
+
+sub add_g_varargs ($$$)
+{
+ my ($self, $member_name, $member) = @_;
+
+ $self->_add_member_to_group ('group_varargs', $member_name, $member);
+}
+
+
+sub get_a_skip ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_skip');
+}
+
+sub get_a_transfer_ownership ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_transfer_ownership');
+}
+
+
+sub set_a_skip ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_skip', $value);
+}
+
+sub set_a_transfer_ownership ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_transfer_ownership', $value);
+}
+
+
+1; # indicate proper module load.
diff --git a/tools/pm/Gir/Api/TopLevel.pm b/tools/pm/Gir/Api/TopLevel.pm
new file mode 100644
index 0000000..05b2031
--- /dev/null
+++ b/tools/pm/Gir/Api/TopLevel.pm
@@ -0,0 +1,93 @@
+## This file was generated by taghandlerwriter.pl script.
+##
+## Copyright 2011 Krzesimir Nowak
+##
+## This program is free software; you can redistribute it and/or modify
+## it under the terms of the GNU General Public License as published by
+## the Free Software Foundation; either version 2 of the License, or
+## (at your option) any later version.
+##
+## This program 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 General Public License for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with this program; if not, write to the Free Software
+## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+##
+
+package Gir::Api::TopLevel;
+
+use strict;
+use warnings;
+
+use parent qw(Gir::Api::Common::Base);
+
+use Gir::Api::Repository;
+
+sub new ($)
+{
+ my $type = shift;
+ my $class = (ref ($type) or $type or 'Gir::Api::TopLevel');
+ my $groups =
+ [
+ 'group_repository'
+ ];
+ my $attributes =
+ [
+
+ ];
+ my $self = $class->SUPER::new ($groups, $attributes);
+
+ bless ($self, $class);
+ return $self;
+}
+
+sub new_with_params ($$)
+{
+ my ($type, $params) = @_;
+ my $self = Gir::Api::TopLevel::new ($type);
+
+
+
+ return $self;
+}
+
+sub get_g_repository_by_name ($$)
+{
+ my ($self, $name) = @_;
+
+ return $self->_get_group_member_by_name ('group_repository', $name);
+}
+
+
+sub get_g_repository_by_index ($$)
+{
+ my ($self, $index) = @_;
+
+ return $self->_get_group_member_by_index ('group_repository', $index);
+}
+
+
+sub get_g_repository_count ($)
+{
+ my $self = shift;
+
+ return $self->_get_group_member_count ('group_repository');
+}
+
+
+sub add_g_repository ($$$)
+{
+ my ($self, $member_name, $member) = @_;
+
+ $self->_add_member_to_group ('group_repository', $member_name, $member);
+}
+
+
+
+
+
+
+1; # indicate proper module load.
diff --git a/tools/pm/Gir/Api/Type.pm b/tools/pm/Gir/Api/Type.pm
new file mode 100644
index 0000000..b8b17c3
--- /dev/null
+++ b/tools/pm/Gir/Api/Type.pm
@@ -0,0 +1,197 @@
+## This file was generated by taghandlerwriter.pl script.
+##
+## Copyright 2011 Krzesimir Nowak
+##
+## This program is free software; you can redistribute it and/or modify
+## it under the terms of the GNU General Public License as published by
+## the Free Software Foundation; either version 2 of the License, or
+## (at your option) any later version.
+##
+## This program 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 General Public License for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with this program; if not, write to the Free Software
+## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+##
+
+package Gir::Api::Type;
+
+use strict;
+use warnings;
+
+use parent qw(Gir::Api::Common::Base);
+
+use Gir::Api::Array;
+use Gir::Api::Type;
+use Gir::Api::Varargs;
+
+sub new ($)
+{
+ my $type = shift;
+ my $class = (ref ($type) or $type or 'Gir::Api::Type');
+ my $groups =
+ [
+ 'group_array',
+ 'group_type',
+ 'group_varargs'
+ ];
+ my $attributes =
+ [
+ 'attribute_c_type',
+ 'attribute_foreign',
+ 'attribute_name'
+ ];
+ my $self = $class->SUPER::new ($groups, $attributes);
+
+ bless ($self, $class);
+ return $self;
+}
+
+sub new_with_params ($$)
+{
+ my ($type, $params) = @_;
+ my $self = Gir::Api::Type::new ($type);
+
+ $self->set_a_c_type($params->{'c:type'});
+ $self->set_a_foreign($params->{'foreign'});
+ $self->set_a_name($params->{'name'});
+
+ return $self;
+}
+
+sub get_g_array_by_name ($$)
+{
+ my ($self, $name) = @_;
+
+ return $self->_get_group_member_by_name ('group_array', $name);
+}
+
+sub get_g_type_by_name ($$)
+{
+ my ($self, $name) = @_;
+
+ return $self->_get_group_member_by_name ('group_type', $name);
+}
+
+sub get_g_varargs_by_name ($$)
+{
+ my ($self, $name) = @_;
+
+ return $self->_get_group_member_by_name ('group_varargs', $name);
+}
+
+
+sub get_g_array_by_index ($$)
+{
+ my ($self, $index) = @_;
+
+ return $self->_get_group_member_by_index ('group_array', $index);
+}
+
+sub get_g_type_by_index ($$)
+{
+ my ($self, $index) = @_;
+
+ return $self->_get_group_member_by_index ('group_type', $index);
+}
+
+sub get_g_varargs_by_index ($$)
+{
+ my ($self, $index) = @_;
+
+ return $self->_get_group_member_by_index ('group_varargs', $index);
+}
+
+
+sub get_g_array_count ($)
+{
+ my $self = shift;
+
+ return $self->_get_group_member_count ('group_array');
+}
+
+sub get_g_type_count ($)
+{
+ my $self = shift;
+
+ return $self->_get_group_member_count ('group_type');
+}
+
+sub get_g_varargs_count ($)
+{
+ my $self = shift;
+
+ return $self->_get_group_member_count ('group_varargs');
+}
+
+
+sub add_g_array ($$$)
+{
+ my ($self, $member_name, $member) = @_;
+
+ $self->_add_member_to_group ('group_array', $member_name, $member);
+}
+
+sub add_g_type ($$$)
+{
+ my ($self, $member_name, $member) = @_;
+
+ $self->_add_member_to_group ('group_type', $member_name, $member);
+}
+
+sub add_g_varargs ($$$)
+{
+ my ($self, $member_name, $member) = @_;
+
+ $self->_add_member_to_group ('group_varargs', $member_name, $member);
+}
+
+
+sub get_a_c_type ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_c_type');
+}
+
+sub get_a_foreign ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_foreign');
+}
+
+sub get_a_name ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_name');
+}
+
+
+sub set_a_c_type ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_c_type', $value);
+}
+
+sub set_a_foreign ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_foreign', $value);
+}
+
+sub set_a_name ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_name', $value);
+}
+
+
+1; # indicate proper module load.
diff --git a/tools/pm/Gir/Api/Union.pm b/tools/pm/Gir/Api/Union.pm
new file mode 100644
index 0000000..820fc0d
--- /dev/null
+++ b/tools/pm/Gir/Api/Union.pm
@@ -0,0 +1,443 @@
+## This file was generated by taghandlerwriter.pl script.
+##
+## Copyright 2011 Krzesimir Nowak
+##
+## This program is free software; you can redistribute it and/or modify
+## it under the terms of the GNU General Public License as published by
+## the Free Software Foundation; either version 2 of the License, or
+## (at your option) any later version.
+##
+## This program 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 General Public License for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with this program; if not, write to the Free Software
+## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+##
+
+package Gir::Api::Union;
+
+use strict;
+use warnings;
+
+use parent qw(Gir::Api::Common::Base);
+
+use Gir::Api::Attribute;
+use Gir::Api::Constructor;
+use Gir::Api::Doc;
+use Gir::Api::Field;
+use Gir::Api::Function;
+use Gir::Api::Method;
+use Gir::Api::Record;
+use Gir::Api::Union;
+
+sub new ($)
+{
+ my $type = shift;
+ my $class = (ref ($type) or $type or 'Gir::Api::Union');
+ my $groups =
+ [
+ 'group_attribute',
+ 'group_constructor',
+ 'group_doc',
+ 'group_field',
+ 'group_function',
+ 'group_method',
+ 'group_record',
+ 'group_union'
+ ];
+ my $attributes =
+ [
+ 'attribute_c_symbol_prefix',
+ 'attribute_c_type',
+ 'attribute_deprecated',
+ 'attribute_deprecated_version',
+ 'attribute_glib_get_type',
+ 'attribute_glib_type_name',
+ 'attribute_introspectable',
+ 'attribute_name',
+ 'attribute_version'
+ ];
+ my $self = $class->SUPER::new ($groups, $attributes);
+
+ bless ($self, $class);
+ return $self;
+}
+
+sub new_with_params ($$)
+{
+ my ($type, $params) = @_;
+ my $self = Gir::Api::Union::new ($type);
+
+ $self->set_a_c_symbol_prefix($params->{'c:symbol-prefix'});
+ $self->set_a_c_type($params->{'c:type'});
+ $self->set_a_deprecated($params->{'deprecated'});
+ $self->set_a_deprecated_version($params->{'deprecated-version'});
+ $self->set_a_glib_get_type($params->{'glib:get-type'});
+ $self->set_a_glib_type_name($params->{'glib:type-name'});
+ $self->set_a_introspectable($params->{'introspectable'});
+ $self->set_a_name($params->{'name'});
+ $self->set_a_version($params->{'version'});
+
+ return $self;
+}
+
+sub get_g_attribute_by_name ($$)
+{
+ my ($self, $name) = @_;
+
+ return $self->_get_group_member_by_name ('group_attribute', $name);
+}
+
+sub get_g_constructor_by_name ($$)
+{
+ my ($self, $name) = @_;
+
+ return $self->_get_group_member_by_name ('group_constructor', $name);
+}
+
+sub get_g_doc_by_name ($$)
+{
+ my ($self, $name) = @_;
+
+ return $self->_get_group_member_by_name ('group_doc', $name);
+}
+
+sub get_g_field_by_name ($$)
+{
+ my ($self, $name) = @_;
+
+ return $self->_get_group_member_by_name ('group_field', $name);
+}
+
+sub get_g_function_by_name ($$)
+{
+ my ($self, $name) = @_;
+
+ return $self->_get_group_member_by_name ('group_function', $name);
+}
+
+sub get_g_method_by_name ($$)
+{
+ my ($self, $name) = @_;
+
+ return $self->_get_group_member_by_name ('group_method', $name);
+}
+
+sub get_g_record_by_name ($$)
+{
+ my ($self, $name) = @_;
+
+ return $self->_get_group_member_by_name ('group_record', $name);
+}
+
+sub get_g_union_by_name ($$)
+{
+ my ($self, $name) = @_;
+
+ return $self->_get_group_member_by_name ('group_union', $name);
+}
+
+
+sub get_g_attribute_by_index ($$)
+{
+ my ($self, $index) = @_;
+
+ return $self->_get_group_member_by_index ('group_attribute', $index);
+}
+
+sub get_g_constructor_by_index ($$)
+{
+ my ($self, $index) = @_;
+
+ return $self->_get_group_member_by_index ('group_constructor', $index);
+}
+
+sub get_g_doc_by_index ($$)
+{
+ my ($self, $index) = @_;
+
+ return $self->_get_group_member_by_index ('group_doc', $index);
+}
+
+sub get_g_field_by_index ($$)
+{
+ my ($self, $index) = @_;
+
+ return $self->_get_group_member_by_index ('group_field', $index);
+}
+
+sub get_g_function_by_index ($$)
+{
+ my ($self, $index) = @_;
+
+ return $self->_get_group_member_by_index ('group_function', $index);
+}
+
+sub get_g_method_by_index ($$)
+{
+ my ($self, $index) = @_;
+
+ return $self->_get_group_member_by_index ('group_method', $index);
+}
+
+sub get_g_record_by_index ($$)
+{
+ my ($self, $index) = @_;
+
+ return $self->_get_group_member_by_index ('group_record', $index);
+}
+
+sub get_g_union_by_index ($$)
+{
+ my ($self, $index) = @_;
+
+ return $self->_get_group_member_by_index ('group_union', $index);
+}
+
+
+sub get_g_attribute_count ($)
+{
+ my $self = shift;
+
+ return $self->_get_group_member_count ('group_attribute');
+}
+
+sub get_g_constructor_count ($)
+{
+ my $self = shift;
+
+ return $self->_get_group_member_count ('group_constructor');
+}
+
+sub get_g_doc_count ($)
+{
+ my $self = shift;
+
+ return $self->_get_group_member_count ('group_doc');
+}
+
+sub get_g_field_count ($)
+{
+ my $self = shift;
+
+ return $self->_get_group_member_count ('group_field');
+}
+
+sub get_g_function_count ($)
+{
+ my $self = shift;
+
+ return $self->_get_group_member_count ('group_function');
+}
+
+sub get_g_method_count ($)
+{
+ my $self = shift;
+
+ return $self->_get_group_member_count ('group_method');
+}
+
+sub get_g_record_count ($)
+{
+ my $self = shift;
+
+ return $self->_get_group_member_count ('group_record');
+}
+
+sub get_g_union_count ($)
+{
+ my $self = shift;
+
+ return $self->_get_group_member_count ('group_union');
+}
+
+
+sub add_g_attribute ($$$)
+{
+ my ($self, $member_name, $member) = @_;
+
+ $self->_add_member_to_group ('group_attribute', $member_name, $member);
+}
+
+sub add_g_constructor ($$$)
+{
+ my ($self, $member_name, $member) = @_;
+
+ $self->_add_member_to_group ('group_constructor', $member_name, $member);
+}
+
+sub add_g_doc ($$$)
+{
+ my ($self, $member_name, $member) = @_;
+
+ $self->_add_member_to_group ('group_doc', $member_name, $member);
+}
+
+sub add_g_field ($$$)
+{
+ my ($self, $member_name, $member) = @_;
+
+ $self->_add_member_to_group ('group_field', $member_name, $member);
+}
+
+sub add_g_function ($$$)
+{
+ my ($self, $member_name, $member) = @_;
+
+ $self->_add_member_to_group ('group_function', $member_name, $member);
+}
+
+sub add_g_method ($$$)
+{
+ my ($self, $member_name, $member) = @_;
+
+ $self->_add_member_to_group ('group_method', $member_name, $member);
+}
+
+sub add_g_record ($$$)
+{
+ my ($self, $member_name, $member) = @_;
+
+ $self->_add_member_to_group ('group_record', $member_name, $member);
+}
+
+sub add_g_union ($$$)
+{
+ my ($self, $member_name, $member) = @_;
+
+ $self->_add_member_to_group ('group_union', $member_name, $member);
+}
+
+
+sub get_a_c_symbol_prefix ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_c_symbol_prefix');
+}
+
+sub get_a_c_type ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_c_type');
+}
+
+sub get_a_deprecated ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_deprecated');
+}
+
+sub get_a_deprecated_version ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_deprecated_version');
+}
+
+sub get_a_glib_get_type ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_glib_get_type');
+}
+
+sub get_a_glib_type_name ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_glib_type_name');
+}
+
+sub get_a_introspectable ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_introspectable');
+}
+
+sub get_a_name ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_name');
+}
+
+sub get_a_version ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_version');
+}
+
+
+sub set_a_c_symbol_prefix ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_c_symbol_prefix', $value);
+}
+
+sub set_a_c_type ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_c_type', $value);
+}
+
+sub set_a_deprecated ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_deprecated', $value);
+}
+
+sub set_a_deprecated_version ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_deprecated_version', $value);
+}
+
+sub set_a_glib_get_type ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_glib_get_type', $value);
+}
+
+sub set_a_glib_type_name ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_glib_type_name', $value);
+}
+
+sub set_a_introspectable ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_introspectable', $value);
+}
+
+sub set_a_name ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_name', $value);
+}
+
+sub set_a_version ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_version', $value);
+}
+
+
+1; # indicate proper module load.
diff --git a/tools/pm/Gir/Api/Varargs.pm b/tools/pm/Gir/Api/Varargs.pm
new file mode 100644
index 0000000..5db5b56
--- /dev/null
+++ b/tools/pm/Gir/Api/Varargs.pm
@@ -0,0 +1,69 @@
+## This file was generated by taghandlerwriter.pl script.
+##
+## Copyright 2011 Krzesimir Nowak
+##
+## This program is free software; you can redistribute it and/or modify
+## it under the terms of the GNU General Public License as published by
+## the Free Software Foundation; either version 2 of the License, or
+## (at your option) any later version.
+##
+## This program 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 General Public License for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with this program; if not, write to the Free Software
+## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+##
+
+package Gir::Api::Varargs;
+
+use strict;
+use warnings;
+
+use parent qw(Gir::Api::Common::Base);
+
+
+
+sub new ($)
+{
+ my $type = shift;
+ my $class = (ref ($type) or $type or 'Gir::Api::Varargs');
+ my $groups =
+ [
+
+ ];
+ my $attributes =
+ [
+
+ ];
+ my $self = $class->SUPER::new ($groups, $attributes);
+
+ bless ($self, $class);
+ return $self;
+}
+
+sub new_with_params ($$)
+{
+ my ($type, $params) = @_;
+ my $self = Gir::Api::Varargs::new ($type);
+
+
+
+ return $self;
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+1; # indicate proper module load.
diff --git a/tools/pm/Gir/Api/VirtualMethod.pm b/tools/pm/Gir/Api/VirtualMethod.pm
new file mode 100644
index 0000000..aed375a
--- /dev/null
+++ b/tools/pm/Gir/Api/VirtualMethod.pm
@@ -0,0 +1,291 @@
+## This file was generated by taghandlerwriter.pl script.
+##
+## Copyright 2011 Krzesimir Nowak
+##
+## This program is free software; you can redistribute it and/or modify
+## it under the terms of the GNU General Public License as published by
+## the Free Software Foundation; either version 2 of the License, or
+## (at your option) any later version.
+##
+## This program 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 General Public License for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with this program; if not, write to the Free Software
+## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+##
+
+package Gir::Api::VirtualMethod;
+
+use strict;
+use warnings;
+
+use parent qw(Gir::Api::Common::Base);
+
+use Gir::Api::Attribute;
+use Gir::Api::Doc;
+use Gir::Api::Parameters;
+use Gir::Api::ReturnValue;
+
+sub new ($)
+{
+ my $type = shift;
+ my $class = (ref ($type) or $type or 'Gir::Api::VirtualMethod');
+ my $groups =
+ [
+ 'group_attribute',
+ 'group_doc',
+ 'group_parameters',
+ 'group_return_value'
+ ];
+ my $attributes =
+ [
+ 'attribute_deprecated',
+ 'attribute_deprecated_version',
+ 'attribute_introspectable',
+ 'attribute_invoker',
+ 'attribute_name',
+ 'attribute_throws',
+ 'attribute_version'
+ ];
+ my $self = $class->SUPER::new ($groups, $attributes);
+
+ bless ($self, $class);
+ return $self;
+}
+
+sub new_with_params ($$)
+{
+ my ($type, $params) = @_;
+ my $self = Gir::Api::VirtualMethod::new ($type);
+
+ $self->set_a_deprecated($params->{'deprecated'});
+ $self->set_a_deprecated_version($params->{'deprecated-version'});
+ $self->set_a_introspectable($params->{'introspectable'});
+ $self->set_a_invoker($params->{'invoker'});
+ $self->set_a_name($params->{'name'});
+ $self->set_a_throws($params->{'throws'});
+ $self->set_a_version($params->{'version'});
+
+ return $self;
+}
+
+sub get_g_attribute_by_name ($$)
+{
+ my ($self, $name) = @_;
+
+ return $self->_get_group_member_by_name ('group_attribute', $name);
+}
+
+sub get_g_doc_by_name ($$)
+{
+ my ($self, $name) = @_;
+
+ return $self->_get_group_member_by_name ('group_doc', $name);
+}
+
+sub get_g_parameters_by_name ($$)
+{
+ my ($self, $name) = @_;
+
+ return $self->_get_group_member_by_name ('group_parameters', $name);
+}
+
+sub get_g_return_value_by_name ($$)
+{
+ my ($self, $name) = @_;
+
+ return $self->_get_group_member_by_name ('group_return_value', $name);
+}
+
+
+sub get_g_attribute_by_index ($$)
+{
+ my ($self, $index) = @_;
+
+ return $self->_get_group_member_by_index ('group_attribute', $index);
+}
+
+sub get_g_doc_by_index ($$)
+{
+ my ($self, $index) = @_;
+
+ return $self->_get_group_member_by_index ('group_doc', $index);
+}
+
+sub get_g_parameters_by_index ($$)
+{
+ my ($self, $index) = @_;
+
+ return $self->_get_group_member_by_index ('group_parameters', $index);
+}
+
+sub get_g_return_value_by_index ($$)
+{
+ my ($self, $index) = @_;
+
+ return $self->_get_group_member_by_index ('group_return_value', $index);
+}
+
+
+sub get_g_attribute_count ($)
+{
+ my $self = shift;
+
+ return $self->_get_group_member_count ('group_attribute');
+}
+
+sub get_g_doc_count ($)
+{
+ my $self = shift;
+
+ return $self->_get_group_member_count ('group_doc');
+}
+
+sub get_g_parameters_count ($)
+{
+ my $self = shift;
+
+ return $self->_get_group_member_count ('group_parameters');
+}
+
+sub get_g_return_value_count ($)
+{
+ my $self = shift;
+
+ return $self->_get_group_member_count ('group_return_value');
+}
+
+
+sub add_g_attribute ($$$)
+{
+ my ($self, $member_name, $member) = @_;
+
+ $self->_add_member_to_group ('group_attribute', $member_name, $member);
+}
+
+sub add_g_doc ($$$)
+{
+ my ($self, $member_name, $member) = @_;
+
+ $self->_add_member_to_group ('group_doc', $member_name, $member);
+}
+
+sub add_g_parameters ($$$)
+{
+ my ($self, $member_name, $member) = @_;
+
+ $self->_add_member_to_group ('group_parameters', $member_name, $member);
+}
+
+sub add_g_return_value ($$$)
+{
+ my ($self, $member_name, $member) = @_;
+
+ $self->_add_member_to_group ('group_return_value', $member_name, $member);
+}
+
+
+sub get_a_deprecated ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_deprecated');
+}
+
+sub get_a_deprecated_version ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_deprecated_version');
+}
+
+sub get_a_introspectable ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_introspectable');
+}
+
+sub get_a_invoker ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_invoker');
+}
+
+sub get_a_name ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_name');
+}
+
+sub get_a_throws ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_throws');
+}
+
+sub get_a_version ($)
+{
+ my ($self) = @_;
+
+ return $self->_get_attribute ('attribute_version');
+}
+
+
+sub set_a_deprecated ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_deprecated', $value);
+}
+
+sub set_a_deprecated_version ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_deprecated_version', $value);
+}
+
+sub set_a_introspectable ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_introspectable', $value);
+}
+
+sub set_a_invoker ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_invoker', $value);
+}
+
+sub set_a_name ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_name', $value);
+}
+
+sub set_a_throws ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_throws', $value);
+}
+
+sub set_a_version ($$)
+{
+ my ($self, $value) = @_;
+
+ $self->_set_attribute ('attribute_version', $value);
+}
+
+
+1; # indicate proper module load.
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]