/* Filter.c generated by valac 0.56.19, the Vala compiler
 * generated from Filter.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 <glib/gi18n-lib.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_FILTERS_TYPE_FILTER (tuba_api_filters_filter_get_type ())
#define TUBA_API_FILTERS_FILTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TUBA_API_FILTERS_TYPE_FILTER, TubaAPIFiltersFilter))
#define TUBA_API_FILTERS_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TUBA_API_FILTERS_TYPE_FILTER, TubaAPIFiltersFilterClass))
#define TUBA_API_FILTERS_IS_FILTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TUBA_API_FILTERS_TYPE_FILTER))
#define TUBA_API_FILTERS_IS_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TUBA_API_FILTERS_TYPE_FILTER))
#define TUBA_API_FILTERS_FILTER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TUBA_API_FILTERS_TYPE_FILTER, TubaAPIFiltersFilterClass))

typedef struct _TubaAPIFiltersFilter TubaAPIFiltersFilter;
typedef struct _TubaAPIFiltersFilterClass TubaAPIFiltersFilterClass;
typedef struct _TubaAPIFiltersFilterPrivate TubaAPIFiltersFilterPrivate;

#define TUBA_API_FILTERS_TYPE_FILTER_KEYWORD (tuba_api_filters_filter_keyword_get_type ())
#define TUBA_API_FILTERS_FILTER_KEYWORD(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TUBA_API_FILTERS_TYPE_FILTER_KEYWORD, TubaAPIFiltersFilterKeyword))
#define TUBA_API_FILTERS_FILTER_KEYWORD_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TUBA_API_FILTERS_TYPE_FILTER_KEYWORD, TubaAPIFiltersFilterKeywordClass))
#define TUBA_API_FILTERS_IS_FILTER_KEYWORD(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TUBA_API_FILTERS_TYPE_FILTER_KEYWORD))
#define TUBA_API_FILTERS_IS_FILTER_KEYWORD_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TUBA_API_FILTERS_TYPE_FILTER_KEYWORD))
#define TUBA_API_FILTERS_FILTER_KEYWORD_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TUBA_API_FILTERS_TYPE_FILTER_KEYWORD, TubaAPIFiltersFilterKeywordClass))

typedef struct _TubaAPIFiltersFilterKeyword TubaAPIFiltersFilterKeyword;
typedef struct _TubaAPIFiltersFilterKeywordClass TubaAPIFiltersFilterKeywordClass;

#define TUBA_API_FILTERS_TYPE_FILTER_STATUS (tuba_api_filters_filter_status_get_type ())
#define TUBA_API_FILTERS_FILTER_STATUS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TUBA_API_FILTERS_TYPE_FILTER_STATUS, TubaAPIFiltersFilterStatus))
#define TUBA_API_FILTERS_FILTER_STATUS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TUBA_API_FILTERS_TYPE_FILTER_STATUS, TubaAPIFiltersFilterStatusClass))
#define TUBA_API_FILTERS_IS_FILTER_STATUS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TUBA_API_FILTERS_TYPE_FILTER_STATUS))
#define TUBA_API_FILTERS_IS_FILTER_STATUS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TUBA_API_FILTERS_TYPE_FILTER_STATUS))
#define TUBA_API_FILTERS_FILTER_STATUS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TUBA_API_FILTERS_TYPE_FILTER_STATUS, TubaAPIFiltersFilterStatusClass))

typedef struct _TubaAPIFiltersFilterStatus TubaAPIFiltersFilterStatus;
typedef struct _TubaAPIFiltersFilterStatusClass TubaAPIFiltersFilterStatusClass;
enum  {
	TUBA_API_FILTERS_FILTER_0_PROPERTY,
	TUBA_API_FILTERS_FILTER_ID_PROPERTY,
	TUBA_API_FILTERS_FILTER_TITLE_PROPERTY,
	TUBA_API_FILTERS_FILTER_CONTEXT_PROPERTY,
	TUBA_API_FILTERS_FILTER_EXPIRES_AT_PROPERTY,
	TUBA_API_FILTERS_FILTER_FILTER_ACTION_PROPERTY,
	TUBA_API_FILTERS_FILTER_KEYWORDS_PROPERTY,
	TUBA_API_FILTERS_FILTER_STATUSES_PROPERTY,
	TUBA_API_FILTERS_FILTER_NUM_PROPERTIES
};
static GParamSpec* tuba_api_filters_filter_properties[TUBA_API_FILTERS_FILTER_NUM_PROPERTIES];
typedef enum  {
	TUBA_API_FILTERS_FILTER_FILTER_ACTION_HIDE,
	TUBA_API_FILTERS_FILTER_FILTER_ACTION_BLUR,
	TUBA_API_FILTERS_FILTER_FILTER_ACTION_WARN
} TubaAPIFiltersFilterFilterAction;

#define TUBA_API_FILTERS_FILTER_TYPE_FILTER_ACTION (tuba_api_filters_filter_filter_action_get_type ())
typedef enum  {
	TUBA_API_FILTERS_FILTER_CONTEXT_TYPE_HOME,
	TUBA_API_FILTERS_FILTER_CONTEXT_TYPE_NOTIFICATIONS,
	TUBA_API_FILTERS_FILTER_CONTEXT_TYPE_PUBLIC,
	TUBA_API_FILTERS_FILTER_CONTEXT_TYPE_THREAD,
	TUBA_API_FILTERS_FILTER_CONTEXT_TYPE_ACCOUNT
} TubaAPIFiltersFilterContextType;

#define TUBA_API_FILTERS_FILTER_TYPE_CONTEXT_TYPE (tuba_api_filters_filter_context_type_get_type ())
#define _g_free0(var) (var = (g_free (var), NULL))
#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))

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 _TubaAPIFiltersFilter {
	TubaEntity parent_instance;
	TubaAPIFiltersFilterPrivate * priv;
};

struct _TubaAPIFiltersFilterClass {
	TubaEntityClass parent_class;
};

struct _TubaAPIFiltersFilterPrivate {
	gchar* _id;
	gchar* _title;
	GeeArrayList* _context;
	gchar* _expires_at;
	gchar* _filter_action;
	GeeArrayList* _keywords;
	GeeArrayList* _statuses;
};

static gint TubaAPIFiltersFilter_private_offset;
static gpointer tuba_api_filters_filter_parent_class = 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_filters_filter_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaAPIFiltersFilter, g_object_unref)
VALA_EXTERN GType tuba_api_filters_filter_keyword_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaAPIFiltersFilterKeyword, g_object_unref)
VALA_EXTERN GType tuba_api_filters_filter_status_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaAPIFiltersFilterStatus, g_object_unref)
VALA_EXTERN GType tuba_entity_deserialize_array_type (TubaEntity* self,
                                          const gchar* prop);
VALA_EXTERN GType tuba_api_filters_filter_filter_action_get_type (void) G_GNUC_CONST ;
VALA_EXTERN gchar* tuba_api_filters_filter_filter_action_to_string (TubaAPIFiltersFilterFilterAction self);
VALA_EXTERN TubaAPIFiltersFilterFilterAction tuba_api_filters_filter_filter_action_from_string (const gchar* action);
VALA_EXTERN GType tuba_api_filters_filter_context_type_get_type (void) G_GNUC_CONST ;
VALA_EXTERN gchar* tuba_api_filters_filter_context_type_to_string (TubaAPIFiltersFilterContextType self);
VALA_EXTERN gchar* tuba_api_filters_filter_context_type_to_api (TubaAPIFiltersFilterContextType self);
VALA_EXTERN TubaAPIFiltersFilterContextType* tuba_api_filters_filter_context_type_from_string (const gchar* context_string);
static TubaAPIFiltersFilterContextType* _tuba_api_filters_filter_context_type_dup (TubaAPIFiltersFilterContextType* self);
VALA_EXTERN TubaAPIFiltersFilter* tuba_api_filters_filter_from (JsonNode* node,
                                                    GError** error);
VALA_EXTERN TubaEntity* tuba_entity_from_json (GType type,
                                   JsonNode* node,
                                   GError** error);
static GType tuba_api_filters_filter_real_deserialize_array_type (TubaEntity* base,
                                                           const gchar* prop);
VALA_EXTERN TubaAPIFiltersFilter* tuba_api_filters_filter_new (void);
VALA_EXTERN TubaAPIFiltersFilter* tuba_api_filters_filter_construct (GType object_type);
VALA_EXTERN TubaEntity* tuba_entity_new (void);
VALA_EXTERN TubaEntity* tuba_entity_construct (GType object_type);
VALA_EXTERN const gchar* tuba_api_filters_filter_get_id (TubaAPIFiltersFilter* self);
VALA_EXTERN void tuba_api_filters_filter_set_id (TubaAPIFiltersFilter* self,
                                     const gchar* value);
VALA_EXTERN const gchar* tuba_api_filters_filter_get_title (TubaAPIFiltersFilter* self);
VALA_EXTERN void tuba_api_filters_filter_set_title (TubaAPIFiltersFilter* self,
                                        const gchar* value);
VALA_EXTERN GeeArrayList* tuba_api_filters_filter_get_context (TubaAPIFiltersFilter* self);
VALA_EXTERN void tuba_api_filters_filter_set_context (TubaAPIFiltersFilter* self,
                                          GeeArrayList* value);
VALA_EXTERN const gchar* tuba_api_filters_filter_get_expires_at (TubaAPIFiltersFilter* self);
VALA_EXTERN void tuba_api_filters_filter_set_expires_at (TubaAPIFiltersFilter* self,
                                             const gchar* value);
VALA_EXTERN const gchar* tuba_api_filters_filter_get_filter_action (TubaAPIFiltersFilter* self);
VALA_EXTERN void tuba_api_filters_filter_set_filter_action (TubaAPIFiltersFilter* self,
                                                const gchar* value);
VALA_EXTERN GeeArrayList* tuba_api_filters_filter_get_keywords (TubaAPIFiltersFilter* self);
VALA_EXTERN void tuba_api_filters_filter_set_keywords (TubaAPIFiltersFilter* self,
                                           GeeArrayList* value);
VALA_EXTERN GeeArrayList* tuba_api_filters_filter_get_statuses (TubaAPIFiltersFilter* self);
VALA_EXTERN void tuba_api_filters_filter_set_statuses (TubaAPIFiltersFilter* self,
                                           GeeArrayList* value);
static void tuba_api_filters_filter_finalize (GObject * obj);
static GType tuba_api_filters_filter_get_type_once (void);
static void _vala_tuba_api_filters_filter_get_property (GObject * object,
                                                 guint property_id,
                                                 GValue * value,
                                                 GParamSpec * pspec);
static void _vala_tuba_api_filters_filter_set_property (GObject * object,
                                                 guint property_id,
                                                 const GValue * value,
                                                 GParamSpec * pspec);

static inline gpointer
tuba_api_filters_filter_get_instance_private (TubaAPIFiltersFilter* self)
{
	return G_STRUCT_MEMBER_P (self, TubaAPIFiltersFilter_private_offset);
}

gchar*
tuba_api_filters_filter_filter_action_to_string (TubaAPIFiltersFilterFilterAction self)
{
	gchar* result;
	switch (self) {
		case TUBA_API_FILTERS_FILTER_FILTER_ACTION_BLUR:
		{
			gchar* _tmp0_;
			_tmp0_ = g_strdup ("blur");
			result = _tmp0_;
			return result;
		}
		case TUBA_API_FILTERS_FILTER_FILTER_ACTION_HIDE:
		{
			gchar* _tmp1_;
			_tmp1_ = g_strdup ("hide");
			result = _tmp1_;
			return result;
		}
		default:
		{
			gchar* _tmp2_;
			_tmp2_ = g_strdup ("warn");
			result = _tmp2_;
			return result;
		}
	}
}

TubaAPIFiltersFilterFilterAction
tuba_api_filters_filter_filter_action_from_string (const gchar* action)
{
	gchar* _tmp0_;
	gchar* _tmp1_;
	GQuark _tmp3_ = 0U;
	static GQuark _tmp2_label0 = 0;
	static GQuark _tmp2_label1 = 0;
	TubaAPIFiltersFilterFilterAction result;
	g_return_val_if_fail (action != NULL, 0);
	_tmp0_ = g_utf8_strdown (action, (gssize) -1);
	_tmp1_ = _tmp0_;
	_tmp3_ = (NULL == _tmp1_) ? 0 : g_quark_from_string (_tmp1_);
	g_free (_tmp1_);
	if (_tmp3_ == ((0 != _tmp2_label0) ? _tmp2_label0 : (_tmp2_label0 = g_quark_from_static_string ("blur")))) {
		switch (0) {
			default:
			{
				result = TUBA_API_FILTERS_FILTER_FILTER_ACTION_BLUR;
				return result;
			}
		}
	} else if (_tmp3_ == ((0 != _tmp2_label1) ? _tmp2_label1 : (_tmp2_label1 = g_quark_from_static_string ("hide")))) {
		switch (0) {
			default:
			{
				result = TUBA_API_FILTERS_FILTER_FILTER_ACTION_HIDE;
				return result;
			}
		}
	} else {
		switch (0) {
			default:
			{
				result = TUBA_API_FILTERS_FILTER_FILTER_ACTION_WARN;
				return result;
			}
		}
	}
}

 G_GNUC_NO_INLINE static GType
tuba_api_filters_filter_filter_action_get_type_once (void)
{
	static const GEnumValue values[] = {{TUBA_API_FILTERS_FILTER_FILTER_ACTION_HIDE, "TUBA_API_FILTERS_FILTER_FILTER_ACTION_HIDE", "hide"}, {TUBA_API_FILTERS_FILTER_FILTER_ACTION_BLUR, "TUBA_API_FILTERS_FILTER_FILTER_ACTION_BLUR", "blur"}, {TUBA_API_FILTERS_FILTER_FILTER_ACTION_WARN, "TUBA_API_FILTERS_FILTER_FILTER_ACTION_WARN", "warn"}, {0, NULL, NULL}};
	GType tuba_api_filters_filter_filter_action_type_id;
	tuba_api_filters_filter_filter_action_type_id = g_enum_register_static ("TubaAPIFiltersFilterFilterAction", values);
	return tuba_api_filters_filter_filter_action_type_id;
}

GType
tuba_api_filters_filter_filter_action_get_type (void)
{
	static GType tuba_api_filters_filter_filter_action_type_id__once = 0;
	if (g_once_init_enter_pointer (&tuba_api_filters_filter_filter_action_type_id__once)) {
		GType tuba_api_filters_filter_filter_action_type_id;
		tuba_api_filters_filter_filter_action_type_id = tuba_api_filters_filter_filter_action_get_type_once ();
		g_once_init_leave_pointer (&tuba_api_filters_filter_filter_action_type_id__once, tuba_api_filters_filter_filter_action_type_id);
	}
	return tuba_api_filters_filter_filter_action_type_id__once;
}

gchar*
tuba_api_filters_filter_context_type_to_string (TubaAPIFiltersFilterContextType self)
{
	gchar* result;
	switch (self) {
		case TUBA_API_FILTERS_FILTER_CONTEXT_TYPE_HOME:
		{
			gchar* _tmp0_;
			_tmp0_ = g_strdup (_ ("Home &amp; Lists"));
			result = _tmp0_;
			return result;
		}
		case TUBA_API_FILTERS_FILTER_CONTEXT_TYPE_NOTIFICATIONS:
		{
			gchar* _tmp1_;
			_tmp1_ = g_strdup (_ ("Notifications"));
			result = _tmp1_;
			return result;
		}
		case TUBA_API_FILTERS_FILTER_CONTEXT_TYPE_PUBLIC:
		{
			gchar* _tmp2_;
			_tmp2_ = g_strdup (_ ("Public Timelines"));
			result = _tmp2_;
			return result;
		}
		case TUBA_API_FILTERS_FILTER_CONTEXT_TYPE_THREAD:
		{
			gchar* _tmp3_;
			_tmp3_ = g_strdup (_ ("Conversations"));
			result = _tmp3_;
			return result;
		}
		case TUBA_API_FILTERS_FILTER_CONTEXT_TYPE_ACCOUNT:
		{
			gchar* _tmp4_;
			_tmp4_ = g_strdup (_ ("Profiles"));
			result = _tmp4_;
			return result;
		}
		default:
		{
			g_assert_not_reached ();
		}
	}
}

gchar*
tuba_api_filters_filter_context_type_to_api (TubaAPIFiltersFilterContextType self)
{
	gchar* result;
	switch (self) {
		case TUBA_API_FILTERS_FILTER_CONTEXT_TYPE_HOME:
		{
			gchar* _tmp0_;
			_tmp0_ = g_strdup ("home");
			result = _tmp0_;
			return result;
		}
		case TUBA_API_FILTERS_FILTER_CONTEXT_TYPE_NOTIFICATIONS:
		{
			gchar* _tmp1_;
			_tmp1_ = g_strdup ("notifications");
			result = _tmp1_;
			return result;
		}
		case TUBA_API_FILTERS_FILTER_CONTEXT_TYPE_PUBLIC:
		{
			gchar* _tmp2_;
			_tmp2_ = g_strdup ("public");
			result = _tmp2_;
			return result;
		}
		case TUBA_API_FILTERS_FILTER_CONTEXT_TYPE_THREAD:
		{
			gchar* _tmp3_;
			_tmp3_ = g_strdup ("thread");
			result = _tmp3_;
			return result;
		}
		case TUBA_API_FILTERS_FILTER_CONTEXT_TYPE_ACCOUNT:
		{
			gchar* _tmp4_;
			_tmp4_ = g_strdup ("account");
			result = _tmp4_;
			return result;
		}
		default:
		{
			g_assert_not_reached ();
		}
	}
}

static TubaAPIFiltersFilterContextType*
_tuba_api_filters_filter_context_type_dup (TubaAPIFiltersFilterContextType* self)
{
	TubaAPIFiltersFilterContextType* dup;
	dup = g_new0 (TubaAPIFiltersFilterContextType, 1);
	memcpy (dup, self, sizeof (TubaAPIFiltersFilterContextType));
	return dup;
}

static gpointer
__tuba_api_filters_filter_context_type_dup0 (gpointer self)
{
	return self ? _tuba_api_filters_filter_context_type_dup (self) : NULL;
}

TubaAPIFiltersFilterContextType*
tuba_api_filters_filter_context_type_from_string (const gchar* context_string)
{
	gchar* _tmp0_;
	gchar* _tmp1_;
	GQuark _tmp3_ = 0U;
	static GQuark _tmp2_label0 = 0;
	static GQuark _tmp2_label1 = 0;
	static GQuark _tmp2_label2 = 0;
	static GQuark _tmp2_label3 = 0;
	static GQuark _tmp2_label4 = 0;
	TubaAPIFiltersFilterContextType* result;
	g_return_val_if_fail (context_string != NULL, NULL);
	_tmp0_ = g_utf8_strdown (context_string, (gssize) -1);
	_tmp1_ = _tmp0_;
	_tmp3_ = (NULL == _tmp1_) ? 0 : g_quark_from_string (_tmp1_);
	g_free (_tmp1_);
	if (_tmp3_ == ((0 != _tmp2_label0) ? _tmp2_label0 : (_tmp2_label0 = g_quark_from_static_string ("home")))) {
		switch (0) {
			default:
			{
				TubaAPIFiltersFilterContextType _tmp4_;
				TubaAPIFiltersFilterContextType* _tmp5_;
				_tmp4_ = TUBA_API_FILTERS_FILTER_CONTEXT_TYPE_HOME;
				_tmp5_ = __tuba_api_filters_filter_context_type_dup0 (&_tmp4_);
				result = _tmp5_;
				return result;
			}
		}
	} else if (_tmp3_ == ((0 != _tmp2_label1) ? _tmp2_label1 : (_tmp2_label1 = g_quark_from_static_string ("notifications")))) {
		switch (0) {
			default:
			{
				TubaAPIFiltersFilterContextType _tmp6_;
				TubaAPIFiltersFilterContextType* _tmp7_;
				_tmp6_ = TUBA_API_FILTERS_FILTER_CONTEXT_TYPE_NOTIFICATIONS;
				_tmp7_ = __tuba_api_filters_filter_context_type_dup0 (&_tmp6_);
				result = _tmp7_;
				return result;
			}
		}
	} else if (_tmp3_ == ((0 != _tmp2_label2) ? _tmp2_label2 : (_tmp2_label2 = g_quark_from_static_string ("public")))) {
		switch (0) {
			default:
			{
				TubaAPIFiltersFilterContextType _tmp8_;
				TubaAPIFiltersFilterContextType* _tmp9_;
				_tmp8_ = TUBA_API_FILTERS_FILTER_CONTEXT_TYPE_PUBLIC;
				_tmp9_ = __tuba_api_filters_filter_context_type_dup0 (&_tmp8_);
				result = _tmp9_;
				return result;
			}
		}
	} else if (_tmp3_ == ((0 != _tmp2_label3) ? _tmp2_label3 : (_tmp2_label3 = g_quark_from_static_string ("thread")))) {
		switch (0) {
			default:
			{
				TubaAPIFiltersFilterContextType _tmp10_;
				TubaAPIFiltersFilterContextType* _tmp11_;
				_tmp10_ = TUBA_API_FILTERS_FILTER_CONTEXT_TYPE_THREAD;
				_tmp11_ = __tuba_api_filters_filter_context_type_dup0 (&_tmp10_);
				result = _tmp11_;
				return result;
			}
		}
	} else if (_tmp3_ == ((0 != _tmp2_label4) ? _tmp2_label4 : (_tmp2_label4 = g_quark_from_static_string ("account")))) {
		switch (0) {
			default:
			{
				TubaAPIFiltersFilterContextType _tmp12_;
				TubaAPIFiltersFilterContextType* _tmp13_;
				_tmp12_ = TUBA_API_FILTERS_FILTER_CONTEXT_TYPE_ACCOUNT;
				_tmp13_ = __tuba_api_filters_filter_context_type_dup0 (&_tmp12_);
				result = _tmp13_;
				return result;
			}
		}
	} else {
		switch (0) {
			default:
			{
				result = NULL;
				return result;
			}
		}
	}
}

 G_GNUC_NO_INLINE static GType
tuba_api_filters_filter_context_type_get_type_once (void)
{
	static const GEnumValue values[] = {{TUBA_API_FILTERS_FILTER_CONTEXT_TYPE_HOME, "TUBA_API_FILTERS_FILTER_CONTEXT_TYPE_HOME", "home"}, {TUBA_API_FILTERS_FILTER_CONTEXT_TYPE_NOTIFICATIONS, "TUBA_API_FILTERS_FILTER_CONTEXT_TYPE_NOTIFICATIONS", "notifications"}, {TUBA_API_FILTERS_FILTER_CONTEXT_TYPE_PUBLIC, "TUBA_API_FILTERS_FILTER_CONTEXT_TYPE_PUBLIC", "public"}, {TUBA_API_FILTERS_FILTER_CONTEXT_TYPE_THREAD, "TUBA_API_FILTERS_FILTER_CONTEXT_TYPE_THREAD", "thread"}, {TUBA_API_FILTERS_FILTER_CONTEXT_TYPE_ACCOUNT, "TUBA_API_FILTERS_FILTER_CONTEXT_TYPE_ACCOUNT", "account"}, {0, NULL, NULL}};
	GType tuba_api_filters_filter_context_type_type_id;
	tuba_api_filters_filter_context_type_type_id = g_enum_register_static ("TubaAPIFiltersFilterContextType", values);
	return tuba_api_filters_filter_context_type_type_id;
}

GType
tuba_api_filters_filter_context_type_get_type (void)
{
	static GType tuba_api_filters_filter_context_type_type_id__once = 0;
	if (g_once_init_enter_pointer (&tuba_api_filters_filter_context_type_type_id__once)) {
		GType tuba_api_filters_filter_context_type_type_id;
		tuba_api_filters_filter_context_type_type_id = tuba_api_filters_filter_context_type_get_type_once ();
		g_once_init_leave_pointer (&tuba_api_filters_filter_context_type_type_id__once, tuba_api_filters_filter_context_type_type_id);
	}
	return tuba_api_filters_filter_context_type_type_id__once;
}

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

TubaAPIFiltersFilter*
tuba_api_filters_filter_from (JsonNode* node,
                              GError** error)
{
	TubaEntity* _tmp0_ = NULL;
	TubaEntity* _tmp1_;
	TubaAPIFiltersFilter* _tmp2_;
	GError* _inner_error0_ = NULL;
	TubaAPIFiltersFilter* result;
	g_return_val_if_fail (node != NULL, NULL);
	_tmp1_ = tuba_entity_from_json (TUBA_API_FILTERS_TYPE_FILTER, 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_FILTERS_IS_FILTER (_tmp0_) ? ((TubaAPIFiltersFilter*) _tmp0_) : NULL);
	result = _tmp2_;
	_g_object_unref0 (_tmp0_);
	return result;
}

static GType
tuba_api_filters_filter_real_deserialize_array_type (TubaEntity* base,
                                                     const gchar* prop)
{
	TubaAPIFiltersFilter * self;
	const gchar* _tmp0_;
	GQuark _tmp2_ = 0U;
	static GQuark _tmp1_label0 = 0;
	static GQuark _tmp1_label1 = 0;
	static GQuark _tmp1_label2 = 0;
	GType result;
	self = (TubaAPIFiltersFilter*) 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 ("context")))) {
		switch (0) {
			default:
			{
				result = G_TYPE_STRING;
				return result;
			}
		}
	} else if (_tmp2_ == ((0 != _tmp1_label1) ? _tmp1_label1 : (_tmp1_label1 = g_quark_from_static_string ("keywords")))) {
		switch (0) {
			default:
			{
				result = TUBA_API_FILTERS_TYPE_FILTER_KEYWORD;
				return result;
			}
		}
	} else if (_tmp2_ == ((0 != _tmp1_label2) ? _tmp1_label2 : (_tmp1_label2 = g_quark_from_static_string ("statuses")))) {
		switch (0) {
			default:
			{
				result = TUBA_API_FILTERS_TYPE_FILTER_STATUS;
				return result;
			}
		}
	}
	result = TUBA_ENTITY_CLASS (tuba_api_filters_filter_parent_class)->deserialize_array_type (G_TYPE_CHECK_INSTANCE_CAST (self, TUBA_TYPE_ENTITY, TubaEntity), prop);
	return result;
}

TubaAPIFiltersFilter*
tuba_api_filters_filter_construct (GType object_type)
{
	TubaAPIFiltersFilter * self = NULL;
	self = (TubaAPIFiltersFilter*) tuba_entity_construct (object_type);
	return self;
}

TubaAPIFiltersFilter*
tuba_api_filters_filter_new (void)
{
	return tuba_api_filters_filter_construct (TUBA_API_FILTERS_TYPE_FILTER);
}

const gchar*
tuba_api_filters_filter_get_id (TubaAPIFiltersFilter* 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_filters_filter_set_id (TubaAPIFiltersFilter* self,
                                const gchar* value)
{
	gchar* old_value;
	g_return_if_fail (self != NULL);
	old_value = tuba_api_filters_filter_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_filters_filter_properties[TUBA_API_FILTERS_FILTER_ID_PROPERTY]);
	}
}

const gchar*
tuba_api_filters_filter_get_title (TubaAPIFiltersFilter* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_title;
	result = _tmp0_;
	return result;
}

void
tuba_api_filters_filter_set_title (TubaAPIFiltersFilter* self,
                                   const gchar* value)
{
	gchar* old_value;
	g_return_if_fail (self != NULL);
	old_value = tuba_api_filters_filter_get_title (self);
	if (g_strcmp0 (value, old_value) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_title);
		self->priv->_title = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, tuba_api_filters_filter_properties[TUBA_API_FILTERS_FILTER_TITLE_PROPERTY]);
	}
}

GeeArrayList*
tuba_api_filters_filter_get_context (TubaAPIFiltersFilter* self)
{
	GeeArrayList* result;
	GeeArrayList* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_context;
	result = _tmp0_;
	return result;
}

void
tuba_api_filters_filter_set_context (TubaAPIFiltersFilter* self,
                                     GeeArrayList* value)
{
	GeeArrayList* old_value;
	g_return_if_fail (self != NULL);
	old_value = tuba_api_filters_filter_get_context (self);
	if (old_value != value) {
		GeeArrayList* _tmp0_;
		_tmp0_ = _g_object_ref0 (value);
		_g_object_unref0 (self->priv->_context);
		self->priv->_context = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, tuba_api_filters_filter_properties[TUBA_API_FILTERS_FILTER_CONTEXT_PROPERTY]);
	}
}

const gchar*
tuba_api_filters_filter_get_expires_at (TubaAPIFiltersFilter* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_expires_at;
	result = _tmp0_;
	return result;
}

void
tuba_api_filters_filter_set_expires_at (TubaAPIFiltersFilter* self,
                                        const gchar* value)
{
	gchar* old_value;
	g_return_if_fail (self != NULL);
	old_value = tuba_api_filters_filter_get_expires_at (self);
	if (g_strcmp0 (value, old_value) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_expires_at);
		self->priv->_expires_at = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, tuba_api_filters_filter_properties[TUBA_API_FILTERS_FILTER_EXPIRES_AT_PROPERTY]);
	}
}

const gchar*
tuba_api_filters_filter_get_filter_action (TubaAPIFiltersFilter* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_filter_action;
	result = _tmp0_;
	return result;
}

void
tuba_api_filters_filter_set_filter_action (TubaAPIFiltersFilter* self,
                                           const gchar* value)
{
	gchar* old_value;
	g_return_if_fail (self != NULL);
	old_value = tuba_api_filters_filter_get_filter_action (self);
	if (g_strcmp0 (value, old_value) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_filter_action);
		self->priv->_filter_action = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, tuba_api_filters_filter_properties[TUBA_API_FILTERS_FILTER_FILTER_ACTION_PROPERTY]);
	}
}

GeeArrayList*
tuba_api_filters_filter_get_keywords (TubaAPIFiltersFilter* self)
{
	GeeArrayList* result;
	GeeArrayList* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_keywords;
	result = _tmp0_;
	return result;
}

void
tuba_api_filters_filter_set_keywords (TubaAPIFiltersFilter* self,
                                      GeeArrayList* value)
{
	GeeArrayList* old_value;
	g_return_if_fail (self != NULL);
	old_value = tuba_api_filters_filter_get_keywords (self);
	if (old_value != value) {
		GeeArrayList* _tmp0_;
		_tmp0_ = _g_object_ref0 (value);
		_g_object_unref0 (self->priv->_keywords);
		self->priv->_keywords = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, tuba_api_filters_filter_properties[TUBA_API_FILTERS_FILTER_KEYWORDS_PROPERTY]);
	}
}

GeeArrayList*
tuba_api_filters_filter_get_statuses (TubaAPIFiltersFilter* self)
{
	GeeArrayList* result;
	GeeArrayList* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_statuses;
	result = _tmp0_;
	return result;
}

void
tuba_api_filters_filter_set_statuses (TubaAPIFiltersFilter* self,
                                      GeeArrayList* value)
{
	GeeArrayList* old_value;
	g_return_if_fail (self != NULL);
	old_value = tuba_api_filters_filter_get_statuses (self);
	if (old_value != value) {
		GeeArrayList* _tmp0_;
		_tmp0_ = _g_object_ref0 (value);
		_g_object_unref0 (self->priv->_statuses);
		self->priv->_statuses = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, tuba_api_filters_filter_properties[TUBA_API_FILTERS_FILTER_STATUSES_PROPERTY]);
	}
}

static void
tuba_api_filters_filter_class_init (TubaAPIFiltersFilterClass * klass,
                                    gpointer klass_data)
{
	tuba_api_filters_filter_parent_class = g_type_class_peek_parent (klass);
	g_type_class_adjust_private_offset (klass, &TubaAPIFiltersFilter_private_offset);
	((TubaEntityClass *) klass)->deserialize_array_type = (GType (*) (TubaEntity*, const gchar*)) tuba_api_filters_filter_real_deserialize_array_type;
	G_OBJECT_CLASS (klass)->get_property = _vala_tuba_api_filters_filter_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_tuba_api_filters_filter_set_property;
	G_OBJECT_CLASS (klass)->finalize = tuba_api_filters_filter_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), TUBA_API_FILTERS_FILTER_ID_PROPERTY, tuba_api_filters_filter_properties[TUBA_API_FILTERS_FILTER_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_FILTERS_FILTER_TITLE_PROPERTY, tuba_api_filters_filter_properties[TUBA_API_FILTERS_FILTER_TITLE_PROPERTY] = g_param_spec_string ("title", "title", "title", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), TUBA_API_FILTERS_FILTER_CONTEXT_PROPERTY, tuba_api_filters_filter_properties[TUBA_API_FILTERS_FILTER_CONTEXT_PROPERTY] = g_param_spec_object ("context", "context", "context", GEE_TYPE_ARRAY_LIST, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), TUBA_API_FILTERS_FILTER_EXPIRES_AT_PROPERTY, tuba_api_filters_filter_properties[TUBA_API_FILTERS_FILTER_EXPIRES_AT_PROPERTY] = g_param_spec_string ("expires-at", "expires-at", "expires-at", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), TUBA_API_FILTERS_FILTER_FILTER_ACTION_PROPERTY, tuba_api_filters_filter_properties[TUBA_API_FILTERS_FILTER_FILTER_ACTION_PROPERTY] = g_param_spec_string ("filter-action", "filter-action", "filter-action", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), TUBA_API_FILTERS_FILTER_KEYWORDS_PROPERTY, tuba_api_filters_filter_properties[TUBA_API_FILTERS_FILTER_KEYWORDS_PROPERTY] = g_param_spec_object ("keywords", "keywords", "keywords", GEE_TYPE_ARRAY_LIST, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), TUBA_API_FILTERS_FILTER_STATUSES_PROPERTY, tuba_api_filters_filter_properties[TUBA_API_FILTERS_FILTER_STATUSES_PROPERTY] = g_param_spec_object ("statuses", "statuses", "statuses", GEE_TYPE_ARRAY_LIST, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
}

static void
tuba_api_filters_filter_instance_init (TubaAPIFiltersFilter * self,
                                       gpointer klass)
{
	self->priv = tuba_api_filters_filter_get_instance_private (self);
	self->priv->_expires_at = NULL;
}

static void
tuba_api_filters_filter_finalize (GObject * obj)
{
	TubaAPIFiltersFilter * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, TUBA_API_FILTERS_TYPE_FILTER, TubaAPIFiltersFilter);
	_g_free0 (self->priv->_id);
	_g_free0 (self->priv->_title);
	_g_object_unref0 (self->priv->_context);
	_g_free0 (self->priv->_expires_at);
	_g_free0 (self->priv->_filter_action);
	_g_object_unref0 (self->priv->_keywords);
	_g_object_unref0 (self->priv->_statuses);
	G_OBJECT_CLASS (tuba_api_filters_filter_parent_class)->finalize (obj);
}

 G_GNUC_NO_INLINE static GType
tuba_api_filters_filter_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (TubaAPIFiltersFilterClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) tuba_api_filters_filter_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (TubaAPIFiltersFilter), 0, (GInstanceInitFunc) tuba_api_filters_filter_instance_init, NULL };
	GType tuba_api_filters_filter_type_id;
	tuba_api_filters_filter_type_id = g_type_register_static (TUBA_TYPE_ENTITY, "TubaAPIFiltersFilter", &g_define_type_info, G_TYPE_FLAG_NONE);
	TubaAPIFiltersFilter_private_offset = g_type_add_instance_private (tuba_api_filters_filter_type_id, sizeof (TubaAPIFiltersFilterPrivate));
	return tuba_api_filters_filter_type_id;
}

GType
tuba_api_filters_filter_get_type (void)
{
	static GType tuba_api_filters_filter_type_id__once = 0;
	if (g_once_init_enter_pointer (&tuba_api_filters_filter_type_id__once)) {
		GType tuba_api_filters_filter_type_id;
		tuba_api_filters_filter_type_id = tuba_api_filters_filter_get_type_once ();
		g_once_init_leave_pointer (&tuba_api_filters_filter_type_id__once, tuba_api_filters_filter_type_id);
	}
	return tuba_api_filters_filter_type_id__once;
}

static void
_vala_tuba_api_filters_filter_get_property (GObject * object,
                                            guint property_id,
                                            GValue * value,
                                            GParamSpec * pspec)
{
	TubaAPIFiltersFilter * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, TUBA_API_FILTERS_TYPE_FILTER, TubaAPIFiltersFilter);
	switch (property_id) {
		case TUBA_API_FILTERS_FILTER_ID_PROPERTY:
		g_value_set_string (value, tuba_api_filters_filter_get_id (self));
		break;
		case TUBA_API_FILTERS_FILTER_TITLE_PROPERTY:
		g_value_set_string (value, tuba_api_filters_filter_get_title (self));
		break;
		case TUBA_API_FILTERS_FILTER_CONTEXT_PROPERTY:
		g_value_set_object (value, tuba_api_filters_filter_get_context (self));
		break;
		case TUBA_API_FILTERS_FILTER_EXPIRES_AT_PROPERTY:
		g_value_set_string (value, tuba_api_filters_filter_get_expires_at (self));
		break;
		case TUBA_API_FILTERS_FILTER_FILTER_ACTION_PROPERTY:
		g_value_set_string (value, tuba_api_filters_filter_get_filter_action (self));
		break;
		case TUBA_API_FILTERS_FILTER_KEYWORDS_PROPERTY:
		g_value_set_object (value, tuba_api_filters_filter_get_keywords (self));
		break;
		case TUBA_API_FILTERS_FILTER_STATUSES_PROPERTY:
		g_value_set_object (value, tuba_api_filters_filter_get_statuses (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static void
_vala_tuba_api_filters_filter_set_property (GObject * object,
                                            guint property_id,
                                            const GValue * value,
                                            GParamSpec * pspec)
{
	TubaAPIFiltersFilter * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, TUBA_API_FILTERS_TYPE_FILTER, TubaAPIFiltersFilter);
	switch (property_id) {
		case TUBA_API_FILTERS_FILTER_ID_PROPERTY:
		tuba_api_filters_filter_set_id (self, g_value_get_string (value));
		break;
		case TUBA_API_FILTERS_FILTER_TITLE_PROPERTY:
		tuba_api_filters_filter_set_title (self, g_value_get_string (value));
		break;
		case TUBA_API_FILTERS_FILTER_CONTEXT_PROPERTY:
		tuba_api_filters_filter_set_context (self, g_value_get_object (value));
		break;
		case TUBA_API_FILTERS_FILTER_EXPIRES_AT_PROPERTY:
		tuba_api_filters_filter_set_expires_at (self, g_value_get_string (value));
		break;
		case TUBA_API_FILTERS_FILTER_FILTER_ACTION_PROPERTY:
		tuba_api_filters_filter_set_filter_action (self, g_value_get_string (value));
		break;
		case TUBA_API_FILTERS_FILTER_KEYWORDS_PROPERTY:
		tuba_api_filters_filter_set_keywords (self, g_value_get_object (value));
		break;
		case TUBA_API_FILTERS_FILTER_STATUSES_PROPERTY:
		tuba_api_filters_filter_set_statuses (self, g_value_get_object (value));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

