/* aur_interface.c generated by valac 0.56.18-dirty, the Vala compiler
 * generated from aur_interface.vala, do not modify */

/*
 *  pamac-vala
 *
 *  Copyright (C) 2023 Guillaume Benoit <guillaume@manjaro.org>
 *
 *  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 3 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 get of the GNU General Public License
 *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */

#include <glib-object.h>
#include <stdlib.h>
#include <string.h>
#include <glib.h>
#include <float.h>
#include <math.h>
#include "pamac.h"

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

#define PAMAC_TYPE_AUR_PLUGIN (pamac_aur_plugin_get_type ())
#define PAMAC_AUR_PLUGIN(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PAMAC_TYPE_AUR_PLUGIN, PamacAURPlugin))
#define PAMAC_IS_AUR_PLUGIN(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PAMAC_TYPE_AUR_PLUGIN))
#define PAMAC_AUR_PLUGIN_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), PAMAC_TYPE_AUR_PLUGIN, PamacAURPluginIface))

typedef struct _PamacAURPlugin PamacAURPlugin;
typedef struct _PamacAURPluginIface PamacAURPluginIface;

#define PAMAC_TYPE_AUR_INFOS (pamac_aur_infos_get_type ())
#define PAMAC_AUR_INFOS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PAMAC_TYPE_AUR_INFOS, PamacAURInfos))
#define PAMAC_AUR_INFOS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PAMAC_TYPE_AUR_INFOS, PamacAURInfosClass))
#define PAMAC_IS_AUR_INFOS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PAMAC_TYPE_AUR_INFOS))
#define PAMAC_IS_AUR_INFOS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PAMAC_TYPE_AUR_INFOS))
#define PAMAC_AUR_INFOS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PAMAC_TYPE_AUR_INFOS, PamacAURInfosClass))

typedef struct _PamacAURInfos PamacAURInfos;
typedef struct _PamacAURInfosClass PamacAURInfosClass;
enum  {
	PAMAC_AUR_PLUGIN_EMIT_DOWNLOAD_PROGRESS_SIGNAL,
	PAMAC_AUR_PLUGIN_EMIT_DOWNLOAD_ERROR_SIGNAL,
	PAMAC_AUR_PLUGIN_NUM_SIGNALS
};
static guint pamac_aur_plugin_signals[PAMAC_AUR_PLUGIN_NUM_SIGNALS] = {0};
typedef struct _PamacAURInfosPrivate PamacAURInfosPrivate;
enum  {
	PAMAC_AUR_INFOS_0_PROPERTY,
	PAMAC_AUR_INFOS_NAME_PROPERTY,
	PAMAC_AUR_INFOS_VERSION_PROPERTY,
	PAMAC_AUR_INFOS_DESC_PROPERTY,
	PAMAC_AUR_INFOS_LICENSE_PROPERTY,
	PAMAC_AUR_INFOS_URL_PROPERTY,
	PAMAC_AUR_INFOS_GROUPS_PROPERTY,
	PAMAC_AUR_INFOS_DEPENDS_PROPERTY,
	PAMAC_AUR_INFOS_OPTDEPENDS_PROPERTY,
	PAMAC_AUR_INFOS_MAKEDEPENDS_PROPERTY,
	PAMAC_AUR_INFOS_CHECKDEPENDS_PROPERTY,
	PAMAC_AUR_INFOS_PROVIDES_PROPERTY,
	PAMAC_AUR_INFOS_REPLACES_PROPERTY,
	PAMAC_AUR_INFOS_CONFLICTS_PROPERTY,
	PAMAC_AUR_INFOS_PACKAGEBASE_PROPERTY,
	PAMAC_AUR_INFOS_MAINTAINER_PROPERTY,
	PAMAC_AUR_INFOS_POPULARITY_PROPERTY,
	PAMAC_AUR_INFOS_LASTMODIFIED_PROPERTY,
	PAMAC_AUR_INFOS_OUTOFDATE_PROPERTY,
	PAMAC_AUR_INFOS_FIRSTSUBMITTED_PROPERTY,
	PAMAC_AUR_INFOS_NUMVOTES_PROPERTY,
	PAMAC_AUR_INFOS_NUM_PROPERTIES
};
static GParamSpec* pamac_aur_infos_properties[PAMAC_AUR_INFOS_NUM_PROPERTIES];

struct _PamacAURPluginIface {
	GTypeInterface parent_iface;
	void (*set_real_build_dir) (PamacAURPlugin* self, const gchar* config_aur_build_dir);
	const gchar* (*get_real_build_dir) (PamacAURPlugin* self);
	PamacAURInfos* (*get_infos) (PamacAURPlugin* self, const gchar* pkgname);
	GPtrArray* (*get_multi_infos) (PamacAURPlugin* self, GPtrArray* pkgnames);
	GPtrArray* (*get_providers) (PamacAURPlugin* self, const gchar* depend);
	GPtrArray* (*search) (PamacAURPlugin* self, const gchar* search_string);
};

struct _PamacAURInfos {
	GObject parent_instance;
	PamacAURInfosPrivate * priv;
};

struct _PamacAURInfosClass {
	GObjectClass parent_class;
	const gchar* (*get_name) (PamacAURInfos* self);
	const gchar* (*get_version) (PamacAURInfos* self);
	const gchar* (*get_desc) (PamacAURInfos* self);
	const gchar* (*get_license) (PamacAURInfos* self);
	const gchar* (*get_url) (PamacAURInfos* self);
	GPtrArray* (*get_groups) (PamacAURInfos* self);
	GPtrArray* (*get_depends) (PamacAURInfos* self);
	GPtrArray* (*get_optdepends) (PamacAURInfos* self);
	GPtrArray* (*get_makedepends) (PamacAURInfos* self);
	GPtrArray* (*get_checkdepends) (PamacAURInfos* self);
	GPtrArray* (*get_provides) (PamacAURInfos* self);
	GPtrArray* (*get_replaces) (PamacAURInfos* self);
	GPtrArray* (*get_conflicts) (PamacAURInfos* self);
	const gchar* (*get_packagebase) (PamacAURInfos* self);
	const gchar* (*get_maintainer) (PamacAURInfos* self);
	gdouble (*get_popularity) (PamacAURInfos* self);
	GDateTime* (*get_lastmodified) (PamacAURInfos* self);
	GDateTime* (*get_outofdate) (PamacAURInfos* self);
	GDateTime* (*get_firstsubmitted) (PamacAURInfos* self);
	guint64 (*get_numvotes) (PamacAURInfos* self);
};

static gpointer pamac_aur_infos_parent_class = NULL;

VALA_EXTERN GType pamac_aur_infos_get_type (void) G_GNUC_CONST ;
VALA_EXTERN GType pamac_aur_plugin_get_type (void) G_GNUC_CONST ;
VALA_EXTERN void pamac_aur_plugin_set_real_build_dir (PamacAURPlugin* self,
                                          const gchar* config_aur_build_dir);
VALA_EXTERN const gchar* pamac_aur_plugin_get_real_build_dir (PamacAURPlugin* self);
VALA_EXTERN PamacAURInfos* pamac_aur_plugin_get_infos (PamacAURPlugin* self,
                                           const gchar* pkgname);
VALA_EXTERN GPtrArray* pamac_aur_plugin_get_multi_infos (PamacAURPlugin* self,
                                             GPtrArray* pkgnames);
VALA_EXTERN GPtrArray* pamac_aur_plugin_get_providers (PamacAURPlugin* self,
                                           const gchar* depend);
VALA_EXTERN GPtrArray* pamac_aur_plugin_search (PamacAURPlugin* self,
                                    const gchar* search_string);
static void g_cclosure_user_marshal_VOID__STRING_DOUBLE (GClosure * closure,
                                                  GValue * return_value,
                                                  guint n_param_values,
                                                  const GValue * param_values,
                                                  gpointer invocation_hint,
                                                  gpointer marshal_data);
static GType pamac_aur_plugin_get_type_once (void);
VALA_EXTERN PamacAURInfos* pamac_aur_infos_construct (GType object_type);
VALA_EXTERN const gchar* pamac_aur_infos_get_name (PamacAURInfos* self);
VALA_EXTERN const gchar* pamac_aur_infos_get_version (PamacAURInfos* self);
VALA_EXTERN const gchar* pamac_aur_infos_get_desc (PamacAURInfos* self);
VALA_EXTERN const gchar* pamac_aur_infos_get_license (PamacAURInfos* self);
VALA_EXTERN const gchar* pamac_aur_infos_get_url (PamacAURInfos* self);
VALA_EXTERN GPtrArray* pamac_aur_infos_get_groups (PamacAURInfos* self);
VALA_EXTERN GPtrArray* pamac_aur_infos_get_depends (PamacAURInfos* self);
VALA_EXTERN GPtrArray* pamac_aur_infos_get_optdepends (PamacAURInfos* self);
VALA_EXTERN GPtrArray* pamac_aur_infos_get_makedepends (PamacAURInfos* self);
VALA_EXTERN GPtrArray* pamac_aur_infos_get_checkdepends (PamacAURInfos* self);
VALA_EXTERN GPtrArray* pamac_aur_infos_get_provides (PamacAURInfos* self);
VALA_EXTERN GPtrArray* pamac_aur_infos_get_replaces (PamacAURInfos* self);
VALA_EXTERN GPtrArray* pamac_aur_infos_get_conflicts (PamacAURInfos* self);
VALA_EXTERN const gchar* pamac_aur_infos_get_packagebase (PamacAURInfos* self);
VALA_EXTERN const gchar* pamac_aur_infos_get_maintainer (PamacAURInfos* self);
VALA_EXTERN gdouble pamac_aur_infos_get_popularity (PamacAURInfos* self);
VALA_EXTERN GDateTime* pamac_aur_infos_get_lastmodified (PamacAURInfos* self);
VALA_EXTERN GDateTime* pamac_aur_infos_get_outofdate (PamacAURInfos* self);
VALA_EXTERN GDateTime* pamac_aur_infos_get_firstsubmitted (PamacAURInfos* self);
VALA_EXTERN guint64 pamac_aur_infos_get_numvotes (PamacAURInfos* self);
static GType pamac_aur_infos_get_type_once (void);
static void _vala_pamac_aur_infos_get_property (GObject * object,
                                         guint property_id,
                                         GValue * value,
                                         GParamSpec * pspec);

void
pamac_aur_plugin_set_real_build_dir (PamacAURPlugin* self,
                                     const gchar* config_aur_build_dir)
{
	PamacAURPluginIface* _iface_;
	g_return_if_fail (self != NULL);
	_iface_ = PAMAC_AUR_PLUGIN_GET_INTERFACE (self);
	if (_iface_->set_real_build_dir) {
		_iface_->set_real_build_dir (self, config_aur_build_dir);
	}
}

const gchar*
pamac_aur_plugin_get_real_build_dir (PamacAURPlugin* self)
{
	PamacAURPluginIface* _iface_;
	g_return_val_if_fail (self != NULL, NULL);
	_iface_ = PAMAC_AUR_PLUGIN_GET_INTERFACE (self);
	if (_iface_->get_real_build_dir) {
		return _iface_->get_real_build_dir (self);
	}
	return NULL;
}

PamacAURInfos*
pamac_aur_plugin_get_infos (PamacAURPlugin* self,
                            const gchar* pkgname)
{
	PamacAURPluginIface* _iface_;
	g_return_val_if_fail (self != NULL, NULL);
	_iface_ = PAMAC_AUR_PLUGIN_GET_INTERFACE (self);
	if (_iface_->get_infos) {
		return _iface_->get_infos (self, pkgname);
	}
	return NULL;
}

GPtrArray*
pamac_aur_plugin_get_multi_infos (PamacAURPlugin* self,
                                  GPtrArray* pkgnames)
{
	PamacAURPluginIface* _iface_;
	g_return_val_if_fail (self != NULL, NULL);
	_iface_ = PAMAC_AUR_PLUGIN_GET_INTERFACE (self);
	if (_iface_->get_multi_infos) {
		return _iface_->get_multi_infos (self, pkgnames);
	}
	return NULL;
}

GPtrArray*
pamac_aur_plugin_get_providers (PamacAURPlugin* self,
                                const gchar* depend)
{
	PamacAURPluginIface* _iface_;
	g_return_val_if_fail (self != NULL, NULL);
	_iface_ = PAMAC_AUR_PLUGIN_GET_INTERFACE (self);
	if (_iface_->get_providers) {
		return _iface_->get_providers (self, depend);
	}
	return NULL;
}

GPtrArray*
pamac_aur_plugin_search (PamacAURPlugin* self,
                         const gchar* search_string)
{
	PamacAURPluginIface* _iface_;
	g_return_val_if_fail (self != NULL, NULL);
	_iface_ = PAMAC_AUR_PLUGIN_GET_INTERFACE (self);
	if (_iface_->search) {
		return _iface_->search (self, search_string);
	}
	return NULL;
}

static void
g_cclosure_user_marshal_VOID__STRING_DOUBLE (GClosure * closure,
                                             GValue * return_value,
                                             guint n_param_values,
                                             const GValue * param_values,
                                             gpointer invocation_hint,
                                             gpointer marshal_data)
{
	typedef void (*GMarshalFunc_VOID__STRING_DOUBLE) (gpointer data1, const char* arg_1, gdouble arg_2, gpointer data2);
	register GMarshalFunc_VOID__STRING_DOUBLE callback;
	register GCClosure * cc;
	register gpointer data1;
	register gpointer data2;
	cc = (GCClosure *) closure;
	g_return_if_fail (n_param_values == 3);
	if (G_CCLOSURE_SWAP_DATA (closure)) {
		data1 = closure->data;
		data2 = param_values->data[0].v_pointer;
	} else {
		data1 = param_values->data[0].v_pointer;
		data2 = closure->data;
	}
	callback = (GMarshalFunc_VOID__STRING_DOUBLE) (marshal_data ? marshal_data : cc->callback);
	callback (data1, g_value_get_string (param_values + 1), g_value_get_double (param_values + 2), data2);
}

static void
pamac_aur_plugin_default_init (PamacAURPluginIface * iface,
                               gpointer iface_data)
{
	pamac_aur_plugin_signals[PAMAC_AUR_PLUGIN_EMIT_DOWNLOAD_PROGRESS_SIGNAL] = g_signal_new ("emit-download-progress", PAMAC_TYPE_AUR_PLUGIN, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_user_marshal_VOID__STRING_DOUBLE, G_TYPE_NONE, 2, G_TYPE_STRING, G_TYPE_DOUBLE);
	pamac_aur_plugin_signals[PAMAC_AUR_PLUGIN_EMIT_DOWNLOAD_ERROR_SIGNAL] = g_signal_new ("emit-download-error", PAMAC_TYPE_AUR_PLUGIN, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__STRING, G_TYPE_NONE, 1, G_TYPE_STRING);
}

static GType
pamac_aur_plugin_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (PamacAURPluginIface), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) pamac_aur_plugin_default_init, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
	GType pamac_aur_plugin_type_id;
	pamac_aur_plugin_type_id = g_type_register_static (G_TYPE_INTERFACE, "PamacAURPlugin", &g_define_type_info, 0);
	g_type_interface_add_prerequisite (pamac_aur_plugin_type_id, G_TYPE_OBJECT);
	return pamac_aur_plugin_type_id;
}

GType
pamac_aur_plugin_get_type (void)
{
	static volatile gsize pamac_aur_plugin_type_id__once = 0;
	if (g_once_init_enter (&pamac_aur_plugin_type_id__once)) {
		GType pamac_aur_plugin_type_id;
		pamac_aur_plugin_type_id = pamac_aur_plugin_get_type_once ();
		g_once_init_leave (&pamac_aur_plugin_type_id__once, pamac_aur_plugin_type_id);
	}
	return pamac_aur_plugin_type_id__once;
}

PamacAURInfos*
pamac_aur_infos_construct (GType object_type)
{
	PamacAURInfos * self = NULL;
	self = (PamacAURInfos*) g_object_new (object_type, NULL);
	return self;
}

const gchar*
pamac_aur_infos_get_name (PamacAURInfos* self)
{
	PamacAURInfosClass* _klass_;
	g_return_val_if_fail (self != NULL, NULL);
	_klass_ = PAMAC_AUR_INFOS_GET_CLASS (self);
	if (_klass_->get_name) {
		return _klass_->get_name (self);
	}
	return NULL;
}

const gchar*
pamac_aur_infos_get_version (PamacAURInfos* self)
{
	PamacAURInfosClass* _klass_;
	g_return_val_if_fail (self != NULL, NULL);
	_klass_ = PAMAC_AUR_INFOS_GET_CLASS (self);
	if (_klass_->get_version) {
		return _klass_->get_version (self);
	}
	return NULL;
}

const gchar*
pamac_aur_infos_get_desc (PamacAURInfos* self)
{
	PamacAURInfosClass* _klass_;
	g_return_val_if_fail (self != NULL, NULL);
	_klass_ = PAMAC_AUR_INFOS_GET_CLASS (self);
	if (_klass_->get_desc) {
		return _klass_->get_desc (self);
	}
	return NULL;
}

const gchar*
pamac_aur_infos_get_license (PamacAURInfos* self)
{
	PamacAURInfosClass* _klass_;
	g_return_val_if_fail (self != NULL, NULL);
	_klass_ = PAMAC_AUR_INFOS_GET_CLASS (self);
	if (_klass_->get_license) {
		return _klass_->get_license (self);
	}
	return NULL;
}

const gchar*
pamac_aur_infos_get_url (PamacAURInfos* self)
{
	PamacAURInfosClass* _klass_;
	g_return_val_if_fail (self != NULL, NULL);
	_klass_ = PAMAC_AUR_INFOS_GET_CLASS (self);
	if (_klass_->get_url) {
		return _klass_->get_url (self);
	}
	return NULL;
}

GPtrArray*
pamac_aur_infos_get_groups (PamacAURInfos* self)
{
	PamacAURInfosClass* _klass_;
	g_return_val_if_fail (self != NULL, NULL);
	_klass_ = PAMAC_AUR_INFOS_GET_CLASS (self);
	if (_klass_->get_groups) {
		return _klass_->get_groups (self);
	}
	return NULL;
}

GPtrArray*
pamac_aur_infos_get_depends (PamacAURInfos* self)
{
	PamacAURInfosClass* _klass_;
	g_return_val_if_fail (self != NULL, NULL);
	_klass_ = PAMAC_AUR_INFOS_GET_CLASS (self);
	if (_klass_->get_depends) {
		return _klass_->get_depends (self);
	}
	return NULL;
}

GPtrArray*
pamac_aur_infos_get_optdepends (PamacAURInfos* self)
{
	PamacAURInfosClass* _klass_;
	g_return_val_if_fail (self != NULL, NULL);
	_klass_ = PAMAC_AUR_INFOS_GET_CLASS (self);
	if (_klass_->get_optdepends) {
		return _klass_->get_optdepends (self);
	}
	return NULL;
}

GPtrArray*
pamac_aur_infos_get_makedepends (PamacAURInfos* self)
{
	PamacAURInfosClass* _klass_;
	g_return_val_if_fail (self != NULL, NULL);
	_klass_ = PAMAC_AUR_INFOS_GET_CLASS (self);
	if (_klass_->get_makedepends) {
		return _klass_->get_makedepends (self);
	}
	return NULL;
}

GPtrArray*
pamac_aur_infos_get_checkdepends (PamacAURInfos* self)
{
	PamacAURInfosClass* _klass_;
	g_return_val_if_fail (self != NULL, NULL);
	_klass_ = PAMAC_AUR_INFOS_GET_CLASS (self);
	if (_klass_->get_checkdepends) {
		return _klass_->get_checkdepends (self);
	}
	return NULL;
}

GPtrArray*
pamac_aur_infos_get_provides (PamacAURInfos* self)
{
	PamacAURInfosClass* _klass_;
	g_return_val_if_fail (self != NULL, NULL);
	_klass_ = PAMAC_AUR_INFOS_GET_CLASS (self);
	if (_klass_->get_provides) {
		return _klass_->get_provides (self);
	}
	return NULL;
}

GPtrArray*
pamac_aur_infos_get_replaces (PamacAURInfos* self)
{
	PamacAURInfosClass* _klass_;
	g_return_val_if_fail (self != NULL, NULL);
	_klass_ = PAMAC_AUR_INFOS_GET_CLASS (self);
	if (_klass_->get_replaces) {
		return _klass_->get_replaces (self);
	}
	return NULL;
}

GPtrArray*
pamac_aur_infos_get_conflicts (PamacAURInfos* self)
{
	PamacAURInfosClass* _klass_;
	g_return_val_if_fail (self != NULL, NULL);
	_klass_ = PAMAC_AUR_INFOS_GET_CLASS (self);
	if (_klass_->get_conflicts) {
		return _klass_->get_conflicts (self);
	}
	return NULL;
}

const gchar*
pamac_aur_infos_get_packagebase (PamacAURInfos* self)
{
	PamacAURInfosClass* _klass_;
	g_return_val_if_fail (self != NULL, NULL);
	_klass_ = PAMAC_AUR_INFOS_GET_CLASS (self);
	if (_klass_->get_packagebase) {
		return _klass_->get_packagebase (self);
	}
	return NULL;
}

const gchar*
pamac_aur_infos_get_maintainer (PamacAURInfos* self)
{
	PamacAURInfosClass* _klass_;
	g_return_val_if_fail (self != NULL, NULL);
	_klass_ = PAMAC_AUR_INFOS_GET_CLASS (self);
	if (_klass_->get_maintainer) {
		return _klass_->get_maintainer (self);
	}
	return NULL;
}

gdouble
pamac_aur_infos_get_popularity (PamacAURInfos* self)
{
	PamacAURInfosClass* _klass_;
	g_return_val_if_fail (self != NULL, 0.0);
	_klass_ = PAMAC_AUR_INFOS_GET_CLASS (self);
	if (_klass_->get_popularity) {
		return _klass_->get_popularity (self);
	}
	return -1.0;
}

GDateTime*
pamac_aur_infos_get_lastmodified (PamacAURInfos* self)
{
	PamacAURInfosClass* _klass_;
	g_return_val_if_fail (self != NULL, NULL);
	_klass_ = PAMAC_AUR_INFOS_GET_CLASS (self);
	if (_klass_->get_lastmodified) {
		return _klass_->get_lastmodified (self);
	}
	return NULL;
}

GDateTime*
pamac_aur_infos_get_outofdate (PamacAURInfos* self)
{
	PamacAURInfosClass* _klass_;
	g_return_val_if_fail (self != NULL, NULL);
	_klass_ = PAMAC_AUR_INFOS_GET_CLASS (self);
	if (_klass_->get_outofdate) {
		return _klass_->get_outofdate (self);
	}
	return NULL;
}

GDateTime*
pamac_aur_infos_get_firstsubmitted (PamacAURInfos* self)
{
	PamacAURInfosClass* _klass_;
	g_return_val_if_fail (self != NULL, NULL);
	_klass_ = PAMAC_AUR_INFOS_GET_CLASS (self);
	if (_klass_->get_firstsubmitted) {
		return _klass_->get_firstsubmitted (self);
	}
	return NULL;
}

guint64
pamac_aur_infos_get_numvotes (PamacAURInfos* self)
{
	PamacAURInfosClass* _klass_;
	g_return_val_if_fail (self != NULL, 0ULL);
	_klass_ = PAMAC_AUR_INFOS_GET_CLASS (self);
	if (_klass_->get_numvotes) {
		return _klass_->get_numvotes (self);
	}
	return 0ULL;
}

static void
pamac_aur_infos_class_init (PamacAURInfosClass * klass,
                            gpointer klass_data)
{
	pamac_aur_infos_parent_class = g_type_class_peek_parent (klass);
	G_OBJECT_CLASS (klass)->get_property = _vala_pamac_aur_infos_get_property;
	g_object_class_install_property (G_OBJECT_CLASS (klass), PAMAC_AUR_INFOS_NAME_PROPERTY, pamac_aur_infos_properties[PAMAC_AUR_INFOS_NAME_PROPERTY] = g_param_spec_string ("name", "name", "name", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), PAMAC_AUR_INFOS_VERSION_PROPERTY, pamac_aur_infos_properties[PAMAC_AUR_INFOS_VERSION_PROPERTY] = g_param_spec_string ("version", "version", "version", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), PAMAC_AUR_INFOS_DESC_PROPERTY, pamac_aur_infos_properties[PAMAC_AUR_INFOS_DESC_PROPERTY] = g_param_spec_string ("desc", "desc", "desc", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), PAMAC_AUR_INFOS_LICENSE_PROPERTY, pamac_aur_infos_properties[PAMAC_AUR_INFOS_LICENSE_PROPERTY] = g_param_spec_string ("license", "license", "license", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), PAMAC_AUR_INFOS_URL_PROPERTY, pamac_aur_infos_properties[PAMAC_AUR_INFOS_URL_PROPERTY] = g_param_spec_string ("url", "url", "url", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), PAMAC_AUR_INFOS_GROUPS_PROPERTY, pamac_aur_infos_properties[PAMAC_AUR_INFOS_GROUPS_PROPERTY] = g_param_spec_boxed ("groups", "groups", "groups", G_TYPE_PTR_ARRAY, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), PAMAC_AUR_INFOS_DEPENDS_PROPERTY, pamac_aur_infos_properties[PAMAC_AUR_INFOS_DEPENDS_PROPERTY] = g_param_spec_boxed ("depends", "depends", "depends", G_TYPE_PTR_ARRAY, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), PAMAC_AUR_INFOS_OPTDEPENDS_PROPERTY, pamac_aur_infos_properties[PAMAC_AUR_INFOS_OPTDEPENDS_PROPERTY] = g_param_spec_boxed ("optdepends", "optdepends", "optdepends", G_TYPE_PTR_ARRAY, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), PAMAC_AUR_INFOS_MAKEDEPENDS_PROPERTY, pamac_aur_infos_properties[PAMAC_AUR_INFOS_MAKEDEPENDS_PROPERTY] = g_param_spec_boxed ("makedepends", "makedepends", "makedepends", G_TYPE_PTR_ARRAY, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), PAMAC_AUR_INFOS_CHECKDEPENDS_PROPERTY, pamac_aur_infos_properties[PAMAC_AUR_INFOS_CHECKDEPENDS_PROPERTY] = g_param_spec_boxed ("checkdepends", "checkdepends", "checkdepends", G_TYPE_PTR_ARRAY, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), PAMAC_AUR_INFOS_PROVIDES_PROPERTY, pamac_aur_infos_properties[PAMAC_AUR_INFOS_PROVIDES_PROPERTY] = g_param_spec_boxed ("provides", "provides", "provides", G_TYPE_PTR_ARRAY, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), PAMAC_AUR_INFOS_REPLACES_PROPERTY, pamac_aur_infos_properties[PAMAC_AUR_INFOS_REPLACES_PROPERTY] = g_param_spec_boxed ("replaces", "replaces", "replaces", G_TYPE_PTR_ARRAY, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), PAMAC_AUR_INFOS_CONFLICTS_PROPERTY, pamac_aur_infos_properties[PAMAC_AUR_INFOS_CONFLICTS_PROPERTY] = g_param_spec_boxed ("conflicts", "conflicts", "conflicts", G_TYPE_PTR_ARRAY, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), PAMAC_AUR_INFOS_PACKAGEBASE_PROPERTY, pamac_aur_infos_properties[PAMAC_AUR_INFOS_PACKAGEBASE_PROPERTY] = g_param_spec_string ("packagebase", "packagebase", "packagebase", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), PAMAC_AUR_INFOS_MAINTAINER_PROPERTY, pamac_aur_infos_properties[PAMAC_AUR_INFOS_MAINTAINER_PROPERTY] = g_param_spec_string ("maintainer", "maintainer", "maintainer", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), PAMAC_AUR_INFOS_POPULARITY_PROPERTY, pamac_aur_infos_properties[PAMAC_AUR_INFOS_POPULARITY_PROPERTY] = g_param_spec_double ("popularity", "popularity", "popularity", -G_MAXDOUBLE, G_MAXDOUBLE, 0.0, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), PAMAC_AUR_INFOS_LASTMODIFIED_PROPERTY, pamac_aur_infos_properties[PAMAC_AUR_INFOS_LASTMODIFIED_PROPERTY] = g_param_spec_boxed ("lastmodified", "lastmodified", "lastmodified", G_TYPE_DATE_TIME, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), PAMAC_AUR_INFOS_OUTOFDATE_PROPERTY, pamac_aur_infos_properties[PAMAC_AUR_INFOS_OUTOFDATE_PROPERTY] = g_param_spec_boxed ("outofdate", "outofdate", "outofdate", G_TYPE_DATE_TIME, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), PAMAC_AUR_INFOS_FIRSTSUBMITTED_PROPERTY, pamac_aur_infos_properties[PAMAC_AUR_INFOS_FIRSTSUBMITTED_PROPERTY] = g_param_spec_boxed ("firstsubmitted", "firstsubmitted", "firstsubmitted", G_TYPE_DATE_TIME, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), PAMAC_AUR_INFOS_NUMVOTES_PROPERTY, pamac_aur_infos_properties[PAMAC_AUR_INFOS_NUMVOTES_PROPERTY] = g_param_spec_uint64 ("numvotes", "numvotes", "numvotes", 0, G_MAXUINT64, 0U, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE));
}

static void
pamac_aur_infos_instance_init (PamacAURInfos * self,
                               gpointer klass)
{
}

static GType
pamac_aur_infos_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (PamacAURInfosClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) pamac_aur_infos_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (PamacAURInfos), 0, (GInstanceInitFunc) pamac_aur_infos_instance_init, NULL };
	GType pamac_aur_infos_type_id;
	pamac_aur_infos_type_id = g_type_register_static (G_TYPE_OBJECT, "PamacAURInfos", &g_define_type_info, G_TYPE_FLAG_ABSTRACT);
	return pamac_aur_infos_type_id;
}

GType
pamac_aur_infos_get_type (void)
{
	static volatile gsize pamac_aur_infos_type_id__once = 0;
	if (g_once_init_enter (&pamac_aur_infos_type_id__once)) {
		GType pamac_aur_infos_type_id;
		pamac_aur_infos_type_id = pamac_aur_infos_get_type_once ();
		g_once_init_leave (&pamac_aur_infos_type_id__once, pamac_aur_infos_type_id);
	}
	return pamac_aur_infos_type_id__once;
}

static void
_vala_pamac_aur_infos_get_property (GObject * object,
                                    guint property_id,
                                    GValue * value,
                                    GParamSpec * pspec)
{
	PamacAURInfos * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, PAMAC_TYPE_AUR_INFOS, PamacAURInfos);
	switch (property_id) {
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

