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

#include <glib-object.h>
#include <gtk/gtk.h>
#include <json-glib/json-glib.h>
#include <glib.h>
#include <stdlib.h>
#include <string.h>
#include <gee.h>
#include <adwaita.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
#if !defined(VALA_EXTERN)
#if defined(_MSC_VER)
#define VALA_EXTERN __declspec(dllexport) extern
#elif __GNUC__ >= 4
#define VALA_EXTERN __attribute__((visibility("default"))) extern
#else
#define VALA_EXTERN extern
#endif
#endif

#define TUBA_TYPE_WIDGETIZABLE (tuba_widgetizable_get_type ())
#define TUBA_WIDGETIZABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TUBA_TYPE_WIDGETIZABLE, TubaWidgetizable))
#define TUBA_IS_WIDGETIZABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TUBA_TYPE_WIDGETIZABLE))
#define TUBA_WIDGETIZABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), TUBA_TYPE_WIDGETIZABLE, TubaWidgetizableIface))

typedef struct _TubaWidgetizable TubaWidgetizable;
typedef struct _TubaWidgetizableIface TubaWidgetizableIface;

#define TUBA_TYPE_ENTITY (tuba_entity_get_type ())
#define TUBA_ENTITY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TUBA_TYPE_ENTITY, TubaEntity))
#define TUBA_ENTITY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TUBA_TYPE_ENTITY, TubaEntityClass))
#define TUBA_IS_ENTITY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TUBA_TYPE_ENTITY))
#define TUBA_IS_ENTITY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TUBA_TYPE_ENTITY))
#define TUBA_ENTITY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TUBA_TYPE_ENTITY, TubaEntityClass))

typedef struct _TubaEntity TubaEntity;
typedef struct _TubaEntityClass TubaEntityClass;

#define TUBA_API_TYPE_ACCOUNT (tuba_api_account_get_type ())
#define TUBA_API_ACCOUNT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TUBA_API_TYPE_ACCOUNT, TubaAPIAccount))
#define TUBA_API_ACCOUNT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TUBA_API_TYPE_ACCOUNT, TubaAPIAccountClass))
#define TUBA_API_IS_ACCOUNT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TUBA_API_TYPE_ACCOUNT))
#define TUBA_API_IS_ACCOUNT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TUBA_API_TYPE_ACCOUNT))
#define TUBA_API_ACCOUNT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TUBA_API_TYPE_ACCOUNT, TubaAPIAccountClass))

typedef struct _TubaAPIAccount TubaAPIAccount;
typedef struct _TubaAPIAccountClass TubaAPIAccountClass;

#define TUBA_TYPE_INSTANCE_ACCOUNT (tuba_instance_account_get_type ())
#define TUBA_INSTANCE_ACCOUNT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TUBA_TYPE_INSTANCE_ACCOUNT, TubaInstanceAccount))
#define TUBA_INSTANCE_ACCOUNT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TUBA_TYPE_INSTANCE_ACCOUNT, TubaInstanceAccountClass))
#define TUBA_IS_INSTANCE_ACCOUNT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TUBA_TYPE_INSTANCE_ACCOUNT))
#define TUBA_IS_INSTANCE_ACCOUNT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TUBA_TYPE_INSTANCE_ACCOUNT))
#define TUBA_INSTANCE_ACCOUNT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TUBA_TYPE_INSTANCE_ACCOUNT, TubaInstanceAccountClass))

typedef struct _TubaInstanceAccount TubaInstanceAccount;
typedef struct _TubaInstanceAccountClass TubaInstanceAccountClass;
typedef struct _TubaEntityPrivate TubaEntityPrivate;

#define TUBA_API_TYPE_WRAPPED_COLLECTION (tuba_api_wrapped_collection_get_type ())
#define TUBA_API_WRAPPED_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TUBA_API_TYPE_WRAPPED_COLLECTION, TubaAPIWrappedCollection))
#define TUBA_API_WRAPPED_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TUBA_API_TYPE_WRAPPED_COLLECTION, TubaAPIWrappedCollectionClass))
#define TUBA_API_IS_WRAPPED_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TUBA_API_TYPE_WRAPPED_COLLECTION))
#define TUBA_API_IS_WRAPPED_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TUBA_API_TYPE_WRAPPED_COLLECTION))
#define TUBA_API_WRAPPED_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TUBA_API_TYPE_WRAPPED_COLLECTION, TubaAPIWrappedCollectionClass))

typedef struct _TubaAPIWrappedCollection TubaAPIWrappedCollection;
typedef struct _TubaAPIWrappedCollectionClass TubaAPIWrappedCollectionClass;
typedef struct _TubaAPIWrappedCollectionPrivate TubaAPIWrappedCollectionPrivate;

#define TUBA_API_TYPE_COLLECTION (tuba_api_collection_get_type ())
#define TUBA_API_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TUBA_API_TYPE_COLLECTION, TubaAPICollection))
#define TUBA_API_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TUBA_API_TYPE_COLLECTION, TubaAPICollectionClass))
#define TUBA_API_IS_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TUBA_API_TYPE_COLLECTION))
#define TUBA_API_IS_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TUBA_API_TYPE_COLLECTION))
#define TUBA_API_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TUBA_API_TYPE_COLLECTION, TubaAPICollectionClass))

typedef struct _TubaAPICollection TubaAPICollection;
typedef struct _TubaAPICollectionClass TubaAPICollectionClass;
enum  {
	TUBA_API_WRAPPED_COLLECTION_0_PROPERTY,
	TUBA_API_WRAPPED_COLLECTION_COLLECTION_PROPERTY,
	TUBA_API_WRAPPED_COLLECTION_NUM_PROPERTIES
};
static GParamSpec* tuba_api_wrapped_collection_properties[TUBA_API_WRAPPED_COLLECTION_NUM_PROPERTIES];
#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))

#define TUBA_API_TYPE_WRAPPED_COLLECTION_ITEM (tuba_api_wrapped_collection_item_get_type ())
#define TUBA_API_WRAPPED_COLLECTION_ITEM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TUBA_API_TYPE_WRAPPED_COLLECTION_ITEM, TubaAPIWrappedCollectionItem))
#define TUBA_API_WRAPPED_COLLECTION_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TUBA_API_TYPE_WRAPPED_COLLECTION_ITEM, TubaAPIWrappedCollectionItemClass))
#define TUBA_API_IS_WRAPPED_COLLECTION_ITEM(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TUBA_API_TYPE_WRAPPED_COLLECTION_ITEM))
#define TUBA_API_IS_WRAPPED_COLLECTION_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TUBA_API_TYPE_WRAPPED_COLLECTION_ITEM))
#define TUBA_API_WRAPPED_COLLECTION_ITEM_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TUBA_API_TYPE_WRAPPED_COLLECTION_ITEM, TubaAPIWrappedCollectionItemClass))

typedef struct _TubaAPIWrappedCollectionItem TubaAPIWrappedCollectionItem;
typedef struct _TubaAPIWrappedCollectionItemClass TubaAPIWrappedCollectionItemClass;
typedef struct _TubaAPIWrappedCollectionItemPrivate TubaAPIWrappedCollectionItemPrivate;

#define TUBA_API_COLLECTION_TYPE_ITEM (tuba_api_collection_item_get_type ())
#define TUBA_API_COLLECTION_ITEM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TUBA_API_COLLECTION_TYPE_ITEM, TubaAPICollectionItem))
#define TUBA_API_COLLECTION_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TUBA_API_COLLECTION_TYPE_ITEM, TubaAPICollectionItemClass))
#define TUBA_API_COLLECTION_IS_ITEM(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TUBA_API_COLLECTION_TYPE_ITEM))
#define TUBA_API_COLLECTION_IS_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TUBA_API_COLLECTION_TYPE_ITEM))
#define TUBA_API_COLLECTION_ITEM_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TUBA_API_COLLECTION_TYPE_ITEM, TubaAPICollectionItemClass))

typedef struct _TubaAPICollectionItem TubaAPICollectionItem;
typedef struct _TubaAPICollectionItemClass TubaAPICollectionItemClass;
enum  {
	TUBA_API_WRAPPED_COLLECTION_ITEM_0_PROPERTY,
	TUBA_API_WRAPPED_COLLECTION_ITEM_COLLECTION_ITEM_PROPERTY,
	TUBA_API_WRAPPED_COLLECTION_ITEM_NUM_PROPERTIES
};
static GParamSpec* tuba_api_wrapped_collection_item_properties[TUBA_API_WRAPPED_COLLECTION_ITEM_NUM_PROPERTIES];

#define TUBA_API_TYPE_COLLECTIONS (tuba_api_collections_get_type ())
#define TUBA_API_COLLECTIONS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TUBA_API_TYPE_COLLECTIONS, TubaAPICollections))
#define TUBA_API_COLLECTIONS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TUBA_API_TYPE_COLLECTIONS, TubaAPICollectionsClass))
#define TUBA_API_IS_COLLECTIONS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TUBA_API_TYPE_COLLECTIONS))
#define TUBA_API_IS_COLLECTIONS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TUBA_API_TYPE_COLLECTIONS))
#define TUBA_API_COLLECTIONS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TUBA_API_TYPE_COLLECTIONS, TubaAPICollectionsClass))

typedef struct _TubaAPICollections TubaAPICollections;
typedef struct _TubaAPICollectionsClass TubaAPICollectionsClass;
typedef struct _TubaAPICollectionsPrivate TubaAPICollectionsPrivate;
enum  {
	TUBA_API_COLLECTIONS_0_PROPERTY,
	TUBA_API_COLLECTIONS_COLLECTIONS_PROPERTY,
	TUBA_API_COLLECTIONS_NUM_PROPERTIES
};
static GParamSpec* tuba_api_collections_properties[TUBA_API_COLLECTIONS_NUM_PROPERTIES];
typedef struct _TubaAPICollectionPrivate TubaAPICollectionPrivate;

#define TUBA_API_COLLECTION_TYPE_TAG (tuba_api_collection_tag_get_type ())
#define TUBA_API_COLLECTION_TAG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TUBA_API_COLLECTION_TYPE_TAG, TubaAPICollectionTag))
#define TUBA_API_COLLECTION_TAG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TUBA_API_COLLECTION_TYPE_TAG, TubaAPICollectionTagClass))
#define TUBA_API_COLLECTION_IS_TAG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TUBA_API_COLLECTION_TYPE_TAG))
#define TUBA_API_COLLECTION_IS_TAG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TUBA_API_COLLECTION_TYPE_TAG))
#define TUBA_API_COLLECTION_TAG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TUBA_API_COLLECTION_TYPE_TAG, TubaAPICollectionTagClass))

typedef struct _TubaAPICollectionTag TubaAPICollectionTag;
typedef struct _TubaAPICollectionTagClass TubaAPICollectionTagClass;
enum  {
	TUBA_API_COLLECTION_0_PROPERTY,
	TUBA_API_COLLECTION_ID_PROPERTY,
	TUBA_API_COLLECTION_ACCOUNT_ID_PROPERTY,
	TUBA_API_COLLECTION_URL_PROPERTY,
	TUBA_API_COLLECTION_NAME_PROPERTY,
	TUBA_API_COLLECTION_DESCRIPTION_PROPERTY,
	TUBA_API_COLLECTION_SENSITIVE_PROPERTY,
	TUBA_API_COLLECTION_DISCOVERABLE_PROPERTY,
	TUBA_API_COLLECTION_LANGUAGE_PROPERTY,
	TUBA_API_COLLECTION_UPDATED_AT_PROPERTY,
	TUBA_API_COLLECTION_TAG_PROPERTY,
	TUBA_API_COLLECTION_ITEM_COUNT_PROPERTY,
	TUBA_API_COLLECTION_ITEMS_PROPERTY,
	TUBA_API_COLLECTION_NUM_PROPERTIES
};
static GParamSpec* tuba_api_collection_properties[TUBA_API_COLLECTION_NUM_PROPERTIES];
#define _g_free0(var) (var = (g_free (var), NULL))

#define TUBA_WIDGETS_TYPE_COLLECTION_ROW (tuba_widgets_collection_row_get_type ())
#define TUBA_WIDGETS_COLLECTION_ROW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TUBA_WIDGETS_TYPE_COLLECTION_ROW, TubaWidgetsCollectionRow))
#define TUBA_WIDGETS_COLLECTION_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TUBA_WIDGETS_TYPE_COLLECTION_ROW, TubaWidgetsCollectionRowClass))
#define TUBA_WIDGETS_IS_COLLECTION_ROW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TUBA_WIDGETS_TYPE_COLLECTION_ROW))
#define TUBA_WIDGETS_IS_COLLECTION_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TUBA_WIDGETS_TYPE_COLLECTION_ROW))
#define TUBA_WIDGETS_COLLECTION_ROW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TUBA_WIDGETS_TYPE_COLLECTION_ROW, TubaWidgetsCollectionRowClass))

typedef struct _TubaWidgetsCollectionRow TubaWidgetsCollectionRow;
typedef struct _TubaWidgetsCollectionRowClass TubaWidgetsCollectionRowClass;

#define TUBA_DIALOGS_TYPE_COLLECTION (tuba_dialogs_collection_get_type ())
#define TUBA_DIALOGS_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TUBA_DIALOGS_TYPE_COLLECTION, TubaDialogsCollection))
#define TUBA_DIALOGS_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TUBA_DIALOGS_TYPE_COLLECTION, TubaDialogsCollectionClass))
#define TUBA_DIALOGS_IS_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TUBA_DIALOGS_TYPE_COLLECTION))
#define TUBA_DIALOGS_IS_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TUBA_DIALOGS_TYPE_COLLECTION))
#define TUBA_DIALOGS_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TUBA_DIALOGS_TYPE_COLLECTION, TubaDialogsCollectionClass))

typedef struct _TubaDialogsCollection TubaDialogsCollection;
typedef struct _TubaDialogsCollectionClass TubaDialogsCollectionClass;

#define TUBA_TYPE_APPLICATION (tuba_application_get_type ())
#define TUBA_APPLICATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TUBA_TYPE_APPLICATION, TubaApplication))
#define TUBA_APPLICATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TUBA_TYPE_APPLICATION, TubaApplicationClass))
#define TUBA_IS_APPLICATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TUBA_TYPE_APPLICATION))
#define TUBA_IS_APPLICATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TUBA_TYPE_APPLICATION))
#define TUBA_APPLICATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TUBA_TYPE_APPLICATION, TubaApplicationClass))

typedef struct _TubaApplication TubaApplication;
typedef struct _TubaApplicationClass TubaApplicationClass;

#define TUBA_DIALOGS_TYPE_MAIN_WINDOW (tuba_dialogs_main_window_get_type ())
#define TUBA_DIALOGS_MAIN_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TUBA_DIALOGS_TYPE_MAIN_WINDOW, TubaDialogsMainWindow))
#define TUBA_DIALOGS_MAIN_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TUBA_DIALOGS_TYPE_MAIN_WINDOW, TubaDialogsMainWindowClass))
#define TUBA_DIALOGS_IS_MAIN_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TUBA_DIALOGS_TYPE_MAIN_WINDOW))
#define TUBA_DIALOGS_IS_MAIN_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TUBA_DIALOGS_TYPE_MAIN_WINDOW))
#define TUBA_DIALOGS_MAIN_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TUBA_DIALOGS_TYPE_MAIN_WINDOW, TubaDialogsMainWindowClass))

typedef struct _TubaDialogsMainWindow TubaDialogsMainWindow;
typedef struct _TubaDialogsMainWindowClass TubaDialogsMainWindowClass;
typedef struct _TubaAPICollectionTagPrivate TubaAPICollectionTagPrivate;
enum  {
	TUBA_API_COLLECTION_TAG_0_PROPERTY,
	TUBA_API_COLLECTION_TAG_NAME_PROPERTY,
	TUBA_API_COLLECTION_TAG_URL_PROPERTY,
	TUBA_API_COLLECTION_TAG_NUM_PROPERTIES
};
static GParamSpec* tuba_api_collection_tag_properties[TUBA_API_COLLECTION_TAG_NUM_PROPERTIES];
typedef struct _TubaAPICollectionItemPrivate TubaAPICollectionItemPrivate;
enum  {
	TUBA_API_COLLECTION_ITEM_0_PROPERTY,
	TUBA_API_COLLECTION_ITEM_ID_PROPERTY,
	TUBA_API_COLLECTION_ITEM_ACCOUNT_ID_PROPERTY,
	TUBA_API_COLLECTION_ITEM_STATE_PROPERTY,
	TUBA_API_COLLECTION_ITEM_NUM_PROPERTIES
};
static GParamSpec* tuba_api_collection_item_properties[TUBA_API_COLLECTION_ITEM_NUM_PROPERTIES];

struct _TubaWidgetizableIface {
	GTypeInterface parent_iface;
	GtkWidget* (*to_widget) (TubaWidgetizable* self);
	void (*open) (TubaWidgetizable* self);
	void (*resolve_open) (TubaWidgetizable* self, TubaInstanceAccount* account);
};

struct _TubaEntity {
	GObject parent_instance;
	TubaEntityPrivate * priv;
};

struct _TubaEntityClass {
	GObjectClass parent_class;
	gboolean (*is_local) (TubaEntity* self, TubaInstanceAccount* account);
	GType (*deserialize_array_type) (TubaEntity* self, const gchar* prop);
};

struct _TubaAPIWrappedCollection {
	TubaEntity parent_instance;
	TubaAPIWrappedCollectionPrivate * priv;
};

struct _TubaAPIWrappedCollectionClass {
	TubaEntityClass parent_class;
};

struct _TubaAPIWrappedCollectionPrivate {
	TubaAPICollection* _collection;
};

struct _TubaAPIWrappedCollectionItem {
	TubaEntity parent_instance;
	TubaAPIWrappedCollectionItemPrivate * priv;
};

struct _TubaAPIWrappedCollectionItemClass {
	TubaEntityClass parent_class;
};

struct _TubaAPIWrappedCollectionItemPrivate {
	TubaAPICollectionItem* _collection_item;
};

struct _TubaAPICollections {
	TubaEntity parent_instance;
	TubaAPICollectionsPrivate * priv;
};

struct _TubaAPICollectionsClass {
	TubaEntityClass parent_class;
};

struct _TubaAPICollectionsPrivate {
	GeeArrayList* _collections;
};

struct _TubaAPICollection {
	TubaEntity parent_instance;
	TubaAPICollectionPrivate * priv;
};

struct _TubaAPICollectionClass {
	TubaEntityClass parent_class;
};

struct _TubaAPICollectionPrivate {
	gchar* _id;
	gchar* _account_id;
	gchar* _url;
	gchar* _name;
	gchar* _description;
	gboolean _sensitive;
	gboolean _discoverable;
	gchar* _language;
	gchar* _updated_at;
	TubaAPICollectionTag* _tag;
	gint32 _item_count;
	GeeArrayList* _items;
};

struct _TubaAPICollectionTag {
	TubaEntity parent_instance;
	TubaAPICollectionTagPrivate * priv;
};

struct _TubaAPICollectionTagClass {
	TubaEntityClass parent_class;
};

struct _TubaAPICollectionTagPrivate {
	gchar* _name;
	gchar* _url;
};

struct _TubaAPICollectionItem {
	TubaEntity parent_instance;
	TubaAPICollectionItemPrivate * priv;
};

struct _TubaAPICollectionItemClass {
	TubaEntityClass parent_class;
};

struct _TubaAPICollectionItemPrivate {
	gchar* _id;
	gchar* _account_id;
	gchar* _state;
};

static gint TubaAPIWrappedCollection_private_offset;
static gpointer tuba_api_wrapped_collection_parent_class = NULL;
static gint TubaAPIWrappedCollectionItem_private_offset;
static gpointer tuba_api_wrapped_collection_item_parent_class = NULL;
static gint TubaAPICollections_private_offset;
static gpointer tuba_api_collections_parent_class = NULL;
static gint TubaAPICollection_private_offset;
static gpointer tuba_api_collection_parent_class = NULL;
VALA_EXTERN TubaApplication* tuba_app;
static gint TubaAPICollectionTag_private_offset;
static gpointer tuba_api_collection_tag_parent_class = NULL;
static gint TubaAPICollectionItem_private_offset;
static gpointer tuba_api_collection_item_parent_class = NULL;
static TubaWidgetizableIface * tuba_api_collection_tuba_widgetizable_parent_iface = NULL;

VALA_EXTERN GType tuba_entity_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaEntity, g_object_unref)
VALA_EXTERN GType tuba_api_account_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaAPIAccount, g_object_unref)
VALA_EXTERN GType tuba_instance_account_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaInstanceAccount, g_object_unref)
VALA_EXTERN GType tuba_widgetizable_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaWidgetizable, g_object_unref)
VALA_EXTERN GType tuba_api_wrapped_collection_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaAPIWrappedCollection, g_object_unref)
VALA_EXTERN GType tuba_api_collection_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaAPICollection, g_object_unref)
VALA_EXTERN TubaAPIWrappedCollection* tuba_api_wrapped_collection_new (void);
VALA_EXTERN TubaAPIWrappedCollection* tuba_api_wrapped_collection_construct (GType object_type);
VALA_EXTERN TubaEntity* tuba_entity_new (void);
VALA_EXTERN TubaEntity* tuba_entity_construct (GType object_type);
VALA_EXTERN TubaAPICollection* tuba_api_wrapped_collection_get_collection (TubaAPIWrappedCollection* self);
VALA_EXTERN void tuba_api_wrapped_collection_set_collection (TubaAPIWrappedCollection* self,
                                                 TubaAPICollection* value);
static void tuba_api_wrapped_collection_finalize (GObject * obj);
static GType tuba_api_wrapped_collection_get_type_once (void);
static void _vala_tuba_api_wrapped_collection_get_property (GObject * object,
                                                     guint property_id,
                                                     GValue * value,
                                                     GParamSpec * pspec);
static void _vala_tuba_api_wrapped_collection_set_property (GObject * object,
                                                     guint property_id,
                                                     const GValue * value,
                                                     GParamSpec * pspec);
VALA_EXTERN GType tuba_api_wrapped_collection_item_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaAPIWrappedCollectionItem, g_object_unref)
VALA_EXTERN GType tuba_api_collection_item_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaAPICollectionItem, g_object_unref)
VALA_EXTERN TubaAPIWrappedCollectionItem* tuba_api_wrapped_collection_item_new (void);
VALA_EXTERN TubaAPIWrappedCollectionItem* tuba_api_wrapped_collection_item_construct (GType object_type);
VALA_EXTERN TubaAPICollectionItem* tuba_api_wrapped_collection_item_get_collection_item (TubaAPIWrappedCollectionItem* self);
VALA_EXTERN void tuba_api_wrapped_collection_item_set_collection_item (TubaAPIWrappedCollectionItem* self,
                                                           TubaAPICollectionItem* value);
static void tuba_api_wrapped_collection_item_finalize (GObject * obj);
static GType tuba_api_wrapped_collection_item_get_type_once (void);
static void _vala_tuba_api_wrapped_collection_item_get_property (GObject * object,
                                                          guint property_id,
                                                          GValue * value,
                                                          GParamSpec * pspec);
static void _vala_tuba_api_wrapped_collection_item_set_property (GObject * object,
                                                          guint property_id,
                                                          const GValue * value,
                                                          GParamSpec * pspec);
VALA_EXTERN GType tuba_api_collections_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaAPICollections, g_object_unref)
VALA_EXTERN GType tuba_entity_deserialize_array_type (TubaEntity* self,
                                          const gchar* prop);
static GType tuba_api_collections_real_deserialize_array_type (TubaEntity* base,
                                                        const gchar* prop);
VALA_EXTERN TubaAPICollections* tuba_api_collections_from (JsonNode* node,
                                               GError** error);
VALA_EXTERN TubaEntity* tuba_entity_from_json (GType type,
                                   JsonNode* node,
                                   GError** error);
VALA_EXTERN TubaAPICollections* tuba_api_collections_new (void);
VALA_EXTERN TubaAPICollections* tuba_api_collections_construct (GType object_type);
VALA_EXTERN GeeArrayList* tuba_api_collections_get_collections (TubaAPICollections* self);
VALA_EXTERN void tuba_api_collections_set_collections (TubaAPICollections* self,
                                           GeeArrayList* value);
static void tuba_api_collections_finalize (GObject * obj);
static GType tuba_api_collections_get_type_once (void);
static void _vala_tuba_api_collections_get_property (GObject * object,
                                              guint property_id,
                                              GValue * value,
                                              GParamSpec * pspec);
static void _vala_tuba_api_collections_set_property (GObject * object,
                                              guint property_id,
                                              const GValue * value,
                                              GParamSpec * pspec);
VALA_EXTERN GType tuba_api_collection_tag_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaAPICollectionTag, g_object_unref)
static GType tuba_api_collection_real_deserialize_array_type (TubaEntity* base,
                                                       const gchar* prop);
static GtkWidget* tuba_api_collection_real_to_widget (TubaWidgetizable* base);
VALA_EXTERN TubaWidgetsCollectionRow* tuba_widgets_collection_row_new (TubaAPICollection* collection);
VALA_EXTERN TubaWidgetsCollectionRow* tuba_widgets_collection_row_construct (GType object_type,
                                                                 TubaAPICollection* collection);
VALA_EXTERN GType tuba_widgets_collection_row_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaWidgetsCollectionRow, g_object_unref)
static void tuba_api_collection_real_open (TubaWidgetizable* base);
VALA_EXTERN TubaDialogsCollection* tuba_dialogs_collection_new (TubaAPICollection* collection);
VALA_EXTERN TubaDialogsCollection* tuba_dialogs_collection_construct (GType object_type,
                                                          TubaAPICollection* collection);
VALA_EXTERN GType tuba_dialogs_collection_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaDialogsCollection, g_object_unref)
VALA_EXTERN GType tuba_application_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaApplication, g_object_unref)
VALA_EXTERN GType tuba_dialogs_main_window_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaDialogsMainWindow, g_object_unref)
VALA_EXTERN TubaDialogsMainWindow* tuba_application_get_main_window (TubaApplication* self);
VALA_EXTERN TubaAPICollection* tuba_api_collection_new (void);
VALA_EXTERN TubaAPICollection* tuba_api_collection_construct (GType object_type);
VALA_EXTERN const gchar* tuba_api_collection_get_id (TubaAPICollection* self);
VALA_EXTERN void tuba_api_collection_set_id (TubaAPICollection* self,
                                 const gchar* value);
VALA_EXTERN const gchar* tuba_api_collection_get_account_id (TubaAPICollection* self);
VALA_EXTERN void tuba_api_collection_set_account_id (TubaAPICollection* self,
                                         const gchar* value);
VALA_EXTERN const gchar* tuba_api_collection_get_url (TubaAPICollection* self);
VALA_EXTERN void tuba_api_collection_set_url (TubaAPICollection* self,
                                  const gchar* value);
VALA_EXTERN const gchar* tuba_api_collection_get_name (TubaAPICollection* self);
VALA_EXTERN void tuba_api_collection_set_name (TubaAPICollection* self,
                                   const gchar* value);
VALA_EXTERN const gchar* tuba_api_collection_get_description (TubaAPICollection* self);
VALA_EXTERN void tuba_api_collection_set_description (TubaAPICollection* self,
                                          const gchar* value);
VALA_EXTERN gboolean tuba_api_collection_get_sensitive (TubaAPICollection* self);
VALA_EXTERN void tuba_api_collection_set_sensitive (TubaAPICollection* self,
                                        gboolean value);
VALA_EXTERN gboolean tuba_api_collection_get_discoverable (TubaAPICollection* self);
VALA_EXTERN void tuba_api_collection_set_discoverable (TubaAPICollection* self,
                                           gboolean value);
VALA_EXTERN const gchar* tuba_api_collection_get_language (TubaAPICollection* self);
VALA_EXTERN void tuba_api_collection_set_language (TubaAPICollection* self,
                                       const gchar* value);
VALA_EXTERN const gchar* tuba_api_collection_get_updated_at (TubaAPICollection* self);
VALA_EXTERN void tuba_api_collection_set_updated_at (TubaAPICollection* self,
                                         const gchar* value);
VALA_EXTERN TubaAPICollectionTag* tuba_api_collection_get_tag (TubaAPICollection* self);
VALA_EXTERN void tuba_api_collection_set_tag (TubaAPICollection* self,
                                  TubaAPICollectionTag* value);
VALA_EXTERN gint32 tuba_api_collection_get_item_count (TubaAPICollection* self);
VALA_EXTERN void tuba_api_collection_set_item_count (TubaAPICollection* self,
                                         gint32 value);
VALA_EXTERN GeeArrayList* tuba_api_collection_get_items (TubaAPICollection* self);
VALA_EXTERN void tuba_api_collection_set_items (TubaAPICollection* self,
                                    GeeArrayList* value);
VALA_EXTERN TubaAPICollectionTag* tuba_api_collection_tag_new (void);
VALA_EXTERN TubaAPICollectionTag* tuba_api_collection_tag_construct (GType object_type);
VALA_EXTERN const gchar* tuba_api_collection_tag_get_name (TubaAPICollectionTag* self);
VALA_EXTERN void tuba_api_collection_tag_set_name (TubaAPICollectionTag* self,
                                       const gchar* value);
VALA_EXTERN const gchar* tuba_api_collection_tag_get_url (TubaAPICollectionTag* self);
VALA_EXTERN void tuba_api_collection_tag_set_url (TubaAPICollectionTag* self,
                                      const gchar* value);
static void tuba_api_collection_tag_finalize (GObject * obj);
static GType tuba_api_collection_tag_get_type_once (void);
static void _vala_tuba_api_collection_tag_get_property (GObject * object,
                                                 guint property_id,
                                                 GValue * value,
                                                 GParamSpec * pspec);
static void _vala_tuba_api_collection_tag_set_property (GObject * object,
                                                 guint property_id,
                                                 const GValue * value,
                                                 GParamSpec * pspec);
VALA_EXTERN TubaAPICollectionItem* tuba_api_collection_item_new (void);
VALA_EXTERN TubaAPICollectionItem* tuba_api_collection_item_construct (GType object_type);
VALA_EXTERN const gchar* tuba_api_collection_item_get_id (TubaAPICollectionItem* self);
VALA_EXTERN void tuba_api_collection_item_set_id (TubaAPICollectionItem* self,
                                      const gchar* value);
VALA_EXTERN const gchar* tuba_api_collection_item_get_account_id (TubaAPICollectionItem* self);
VALA_EXTERN void tuba_api_collection_item_set_account_id (TubaAPICollectionItem* self,
                                              const gchar* value);
VALA_EXTERN const gchar* tuba_api_collection_item_get_state (TubaAPICollectionItem* self);
VALA_EXTERN void tuba_api_collection_item_set_state (TubaAPICollectionItem* self,
                                         const gchar* value);
static void tuba_api_collection_item_finalize (GObject * obj);
static GType tuba_api_collection_item_get_type_once (void);
static void _vala_tuba_api_collection_item_get_property (GObject * object,
                                                  guint property_id,
                                                  GValue * value,
                                                  GParamSpec * pspec);
static void _vala_tuba_api_collection_item_set_property (GObject * object,
                                                  guint property_id,
                                                  const GValue * value,
                                                  GParamSpec * pspec);
VALA_EXTERN GtkWidget* tuba_widgetizable_to_widget (TubaWidgetizable* self);
VALA_EXTERN void tuba_widgetizable_open (TubaWidgetizable* self);
static void tuba_api_collection_finalize (GObject * obj);
static GType tuba_api_collection_get_type_once (void);
static void _vala_tuba_api_collection_get_property (GObject * object,
                                             guint property_id,
                                             GValue * value,
                                             GParamSpec * pspec);
static void _vala_tuba_api_collection_set_property (GObject * object,
                                             guint property_id,
                                             const GValue * value,
                                             GParamSpec * pspec);

static inline gpointer
tuba_api_wrapped_collection_get_instance_private (TubaAPIWrappedCollection* self)
{
	return G_STRUCT_MEMBER_P (self, TubaAPIWrappedCollection_private_offset);
}

TubaAPIWrappedCollection*
tuba_api_wrapped_collection_construct (GType object_type)
{
	TubaAPIWrappedCollection * self = NULL;
	self = (TubaAPIWrappedCollection*) tuba_entity_construct (object_type);
	return self;
}

TubaAPIWrappedCollection*
tuba_api_wrapped_collection_new (void)
{
	return tuba_api_wrapped_collection_construct (TUBA_API_TYPE_WRAPPED_COLLECTION);
}

TubaAPICollection*
tuba_api_wrapped_collection_get_collection (TubaAPIWrappedCollection* self)
{
	TubaAPICollection* result;
	TubaAPICollection* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_collection;
	result = _tmp0_;
	return result;
}

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

void
tuba_api_wrapped_collection_set_collection (TubaAPIWrappedCollection* self,
                                            TubaAPICollection* value)
{
	TubaAPICollection* old_value;
	g_return_if_fail (self != NULL);
	old_value = tuba_api_wrapped_collection_get_collection (self);
	if (old_value != value) {
		TubaAPICollection* _tmp0_;
		_tmp0_ = _g_object_ref0 (value);
		_g_object_unref0 (self->priv->_collection);
		self->priv->_collection = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, tuba_api_wrapped_collection_properties[TUBA_API_WRAPPED_COLLECTION_COLLECTION_PROPERTY]);
	}
}

static void
tuba_api_wrapped_collection_class_init (TubaAPIWrappedCollectionClass * klass,
                                        gpointer klass_data)
{
	tuba_api_wrapped_collection_parent_class = g_type_class_peek_parent (klass);
	g_type_class_adjust_private_offset (klass, &TubaAPIWrappedCollection_private_offset);
	G_OBJECT_CLASS (klass)->get_property = _vala_tuba_api_wrapped_collection_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_tuba_api_wrapped_collection_set_property;
	G_OBJECT_CLASS (klass)->finalize = tuba_api_wrapped_collection_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), TUBA_API_WRAPPED_COLLECTION_COLLECTION_PROPERTY, tuba_api_wrapped_collection_properties[TUBA_API_WRAPPED_COLLECTION_COLLECTION_PROPERTY] = g_param_spec_object ("collection", "collection", "collection", TUBA_API_TYPE_COLLECTION, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
}

static void
tuba_api_wrapped_collection_instance_init (TubaAPIWrappedCollection * self,
                                           gpointer klass)
{
	self->priv = tuba_api_wrapped_collection_get_instance_private (self);
}

static void
tuba_api_wrapped_collection_finalize (GObject * obj)
{
	TubaAPIWrappedCollection * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, TUBA_API_TYPE_WRAPPED_COLLECTION, TubaAPIWrappedCollection);
	_g_object_unref0 (self->priv->_collection);
	G_OBJECT_CLASS (tuba_api_wrapped_collection_parent_class)->finalize (obj);
}

 G_GNUC_NO_INLINE static GType
tuba_api_wrapped_collection_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (TubaAPIWrappedCollectionClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) tuba_api_wrapped_collection_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (TubaAPIWrappedCollection), 0, (GInstanceInitFunc) tuba_api_wrapped_collection_instance_init, NULL };
	GType tuba_api_wrapped_collection_type_id;
	tuba_api_wrapped_collection_type_id = g_type_register_static (TUBA_TYPE_ENTITY, "TubaAPIWrappedCollection", &g_define_type_info, G_TYPE_FLAG_NONE);
	TubaAPIWrappedCollection_private_offset = g_type_add_instance_private (tuba_api_wrapped_collection_type_id, sizeof (TubaAPIWrappedCollectionPrivate));
	return tuba_api_wrapped_collection_type_id;
}

GType
tuba_api_wrapped_collection_get_type (void)
{
	static GType tuba_api_wrapped_collection_type_id__once = 0;
	if (g_once_init_enter_pointer (&tuba_api_wrapped_collection_type_id__once)) {
		GType tuba_api_wrapped_collection_type_id;
		tuba_api_wrapped_collection_type_id = tuba_api_wrapped_collection_get_type_once ();
		g_once_init_leave_pointer (&tuba_api_wrapped_collection_type_id__once, tuba_api_wrapped_collection_type_id);
	}
	return tuba_api_wrapped_collection_type_id__once;
}

static void
_vala_tuba_api_wrapped_collection_get_property (GObject * object,
                                                guint property_id,
                                                GValue * value,
                                                GParamSpec * pspec)
{
	TubaAPIWrappedCollection * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, TUBA_API_TYPE_WRAPPED_COLLECTION, TubaAPIWrappedCollection);
	switch (property_id) {
		case TUBA_API_WRAPPED_COLLECTION_COLLECTION_PROPERTY:
		g_value_set_object (value, tuba_api_wrapped_collection_get_collection (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static void
_vala_tuba_api_wrapped_collection_set_property (GObject * object,
                                                guint property_id,
                                                const GValue * value,
                                                GParamSpec * pspec)
{
	TubaAPIWrappedCollection * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, TUBA_API_TYPE_WRAPPED_COLLECTION, TubaAPIWrappedCollection);
	switch (property_id) {
		case TUBA_API_WRAPPED_COLLECTION_COLLECTION_PROPERTY:
		tuba_api_wrapped_collection_set_collection (self, g_value_get_object (value));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static inline gpointer
tuba_api_wrapped_collection_item_get_instance_private (TubaAPIWrappedCollectionItem* self)
{
	return G_STRUCT_MEMBER_P (self, TubaAPIWrappedCollectionItem_private_offset);
}

TubaAPIWrappedCollectionItem*
tuba_api_wrapped_collection_item_construct (GType object_type)
{
	TubaAPIWrappedCollectionItem * self = NULL;
	self = (TubaAPIWrappedCollectionItem*) tuba_entity_construct (object_type);
	return self;
}

TubaAPIWrappedCollectionItem*
tuba_api_wrapped_collection_item_new (void)
{
	return tuba_api_wrapped_collection_item_construct (TUBA_API_TYPE_WRAPPED_COLLECTION_ITEM);
}

TubaAPICollectionItem*
tuba_api_wrapped_collection_item_get_collection_item (TubaAPIWrappedCollectionItem* self)
{
	TubaAPICollectionItem* result;
	TubaAPICollectionItem* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_collection_item;
	result = _tmp0_;
	return result;
}

void
tuba_api_wrapped_collection_item_set_collection_item (TubaAPIWrappedCollectionItem* self,
                                                      TubaAPICollectionItem* value)
{
	TubaAPICollectionItem* old_value;
	g_return_if_fail (self != NULL);
	old_value = tuba_api_wrapped_collection_item_get_collection_item (self);
	if (old_value != value) {
		TubaAPICollectionItem* _tmp0_;
		_tmp0_ = _g_object_ref0 (value);
		_g_object_unref0 (self->priv->_collection_item);
		self->priv->_collection_item = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, tuba_api_wrapped_collection_item_properties[TUBA_API_WRAPPED_COLLECTION_ITEM_COLLECTION_ITEM_PROPERTY]);
	}
}

static void
tuba_api_wrapped_collection_item_class_init (TubaAPIWrappedCollectionItemClass * klass,
                                             gpointer klass_data)
{
	tuba_api_wrapped_collection_item_parent_class = g_type_class_peek_parent (klass);
	g_type_class_adjust_private_offset (klass, &TubaAPIWrappedCollectionItem_private_offset);
	G_OBJECT_CLASS (klass)->get_property = _vala_tuba_api_wrapped_collection_item_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_tuba_api_wrapped_collection_item_set_property;
	G_OBJECT_CLASS (klass)->finalize = tuba_api_wrapped_collection_item_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), TUBA_API_WRAPPED_COLLECTION_ITEM_COLLECTION_ITEM_PROPERTY, tuba_api_wrapped_collection_item_properties[TUBA_API_WRAPPED_COLLECTION_ITEM_COLLECTION_ITEM_PROPERTY] = g_param_spec_object ("collection-item", "collection-item", "collection-item", TUBA_API_COLLECTION_TYPE_ITEM, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
}

static void
tuba_api_wrapped_collection_item_instance_init (TubaAPIWrappedCollectionItem * self,
                                                gpointer klass)
{
	self->priv = tuba_api_wrapped_collection_item_get_instance_private (self);
}

static void
tuba_api_wrapped_collection_item_finalize (GObject * obj)
{
	TubaAPIWrappedCollectionItem * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, TUBA_API_TYPE_WRAPPED_COLLECTION_ITEM, TubaAPIWrappedCollectionItem);
	_g_object_unref0 (self->priv->_collection_item);
	G_OBJECT_CLASS (tuba_api_wrapped_collection_item_parent_class)->finalize (obj);
}

 G_GNUC_NO_INLINE static GType
tuba_api_wrapped_collection_item_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (TubaAPIWrappedCollectionItemClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) tuba_api_wrapped_collection_item_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (TubaAPIWrappedCollectionItem), 0, (GInstanceInitFunc) tuba_api_wrapped_collection_item_instance_init, NULL };
	GType tuba_api_wrapped_collection_item_type_id;
	tuba_api_wrapped_collection_item_type_id = g_type_register_static (TUBA_TYPE_ENTITY, "TubaAPIWrappedCollectionItem", &g_define_type_info, G_TYPE_FLAG_NONE);
	TubaAPIWrappedCollectionItem_private_offset = g_type_add_instance_private (tuba_api_wrapped_collection_item_type_id, sizeof (TubaAPIWrappedCollectionItemPrivate));
	return tuba_api_wrapped_collection_item_type_id;
}

GType
tuba_api_wrapped_collection_item_get_type (void)
{
	static GType tuba_api_wrapped_collection_item_type_id__once = 0;
	if (g_once_init_enter_pointer (&tuba_api_wrapped_collection_item_type_id__once)) {
		GType tuba_api_wrapped_collection_item_type_id;
		tuba_api_wrapped_collection_item_type_id = tuba_api_wrapped_collection_item_get_type_once ();
		g_once_init_leave_pointer (&tuba_api_wrapped_collection_item_type_id__once, tuba_api_wrapped_collection_item_type_id);
	}
	return tuba_api_wrapped_collection_item_type_id__once;
}

static void
_vala_tuba_api_wrapped_collection_item_get_property (GObject * object,
                                                     guint property_id,
                                                     GValue * value,
                                                     GParamSpec * pspec)
{
	TubaAPIWrappedCollectionItem * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, TUBA_API_TYPE_WRAPPED_COLLECTION_ITEM, TubaAPIWrappedCollectionItem);
	switch (property_id) {
		case TUBA_API_WRAPPED_COLLECTION_ITEM_COLLECTION_ITEM_PROPERTY:
		g_value_set_object (value, tuba_api_wrapped_collection_item_get_collection_item (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static void
_vala_tuba_api_wrapped_collection_item_set_property (GObject * object,
                                                     guint property_id,
                                                     const GValue * value,
                                                     GParamSpec * pspec)
{
	TubaAPIWrappedCollectionItem * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, TUBA_API_TYPE_WRAPPED_COLLECTION_ITEM, TubaAPIWrappedCollectionItem);
	switch (property_id) {
		case TUBA_API_WRAPPED_COLLECTION_ITEM_COLLECTION_ITEM_PROPERTY:
		tuba_api_wrapped_collection_item_set_collection_item (self, g_value_get_object (value));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static inline gpointer
tuba_api_collections_get_instance_private (TubaAPICollections* self)
{
	return G_STRUCT_MEMBER_P (self, TubaAPICollections_private_offset);
}

static GType
tuba_api_collections_real_deserialize_array_type (TubaEntity* base,
                                                  const gchar* prop)
{
	TubaAPICollections * self;
	const gchar* _tmp0_;
	GQuark _tmp2_ = 0U;
	static GQuark _tmp1_label0 = 0;
	GType result;
	self = (TubaAPICollections*) base;
	g_return_val_if_fail (prop != NULL, G_TYPE_INVALID);
	_tmp0_ = prop;
	_tmp2_ = (NULL == _tmp0_) ? 0 : g_quark_from_string (_tmp0_);
	if (_tmp2_ == ((0 != _tmp1_label0) ? _tmp1_label0 : (_tmp1_label0 = g_quark_from_static_string ("collections")))) {
		switch (0) {
			default:
			{
				result = TUBA_API_TYPE_COLLECTION;
				return result;
			}
		}
	}
	result = TUBA_ENTITY_CLASS (tuba_api_collections_parent_class)->deserialize_array_type (G_TYPE_CHECK_INSTANCE_CAST (self, TUBA_TYPE_ENTITY, TubaEntity), prop);
	return result;
}

TubaAPICollections*
tuba_api_collections_from (JsonNode* node,
                           GError** error)
{
	TubaEntity* _tmp0_ = NULL;
	TubaEntity* _tmp1_;
	TubaAPICollections* _tmp2_;
	GError* _inner_error0_ = NULL;
	TubaAPICollections* result;
	g_return_val_if_fail (node != NULL, NULL);
	_tmp1_ = tuba_entity_from_json (TUBA_API_TYPE_COLLECTIONS, node, &_inner_error0_);
	_tmp0_ = _tmp1_;
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
		g_propagate_error (error, _inner_error0_);
		return NULL;
	}
	_tmp2_ = _g_object_ref0 (TUBA_API_IS_COLLECTIONS (_tmp0_) ? ((TubaAPICollections*) _tmp0_) : NULL);
	result = _tmp2_;
	_g_object_unref0 (_tmp0_);
	return result;
}

TubaAPICollections*
tuba_api_collections_construct (GType object_type)
{
	TubaAPICollections * self = NULL;
	self = (TubaAPICollections*) tuba_entity_construct (object_type);
	return self;
}

TubaAPICollections*
tuba_api_collections_new (void)
{
	return tuba_api_collections_construct (TUBA_API_TYPE_COLLECTIONS);
}

GeeArrayList*
tuba_api_collections_get_collections (TubaAPICollections* self)
{
	GeeArrayList* result;
	GeeArrayList* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_collections;
	result = _tmp0_;
	return result;
}

void
tuba_api_collections_set_collections (TubaAPICollections* self,
                                      GeeArrayList* value)
{
	GeeArrayList* old_value;
	g_return_if_fail (self != NULL);
	old_value = tuba_api_collections_get_collections (self);
	if (old_value != value) {
		GeeArrayList* _tmp0_;
		_tmp0_ = _g_object_ref0 (value);
		_g_object_unref0 (self->priv->_collections);
		self->priv->_collections = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, tuba_api_collections_properties[TUBA_API_COLLECTIONS_COLLECTIONS_PROPERTY]);
	}
}

static void
tuba_api_collections_class_init (TubaAPICollectionsClass * klass,
                                 gpointer klass_data)
{
	tuba_api_collections_parent_class = g_type_class_peek_parent (klass);
	g_type_class_adjust_private_offset (klass, &TubaAPICollections_private_offset);
	((TubaEntityClass *) klass)->deserialize_array_type = (GType (*) (TubaEntity*, const gchar*)) tuba_api_collections_real_deserialize_array_type;
	G_OBJECT_CLASS (klass)->get_property = _vala_tuba_api_collections_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_tuba_api_collections_set_property;
	G_OBJECT_CLASS (klass)->finalize = tuba_api_collections_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), TUBA_API_COLLECTIONS_COLLECTIONS_PROPERTY, tuba_api_collections_properties[TUBA_API_COLLECTIONS_COLLECTIONS_PROPERTY] = g_param_spec_object ("collections", "collections", "collections", GEE_TYPE_ARRAY_LIST, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
}

static void
tuba_api_collections_instance_init (TubaAPICollections * self,
                                    gpointer klass)
{
	self->priv = tuba_api_collections_get_instance_private (self);
}

static void
tuba_api_collections_finalize (GObject * obj)
{
	TubaAPICollections * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, TUBA_API_TYPE_COLLECTIONS, TubaAPICollections);
	_g_object_unref0 (self->priv->_collections);
	G_OBJECT_CLASS (tuba_api_collections_parent_class)->finalize (obj);
}

 G_GNUC_NO_INLINE static GType
tuba_api_collections_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (TubaAPICollectionsClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) tuba_api_collections_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (TubaAPICollections), 0, (GInstanceInitFunc) tuba_api_collections_instance_init, NULL };
	GType tuba_api_collections_type_id;
	tuba_api_collections_type_id = g_type_register_static (TUBA_TYPE_ENTITY, "TubaAPICollections", &g_define_type_info, G_TYPE_FLAG_NONE);
	TubaAPICollections_private_offset = g_type_add_instance_private (tuba_api_collections_type_id, sizeof (TubaAPICollectionsPrivate));
	return tuba_api_collections_type_id;
}

GType
tuba_api_collections_get_type (void)
{
	static GType tuba_api_collections_type_id__once = 0;
	if (g_once_init_enter_pointer (&tuba_api_collections_type_id__once)) {
		GType tuba_api_collections_type_id;
		tuba_api_collections_type_id = tuba_api_collections_get_type_once ();
		g_once_init_leave_pointer (&tuba_api_collections_type_id__once, tuba_api_collections_type_id);
	}
	return tuba_api_collections_type_id__once;
}

static void
_vala_tuba_api_collections_get_property (GObject * object,
                                         guint property_id,
                                         GValue * value,
                                         GParamSpec * pspec)
{
	TubaAPICollections * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, TUBA_API_TYPE_COLLECTIONS, TubaAPICollections);
	switch (property_id) {
		case TUBA_API_COLLECTIONS_COLLECTIONS_PROPERTY:
		g_value_set_object (value, tuba_api_collections_get_collections (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static void
_vala_tuba_api_collections_set_property (GObject * object,
                                         guint property_id,
                                         const GValue * value,
                                         GParamSpec * pspec)
{
	TubaAPICollections * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, TUBA_API_TYPE_COLLECTIONS, TubaAPICollections);
	switch (property_id) {
		case TUBA_API_COLLECTIONS_COLLECTIONS_PROPERTY:
		tuba_api_collections_set_collections (self, g_value_get_object (value));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static inline gpointer
tuba_api_collection_get_instance_private (TubaAPICollection* self)
{
	return G_STRUCT_MEMBER_P (self, TubaAPICollection_private_offset);
}

static GType
tuba_api_collection_real_deserialize_array_type (TubaEntity* base,
                                                 const gchar* prop)
{
	TubaAPICollection * self;
	const gchar* _tmp0_;
	GQuark _tmp2_ = 0U;
	static GQuark _tmp1_label0 = 0;
	GType result;
	self = (TubaAPICollection*) base;
	g_return_val_if_fail (prop != NULL, G_TYPE_INVALID);
	_tmp0_ = prop;
	_tmp2_ = (NULL == _tmp0_) ? 0 : g_quark_from_string (_tmp0_);
	if (_tmp2_ == ((0 != _tmp1_label0) ? _tmp1_label0 : (_tmp1_label0 = g_quark_from_static_string ("items")))) {
		switch (0) {
			default:
			{
				result = TUBA_API_COLLECTION_TYPE_ITEM;
				return result;
			}
		}
	}
	result = TUBA_ENTITY_CLASS (tuba_api_collection_parent_class)->deserialize_array_type (G_TYPE_CHECK_INSTANCE_CAST (self, TUBA_TYPE_ENTITY, TubaEntity), prop);
	return result;
}

static GtkWidget*
tuba_api_collection_real_to_widget (TubaWidgetizable* base)
{
	TubaAPICollection * self;
	TubaWidgetsCollectionRow* _tmp0_;
	GtkWidget* result;
	self = (TubaAPICollection*) base;
	_tmp0_ = tuba_widgets_collection_row_new (self);
	g_object_ref_sink (_tmp0_);
	result = (GtkWidget*) _tmp0_;
	return result;
}

static void
tuba_api_collection_real_open (TubaWidgetizable* base)
{
	TubaAPICollection * self;
	TubaDialogsCollection* _tmp0_;
	TubaDialogsCollection* _tmp1_;
	TubaApplication* _tmp2_;
	TubaDialogsMainWindow* _tmp3_;
	TubaDialogsMainWindow* _tmp4_;
	self = (TubaAPICollection*) base;
	_tmp0_ = tuba_dialogs_collection_new (self);
	g_object_ref_sink (_tmp0_);
	_tmp1_ = _tmp0_;
	_tmp2_ = tuba_app;
	_tmp3_ = tuba_application_get_main_window (_tmp2_);
	_tmp4_ = _tmp3_;
	adw_dialog_present ((AdwDialog*) _tmp1_, (GtkWidget*) _tmp4_);
	_g_object_unref0 (_tmp1_);
}

TubaAPICollection*
tuba_api_collection_construct (GType object_type)
{
	TubaAPICollection * self = NULL;
	self = (TubaAPICollection*) tuba_entity_construct (object_type);
	return self;
}

TubaAPICollection*
tuba_api_collection_new (void)
{
	return tuba_api_collection_construct (TUBA_API_TYPE_COLLECTION);
}

const gchar*
tuba_api_collection_get_id (TubaAPICollection* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_id;
	result = _tmp0_;
	return result;
}

void
tuba_api_collection_set_id (TubaAPICollection* self,
                            const gchar* value)
{
	gchar* old_value;
	g_return_if_fail (self != NULL);
	old_value = tuba_api_collection_get_id (self);
	if (g_strcmp0 (value, old_value) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_id);
		self->priv->_id = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, tuba_api_collection_properties[TUBA_API_COLLECTION_ID_PROPERTY]);
	}
}

const gchar*
tuba_api_collection_get_account_id (TubaAPICollection* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_account_id;
	result = _tmp0_;
	return result;
}

void
tuba_api_collection_set_account_id (TubaAPICollection* self,
                                    const gchar* value)
{
	gchar* old_value;
	g_return_if_fail (self != NULL);
	old_value = tuba_api_collection_get_account_id (self);
	if (g_strcmp0 (value, old_value) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_account_id);
		self->priv->_account_id = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, tuba_api_collection_properties[TUBA_API_COLLECTION_ACCOUNT_ID_PROPERTY]);
	}
}

const gchar*
tuba_api_collection_get_url (TubaAPICollection* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_url;
	result = _tmp0_;
	return result;
}

void
tuba_api_collection_set_url (TubaAPICollection* self,
                             const gchar* value)
{
	gchar* old_value;
	g_return_if_fail (self != NULL);
	old_value = tuba_api_collection_get_url (self);
	if (g_strcmp0 (value, old_value) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_url);
		self->priv->_url = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, tuba_api_collection_properties[TUBA_API_COLLECTION_URL_PROPERTY]);
	}
}

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

void
tuba_api_collection_set_name (TubaAPICollection* self,
                              const gchar* value)
{
	gchar* old_value;
	g_return_if_fail (self != NULL);
	old_value = tuba_api_collection_get_name (self);
	if (g_strcmp0 (value, old_value) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_name);
		self->priv->_name = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, tuba_api_collection_properties[TUBA_API_COLLECTION_NAME_PROPERTY]);
	}
}

const gchar*
tuba_api_collection_get_description (TubaAPICollection* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_description;
	result = _tmp0_;
	return result;
}

void
tuba_api_collection_set_description (TubaAPICollection* self,
                                     const gchar* value)
{
	gchar* old_value;
	g_return_if_fail (self != NULL);
	old_value = tuba_api_collection_get_description (self);
	if (g_strcmp0 (value, old_value) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_description);
		self->priv->_description = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, tuba_api_collection_properties[TUBA_API_COLLECTION_DESCRIPTION_PROPERTY]);
	}
}

gboolean
tuba_api_collection_get_sensitive (TubaAPICollection* self)
{
	gboolean result;
	g_return_val_if_fail (self != NULL, FALSE);
	result = self->priv->_sensitive;
	return result;
}

void
tuba_api_collection_set_sensitive (TubaAPICollection* self,
                                   gboolean value)
{
	gboolean old_value;
	g_return_if_fail (self != NULL);
	old_value = tuba_api_collection_get_sensitive (self);
	if (old_value != value) {
		self->priv->_sensitive = value;
		g_object_notify_by_pspec ((GObject *) self, tuba_api_collection_properties[TUBA_API_COLLECTION_SENSITIVE_PROPERTY]);
	}
}

gboolean
tuba_api_collection_get_discoverable (TubaAPICollection* self)
{
	gboolean result;
	g_return_val_if_fail (self != NULL, FALSE);
	result = self->priv->_discoverable;
	return result;
}

void
tuba_api_collection_set_discoverable (TubaAPICollection* self,
                                      gboolean value)
{
	gboolean old_value;
	g_return_if_fail (self != NULL);
	old_value = tuba_api_collection_get_discoverable (self);
	if (old_value != value) {
		self->priv->_discoverable = value;
		g_object_notify_by_pspec ((GObject *) self, tuba_api_collection_properties[TUBA_API_COLLECTION_DISCOVERABLE_PROPERTY]);
	}
}

const gchar*
tuba_api_collection_get_language (TubaAPICollection* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_language;
	result = _tmp0_;
	return result;
}

void
tuba_api_collection_set_language (TubaAPICollection* self,
                                  const gchar* value)
{
	gchar* old_value;
	g_return_if_fail (self != NULL);
	old_value = tuba_api_collection_get_language (self);
	if (g_strcmp0 (value, old_value) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_language);
		self->priv->_language = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, tuba_api_collection_properties[TUBA_API_COLLECTION_LANGUAGE_PROPERTY]);
	}
}

const gchar*
tuba_api_collection_get_updated_at (TubaAPICollection* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_updated_at;
	result = _tmp0_;
	return result;
}

void
tuba_api_collection_set_updated_at (TubaAPICollection* self,
                                    const gchar* value)
{
	gchar* old_value;
	g_return_if_fail (self != NULL);
	old_value = tuba_api_collection_get_updated_at (self);
	if (g_strcmp0 (value, old_value) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_updated_at);
		self->priv->_updated_at = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, tuba_api_collection_properties[TUBA_API_COLLECTION_UPDATED_AT_PROPERTY]);
	}
}

TubaAPICollectionTag*
tuba_api_collection_get_tag (TubaAPICollection* self)
{
	TubaAPICollectionTag* result;
	TubaAPICollectionTag* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_tag;
	result = _tmp0_;
	return result;
}

void
tuba_api_collection_set_tag (TubaAPICollection* self,
                             TubaAPICollectionTag* value)
{
	TubaAPICollectionTag* old_value;
	g_return_if_fail (self != NULL);
	old_value = tuba_api_collection_get_tag (self);
	if (old_value != value) {
		TubaAPICollectionTag* _tmp0_;
		_tmp0_ = _g_object_ref0 (value);
		_g_object_unref0 (self->priv->_tag);
		self->priv->_tag = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, tuba_api_collection_properties[TUBA_API_COLLECTION_TAG_PROPERTY]);
	}
}

gint32
tuba_api_collection_get_item_count (TubaAPICollection* self)
{
	gint32 result;
	g_return_val_if_fail (self != NULL, -1);
	result = self->priv->_item_count;
	return result;
}

void
tuba_api_collection_set_item_count (TubaAPICollection* self,
                                    gint32 value)
{
	gint32 old_value;
	g_return_if_fail (self != NULL);
	old_value = tuba_api_collection_get_item_count (self);
	if (old_value != value) {
		self->priv->_item_count = value;
		g_object_notify_by_pspec ((GObject *) self, tuba_api_collection_properties[TUBA_API_COLLECTION_ITEM_COUNT_PROPERTY]);
	}
}

GeeArrayList*
tuba_api_collection_get_items (TubaAPICollection* self)
{
	GeeArrayList* result;
	GeeArrayList* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_items;
	result = _tmp0_;
	return result;
}

void
tuba_api_collection_set_items (TubaAPICollection* self,
                               GeeArrayList* value)
{
	GeeArrayList* old_value;
	g_return_if_fail (self != NULL);
	old_value = tuba_api_collection_get_items (self);
	if (old_value != value) {
		GeeArrayList* _tmp0_;
		_tmp0_ = _g_object_ref0 (value);
		_g_object_unref0 (self->priv->_items);
		self->priv->_items = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, tuba_api_collection_properties[TUBA_API_COLLECTION_ITEMS_PROPERTY]);
	}
}

static inline gpointer
tuba_api_collection_tag_get_instance_private (TubaAPICollectionTag* self)
{
	return G_STRUCT_MEMBER_P (self, TubaAPICollectionTag_private_offset);
}

TubaAPICollectionTag*
tuba_api_collection_tag_construct (GType object_type)
{
	TubaAPICollectionTag * self = NULL;
	self = (TubaAPICollectionTag*) tuba_entity_construct (object_type);
	return self;
}

TubaAPICollectionTag*
tuba_api_collection_tag_new (void)
{
	return tuba_api_collection_tag_construct (TUBA_API_COLLECTION_TYPE_TAG);
}

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

void
tuba_api_collection_tag_set_name (TubaAPICollectionTag* self,
                                  const gchar* value)
{
	gchar* old_value;
	g_return_if_fail (self != NULL);
	old_value = tuba_api_collection_tag_get_name (self);
	if (g_strcmp0 (value, old_value) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_name);
		self->priv->_name = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, tuba_api_collection_tag_properties[TUBA_API_COLLECTION_TAG_NAME_PROPERTY]);
	}
}

const gchar*
tuba_api_collection_tag_get_url (TubaAPICollectionTag* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_url;
	result = _tmp0_;
	return result;
}

void
tuba_api_collection_tag_set_url (TubaAPICollectionTag* self,
                                 const gchar* value)
{
	gchar* old_value;
	g_return_if_fail (self != NULL);
	old_value = tuba_api_collection_tag_get_url (self);
	if (g_strcmp0 (value, old_value) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_url);
		self->priv->_url = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, tuba_api_collection_tag_properties[TUBA_API_COLLECTION_TAG_URL_PROPERTY]);
	}
}

static void
tuba_api_collection_tag_class_init (TubaAPICollectionTagClass * klass,
                                    gpointer klass_data)
{
	tuba_api_collection_tag_parent_class = g_type_class_peek_parent (klass);
	g_type_class_adjust_private_offset (klass, &TubaAPICollectionTag_private_offset);
	G_OBJECT_CLASS (klass)->get_property = _vala_tuba_api_collection_tag_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_tuba_api_collection_tag_set_property;
	G_OBJECT_CLASS (klass)->finalize = tuba_api_collection_tag_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), TUBA_API_COLLECTION_TAG_NAME_PROPERTY, tuba_api_collection_tag_properties[TUBA_API_COLLECTION_TAG_NAME_PROPERTY] = g_param_spec_string ("name", "name", "name", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), TUBA_API_COLLECTION_TAG_URL_PROPERTY, tuba_api_collection_tag_properties[TUBA_API_COLLECTION_TAG_URL_PROPERTY] = g_param_spec_string ("url", "url", "url", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
}

static void
tuba_api_collection_tag_instance_init (TubaAPICollectionTag * self,
                                       gpointer klass)
{
	self->priv = tuba_api_collection_tag_get_instance_private (self);
}

static void
tuba_api_collection_tag_finalize (GObject * obj)
{
	TubaAPICollectionTag * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, TUBA_API_COLLECTION_TYPE_TAG, TubaAPICollectionTag);
	_g_free0 (self->priv->_name);
	_g_free0 (self->priv->_url);
	G_OBJECT_CLASS (tuba_api_collection_tag_parent_class)->finalize (obj);
}

 G_GNUC_NO_INLINE static GType
tuba_api_collection_tag_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (TubaAPICollectionTagClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) tuba_api_collection_tag_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (TubaAPICollectionTag), 0, (GInstanceInitFunc) tuba_api_collection_tag_instance_init, NULL };
	GType tuba_api_collection_tag_type_id;
	tuba_api_collection_tag_type_id = g_type_register_static (TUBA_TYPE_ENTITY, "TubaAPICollectionTag", &g_define_type_info, G_TYPE_FLAG_NONE);
	TubaAPICollectionTag_private_offset = g_type_add_instance_private (tuba_api_collection_tag_type_id, sizeof (TubaAPICollectionTagPrivate));
	return tuba_api_collection_tag_type_id;
}

GType
tuba_api_collection_tag_get_type (void)
{
	static GType tuba_api_collection_tag_type_id__once = 0;
	if (g_once_init_enter_pointer (&tuba_api_collection_tag_type_id__once)) {
		GType tuba_api_collection_tag_type_id;
		tuba_api_collection_tag_type_id = tuba_api_collection_tag_get_type_once ();
		g_once_init_leave_pointer (&tuba_api_collection_tag_type_id__once, tuba_api_collection_tag_type_id);
	}
	return tuba_api_collection_tag_type_id__once;
}

static void
_vala_tuba_api_collection_tag_get_property (GObject * object,
                                            guint property_id,
                                            GValue * value,
                                            GParamSpec * pspec)
{
	TubaAPICollectionTag * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, TUBA_API_COLLECTION_TYPE_TAG, TubaAPICollectionTag);
	switch (property_id) {
		case TUBA_API_COLLECTION_TAG_NAME_PROPERTY:
		g_value_set_string (value, tuba_api_collection_tag_get_name (self));
		break;
		case TUBA_API_COLLECTION_TAG_URL_PROPERTY:
		g_value_set_string (value, tuba_api_collection_tag_get_url (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static void
_vala_tuba_api_collection_tag_set_property (GObject * object,
                                            guint property_id,
                                            const GValue * value,
                                            GParamSpec * pspec)
{
	TubaAPICollectionTag * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, TUBA_API_COLLECTION_TYPE_TAG, TubaAPICollectionTag);
	switch (property_id) {
		case TUBA_API_COLLECTION_TAG_NAME_PROPERTY:
		tuba_api_collection_tag_set_name (self, g_value_get_string (value));
		break;
		case TUBA_API_COLLECTION_TAG_URL_PROPERTY:
		tuba_api_collection_tag_set_url (self, g_value_get_string (value));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static inline gpointer
tuba_api_collection_item_get_instance_private (TubaAPICollectionItem* self)
{
	return G_STRUCT_MEMBER_P (self, TubaAPICollectionItem_private_offset);
}

TubaAPICollectionItem*
tuba_api_collection_item_construct (GType object_type)
{
	TubaAPICollectionItem * self = NULL;
	self = (TubaAPICollectionItem*) tuba_entity_construct (object_type);
	return self;
}

TubaAPICollectionItem*
tuba_api_collection_item_new (void)
{
	return tuba_api_collection_item_construct (TUBA_API_COLLECTION_TYPE_ITEM);
}

const gchar*
tuba_api_collection_item_get_id (TubaAPICollectionItem* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_id;
	result = _tmp0_;
	return result;
}

void
tuba_api_collection_item_set_id (TubaAPICollectionItem* self,
                                 const gchar* value)
{
	gchar* old_value;
	g_return_if_fail (self != NULL);
	old_value = tuba_api_collection_item_get_id (self);
	if (g_strcmp0 (value, old_value) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_id);
		self->priv->_id = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, tuba_api_collection_item_properties[TUBA_API_COLLECTION_ITEM_ID_PROPERTY]);
	}
}

const gchar*
tuba_api_collection_item_get_account_id (TubaAPICollectionItem* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_account_id;
	result = _tmp0_;
	return result;
}

void
tuba_api_collection_item_set_account_id (TubaAPICollectionItem* self,
                                         const gchar* value)
{
	gchar* old_value;
	g_return_if_fail (self != NULL);
	old_value = tuba_api_collection_item_get_account_id (self);
	if (g_strcmp0 (value, old_value) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_account_id);
		self->priv->_account_id = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, tuba_api_collection_item_properties[TUBA_API_COLLECTION_ITEM_ACCOUNT_ID_PROPERTY]);
	}
}

const gchar*
tuba_api_collection_item_get_state (TubaAPICollectionItem* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_state;
	result = _tmp0_;
	return result;
}

void
tuba_api_collection_item_set_state (TubaAPICollectionItem* self,
                                    const gchar* value)
{
	gchar* old_value;
	g_return_if_fail (self != NULL);
	old_value = tuba_api_collection_item_get_state (self);
	if (g_strcmp0 (value, old_value) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_state);
		self->priv->_state = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, tuba_api_collection_item_properties[TUBA_API_COLLECTION_ITEM_STATE_PROPERTY]);
	}
}

static void
tuba_api_collection_item_class_init (TubaAPICollectionItemClass * klass,
                                     gpointer klass_data)
{
	tuba_api_collection_item_parent_class = g_type_class_peek_parent (klass);
	g_type_class_adjust_private_offset (klass, &TubaAPICollectionItem_private_offset);
	G_OBJECT_CLASS (klass)->get_property = _vala_tuba_api_collection_item_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_tuba_api_collection_item_set_property;
	G_OBJECT_CLASS (klass)->finalize = tuba_api_collection_item_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), TUBA_API_COLLECTION_ITEM_ID_PROPERTY, tuba_api_collection_item_properties[TUBA_API_COLLECTION_ITEM_ID_PROPERTY] = g_param_spec_string ("id", "id", "id", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), TUBA_API_COLLECTION_ITEM_ACCOUNT_ID_PROPERTY, tuba_api_collection_item_properties[TUBA_API_COLLECTION_ITEM_ACCOUNT_ID_PROPERTY] = g_param_spec_string ("account-id", "account-id", "account-id", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), TUBA_API_COLLECTION_ITEM_STATE_PROPERTY, tuba_api_collection_item_properties[TUBA_API_COLLECTION_ITEM_STATE_PROPERTY] = g_param_spec_string ("state", "state", "state", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
}

static void
tuba_api_collection_item_instance_init (TubaAPICollectionItem * self,
                                        gpointer klass)
{
	self->priv = tuba_api_collection_item_get_instance_private (self);
}

static void
tuba_api_collection_item_finalize (GObject * obj)
{
	TubaAPICollectionItem * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, TUBA_API_COLLECTION_TYPE_ITEM, TubaAPICollectionItem);
	_g_free0 (self->priv->_id);
	_g_free0 (self->priv->_account_id);
	_g_free0 (self->priv->_state);
	G_OBJECT_CLASS (tuba_api_collection_item_parent_class)->finalize (obj);
}

 G_GNUC_NO_INLINE static GType
tuba_api_collection_item_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (TubaAPICollectionItemClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) tuba_api_collection_item_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (TubaAPICollectionItem), 0, (GInstanceInitFunc) tuba_api_collection_item_instance_init, NULL };
	GType tuba_api_collection_item_type_id;
	tuba_api_collection_item_type_id = g_type_register_static (TUBA_TYPE_ENTITY, "TubaAPICollectionItem", &g_define_type_info, G_TYPE_FLAG_NONE);
	TubaAPICollectionItem_private_offset = g_type_add_instance_private (tuba_api_collection_item_type_id, sizeof (TubaAPICollectionItemPrivate));
	return tuba_api_collection_item_type_id;
}

GType
tuba_api_collection_item_get_type (void)
{
	static GType tuba_api_collection_item_type_id__once = 0;
	if (g_once_init_enter_pointer (&tuba_api_collection_item_type_id__once)) {
		GType tuba_api_collection_item_type_id;
		tuba_api_collection_item_type_id = tuba_api_collection_item_get_type_once ();
		g_once_init_leave_pointer (&tuba_api_collection_item_type_id__once, tuba_api_collection_item_type_id);
	}
	return tuba_api_collection_item_type_id__once;
}

static void
_vala_tuba_api_collection_item_get_property (GObject * object,
                                             guint property_id,
                                             GValue * value,
                                             GParamSpec * pspec)
{
	TubaAPICollectionItem * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, TUBA_API_COLLECTION_TYPE_ITEM, TubaAPICollectionItem);
	switch (property_id) {
		case TUBA_API_COLLECTION_ITEM_ID_PROPERTY:
		g_value_set_string (value, tuba_api_collection_item_get_id (self));
		break;
		case TUBA_API_COLLECTION_ITEM_ACCOUNT_ID_PROPERTY:
		g_value_set_string (value, tuba_api_collection_item_get_account_id (self));
		break;
		case TUBA_API_COLLECTION_ITEM_STATE_PROPERTY:
		g_value_set_string (value, tuba_api_collection_item_get_state (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static void
_vala_tuba_api_collection_item_set_property (GObject * object,
                                             guint property_id,
                                             const GValue * value,
                                             GParamSpec * pspec)
{
	TubaAPICollectionItem * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, TUBA_API_COLLECTION_TYPE_ITEM, TubaAPICollectionItem);
	switch (property_id) {
		case TUBA_API_COLLECTION_ITEM_ID_PROPERTY:
		tuba_api_collection_item_set_id (self, g_value_get_string (value));
		break;
		case TUBA_API_COLLECTION_ITEM_ACCOUNT_ID_PROPERTY:
		tuba_api_collection_item_set_account_id (self, g_value_get_string (value));
		break;
		case TUBA_API_COLLECTION_ITEM_STATE_PROPERTY:
		tuba_api_collection_item_set_state (self, g_value_get_string (value));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static void
tuba_api_collection_class_init (TubaAPICollectionClass * klass,
                                gpointer klass_data)
{
	tuba_api_collection_parent_class = g_type_class_peek_parent (klass);
	g_type_class_adjust_private_offset (klass, &TubaAPICollection_private_offset);
	((TubaEntityClass *) klass)->deserialize_array_type = (GType (*) (TubaEntity*, const gchar*)) tuba_api_collection_real_deserialize_array_type;
	G_OBJECT_CLASS (klass)->get_property = _vala_tuba_api_collection_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_tuba_api_collection_set_property;
	G_OBJECT_CLASS (klass)->finalize = tuba_api_collection_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), TUBA_API_COLLECTION_ID_PROPERTY, tuba_api_collection_properties[TUBA_API_COLLECTION_ID_PROPERTY] = g_param_spec_string ("id", "id", "id", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), TUBA_API_COLLECTION_ACCOUNT_ID_PROPERTY, tuba_api_collection_properties[TUBA_API_COLLECTION_ACCOUNT_ID_PROPERTY] = g_param_spec_string ("account-id", "account-id", "account-id", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), TUBA_API_COLLECTION_URL_PROPERTY, tuba_api_collection_properties[TUBA_API_COLLECTION_URL_PROPERTY] = g_param_spec_string ("url", "url", "url", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), TUBA_API_COLLECTION_NAME_PROPERTY, tuba_api_collection_properties[TUBA_API_COLLECTION_NAME_PROPERTY] = g_param_spec_string ("name", "name", "name", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), TUBA_API_COLLECTION_DESCRIPTION_PROPERTY, tuba_api_collection_properties[TUBA_API_COLLECTION_DESCRIPTION_PROPERTY] = g_param_spec_string ("description", "description", "description", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), TUBA_API_COLLECTION_SENSITIVE_PROPERTY, tuba_api_collection_properties[TUBA_API_COLLECTION_SENSITIVE_PROPERTY] = g_param_spec_boolean ("sensitive", "sensitive", "sensitive", FALSE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), TUBA_API_COLLECTION_DISCOVERABLE_PROPERTY, tuba_api_collection_properties[TUBA_API_COLLECTION_DISCOVERABLE_PROPERTY] = g_param_spec_boolean ("discoverable", "discoverable", "discoverable", FALSE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), TUBA_API_COLLECTION_LANGUAGE_PROPERTY, tuba_api_collection_properties[TUBA_API_COLLECTION_LANGUAGE_PROPERTY] = g_param_spec_string ("language", "language", "language", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), TUBA_API_COLLECTION_UPDATED_AT_PROPERTY, tuba_api_collection_properties[TUBA_API_COLLECTION_UPDATED_AT_PROPERTY] = g_param_spec_string ("updated-at", "updated-at", "updated-at", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), TUBA_API_COLLECTION_TAG_PROPERTY, tuba_api_collection_properties[TUBA_API_COLLECTION_TAG_PROPERTY] = g_param_spec_object ("tag", "tag", "tag", TUBA_API_COLLECTION_TYPE_TAG, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), TUBA_API_COLLECTION_ITEM_COUNT_PROPERTY, tuba_api_collection_properties[TUBA_API_COLLECTION_ITEM_COUNT_PROPERTY] = g_param_spec_int ("item-count", "item-count", "item-count", G_MININT, G_MAXINT, (gint32) 1, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), TUBA_API_COLLECTION_ITEMS_PROPERTY, tuba_api_collection_properties[TUBA_API_COLLECTION_ITEMS_PROPERTY] = g_param_spec_object ("items", "items", "items", GEE_TYPE_ARRAY_LIST, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
}

static void
tuba_api_collection_tuba_widgetizable_interface_init (TubaWidgetizableIface * iface,
                                                      gpointer iface_data)
{
	tuba_api_collection_tuba_widgetizable_parent_iface = g_type_interface_peek_parent (iface);
	iface->to_widget = (GtkWidget* (*) (TubaWidgetizable*)) tuba_api_collection_real_to_widget;
	iface->open = (void (*) (TubaWidgetizable*)) tuba_api_collection_real_open;
}

static void
tuba_api_collection_instance_init (TubaAPICollection * self,
                                   gpointer klass)
{
	gchar* _tmp0_;
	self->priv = tuba_api_collection_get_instance_private (self);
	self->priv->_url = NULL;
	self->priv->_sensitive = FALSE;
	self->priv->_discoverable = FALSE;
	_tmp0_ = g_strdup ("en");
	self->priv->_language = _tmp0_;
	self->priv->_tag = NULL;
	self->priv->_item_count = (gint32) 1;
}

static void
tuba_api_collection_finalize (GObject * obj)
{
	TubaAPICollection * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, TUBA_API_TYPE_COLLECTION, TubaAPICollection);
	_g_free0 (self->priv->_id);
	_g_free0 (self->priv->_account_id);
	_g_free0 (self->priv->_url);
	_g_free0 (self->priv->_name);
	_g_free0 (self->priv->_description);
	_g_free0 (self->priv->_language);
	_g_free0 (self->priv->_updated_at);
	_g_object_unref0 (self->priv->_tag);
	_g_object_unref0 (self->priv->_items);
	G_OBJECT_CLASS (tuba_api_collection_parent_class)->finalize (obj);
}

 G_GNUC_NO_INLINE static GType
tuba_api_collection_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (TubaAPICollectionClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) tuba_api_collection_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (TubaAPICollection), 0, (GInstanceInitFunc) tuba_api_collection_instance_init, NULL };
	static const GInterfaceInfo tuba_widgetizable_info = { (GInterfaceInitFunc) tuba_api_collection_tuba_widgetizable_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
	GType tuba_api_collection_type_id;
	tuba_api_collection_type_id = g_type_register_static (TUBA_TYPE_ENTITY, "TubaAPICollection", &g_define_type_info, G_TYPE_FLAG_NONE);
	g_type_add_interface_static (tuba_api_collection_type_id, TUBA_TYPE_WIDGETIZABLE, &tuba_widgetizable_info);
	TubaAPICollection_private_offset = g_type_add_instance_private (tuba_api_collection_type_id, sizeof (TubaAPICollectionPrivate));
	return tuba_api_collection_type_id;
}

GType
tuba_api_collection_get_type (void)
{
	static GType tuba_api_collection_type_id__once = 0;
	if (g_once_init_enter_pointer (&tuba_api_collection_type_id__once)) {
		GType tuba_api_collection_type_id;
		tuba_api_collection_type_id = tuba_api_collection_get_type_once ();
		g_once_init_leave_pointer (&tuba_api_collection_type_id__once, tuba_api_collection_type_id);
	}
	return tuba_api_collection_type_id__once;
}

static void
_vala_tuba_api_collection_get_property (GObject * object,
                                        guint property_id,
                                        GValue * value,
                                        GParamSpec * pspec)
{
	TubaAPICollection * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, TUBA_API_TYPE_COLLECTION, TubaAPICollection);
	switch (property_id) {
		case TUBA_API_COLLECTION_ID_PROPERTY:
		g_value_set_string (value, tuba_api_collection_get_id (self));
		break;
		case TUBA_API_COLLECTION_ACCOUNT_ID_PROPERTY:
		g_value_set_string (value, tuba_api_collection_get_account_id (self));
		break;
		case TUBA_API_COLLECTION_URL_PROPERTY:
		g_value_set_string (value, tuba_api_collection_get_url (self));
		break;
		case TUBA_API_COLLECTION_NAME_PROPERTY:
		g_value_set_string (value, tuba_api_collection_get_name (self));
		break;
		case TUBA_API_COLLECTION_DESCRIPTION_PROPERTY:
		g_value_set_string (value, tuba_api_collection_get_description (self));
		break;
		case TUBA_API_COLLECTION_SENSITIVE_PROPERTY:
		g_value_set_boolean (value, tuba_api_collection_get_sensitive (self));
		break;
		case TUBA_API_COLLECTION_DISCOVERABLE_PROPERTY:
		g_value_set_boolean (value, tuba_api_collection_get_discoverable (self));
		break;
		case TUBA_API_COLLECTION_LANGUAGE_PROPERTY:
		g_value_set_string (value, tuba_api_collection_get_language (self));
		break;
		case TUBA_API_COLLECTION_UPDATED_AT_PROPERTY:
		g_value_set_string (value, tuba_api_collection_get_updated_at (self));
		break;
		case TUBA_API_COLLECTION_TAG_PROPERTY:
		g_value_set_object (value, tuba_api_collection_get_tag (self));
		break;
		case TUBA_API_COLLECTION_ITEM_COUNT_PROPERTY:
		g_value_set_int (value, tuba_api_collection_get_item_count (self));
		break;
		case TUBA_API_COLLECTION_ITEMS_PROPERTY:
		g_value_set_object (value, tuba_api_collection_get_items (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static void
_vala_tuba_api_collection_set_property (GObject * object,
                                        guint property_id,
                                        const GValue * value,
                                        GParamSpec * pspec)
{
	TubaAPICollection * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, TUBA_API_TYPE_COLLECTION, TubaAPICollection);
	switch (property_id) {
		case TUBA_API_COLLECTION_ID_PROPERTY:
		tuba_api_collection_set_id (self, g_value_get_string (value));
		break;
		case TUBA_API_COLLECTION_ACCOUNT_ID_PROPERTY:
		tuba_api_collection_set_account_id (self, g_value_get_string (value));
		break;
		case TUBA_API_COLLECTION_URL_PROPERTY:
		tuba_api_collection_set_url (self, g_value_get_string (value));
		break;
		case TUBA_API_COLLECTION_NAME_PROPERTY:
		tuba_api_collection_set_name (self, g_value_get_string (value));
		break;
		case TUBA_API_COLLECTION_DESCRIPTION_PROPERTY:
		tuba_api_collection_set_description (self, g_value_get_string (value));
		break;
		case TUBA_API_COLLECTION_SENSITIVE_PROPERTY:
		tuba_api_collection_set_sensitive (self, g_value_get_boolean (value));
		break;
		case TUBA_API_COLLECTION_DISCOVERABLE_PROPERTY:
		tuba_api_collection_set_discoverable (self, g_value_get_boolean (value));
		break;
		case TUBA_API_COLLECTION_LANGUAGE_PROPERTY:
		tuba_api_collection_set_language (self, g_value_get_string (value));
		break;
		case TUBA_API_COLLECTION_UPDATED_AT_PROPERTY:
		tuba_api_collection_set_updated_at (self, g_value_get_string (value));
		break;
		case TUBA_API_COLLECTION_TAG_PROPERTY:
		tuba_api_collection_set_tag (self, g_value_get_object (value));
		break;
		case TUBA_API_COLLECTION_ITEM_COUNT_PROPERTY:
		tuba_api_collection_set_item_count (self, g_value_get_int (value));
		break;
		case TUBA_API_COLLECTION_ITEMS_PROPERTY:
		tuba_api_collection_set_items (self, g_value_get_object (value));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

