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

#include "protonplus_core.h"
#include <stdlib.h>
#include <string.h>
#include <glib.h>
#include <glib-object.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

enum  {
	PROTON_PLUS_MODELS_COMPATIBILITY_TOOL_0_PROPERTY,
	PROTON_PLUS_MODELS_COMPATIBILITY_TOOL_DISPLAY_TITLE_PROPERTY,
	PROTON_PLUS_MODELS_COMPATIBILITY_TOOL_INTERNAL_TITLE_PROPERTY,
	PROTON_PLUS_MODELS_COMPATIBILITY_TOOL_PATH_PROPERTY,
	PROTON_PLUS_MODELS_COMPATIBILITY_TOOL_INSPECTION_PATH_PROPERTY,
	PROTON_PLUS_MODELS_COMPATIBILITY_TOOL_EXTERNALLY_MANAGED_PROPERTY,
	PROTON_PLUS_MODELS_COMPATIBILITY_TOOL_IS_AVAILABLE_PROPERTY,
	PROTON_PLUS_MODELS_COMPATIBILITY_TOOL_IS_ASSIGNABLE_PROPERTY,
	PROTON_PLUS_MODELS_COMPATIBILITY_TOOL_SORT_PRIORITY_PROPERTY,
	PROTON_PLUS_MODELS_COMPATIBILITY_TOOL_RUNTIME_KIND_PROPERTY,
	PROTON_PLUS_MODELS_COMPATIBILITY_TOOL_NUM_PROPERTIES
};
static GParamSpec* proton_plus_models_compatibility_tool_properties[PROTON_PLUS_MODELS_COMPATIBILITY_TOOL_NUM_PROPERTIES];
#define _g_free0(var) (var = (g_free (var), NULL))

struct _ProtonPlusModelsCompatibilityToolPrivate {
	gchar* _display_title;
	gchar* _internal_title;
	gchar* _path;
	gchar* _inspection_path;
	gboolean _externally_managed;
	gboolean _is_available;
	gboolean _is_assignable;
	gint _sort_priority;
	ProtonPlusModelsCompatibilityToolRuntimeKind _runtime_kind;
};

static gint ProtonPlusModelsCompatibilityTool_private_offset;
static gpointer proton_plus_models_compatibility_tool_parent_class = NULL;

static void proton_plus_models_compatibility_tool_finalize (GObject * obj);
static GType proton_plus_models_compatibility_tool_get_type_once (void);
static void _vala_proton_plus_models_compatibility_tool_get_property (GObject * object,
                                                               guint property_id,
                                                               GValue * value,
                                                               GParamSpec * pspec);
static void _vala_proton_plus_models_compatibility_tool_set_property (GObject * object,
                                                               guint property_id,
                                                               const GValue * value,
                                                               GParamSpec * pspec);
static inline gpointer _vala_memdup2 (gconstpointer mem,
                        gsize byte_size);

static GType
proton_plus_models_compatibility_tool_runtime_kind_get_type_once (void)
{
	static const GEnumValue values[] = {{PROTON_PLUS_MODELS_COMPATIBILITY_TOOL_RUNTIME_KIND_UNKNOWN, "PROTON_PLUS_MODELS_COMPATIBILITY_TOOL_RUNTIME_KIND_UNKNOWN", "unknown"}, {PROTON_PLUS_MODELS_COMPATIBILITY_TOOL_RUNTIME_KIND_NATIVE, "PROTON_PLUS_MODELS_COMPATIBILITY_TOOL_RUNTIME_KIND_NATIVE", "native"}, {PROTON_PLUS_MODELS_COMPATIBILITY_TOOL_RUNTIME_KIND_PROTON, "PROTON_PLUS_MODELS_COMPATIBILITY_TOOL_RUNTIME_KIND_PROTON", "proton"}, {0, NULL, NULL}};
	GType proton_plus_models_compatibility_tool_runtime_kind_type_id;
	proton_plus_models_compatibility_tool_runtime_kind_type_id = g_enum_register_static ("ProtonPlusModelsCompatibilityToolRuntimeKind", values);
	return proton_plus_models_compatibility_tool_runtime_kind_type_id;
}

GType
proton_plus_models_compatibility_tool_runtime_kind_get_type (void)
{
	static volatile gsize proton_plus_models_compatibility_tool_runtime_kind_type_id__once = 0;
	if (g_once_init_enter (&proton_plus_models_compatibility_tool_runtime_kind_type_id__once)) {
		GType proton_plus_models_compatibility_tool_runtime_kind_type_id;
		proton_plus_models_compatibility_tool_runtime_kind_type_id = proton_plus_models_compatibility_tool_runtime_kind_get_type_once ();
		g_once_init_leave (&proton_plus_models_compatibility_tool_runtime_kind_type_id__once, proton_plus_models_compatibility_tool_runtime_kind_type_id);
	}
	return proton_plus_models_compatibility_tool_runtime_kind_type_id__once;
}

static inline gpointer
proton_plus_models_compatibility_tool_get_instance_private (ProtonPlusModelsCompatibilityTool* self)
{
	return G_STRUCT_MEMBER_P (self, ProtonPlusModelsCompatibilityTool_private_offset);
}

ProtonPlusModelsCompatibilityTool*
proton_plus_models_compatibility_tool_construct (GType object_type,
                                                 const gchar* display_title,
                                                 const gchar* internal_title,
                                                 const gchar* path,
                                                 ProtonPlusModelsCompatibilityToolRuntimeKind runtime_kind,
                                                 const gchar* inspection_path,
                                                 gboolean externally_managed)
{
	ProtonPlusModelsCompatibilityTool * self = NULL;
	const gchar* _tmp0_ = NULL;
	const gchar* _tmp1_ = NULL;
	g_return_val_if_fail (display_title != NULL, NULL);
	g_return_val_if_fail (internal_title != NULL, NULL);
	g_return_val_if_fail (path != NULL, NULL);
	g_return_val_if_fail (inspection_path != NULL, NULL);
	self = (ProtonPlusModelsCompatibilityTool*) g_object_new (object_type, NULL);
	proton_plus_models_compatibility_tool_set_display_title (self, display_title);
	if (g_strcmp0 (internal_title, "") != 0) {
		_tmp0_ = internal_title;
	} else {
		_tmp0_ = display_title;
	}
	proton_plus_models_compatibility_tool_set_internal_title (self, _tmp0_);
	proton_plus_models_compatibility_tool_set_path (self, path);
	if (g_strcmp0 (inspection_path, "") != 0) {
		_tmp1_ = inspection_path;
	} else {
		_tmp1_ = path;
	}
	proton_plus_models_compatibility_tool_set_inspection_path (self, _tmp1_);
	proton_plus_models_compatibility_tool_set_externally_managed (self, externally_managed);
	proton_plus_models_compatibility_tool_set_runtime_kind (self, runtime_kind);
	return self;
}

ProtonPlusModelsCompatibilityTool*
proton_plus_models_compatibility_tool_new (const gchar* display_title,
                                           const gchar* internal_title,
                                           const gchar* path,
                                           ProtonPlusModelsCompatibilityToolRuntimeKind runtime_kind,
                                           const gchar* inspection_path,
                                           gboolean externally_managed)
{
	return proton_plus_models_compatibility_tool_construct (PROTON_PLUS_MODELS_TYPE_COMPATIBILITY_TOOL, display_title, internal_title, path, runtime_kind, inspection_path, externally_managed);
}

const gchar*
proton_plus_models_compatibility_tool_get_display_title (ProtonPlusModelsCompatibilityTool* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_display_title;
	result = _tmp0_;
	return result;
}

void
proton_plus_models_compatibility_tool_set_display_title (ProtonPlusModelsCompatibilityTool* self,
                                                         const gchar* value)
{
	gchar* old_value;
	g_return_if_fail (self != NULL);
	old_value = proton_plus_models_compatibility_tool_get_display_title (self);
	if (g_strcmp0 (value, old_value) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_display_title);
		self->priv->_display_title = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, proton_plus_models_compatibility_tool_properties[PROTON_PLUS_MODELS_COMPATIBILITY_TOOL_DISPLAY_TITLE_PROPERTY]);
	}
}

const gchar*
proton_plus_models_compatibility_tool_get_internal_title (ProtonPlusModelsCompatibilityTool* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_internal_title;
	result = _tmp0_;
	return result;
}

void
proton_plus_models_compatibility_tool_set_internal_title (ProtonPlusModelsCompatibilityTool* self,
                                                          const gchar* value)
{
	gchar* old_value;
	g_return_if_fail (self != NULL);
	old_value = proton_plus_models_compatibility_tool_get_internal_title (self);
	if (g_strcmp0 (value, old_value) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_internal_title);
		self->priv->_internal_title = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, proton_plus_models_compatibility_tool_properties[PROTON_PLUS_MODELS_COMPATIBILITY_TOOL_INTERNAL_TITLE_PROPERTY]);
	}
}

const gchar*
proton_plus_models_compatibility_tool_get_path (ProtonPlusModelsCompatibilityTool* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_path;
	result = _tmp0_;
	return result;
}

void
proton_plus_models_compatibility_tool_set_path (ProtonPlusModelsCompatibilityTool* self,
                                                const gchar* value)
{
	gchar* old_value;
	g_return_if_fail (self != NULL);
	old_value = proton_plus_models_compatibility_tool_get_path (self);
	if (g_strcmp0 (value, old_value) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_path);
		self->priv->_path = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, proton_plus_models_compatibility_tool_properties[PROTON_PLUS_MODELS_COMPATIBILITY_TOOL_PATH_PROPERTY]);
	}
}

const gchar*
proton_plus_models_compatibility_tool_get_inspection_path (ProtonPlusModelsCompatibilityTool* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_inspection_path;
	result = _tmp0_;
	return result;
}

void
proton_plus_models_compatibility_tool_set_inspection_path (ProtonPlusModelsCompatibilityTool* self,
                                                           const gchar* value)
{
	gchar* old_value;
	g_return_if_fail (self != NULL);
	old_value = proton_plus_models_compatibility_tool_get_inspection_path (self);
	if (g_strcmp0 (value, old_value) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_inspection_path);
		self->priv->_inspection_path = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, proton_plus_models_compatibility_tool_properties[PROTON_PLUS_MODELS_COMPATIBILITY_TOOL_INSPECTION_PATH_PROPERTY]);
	}
}

gboolean
proton_plus_models_compatibility_tool_get_externally_managed (ProtonPlusModelsCompatibilityTool* self)
{
	gboolean result;
	g_return_val_if_fail (self != NULL, FALSE);
	result = self->priv->_externally_managed;
	return result;
}

void
proton_plus_models_compatibility_tool_set_externally_managed (ProtonPlusModelsCompatibilityTool* self,
                                                              gboolean value)
{
	gboolean old_value;
	g_return_if_fail (self != NULL);
	old_value = proton_plus_models_compatibility_tool_get_externally_managed (self);
	if (old_value != value) {
		self->priv->_externally_managed = value;
		g_object_notify_by_pspec ((GObject *) self, proton_plus_models_compatibility_tool_properties[PROTON_PLUS_MODELS_COMPATIBILITY_TOOL_EXTERNALLY_MANAGED_PROPERTY]);
	}
}

gboolean
proton_plus_models_compatibility_tool_get_is_available (ProtonPlusModelsCompatibilityTool* self)
{
	gboolean result;
	g_return_val_if_fail (self != NULL, FALSE);
	result = self->priv->_is_available;
	return result;
}

void
proton_plus_models_compatibility_tool_set_is_available (ProtonPlusModelsCompatibilityTool* self,
                                                        gboolean value)
{
	gboolean old_value;
	g_return_if_fail (self != NULL);
	old_value = proton_plus_models_compatibility_tool_get_is_available (self);
	if (old_value != value) {
		self->priv->_is_available = value;
		g_object_notify_by_pspec ((GObject *) self, proton_plus_models_compatibility_tool_properties[PROTON_PLUS_MODELS_COMPATIBILITY_TOOL_IS_AVAILABLE_PROPERTY]);
	}
}

gboolean
proton_plus_models_compatibility_tool_get_is_assignable (ProtonPlusModelsCompatibilityTool* self)
{
	gboolean result;
	g_return_val_if_fail (self != NULL, FALSE);
	result = self->priv->_is_assignable;
	return result;
}

void
proton_plus_models_compatibility_tool_set_is_assignable (ProtonPlusModelsCompatibilityTool* self,
                                                         gboolean value)
{
	gboolean old_value;
	g_return_if_fail (self != NULL);
	old_value = proton_plus_models_compatibility_tool_get_is_assignable (self);
	if (old_value != value) {
		self->priv->_is_assignable = value;
		g_object_notify_by_pspec ((GObject *) self, proton_plus_models_compatibility_tool_properties[PROTON_PLUS_MODELS_COMPATIBILITY_TOOL_IS_ASSIGNABLE_PROPERTY]);
	}
}

gint
proton_plus_models_compatibility_tool_get_sort_priority (ProtonPlusModelsCompatibilityTool* self)
{
	gint result;
	g_return_val_if_fail (self != NULL, -1);
	result = self->priv->_sort_priority;
	return result;
}

void
proton_plus_models_compatibility_tool_set_sort_priority (ProtonPlusModelsCompatibilityTool* self,
                                                         gint value)
{
	gint old_value;
	g_return_if_fail (self != NULL);
	old_value = proton_plus_models_compatibility_tool_get_sort_priority (self);
	if (old_value != value) {
		self->priv->_sort_priority = value;
		g_object_notify_by_pspec ((GObject *) self, proton_plus_models_compatibility_tool_properties[PROTON_PLUS_MODELS_COMPATIBILITY_TOOL_SORT_PRIORITY_PROPERTY]);
	}
}

ProtonPlusModelsCompatibilityToolRuntimeKind
proton_plus_models_compatibility_tool_get_runtime_kind (ProtonPlusModelsCompatibilityTool* self)
{
	ProtonPlusModelsCompatibilityToolRuntimeKind result;
	g_return_val_if_fail (self != NULL, 0);
	result = self->priv->_runtime_kind;
	return result;
}

void
proton_plus_models_compatibility_tool_set_runtime_kind (ProtonPlusModelsCompatibilityTool* self,
                                                        ProtonPlusModelsCompatibilityToolRuntimeKind value)
{
	ProtonPlusModelsCompatibilityToolRuntimeKind old_value;
	g_return_if_fail (self != NULL);
	old_value = proton_plus_models_compatibility_tool_get_runtime_kind (self);
	if (old_value != value) {
		self->priv->_runtime_kind = value;
		g_object_notify_by_pspec ((GObject *) self, proton_plus_models_compatibility_tool_properties[PROTON_PLUS_MODELS_COMPATIBILITY_TOOL_RUNTIME_KIND_PROPERTY]);
	}
}

static void
proton_plus_models_compatibility_tool_class_init (ProtonPlusModelsCompatibilityToolClass * klass,
                                                  gpointer klass_data)
{
	proton_plus_models_compatibility_tool_parent_class = g_type_class_peek_parent (klass);
	g_type_class_adjust_private_offset (klass, &ProtonPlusModelsCompatibilityTool_private_offset);
	G_OBJECT_CLASS (klass)->get_property = _vala_proton_plus_models_compatibility_tool_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_proton_plus_models_compatibility_tool_set_property;
	G_OBJECT_CLASS (klass)->finalize = proton_plus_models_compatibility_tool_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), PROTON_PLUS_MODELS_COMPATIBILITY_TOOL_DISPLAY_TITLE_PROPERTY, proton_plus_models_compatibility_tool_properties[PROTON_PLUS_MODELS_COMPATIBILITY_TOOL_DISPLAY_TITLE_PROPERTY] = g_param_spec_string ("display-title", "display-title", "display-title", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), PROTON_PLUS_MODELS_COMPATIBILITY_TOOL_INTERNAL_TITLE_PROPERTY, proton_plus_models_compatibility_tool_properties[PROTON_PLUS_MODELS_COMPATIBILITY_TOOL_INTERNAL_TITLE_PROPERTY] = g_param_spec_string ("internal-title", "internal-title", "internal-title", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), PROTON_PLUS_MODELS_COMPATIBILITY_TOOL_PATH_PROPERTY, proton_plus_models_compatibility_tool_properties[PROTON_PLUS_MODELS_COMPATIBILITY_TOOL_PATH_PROPERTY] = g_param_spec_string ("path", "path", "path", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), PROTON_PLUS_MODELS_COMPATIBILITY_TOOL_INSPECTION_PATH_PROPERTY, proton_plus_models_compatibility_tool_properties[PROTON_PLUS_MODELS_COMPATIBILITY_TOOL_INSPECTION_PATH_PROPERTY] = g_param_spec_string ("inspection-path", "inspection-path", "inspection-path", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), PROTON_PLUS_MODELS_COMPATIBILITY_TOOL_EXTERNALLY_MANAGED_PROPERTY, proton_plus_models_compatibility_tool_properties[PROTON_PLUS_MODELS_COMPATIBILITY_TOOL_EXTERNALLY_MANAGED_PROPERTY] = g_param_spec_boolean ("externally-managed", "externally-managed", "externally-managed", FALSE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), PROTON_PLUS_MODELS_COMPATIBILITY_TOOL_IS_AVAILABLE_PROPERTY, proton_plus_models_compatibility_tool_properties[PROTON_PLUS_MODELS_COMPATIBILITY_TOOL_IS_AVAILABLE_PROPERTY] = g_param_spec_boolean ("is-available", "is-available", "is-available", TRUE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), PROTON_PLUS_MODELS_COMPATIBILITY_TOOL_IS_ASSIGNABLE_PROPERTY, proton_plus_models_compatibility_tool_properties[PROTON_PLUS_MODELS_COMPATIBILITY_TOOL_IS_ASSIGNABLE_PROPERTY] = g_param_spec_boolean ("is-assignable", "is-assignable", "is-assignable", TRUE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), PROTON_PLUS_MODELS_COMPATIBILITY_TOOL_SORT_PRIORITY_PROPERTY, proton_plus_models_compatibility_tool_properties[PROTON_PLUS_MODELS_COMPATIBILITY_TOOL_SORT_PRIORITY_PROPERTY] = g_param_spec_int ("sort-priority", "sort-priority", "sort-priority", G_MININT, G_MAXINT, 1000, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), PROTON_PLUS_MODELS_COMPATIBILITY_TOOL_RUNTIME_KIND_PROPERTY, proton_plus_models_compatibility_tool_properties[PROTON_PLUS_MODELS_COMPATIBILITY_TOOL_RUNTIME_KIND_PROPERTY] = g_param_spec_enum ("runtime-kind", "runtime-kind", "runtime-kind", PROTON_PLUS_MODELS_TYPE_COMPATIBILITY_TOOL_RUNTIME_KIND, PROTON_PLUS_MODELS_COMPATIBILITY_TOOL_RUNTIME_KIND_UNKNOWN, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
}

static void
proton_plus_models_compatibility_tool_instance_init (ProtonPlusModelsCompatibilityTool * self,
                                                     gpointer klass)
{
	gchar* _tmp0_;
	gchar* _tmp1_;
	gchar* _tmp2_;
	gchar* _tmp3_;
	self->priv = proton_plus_models_compatibility_tool_get_instance_private (self);
	_tmp0_ = g_strdup ("");
	self->priv->_display_title = _tmp0_;
	_tmp1_ = g_strdup ("");
	self->priv->_internal_title = _tmp1_;
	_tmp2_ = g_strdup ("");
	self->priv->_path = _tmp2_;
	_tmp3_ = g_strdup ("");
	self->priv->_inspection_path = _tmp3_;
	self->priv->_externally_managed = FALSE;
	self->priv->_is_available = TRUE;
	self->priv->_is_assignable = TRUE;
	self->priv->_sort_priority = 1000;
	self->priv->_runtime_kind = PROTON_PLUS_MODELS_COMPATIBILITY_TOOL_RUNTIME_KIND_UNKNOWN;
}

static void
proton_plus_models_compatibility_tool_finalize (GObject * obj)
{
	ProtonPlusModelsCompatibilityTool * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, PROTON_PLUS_MODELS_TYPE_COMPATIBILITY_TOOL, ProtonPlusModelsCompatibilityTool);
	_g_free0 (self->priv->_display_title);
	_g_free0 (self->priv->_internal_title);
	_g_free0 (self->priv->_path);
	_g_free0 (self->priv->_inspection_path);
	G_OBJECT_CLASS (proton_plus_models_compatibility_tool_parent_class)->finalize (obj);
}

static GType
proton_plus_models_compatibility_tool_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (ProtonPlusModelsCompatibilityToolClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) proton_plus_models_compatibility_tool_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ProtonPlusModelsCompatibilityTool), 0, (GInstanceInitFunc) proton_plus_models_compatibility_tool_instance_init, NULL };
	GType proton_plus_models_compatibility_tool_type_id;
	proton_plus_models_compatibility_tool_type_id = g_type_register_static (G_TYPE_OBJECT, "ProtonPlusModelsCompatibilityTool", &g_define_type_info, 0);
	ProtonPlusModelsCompatibilityTool_private_offset = g_type_add_instance_private (proton_plus_models_compatibility_tool_type_id, sizeof (ProtonPlusModelsCompatibilityToolPrivate));
	return proton_plus_models_compatibility_tool_type_id;
}

GType
proton_plus_models_compatibility_tool_get_type (void)
{
	static volatile gsize proton_plus_models_compatibility_tool_type_id__once = 0;
	if (g_once_init_enter (&proton_plus_models_compatibility_tool_type_id__once)) {
		GType proton_plus_models_compatibility_tool_type_id;
		proton_plus_models_compatibility_tool_type_id = proton_plus_models_compatibility_tool_get_type_once ();
		g_once_init_leave (&proton_plus_models_compatibility_tool_type_id__once, proton_plus_models_compatibility_tool_type_id);
	}
	return proton_plus_models_compatibility_tool_type_id__once;
}

static void
_vala_proton_plus_models_compatibility_tool_get_property (GObject * object,
                                                          guint property_id,
                                                          GValue * value,
                                                          GParamSpec * pspec)
{
	ProtonPlusModelsCompatibilityTool * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, PROTON_PLUS_MODELS_TYPE_COMPATIBILITY_TOOL, ProtonPlusModelsCompatibilityTool);
	switch (property_id) {
		case PROTON_PLUS_MODELS_COMPATIBILITY_TOOL_DISPLAY_TITLE_PROPERTY:
		g_value_set_string (value, proton_plus_models_compatibility_tool_get_display_title (self));
		break;
		case PROTON_PLUS_MODELS_COMPATIBILITY_TOOL_INTERNAL_TITLE_PROPERTY:
		g_value_set_string (value, proton_plus_models_compatibility_tool_get_internal_title (self));
		break;
		case PROTON_PLUS_MODELS_COMPATIBILITY_TOOL_PATH_PROPERTY:
		g_value_set_string (value, proton_plus_models_compatibility_tool_get_path (self));
		break;
		case PROTON_PLUS_MODELS_COMPATIBILITY_TOOL_INSPECTION_PATH_PROPERTY:
		g_value_set_string (value, proton_plus_models_compatibility_tool_get_inspection_path (self));
		break;
		case PROTON_PLUS_MODELS_COMPATIBILITY_TOOL_EXTERNALLY_MANAGED_PROPERTY:
		g_value_set_boolean (value, proton_plus_models_compatibility_tool_get_externally_managed (self));
		break;
		case PROTON_PLUS_MODELS_COMPATIBILITY_TOOL_IS_AVAILABLE_PROPERTY:
		g_value_set_boolean (value, proton_plus_models_compatibility_tool_get_is_available (self));
		break;
		case PROTON_PLUS_MODELS_COMPATIBILITY_TOOL_IS_ASSIGNABLE_PROPERTY:
		g_value_set_boolean (value, proton_plus_models_compatibility_tool_get_is_assignable (self));
		break;
		case PROTON_PLUS_MODELS_COMPATIBILITY_TOOL_SORT_PRIORITY_PROPERTY:
		g_value_set_int (value, proton_plus_models_compatibility_tool_get_sort_priority (self));
		break;
		case PROTON_PLUS_MODELS_COMPATIBILITY_TOOL_RUNTIME_KIND_PROPERTY:
		g_value_set_enum (value, proton_plus_models_compatibility_tool_get_runtime_kind (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static void
_vala_proton_plus_models_compatibility_tool_set_property (GObject * object,
                                                          guint property_id,
                                                          const GValue * value,
                                                          GParamSpec * pspec)
{
	ProtonPlusModelsCompatibilityTool * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, PROTON_PLUS_MODELS_TYPE_COMPATIBILITY_TOOL, ProtonPlusModelsCompatibilityTool);
	switch (property_id) {
		case PROTON_PLUS_MODELS_COMPATIBILITY_TOOL_DISPLAY_TITLE_PROPERTY:
		proton_plus_models_compatibility_tool_set_display_title (self, g_value_get_string (value));
		break;
		case PROTON_PLUS_MODELS_COMPATIBILITY_TOOL_INTERNAL_TITLE_PROPERTY:
		proton_plus_models_compatibility_tool_set_internal_title (self, g_value_get_string (value));
		break;
		case PROTON_PLUS_MODELS_COMPATIBILITY_TOOL_PATH_PROPERTY:
		proton_plus_models_compatibility_tool_set_path (self, g_value_get_string (value));
		break;
		case PROTON_PLUS_MODELS_COMPATIBILITY_TOOL_INSPECTION_PATH_PROPERTY:
		proton_plus_models_compatibility_tool_set_inspection_path (self, g_value_get_string (value));
		break;
		case PROTON_PLUS_MODELS_COMPATIBILITY_TOOL_EXTERNALLY_MANAGED_PROPERTY:
		proton_plus_models_compatibility_tool_set_externally_managed (self, g_value_get_boolean (value));
		break;
		case PROTON_PLUS_MODELS_COMPATIBILITY_TOOL_IS_AVAILABLE_PROPERTY:
		proton_plus_models_compatibility_tool_set_is_available (self, g_value_get_boolean (value));
		break;
		case PROTON_PLUS_MODELS_COMPATIBILITY_TOOL_IS_ASSIGNABLE_PROPERTY:
		proton_plus_models_compatibility_tool_set_is_assignable (self, g_value_get_boolean (value));
		break;
		case PROTON_PLUS_MODELS_COMPATIBILITY_TOOL_SORT_PRIORITY_PROPERTY:
		proton_plus_models_compatibility_tool_set_sort_priority (self, g_value_get_int (value));
		break;
		case PROTON_PLUS_MODELS_COMPATIBILITY_TOOL_RUNTIME_KIND_PROPERTY:
		proton_plus_models_compatibility_tool_set_runtime_kind (self, g_value_get_enum (value));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static inline gpointer
_vala_memdup2 (gconstpointer mem,
               gsize byte_size)
{
	gpointer new_mem;
	if (mem && byte_size != 0) {
		new_mem = g_malloc (byte_size);
		memcpy (new_mem, mem, byte_size);
	} else {
		new_mem = NULL;
	}
	return new_mem;
}

