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

/* -*- Mode: Vala; indent-tabs-mode: nil; tab-width: 2 -*- */
/*
    This file is part of Déjà Dup.
    For copyright information, see AUTHORS.

    Déjà Dup 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.

    Déjà Dup 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 Déjà Dup.  If not, see <http://www.gnu.org/licenses/>.
*/

#include <glib.h>
#include <glib-object.h>
#include <stdlib.h>
#include <string.h>
#include <gio/gio.h>
#include <float.h>
#include <math.h>
#include <libpeas/peas.h>


#define DEJA_DUP_TYPE_TOOL_JOB (deja_dup_tool_job_get_type ())
#define DEJA_DUP_TOOL_JOB(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DEJA_DUP_TYPE_TOOL_JOB, DejaDupToolJob))
#define DEJA_DUP_TOOL_JOB_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DEJA_DUP_TYPE_TOOL_JOB, DejaDupToolJobClass))
#define DEJA_DUP_IS_TOOL_JOB(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DEJA_DUP_TYPE_TOOL_JOB))
#define DEJA_DUP_IS_TOOL_JOB_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DEJA_DUP_TYPE_TOOL_JOB))
#define DEJA_DUP_TOOL_JOB_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DEJA_DUP_TYPE_TOOL_JOB, DejaDupToolJobClass))

typedef struct _DejaDupToolJob DejaDupToolJob;
typedef struct _DejaDupToolJobClass DejaDupToolJobClass;
typedef struct _DejaDupToolJobPrivate DejaDupToolJobPrivate;

#define DEJA_DUP_TOOL_JOB_TYPE_MODE (deja_dup_tool_job_mode_get_type ())

#define DEJA_DUP_TOOL_JOB_TYPE_FLAGS (deja_dup_tool_job_flags_get_type ())

#define DEJA_DUP_TYPE_BACKEND (deja_dup_backend_get_type ())
#define DEJA_DUP_BACKEND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DEJA_DUP_TYPE_BACKEND, DejaDupBackend))
#define DEJA_DUP_BACKEND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DEJA_DUP_TYPE_BACKEND, DejaDupBackendClass))
#define DEJA_DUP_IS_BACKEND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DEJA_DUP_TYPE_BACKEND))
#define DEJA_DUP_IS_BACKEND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DEJA_DUP_TYPE_BACKEND))
#define DEJA_DUP_BACKEND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DEJA_DUP_TYPE_BACKEND, DejaDupBackendClass))

typedef struct _DejaDupBackend DejaDupBackend;
typedef struct _DejaDupBackendClass DejaDupBackendClass;
#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
#define _g_free0(var) (var = (g_free (var), NULL))
#define __g_list_free__g_object_unref0_0(var) ((var == NULL) ? NULL : (var = (_g_list_free__g_object_unref0_ (var), NULL)))

#define DEJA_DUP_TYPE_TOOL_PLUGIN (deja_dup_tool_plugin_get_type ())
#define DEJA_DUP_TOOL_PLUGIN(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DEJA_DUP_TYPE_TOOL_PLUGIN, DejaDupToolPlugin))
#define DEJA_DUP_TOOL_PLUGIN_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DEJA_DUP_TYPE_TOOL_PLUGIN, DejaDupToolPluginClass))
#define DEJA_DUP_IS_TOOL_PLUGIN(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DEJA_DUP_TYPE_TOOL_PLUGIN))
#define DEJA_DUP_IS_TOOL_PLUGIN_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DEJA_DUP_TYPE_TOOL_PLUGIN))
#define DEJA_DUP_TOOL_PLUGIN_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DEJA_DUP_TYPE_TOOL_PLUGIN, DejaDupToolPluginClass))

typedef struct _DejaDupToolPlugin DejaDupToolPlugin;
typedef struct _DejaDupToolPluginClass DejaDupToolPluginClass;
typedef struct _DejaDupToolPluginPrivate DejaDupToolPluginPrivate;

struct _DejaDupToolJob {
	GObject parent_instance;
	DejaDupToolJobPrivate * priv;
	GList* includes;
	GList* excludes;
	GList* _restore_files;
};

struct _DejaDupToolJobClass {
	GObjectClass parent_class;
	void (*start) (DejaDupToolJob* self);
	void (*cancel) (DejaDupToolJob* self);
	void (*stop) (DejaDupToolJob* self);
	void (*pause) (DejaDupToolJob* self, const gchar* reason);
	void (*resume) (DejaDupToolJob* self);
};

typedef enum  {
	DEJA_DUP_TOOL_JOB_MODE_INVALID,
	DEJA_DUP_TOOL_JOB_MODE_BACKUP,
	DEJA_DUP_TOOL_JOB_MODE_RESTORE,
	DEJA_DUP_TOOL_JOB_MODE_STATUS,
	DEJA_DUP_TOOL_JOB_MODE_LIST,
	DEJA_DUP_TOOL_JOB_MODE_HISTORY
} DejaDupToolJobMode;

typedef enum  {
	DEJA_DUP_TOOL_JOB_FLAGS_NO_PROGRESS,
	DEJA_DUP_TOOL_JOB_FLAGS_NO_CACHE
} DejaDupToolJobFlags;

struct _DejaDupToolJobPrivate {
	DejaDupToolJobMode _mode;
	DejaDupToolJobFlags _flags;
	GFile* _local;
	DejaDupBackend* _backend;
	gchar* _encrypt_password;
	gchar* _time;
};

struct _DejaDupToolPlugin {
	PeasExtensionBase parent_instance;
	DejaDupToolPluginPrivate * priv;
};

struct _DejaDupToolPluginClass {
	PeasExtensionBaseClass parent_class;
	void (*activate) (DejaDupToolPlugin* self);
	void (*deactivate) (DejaDupToolPlugin* self);
	void (*update_state) (DejaDupToolPlugin* self);
	DejaDupToolJob* (*create_job) (DejaDupToolPlugin* self, GError** error);
};

struct _DejaDupToolPluginPrivate {
	GObject* _object;
	gchar* _name;
};


static gpointer deja_dup_tool_job_parent_class = NULL;
static gpointer deja_dup_tool_plugin_parent_class = NULL;
static PeasActivatableInterface* deja_dup_tool_plugin_peas_activatable_parent_iface = NULL;

GType deja_dup_tool_job_get_type (void) G_GNUC_CONST;
GType deja_dup_tool_job_mode_get_type (void) G_GNUC_CONST;
GType deja_dup_tool_job_flags_get_type (void) G_GNUC_CONST;
GType deja_dup_backend_get_type (void) G_GNUC_CONST;
#define DEJA_DUP_TOOL_JOB_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), DEJA_DUP_TYPE_TOOL_JOB, DejaDupToolJobPrivate))
enum  {
	DEJA_DUP_TOOL_JOB_DUMMY_PROPERTY,
	DEJA_DUP_TOOL_JOB_MODE,
	DEJA_DUP_TOOL_JOB_FLAGS,
	DEJA_DUP_TOOL_JOB_LOCAL,
	DEJA_DUP_TOOL_JOB_BACKEND,
	DEJA_DUP_TOOL_JOB_ENCRYPT_PASSWORD,
	DEJA_DUP_TOOL_JOB_RESTORE_FILES,
	DEJA_DUP_TOOL_JOB_TIME
};
static void _g_object_unref0_ (gpointer var);
static void _g_list_free__g_object_unref0_ (GList* self);
void deja_dup_tool_job_start (DejaDupToolJob* self);
static void deja_dup_tool_job_real_start (DejaDupToolJob* self);
void deja_dup_tool_job_cancel (DejaDupToolJob* self);
static void deja_dup_tool_job_real_cancel (DejaDupToolJob* self);
void deja_dup_tool_job_stop (DejaDupToolJob* self);
static void deja_dup_tool_job_real_stop (DejaDupToolJob* self);
void deja_dup_tool_job_pause (DejaDupToolJob* self, const gchar* reason);
static void deja_dup_tool_job_real_pause (DejaDupToolJob* self, const gchar* reason);
void deja_dup_tool_job_resume (DejaDupToolJob* self);
static void deja_dup_tool_job_real_resume (DejaDupToolJob* self);
DejaDupToolJob* deja_dup_tool_job_construct (GType object_type);
DejaDupToolJobMode deja_dup_tool_job_get_mode (DejaDupToolJob* self);
void deja_dup_tool_job_set_mode (DejaDupToolJob* self, DejaDupToolJobMode value);
DejaDupToolJobFlags deja_dup_tool_job_get_flags (DejaDupToolJob* self);
void deja_dup_tool_job_set_flags (DejaDupToolJob* self, DejaDupToolJobFlags value);
GFile* deja_dup_tool_job_get_local (DejaDupToolJob* self);
void deja_dup_tool_job_set_local (DejaDupToolJob* self, GFile* value);
DejaDupBackend* deja_dup_tool_job_get_backend (DejaDupToolJob* self);
void deja_dup_tool_job_set_backend (DejaDupToolJob* self, DejaDupBackend* value);
const gchar* deja_dup_tool_job_get_encrypt_password (DejaDupToolJob* self);
void deja_dup_tool_job_set_encrypt_password (DejaDupToolJob* self, const gchar* value);
GList* deja_dup_tool_job_get_restore_files (DejaDupToolJob* self);
void deja_dup_tool_job_set_restore_files (DejaDupToolJob* self, GList* value);
const gchar* deja_dup_tool_job_get_time (DejaDupToolJob* self);
void deja_dup_tool_job_set_time (DejaDupToolJob* self, const gchar* value);
static void g_cclosure_user_marshal_VOID__BOOLEAN_BOOLEAN_STRING (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data);
static void g_cclosure_user_marshal_VOID__STRING_STRING (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data);
static void g_cclosure_user_marshal_VOID__OBJECT_BOOLEAN (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data);
static void deja_dup_tool_job_finalize (GObject* obj);
static void _vala_deja_dup_tool_job_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
static void _vala_deja_dup_tool_job_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec);
GType deja_dup_tool_plugin_get_type (void) G_GNUC_CONST;
#define DEJA_DUP_TOOL_PLUGIN_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), DEJA_DUP_TYPE_TOOL_PLUGIN, DejaDupToolPluginPrivate))
enum  {
	DEJA_DUP_TOOL_PLUGIN_DUMMY_PROPERTY,
	DEJA_DUP_TOOL_PLUGIN_OBJECT,
	DEJA_DUP_TOOL_PLUGIN_NAME
};
void deja_dup_tool_plugin_activate (DejaDupToolPlugin* self);
static void deja_dup_tool_plugin_real_activate (DejaDupToolPlugin* self);
void deja_dup_tool_plugin_deactivate (DejaDupToolPlugin* self);
static void deja_dup_tool_plugin_real_deactivate (DejaDupToolPlugin* self);
void deja_dup_tool_plugin_update_state (DejaDupToolPlugin* self);
static void deja_dup_tool_plugin_real_update_state (DejaDupToolPlugin* self);
DejaDupToolJob* deja_dup_tool_plugin_create_job (DejaDupToolPlugin* self, GError** error);
static DejaDupToolJob* deja_dup_tool_plugin_real_create_job (DejaDupToolPlugin* self, GError** error);
DejaDupToolPlugin* deja_dup_tool_plugin_construct (GType object_type);
const gchar* deja_dup_tool_plugin_get_name (DejaDupToolPlugin* self);
void deja_dup_tool_plugin_set_name (DejaDupToolPlugin* self, const gchar* value);
static void deja_dup_tool_plugin_finalize (GObject* obj);
static void _vala_deja_dup_tool_plugin_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
static void _vala_deja_dup_tool_plugin_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec);


GType deja_dup_tool_job_mode_get_type (void) {
	static volatile gsize deja_dup_tool_job_mode_type_id__volatile = 0;
	if (g_once_init_enter (&deja_dup_tool_job_mode_type_id__volatile)) {
		static const GEnumValue values[] = {{DEJA_DUP_TOOL_JOB_MODE_INVALID, "DEJA_DUP_TOOL_JOB_MODE_INVALID", "invalid"}, {DEJA_DUP_TOOL_JOB_MODE_BACKUP, "DEJA_DUP_TOOL_JOB_MODE_BACKUP", "backup"}, {DEJA_DUP_TOOL_JOB_MODE_RESTORE, "DEJA_DUP_TOOL_JOB_MODE_RESTORE", "restore"}, {DEJA_DUP_TOOL_JOB_MODE_STATUS, "DEJA_DUP_TOOL_JOB_MODE_STATUS", "status"}, {DEJA_DUP_TOOL_JOB_MODE_LIST, "DEJA_DUP_TOOL_JOB_MODE_LIST", "list"}, {DEJA_DUP_TOOL_JOB_MODE_HISTORY, "DEJA_DUP_TOOL_JOB_MODE_HISTORY", "history"}, {0, NULL, NULL}};
		GType deja_dup_tool_job_mode_type_id;
		deja_dup_tool_job_mode_type_id = g_enum_register_static ("DejaDupToolJobMode", values);
		g_once_init_leave (&deja_dup_tool_job_mode_type_id__volatile, deja_dup_tool_job_mode_type_id);
	}
	return deja_dup_tool_job_mode_type_id__volatile;
}


GType deja_dup_tool_job_flags_get_type (void) {
	static volatile gsize deja_dup_tool_job_flags_type_id__volatile = 0;
	if (g_once_init_enter (&deja_dup_tool_job_flags_type_id__volatile)) {
		static const GEnumValue values[] = {{DEJA_DUP_TOOL_JOB_FLAGS_NO_PROGRESS, "DEJA_DUP_TOOL_JOB_FLAGS_NO_PROGRESS", "no-progress"}, {DEJA_DUP_TOOL_JOB_FLAGS_NO_CACHE, "DEJA_DUP_TOOL_JOB_FLAGS_NO_CACHE", "no-cache"}, {0, NULL, NULL}};
		GType deja_dup_tool_job_flags_type_id;
		deja_dup_tool_job_flags_type_id = g_enum_register_static ("DejaDupToolJobFlags", values);
		g_once_init_leave (&deja_dup_tool_job_flags_type_id__volatile, deja_dup_tool_job_flags_type_id);
	}
	return deja_dup_tool_job_flags_type_id__volatile;
}


static void _g_object_unref0_ (gpointer var) {
	(var == NULL) ? NULL : (var = (g_object_unref (var), NULL));
}


static void _g_list_free__g_object_unref0_ (GList* self) {
	g_list_foreach (self, (GFunc) _g_object_unref0_, NULL);
	g_list_free (self);
}


static void deja_dup_tool_job_real_start (DejaDupToolJob* self) {
	g_critical ("Type `%s' does not implement abstract method `deja_dup_tool_job_start'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
	return;
}


void deja_dup_tool_job_start (DejaDupToolJob* self) {
	g_return_if_fail (self != NULL);
	DEJA_DUP_TOOL_JOB_GET_CLASS (self)->start (self);
}


static void deja_dup_tool_job_real_cancel (DejaDupToolJob* self) {
	g_critical ("Type `%s' does not implement abstract method `deja_dup_tool_job_cancel'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
	return;
}


void deja_dup_tool_job_cancel (DejaDupToolJob* self) {
	g_return_if_fail (self != NULL);
	DEJA_DUP_TOOL_JOB_GET_CLASS (self)->cancel (self);
}


static void deja_dup_tool_job_real_stop (DejaDupToolJob* self) {
	g_critical ("Type `%s' does not implement abstract method `deja_dup_tool_job_stop'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
	return;
}


void deja_dup_tool_job_stop (DejaDupToolJob* self) {
	g_return_if_fail (self != NULL);
	DEJA_DUP_TOOL_JOB_GET_CLASS (self)->stop (self);
}


static void deja_dup_tool_job_real_pause (DejaDupToolJob* self, const gchar* reason) {
	g_critical ("Type `%s' does not implement abstract method `deja_dup_tool_job_pause'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
	return;
}


void deja_dup_tool_job_pause (DejaDupToolJob* self, const gchar* reason) {
	g_return_if_fail (self != NULL);
	DEJA_DUP_TOOL_JOB_GET_CLASS (self)->pause (self, reason);
}


static void deja_dup_tool_job_real_resume (DejaDupToolJob* self) {
	g_critical ("Type `%s' does not implement abstract method `deja_dup_tool_job_resume'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
	return;
}


void deja_dup_tool_job_resume (DejaDupToolJob* self) {
	g_return_if_fail (self != NULL);
	DEJA_DUP_TOOL_JOB_GET_CLASS (self)->resume (self);
}


DejaDupToolJob* deja_dup_tool_job_construct (GType object_type) {
	DejaDupToolJob * self = NULL;
	self = (DejaDupToolJob*) g_object_new (object_type, NULL);
	return self;
}


DejaDupToolJobMode deja_dup_tool_job_get_mode (DejaDupToolJob* self) {
	DejaDupToolJobMode result;
	DejaDupToolJobMode _tmp0_ = 0;
	g_return_val_if_fail (self != NULL, 0);
	_tmp0_ = self->priv->_mode;
	result = _tmp0_;
	return result;
}


void deja_dup_tool_job_set_mode (DejaDupToolJob* self, DejaDupToolJobMode value) {
	DejaDupToolJobMode _tmp0_ = 0;
	g_return_if_fail (self != NULL);
	_tmp0_ = value;
	self->priv->_mode = _tmp0_;
	g_object_notify ((GObject *) self, "mode");
}


DejaDupToolJobFlags deja_dup_tool_job_get_flags (DejaDupToolJob* self) {
	DejaDupToolJobFlags result;
	DejaDupToolJobFlags _tmp0_ = 0;
	g_return_val_if_fail (self != NULL, 0);
	_tmp0_ = self->priv->_flags;
	result = _tmp0_;
	return result;
}


void deja_dup_tool_job_set_flags (DejaDupToolJob* self, DejaDupToolJobFlags value) {
	DejaDupToolJobFlags _tmp0_ = 0;
	g_return_if_fail (self != NULL);
	_tmp0_ = value;
	self->priv->_flags = _tmp0_;
	g_object_notify ((GObject *) self, "flags");
}


GFile* deja_dup_tool_job_get_local (DejaDupToolJob* self) {
	GFile* result;
	GFile* _tmp0_ = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_local;
	result = _tmp0_;
	return result;
}


static gpointer _g_object_ref0 (gpointer self) {
	return self ? g_object_ref (self) : NULL;
}


void deja_dup_tool_job_set_local (DejaDupToolJob* self, GFile* value) {
	GFile* _tmp0_ = NULL;
	GFile* _tmp1_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = value;
	_tmp1_ = _g_object_ref0 (_tmp0_);
	_g_object_unref0 (self->priv->_local);
	self->priv->_local = _tmp1_;
	g_object_notify ((GObject *) self, "local");
}


DejaDupBackend* deja_dup_tool_job_get_backend (DejaDupToolJob* self) {
	DejaDupBackend* result;
	DejaDupBackend* _tmp0_ = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_backend;
	result = _tmp0_;
	return result;
}


void deja_dup_tool_job_set_backend (DejaDupToolJob* self, DejaDupBackend* value) {
	DejaDupBackend* _tmp0_ = NULL;
	DejaDupBackend* _tmp1_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = value;
	_tmp1_ = _g_object_ref0 (_tmp0_);
	_g_object_unref0 (self->priv->_backend);
	self->priv->_backend = _tmp1_;
	g_object_notify ((GObject *) self, "backend");
}


const gchar* deja_dup_tool_job_get_encrypt_password (DejaDupToolJob* self) {
	const gchar* result;
	const gchar* _tmp0_ = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_encrypt_password;
	result = _tmp0_;
	return result;
}


void deja_dup_tool_job_set_encrypt_password (DejaDupToolJob* self, const gchar* value) {
	const gchar* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = value;
	_tmp1_ = g_strdup (_tmp0_);
	_g_free0 (self->priv->_encrypt_password);
	self->priv->_encrypt_password = _tmp1_;
	g_object_notify ((GObject *) self, "encrypt-password");
}


GList* deja_dup_tool_job_get_restore_files (DejaDupToolJob* self) {
	GList* result;
	GList* _tmp0_ = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->_restore_files;
	result = _tmp0_;
	return result;
}


void deja_dup_tool_job_set_restore_files (DejaDupToolJob* self, GList* value) {
	GList* _tmp0_ = NULL;
	GList* _tmp3_ = NULL;
	GList* _tmp4_ = NULL;
	GList* _tmp5_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = self->_restore_files;
	{
		GList* f_collection = NULL;
		GList* f_it = NULL;
		f_collection = _tmp0_;
		for (f_it = f_collection; f_it != NULL; f_it = f_it->next) {
			GFile* _tmp1_ = NULL;
			GFile* f = NULL;
			_tmp1_ = _g_object_ref0 ((GFile*) f_it->data);
			f = _tmp1_;
			{
				GFile* _tmp2_ = NULL;
				_tmp2_ = f;
				g_object_unref ((GObject*) _tmp2_);
				_g_object_unref0 (f);
			}
		}
	}
	_tmp3_ = value;
	_tmp4_ = g_list_copy (_tmp3_);
	__g_list_free__g_object_unref0_0 (self->_restore_files);
	self->_restore_files = _tmp4_;
	_tmp5_ = self->_restore_files;
	{
		GList* f_collection = NULL;
		GList* f_it = NULL;
		f_collection = _tmp5_;
		for (f_it = f_collection; f_it != NULL; f_it = f_it->next) {
			GFile* _tmp6_ = NULL;
			GFile* f = NULL;
			_tmp6_ = _g_object_ref0 ((GFile*) f_it->data);
			f = _tmp6_;
			{
				GFile* _tmp7_ = NULL;
				_tmp7_ = f;
				g_object_ref ((GObject*) _tmp7_);
				_g_object_unref0 (f);
			}
		}
	}
	g_object_notify ((GObject *) self, "restore-files");
}


const gchar* deja_dup_tool_job_get_time (DejaDupToolJob* self) {
	const gchar* result;
	const gchar* _tmp0_ = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_time;
	result = _tmp0_;
	return result;
}


void deja_dup_tool_job_set_time (DejaDupToolJob* self, const gchar* value) {
	const gchar* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = value;
	_tmp1_ = g_strdup (_tmp0_);
	_g_free0 (self->priv->_time);
	self->priv->_time = _tmp1_;
	g_object_notify ((GObject *) self, "time");
}


static void g_cclosure_user_marshal_VOID__BOOLEAN_BOOLEAN_STRING (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data) {
	typedef void (*GMarshalFunc_VOID__BOOLEAN_BOOLEAN_STRING) (gpointer data1, gboolean arg_1, gboolean arg_2, const char* arg_3, gpointer data2);
	register GMarshalFunc_VOID__BOOLEAN_BOOLEAN_STRING callback;
	register GCClosure * cc;
	register gpointer data1;
	register gpointer data2;
	cc = (GCClosure *) closure;
	g_return_if_fail (n_param_values == 4);
	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__BOOLEAN_BOOLEAN_STRING) (marshal_data ? marshal_data : cc->callback);
	callback (data1, g_value_get_boolean (param_values + 1), g_value_get_boolean (param_values + 2), g_value_get_string (param_values + 3), data2);
}


static void g_cclosure_user_marshal_VOID__STRING_STRING (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data) {
	typedef void (*GMarshalFunc_VOID__STRING_STRING) (gpointer data1, const char* arg_1, const char* arg_2, gpointer data2);
	register GMarshalFunc_VOID__STRING_STRING 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_STRING) (marshal_data ? marshal_data : cc->callback);
	callback (data1, g_value_get_string (param_values + 1), g_value_get_string (param_values + 2), data2);
}


static void g_cclosure_user_marshal_VOID__OBJECT_BOOLEAN (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data) {
	typedef void (*GMarshalFunc_VOID__OBJECT_BOOLEAN) (gpointer data1, gpointer arg_1, gboolean arg_2, gpointer data2);
	register GMarshalFunc_VOID__OBJECT_BOOLEAN 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__OBJECT_BOOLEAN) (marshal_data ? marshal_data : cc->callback);
	callback (data1, g_value_get_object (param_values + 1), g_value_get_boolean (param_values + 2), data2);
}


static void deja_dup_tool_job_class_init (DejaDupToolJobClass * klass) {
	deja_dup_tool_job_parent_class = g_type_class_peek_parent (klass);
	g_type_class_add_private (klass, sizeof (DejaDupToolJobPrivate));
	((DejaDupToolJobClass *) klass)->start = deja_dup_tool_job_real_start;
	((DejaDupToolJobClass *) klass)->cancel = deja_dup_tool_job_real_cancel;
	((DejaDupToolJobClass *) klass)->stop = deja_dup_tool_job_real_stop;
	((DejaDupToolJobClass *) klass)->pause = deja_dup_tool_job_real_pause;
	((DejaDupToolJobClass *) klass)->resume = deja_dup_tool_job_real_resume;
	G_OBJECT_CLASS (klass)->get_property = _vala_deja_dup_tool_job_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_deja_dup_tool_job_set_property;
	G_OBJECT_CLASS (klass)->finalize = deja_dup_tool_job_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), DEJA_DUP_TOOL_JOB_MODE, g_param_spec_enum ("mode", "mode", "mode", DEJA_DUP_TOOL_JOB_TYPE_MODE, DEJA_DUP_TOOL_JOB_MODE_INVALID, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), DEJA_DUP_TOOL_JOB_FLAGS, g_param_spec_enum ("flags", "flags", "flags", DEJA_DUP_TOOL_JOB_TYPE_FLAGS, 0, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), DEJA_DUP_TOOL_JOB_LOCAL, g_param_spec_object ("local", "local", "local", G_TYPE_FILE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), DEJA_DUP_TOOL_JOB_BACKEND, g_param_spec_object ("backend", "backend", "backend", DEJA_DUP_TYPE_BACKEND, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), DEJA_DUP_TOOL_JOB_ENCRYPT_PASSWORD, g_param_spec_string ("encrypt-password", "encrypt-password", "encrypt-password", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), DEJA_DUP_TOOL_JOB_RESTORE_FILES, g_param_spec_pointer ("restore-files", "restore-files", "restore-files", G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), DEJA_DUP_TOOL_JOB_TIME, g_param_spec_string ("time", "time", "time", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_signal_new ("done", DEJA_DUP_TYPE_TOOL_JOB, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_user_marshal_VOID__BOOLEAN_BOOLEAN_STRING, G_TYPE_NONE, 3, G_TYPE_BOOLEAN, G_TYPE_BOOLEAN, G_TYPE_STRING);
	g_signal_new ("raise_error", DEJA_DUP_TYPE_TOOL_JOB, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_user_marshal_VOID__STRING_STRING, G_TYPE_NONE, 2, G_TYPE_STRING, G_TYPE_STRING);
	g_signal_new ("action_desc_changed", DEJA_DUP_TYPE_TOOL_JOB, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__STRING, G_TYPE_NONE, 1, G_TYPE_STRING);
	g_signal_new ("action_file_changed", DEJA_DUP_TYPE_TOOL_JOB, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_user_marshal_VOID__OBJECT_BOOLEAN, G_TYPE_NONE, 2, G_TYPE_FILE, G_TYPE_BOOLEAN);
	g_signal_new ("progress", DEJA_DUP_TYPE_TOOL_JOB, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__DOUBLE, G_TYPE_NONE, 1, G_TYPE_DOUBLE);
	g_signal_new ("is_full", DEJA_DUP_TYPE_TOOL_JOB, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__BOOLEAN, G_TYPE_NONE, 1, G_TYPE_BOOLEAN);
	g_signal_new ("bad_encryption_password", DEJA_DUP_TYPE_TOOL_JOB, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
	g_signal_new ("question", DEJA_DUP_TYPE_TOOL_JOB, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_user_marshal_VOID__STRING_STRING, G_TYPE_NONE, 2, G_TYPE_STRING, G_TYPE_STRING);
	g_signal_new ("collection_dates", DEJA_DUP_TYPE_TOOL_JOB, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__POINTER, G_TYPE_NONE, 1, G_TYPE_POINTER);
	g_signal_new ("listed_current_files", DEJA_DUP_TYPE_TOOL_JOB, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_user_marshal_VOID__STRING_STRING, G_TYPE_NONE, 2, G_TYPE_STRING, G_TYPE_STRING);
}


static void deja_dup_tool_job_instance_init (DejaDupToolJob * self) {
	self->priv = DEJA_DUP_TOOL_JOB_GET_PRIVATE (self);
	self->priv->_mode = DEJA_DUP_TOOL_JOB_MODE_INVALID;
}


static void deja_dup_tool_job_finalize (GObject* obj) {
	DejaDupToolJob * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, DEJA_DUP_TYPE_TOOL_JOB, DejaDupToolJob);
	_g_object_unref0 (self->priv->_local);
	_g_object_unref0 (self->priv->_backend);
	_g_free0 (self->priv->_encrypt_password);
	__g_list_free__g_object_unref0_0 (self->includes);
	__g_list_free__g_object_unref0_0 (self->excludes);
	__g_list_free__g_object_unref0_0 (self->_restore_files);
	_g_free0 (self->priv->_time);
	G_OBJECT_CLASS (deja_dup_tool_job_parent_class)->finalize (obj);
}


GType deja_dup_tool_job_get_type (void) {
	static volatile gsize deja_dup_tool_job_type_id__volatile = 0;
	if (g_once_init_enter (&deja_dup_tool_job_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (DejaDupToolJobClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) deja_dup_tool_job_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (DejaDupToolJob), 0, (GInstanceInitFunc) deja_dup_tool_job_instance_init, NULL };
		GType deja_dup_tool_job_type_id;
		deja_dup_tool_job_type_id = g_type_register_static (G_TYPE_OBJECT, "DejaDupToolJob", &g_define_type_info, G_TYPE_FLAG_ABSTRACT);
		g_once_init_leave (&deja_dup_tool_job_type_id__volatile, deja_dup_tool_job_type_id);
	}
	return deja_dup_tool_job_type_id__volatile;
}


static void _vala_deja_dup_tool_job_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
	DejaDupToolJob * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, DEJA_DUP_TYPE_TOOL_JOB, DejaDupToolJob);
	switch (property_id) {
		case DEJA_DUP_TOOL_JOB_MODE:
		g_value_set_enum (value, deja_dup_tool_job_get_mode (self));
		break;
		case DEJA_DUP_TOOL_JOB_FLAGS:
		g_value_set_enum (value, deja_dup_tool_job_get_flags (self));
		break;
		case DEJA_DUP_TOOL_JOB_LOCAL:
		g_value_set_object (value, deja_dup_tool_job_get_local (self));
		break;
		case DEJA_DUP_TOOL_JOB_BACKEND:
		g_value_set_object (value, deja_dup_tool_job_get_backend (self));
		break;
		case DEJA_DUP_TOOL_JOB_ENCRYPT_PASSWORD:
		g_value_set_string (value, deja_dup_tool_job_get_encrypt_password (self));
		break;
		case DEJA_DUP_TOOL_JOB_RESTORE_FILES:
		g_value_set_pointer (value, deja_dup_tool_job_get_restore_files (self));
		break;
		case DEJA_DUP_TOOL_JOB_TIME:
		g_value_set_string (value, deja_dup_tool_job_get_time (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}


static void _vala_deja_dup_tool_job_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) {
	DejaDupToolJob * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, DEJA_DUP_TYPE_TOOL_JOB, DejaDupToolJob);
	switch (property_id) {
		case DEJA_DUP_TOOL_JOB_MODE:
		deja_dup_tool_job_set_mode (self, g_value_get_enum (value));
		break;
		case DEJA_DUP_TOOL_JOB_FLAGS:
		deja_dup_tool_job_set_flags (self, g_value_get_enum (value));
		break;
		case DEJA_DUP_TOOL_JOB_LOCAL:
		deja_dup_tool_job_set_local (self, g_value_get_object (value));
		break;
		case DEJA_DUP_TOOL_JOB_BACKEND:
		deja_dup_tool_job_set_backend (self, g_value_get_object (value));
		break;
		case DEJA_DUP_TOOL_JOB_ENCRYPT_PASSWORD:
		deja_dup_tool_job_set_encrypt_password (self, g_value_get_string (value));
		break;
		case DEJA_DUP_TOOL_JOB_RESTORE_FILES:
		deja_dup_tool_job_set_restore_files (self, g_value_get_pointer (value));
		break;
		case DEJA_DUP_TOOL_JOB_TIME:
		deja_dup_tool_job_set_time (self, g_value_get_string (value));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}


static void deja_dup_tool_plugin_real_activate (DejaDupToolPlugin* self) {
}


void deja_dup_tool_plugin_activate (DejaDupToolPlugin* self) {
	g_return_if_fail (self != NULL);
	DEJA_DUP_TOOL_PLUGIN_GET_CLASS (self)->activate (self);
}


static void deja_dup_tool_plugin_real_deactivate (DejaDupToolPlugin* self) {
}


void deja_dup_tool_plugin_deactivate (DejaDupToolPlugin* self) {
	g_return_if_fail (self != NULL);
	DEJA_DUP_TOOL_PLUGIN_GET_CLASS (self)->deactivate (self);
}


static void deja_dup_tool_plugin_real_update_state (DejaDupToolPlugin* self) {
}


void deja_dup_tool_plugin_update_state (DejaDupToolPlugin* self) {
	g_return_if_fail (self != NULL);
	DEJA_DUP_TOOL_PLUGIN_GET_CLASS (self)->update_state (self);
}


static DejaDupToolJob* deja_dup_tool_plugin_real_create_job (DejaDupToolPlugin* self, GError** error) {
	g_critical ("Type `%s' does not implement abstract method `deja_dup_tool_plugin_create_job'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
	return NULL;
}


DejaDupToolJob* deja_dup_tool_plugin_create_job (DejaDupToolPlugin* self, GError** error) {
	g_return_val_if_fail (self != NULL, NULL);
	return DEJA_DUP_TOOL_PLUGIN_GET_CLASS (self)->create_job (self, error);
}


DejaDupToolPlugin* deja_dup_tool_plugin_construct (GType object_type) {
	DejaDupToolPlugin * self = NULL;
	self = (DejaDupToolPlugin*) g_object_new (object_type, NULL);
	return self;
}


static GObject* deja_dup_tool_plugin_real_get_object (PeasActivatable* base) {
	GObject* result;
	DejaDupToolPlugin* self;
	GObject* _tmp0_ = NULL;
	GObject* _tmp1_ = NULL;
	self = (DejaDupToolPlugin*) base;
	_tmp0_ = self->priv->_object;
	_tmp1_ = _g_object_ref0 (_tmp0_);
	result = _tmp1_;
	return result;
}


static void deja_dup_tool_plugin_real_set_object (PeasActivatable* base, GObject* value) {
	DejaDupToolPlugin* self;
	GObject* _tmp0_ = NULL;
	GObject* _tmp1_ = NULL;
	self = (DejaDupToolPlugin*) base;
	_tmp0_ = value;
	_tmp1_ = _g_object_ref0 (_tmp0_);
	_g_object_unref0 (self->priv->_object);
	self->priv->_object = _tmp1_;
	g_object_notify ((GObject *) self, "object");
}


const gchar* deja_dup_tool_plugin_get_name (DejaDupToolPlugin* self) {
	const gchar* result;
	const gchar* _tmp0_ = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_name;
	result = _tmp0_;
	return result;
}


void deja_dup_tool_plugin_set_name (DejaDupToolPlugin* self, const gchar* value) {
	const gchar* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = value;
	_tmp1_ = g_strdup (_tmp0_);
	_g_free0 (self->priv->_name);
	self->priv->_name = _tmp1_;
	g_object_notify ((GObject *) self, "name");
}


static void deja_dup_tool_plugin_class_init (DejaDupToolPluginClass * klass) {
	deja_dup_tool_plugin_parent_class = g_type_class_peek_parent (klass);
	g_type_class_add_private (klass, sizeof (DejaDupToolPluginPrivate));
	((DejaDupToolPluginClass *) klass)->activate = deja_dup_tool_plugin_real_activate;
	((DejaDupToolPluginClass *) klass)->deactivate = deja_dup_tool_plugin_real_deactivate;
	((DejaDupToolPluginClass *) klass)->update_state = deja_dup_tool_plugin_real_update_state;
	((DejaDupToolPluginClass *) klass)->create_job = deja_dup_tool_plugin_real_create_job;
	G_OBJECT_CLASS (klass)->get_property = _vala_deja_dup_tool_plugin_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_deja_dup_tool_plugin_set_property;
	G_OBJECT_CLASS (klass)->finalize = deja_dup_tool_plugin_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), DEJA_DUP_TOOL_PLUGIN_OBJECT, g_param_spec_object ("object", "object", "object", G_TYPE_OBJECT, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
	g_object_class_install_property (G_OBJECT_CLASS (klass), DEJA_DUP_TOOL_PLUGIN_NAME, g_param_spec_string ("name", "name", "name", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
}


static void deja_dup_tool_plugin_peas_activatable_interface_init (PeasActivatableInterface * iface) {
	deja_dup_tool_plugin_peas_activatable_parent_iface = g_type_interface_peek_parent (iface);
	iface->activate = (void (*)(PeasActivatable*)) deja_dup_tool_plugin_activate;
	iface->deactivate = (void (*)(PeasActivatable*)) deja_dup_tool_plugin_deactivate;
	iface->update_state = (void (*)(PeasActivatable*)) deja_dup_tool_plugin_update_state;
}


static void deja_dup_tool_plugin_instance_init (DejaDupToolPlugin * self) {
	self->priv = DEJA_DUP_TOOL_PLUGIN_GET_PRIVATE (self);
}


static void deja_dup_tool_plugin_finalize (GObject* obj) {
	DejaDupToolPlugin * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, DEJA_DUP_TYPE_TOOL_PLUGIN, DejaDupToolPlugin);
	_g_object_unref0 (self->priv->_object);
	_g_free0 (self->priv->_name);
	G_OBJECT_CLASS (deja_dup_tool_plugin_parent_class)->finalize (obj);
}


GType deja_dup_tool_plugin_get_type (void) {
	static volatile gsize deja_dup_tool_plugin_type_id__volatile = 0;
	if (g_once_init_enter (&deja_dup_tool_plugin_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (DejaDupToolPluginClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) deja_dup_tool_plugin_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (DejaDupToolPlugin), 0, (GInstanceInitFunc) deja_dup_tool_plugin_instance_init, NULL };
		static const GInterfaceInfo peas_activatable_info = { (GInterfaceInitFunc) deja_dup_tool_plugin_peas_activatable_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
		GType deja_dup_tool_plugin_type_id;
		deja_dup_tool_plugin_type_id = g_type_register_static (peas_extension_base_get_type (), "DejaDupToolPlugin", &g_define_type_info, G_TYPE_FLAG_ABSTRACT);
		g_type_add_interface_static (deja_dup_tool_plugin_type_id, peas_activatable_get_type (), &peas_activatable_info);
		g_once_init_leave (&deja_dup_tool_plugin_type_id__volatile, deja_dup_tool_plugin_type_id);
	}
	return deja_dup_tool_plugin_type_id__volatile;
}


static void _vala_deja_dup_tool_plugin_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
	DejaDupToolPlugin * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, DEJA_DUP_TYPE_TOOL_PLUGIN, DejaDupToolPlugin);
	switch (property_id) {
		case DEJA_DUP_TOOL_PLUGIN_OBJECT:
		g_value_take_object (value, deja_dup_tool_plugin_real_get_object ((PeasActivatable*) self));
		break;
		case DEJA_DUP_TOOL_PLUGIN_NAME:
		g_value_set_string (value, deja_dup_tool_plugin_get_name (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}


static void _vala_deja_dup_tool_plugin_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) {
	DejaDupToolPlugin * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, DEJA_DUP_TYPE_TOOL_PLUGIN, DejaDupToolPlugin);
	switch (property_id) {
		case DEJA_DUP_TOOL_PLUGIN_OBJECT:
		deja_dup_tool_plugin_real_set_object ((PeasActivatable*) self, g_value_get_object (value));
		break;
		case DEJA_DUP_TOOL_PLUGIN_NAME:
		deja_dup_tool_plugin_set_name (self, g_value_get_string (value));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}



