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

#include "wixl.h"
#include <stdlib.h>
#include <string.h>
#include <glib.h>
#include <glib-object.h>
#include <libcommon.h>
#include <libxml/tree.h>

#define _g_destroy_func0(var) (((var == NULL) || (g_destroy_func == NULL)) ? NULL : (var = (g_destroy_func (var), NULL)))
#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
enum  {
	WIXL_WIX_NODE_VISITOR_0_PROPERTY,
	WIXL_WIX_NODE_VISITOR_NUM_PROPERTIES
};
static GParamSpec* wixl_wix_node_visitor_properties[WIXL_WIX_NODE_VISITOR_NUM_PROPERTIES];
enum  {
	WIXL_WIX_NODE_0_PROPERTY,
	WIXL_WIX_NODE_NUM_PROPERTIES
};
static GParamSpec* wixl_wix_node_properties[WIXL_WIX_NODE_NUM_PROPERTIES];
enum  {
	WIXL_WIX_TEXT_0_PROPERTY,
	WIXL_WIX_TEXT_NUM_PROPERTIES
};
static GParamSpec* wixl_wix_text_properties[WIXL_WIX_TEXT_NUM_PROPERTIES];
#define _g_free0(var) (var = (g_free (var), NULL))
enum  {
	WIXL_WIX_ELEMENT_0_PROPERTY,
	WIXL_WIX_ELEMENT_ID_PROPERTY,
	WIXL_WIX_ELEMENT_NUM_PROPERTIES
};
static GParamSpec* wixl_wix_element_properties[WIXL_WIX_ELEMENT_NUM_PROPERTIES];
#define _g_type_class_unref0(var) ((var == NULL) ? NULL : (var = (g_type_class_unref (var), NULL)))
enum  {
	WIXL_WIX_COMPONENT_GROUP_0_PROPERTY,
	WIXL_WIX_COMPONENT_GROUP_DIRECTORY_PROPERTY,
	WIXL_WIX_COMPONENT_GROUP_NUM_PROPERTIES
};
static GParamSpec* wixl_wix_component_group_properties[WIXL_WIX_COMPONENT_GROUP_NUM_PROPERTIES];
enum  {
	WIXL_WIX_FRAGMENT_0_PROPERTY,
	WIXL_WIX_FRAGMENT_NUM_PROPERTIES
};
static GParamSpec* wixl_wix_fragment_properties[WIXL_WIX_FRAGMENT_NUM_PROPERTIES];
enum  {
	WIXL_WIX_REGISTRY_SEARCH_0_PROPERTY,
	WIXL_WIX_REGISTRY_SEARCH_ROOT_PROPERTY,
	WIXL_WIX_REGISTRY_SEARCH_KEY_PROPERTY,
	WIXL_WIX_REGISTRY_SEARCH_TYPE_PROPERTY,
	WIXL_WIX_REGISTRY_SEARCH_NAME_PROPERTY,
	WIXL_WIX_REGISTRY_SEARCH_WIN64_PROPERTY,
	WIXL_WIX_REGISTRY_SEARCH_NUM_PROPERTIES
};
static GParamSpec* wixl_wix_registry_search_properties[WIXL_WIX_REGISTRY_SEARCH_NUM_PROPERTIES];
enum  {
	WIXL_WIX_PROPERTY_0_PROPERTY,
	WIXL_WIX_PROPERTY_VALUE_PROPERTY,
	WIXL_WIX_PROPERTY_NUM_PROPERTIES
};
static GParamSpec* wixl_wix_property_properties[WIXL_WIX_PROPERTY_NUM_PROPERTIES];
enum  {
	WIXL_WIX_PACKAGE_0_PROPERTY,
	WIXL_WIX_PACKAGE_KEYWORDS_PROPERTY,
	WIXL_WIX_PACKAGE_INSTALLER_DESCRIPTION_PROPERTY,
	WIXL_WIX_PACKAGE_INSTALLER_COMMENTS_PROPERTY,
	WIXL_WIX_PACKAGE_MANUFACTURER_PROPERTY,
	WIXL_WIX_PACKAGE_INSTALLER_VERSION_PROPERTY,
	WIXL_WIX_PACKAGE_LANGUAGES_PROPERTY,
	WIXL_WIX_PACKAGE_COMPRESSED_PROPERTY,
	WIXL_WIX_PACKAGE_SUMMARY_CODEPAGE_PROPERTY,
	WIXL_WIX_PACKAGE_COMMENTS_PROPERTY,
	WIXL_WIX_PACKAGE_DESCRIPTION_PROPERTY,
	WIXL_WIX_PACKAGE_INSTALL_SCOPE_PROPERTY,
	WIXL_WIX_PACKAGE_NUM_PROPERTIES
};
static GParamSpec* wixl_wix_package_properties[WIXL_WIX_PACKAGE_NUM_PROPERTIES];
enum  {
	WIXL_WIX_CREATE_FOLDER_0_PROPERTY,
	WIXL_WIX_CREATE_FOLDER_DIRECTORY_PROPERTY,
	WIXL_WIX_CREATE_FOLDER_NUM_PROPERTIES
};
static GParamSpec* wixl_wix_create_folder_properties[WIXL_WIX_CREATE_FOLDER_NUM_PROPERTIES];
enum  {
	WIXL_WIX_ICON_0_PROPERTY,
	WIXL_WIX_ICON_SOURCE_FILE_PROPERTY,
	WIXL_WIX_ICON_NUM_PROPERTIES
};
static GParamSpec* wixl_wix_icon_properties[WIXL_WIX_ICON_NUM_PROPERTIES];
enum  {
	WIXL_WIX_SHORTCUT_0_PROPERTY,
	WIXL_WIX_SHORTCUT_DIRECTORY_PROPERTY,
	WIXL_WIX_SHORTCUT_NAME_PROPERTY,
	WIXL_WIX_SHORTCUT_ICON_INDEX_PROPERTY,
	WIXL_WIX_SHORTCUT_WORKING_DIRECTORY_PROPERTY,
	WIXL_WIX_SHORTCUT_ICON_PROPERTY,
	WIXL_WIX_SHORTCUT_ADVERTISE_PROPERTY,
	WIXL_WIX_SHORTCUT_ARGUMENTS_PROPERTY,
	WIXL_WIX_SHORTCUT_DESCRIPTION_PROPERTY,
	WIXL_WIX_SHORTCUT_TARGET_PROPERTY,
	WIXL_WIX_SHORTCUT_NUM_PROPERTIES
};
static GParamSpec* wixl_wix_shortcut_properties[WIXL_WIX_SHORTCUT_NUM_PROPERTIES];
enum  {
	WIXL_WIX_KEY_ELEMENT_0_PROPERTY,
	WIXL_WIX_KEY_ELEMENT_KEY_PATH_PROPERTY,
	WIXL_WIX_KEY_ELEMENT_NUM_PROPERTIES
};
static GParamSpec* wixl_wix_key_element_properties[WIXL_WIX_KEY_ELEMENT_NUM_PROPERTIES];
enum  {
	WIXL_WIX_FILE_0_PROPERTY,
	WIXL_WIX_FILE_DISK_ID_PROPERTY,
	WIXL_WIX_FILE_SOURCE_PROPERTY,
	WIXL_WIX_FILE_NAME_PROPERTY,
	WIXL_WIX_FILE_NUM_PROPERTIES
};
static GParamSpec* wixl_wix_file_properties[WIXL_WIX_FILE_NUM_PROPERTIES];
enum  {
	WIXL_WIX_REGISTRY_VALUE_0_PROPERTY,
	WIXL_WIX_REGISTRY_VALUE_ROOT_PROPERTY,
	WIXL_WIX_REGISTRY_VALUE_KEY_PROPERTY,
	WIXL_WIX_REGISTRY_VALUE_TYPE_PROPERTY,
	WIXL_WIX_REGISTRY_VALUE_VALUE_PROPERTY,
	WIXL_WIX_REGISTRY_VALUE_NAME_PROPERTY,
	WIXL_WIX_REGISTRY_VALUE_NUM_PROPERTIES
};
static GParamSpec* wixl_wix_registry_value_properties[WIXL_WIX_REGISTRY_VALUE_NUM_PROPERTIES];
enum  {
	WIXL_WIX_REMOVE_FOLDER_0_PROPERTY,
	WIXL_WIX_REMOVE_FOLDER_ON_PROPERTY,
	WIXL_WIX_REMOVE_FOLDER_NUM_PROPERTIES
};
static GParamSpec* wixl_wix_remove_folder_properties[WIXL_WIX_REMOVE_FOLDER_NUM_PROPERTIES];
enum  {
	WIXL_WIX_FEATURE_0_PROPERTY,
	WIXL_WIX_FEATURE_LEVEL_PROPERTY,
	WIXL_WIX_FEATURE_TITLE_PROPERTY,
	WIXL_WIX_FEATURE_DESCRIPTION_PROPERTY,
	WIXL_WIX_FEATURE_DISPLAY_PROPERTY,
	WIXL_WIX_FEATURE_CONFIGURABLE_DIRECTORY_PROPERTY,
	WIXL_WIX_FEATURE_ALLOW_ADVERTISE_PROPERTY,
	WIXL_WIX_FEATURE_ABSENT_PROPERTY,
	WIXL_WIX_FEATURE_NUM_PROPERTIES
};
static GParamSpec* wixl_wix_feature_properties[WIXL_WIX_FEATURE_NUM_PROPERTIES];
enum  {
	WIXL_WIX_COMPONENT_REF_0_PROPERTY,
	WIXL_WIX_COMPONENT_REF_NUM_PROPERTIES
};
static GParamSpec* wixl_wix_component_ref_properties[WIXL_WIX_COMPONENT_REF_NUM_PROPERTIES];
enum  {
	WIXL_WIX_COMPONENT_GROUP_REF_0_PROPERTY,
	WIXL_WIX_COMPONENT_GROUP_REF_NUM_PROPERTIES
};
static GParamSpec* wixl_wix_component_group_ref_properties[WIXL_WIX_COMPONENT_GROUP_REF_NUM_PROPERTIES];
enum  {
	WIXL_WIX_CONDITION_0_PROPERTY,
	WIXL_WIX_CONDITION_MESSAGE_PROPERTY,
	WIXL_WIX_CONDITION_NUM_PROPERTIES
};
static GParamSpec* wixl_wix_condition_properties[WIXL_WIX_CONDITION_NUM_PROPERTIES];
enum  {
	WIXL_WIX_MIME_0_PROPERTY,
	WIXL_WIX_MIME_ADVERTISE_PROPERTY,
	WIXL_WIX_MIME_CONTENT_TYPE_PROPERTY,
	WIXL_WIX_MIME_DEFAULT_PROPERTY,
	WIXL_WIX_MIME_NUM_PROPERTIES
};
static GParamSpec* wixl_wix_mime_properties[WIXL_WIX_MIME_NUM_PROPERTIES];
enum  {
	WIXL_WIX_SERVICE_ARGUMENT_0_PROPERTY,
	WIXL_WIX_SERVICE_ARGUMENT_NUM_PROPERTIES
};
static GParamSpec* wixl_wix_service_argument_properties[WIXL_WIX_SERVICE_ARGUMENT_NUM_PROPERTIES];
enum  {
	WIXL_WIX_SERVICE_CONTROL_0_PROPERTY,
	WIXL_WIX_SERVICE_CONTROL_NAME_PROPERTY,
	WIXL_WIX_SERVICE_CONTROL_START_PROPERTY,
	WIXL_WIX_SERVICE_CONTROL_STOP_PROPERTY,
	WIXL_WIX_SERVICE_CONTROL_REMOVE_PROPERTY,
	WIXL_WIX_SERVICE_CONTROL_WAIT_PROPERTY,
	WIXL_WIX_SERVICE_CONTROL_NUM_PROPERTIES
};
static GParamSpec* wixl_wix_service_control_properties[WIXL_WIX_SERVICE_CONTROL_NUM_PROPERTIES];
enum  {
	WIXL_WIX_SERVICE_DEPENDENCY_0_PROPERTY,
	WIXL_WIX_SERVICE_DEPENDENCY_GROUP_PROPERTY,
	WIXL_WIX_SERVICE_DEPENDENCY_NUM_PROPERTIES
};
static GParamSpec* wixl_wix_service_dependency_properties[WIXL_WIX_SERVICE_DEPENDENCY_NUM_PROPERTIES];
enum  {
	WIXL_WIX_SERVICE_INSTALL_0_PROPERTY,
	WIXL_WIX_SERVICE_INSTALL_NAME_PROPERTY,
	WIXL_WIX_SERVICE_INSTALL_DISPLAY_NAME_PROPERTY,
	WIXL_WIX_SERVICE_INSTALL_TYPE_PROPERTY,
	WIXL_WIX_SERVICE_INSTALL_INTERACTIVE_PROPERTY,
	WIXL_WIX_SERVICE_INSTALL_START_PROPERTY,
	WIXL_WIX_SERVICE_INSTALL_ERROR_CONTROL_PROPERTY,
	WIXL_WIX_SERVICE_INSTALL_VITAL_PROPERTY,
	WIXL_WIX_SERVICE_INSTALL_LOAD_ORDER_GROUP_PROPERTY,
	WIXL_WIX_SERVICE_INSTALL_ACCOUNT_PROPERTY,
	WIXL_WIX_SERVICE_INSTALL_PASSWORD_PROPERTY,
	WIXL_WIX_SERVICE_INSTALL_ARGUMENTS_PROPERTY,
	WIXL_WIX_SERVICE_INSTALL_DESCRIPTION_PROPERTY,
	WIXL_WIX_SERVICE_INSTALL_ERASE_DESCRIPTION_PROPERTY,
	WIXL_WIX_SERVICE_INSTALL_NUM_PROPERTIES
};
static GParamSpec* wixl_wix_service_install_properties[WIXL_WIX_SERVICE_INSTALL_NUM_PROPERTIES];
enum  {
	WIXL_WIX_VERB_0_PROPERTY,
	WIXL_WIX_VERB_COMMAND_PROPERTY,
	WIXL_WIX_VERB_TARGET_FILE_PROPERTY,
	WIXL_WIX_VERB_ARGUMENT_PROPERTY,
	WIXL_WIX_VERB_NUM_PROPERTIES
};
static GParamSpec* wixl_wix_verb_properties[WIXL_WIX_VERB_NUM_PROPERTIES];
enum  {
	WIXL_WIX_EXTENSION_0_PROPERTY,
	WIXL_WIX_EXTENSION_CONTENT_TYPE_PROPERTY,
	WIXL_WIX_EXTENSION_ADVERTISE_PROPERTY,
	WIXL_WIX_EXTENSION_NUM_PROPERTIES
};
static GParamSpec* wixl_wix_extension_properties[WIXL_WIX_EXTENSION_NUM_PROPERTIES];
enum  {
	WIXL_WIX_PROG_ID_0_PROPERTY,
	WIXL_WIX_PROG_ID_DESCRIPTION_PROPERTY,
	WIXL_WIX_PROG_ID_ADVERTISE_PROPERTY,
	WIXL_WIX_PROG_ID_NUM_PROPERTIES
};
static GParamSpec* wixl_wix_prog_id_properties[WIXL_WIX_PROG_ID_NUM_PROPERTIES];
enum  {
	WIXL_WIX_ACTION_0_PROPERTY,
	WIXL_WIX_ACTION_AFTER_PROPERTY,
	WIXL_WIX_ACTION_BEFORE_PROPERTY,
	WIXL_WIX_ACTION_OVERRIDABLE_PROPERTY,
	WIXL_WIX_ACTION_SEQUENCE_PROPERTY,
	WIXL_WIX_ACTION_SUPPRESS_PROPERTY,
	WIXL_WIX_ACTION_ACTION_PROPERTY,
	WIXL_WIX_ACTION_NUM_PROPERTIES
};
static GParamSpec* wixl_wix_action_properties[WIXL_WIX_ACTION_NUM_PROPERTIES];
enum  {
	WIXL_WIX_SEQUENCE_0_PROPERTY,
	WIXL_WIX_SEQUENCE_NUM_PROPERTIES
};
static GParamSpec* wixl_wix_sequence_properties[WIXL_WIX_SEQUENCE_NUM_PROPERTIES];
enum  {
	WIXL_WIX_INSTALL_EXECUTE_SEQUENCE_0_PROPERTY,
	WIXL_WIX_INSTALL_EXECUTE_SEQUENCE_NUM_PROPERTIES
};
static GParamSpec* wixl_wix_install_execute_sequence_properties[WIXL_WIX_INSTALL_EXECUTE_SEQUENCE_NUM_PROPERTIES];
enum  {
	WIXL_WIX_INSTALL_UI_SEQUENCE_0_PROPERTY,
	WIXL_WIX_INSTALL_UI_SEQUENCE_NUM_PROPERTIES
};
static GParamSpec* wixl_wix_install_ui_sequence_properties[WIXL_WIX_INSTALL_UI_SEQUENCE_NUM_PROPERTIES];
enum  {
	WIXL_WIX_ADMIN_EXECUTE_SEQUENCE_0_PROPERTY,
	WIXL_WIX_ADMIN_EXECUTE_SEQUENCE_NUM_PROPERTIES
};
static GParamSpec* wixl_wix_admin_execute_sequence_properties[WIXL_WIX_ADMIN_EXECUTE_SEQUENCE_NUM_PROPERTIES];
enum  {
	WIXL_WIX_ADMIN_UI_SEQUENCE_0_PROPERTY,
	WIXL_WIX_ADMIN_UI_SEQUENCE_NUM_PROPERTIES
};
static GParamSpec* wixl_wix_admin_ui_sequence_properties[WIXL_WIX_ADMIN_UI_SEQUENCE_NUM_PROPERTIES];
enum  {
	WIXL_WIX_ADVERTISE_EXECUTE_SEQUENCE_0_PROPERTY,
	WIXL_WIX_ADVERTISE_EXECUTE_SEQUENCE_NUM_PROPERTIES
};
static GParamSpec* wixl_wix_advertise_execute_sequence_properties[WIXL_WIX_ADVERTISE_EXECUTE_SEQUENCE_NUM_PROPERTIES];
enum  {
	WIXL_WIX_UPGRADE_0_PROPERTY,
	WIXL_WIX_UPGRADE_NUM_PROPERTIES
};
static GParamSpec* wixl_wix_upgrade_properties[WIXL_WIX_UPGRADE_NUM_PROPERTIES];
enum  {
	WIXL_WIX_UPGRADE_VERSION_0_PROPERTY,
	WIXL_WIX_UPGRADE_VERSION_MINIMUM_PROPERTY,
	WIXL_WIX_UPGRADE_VERSION_MAXIMUM_PROPERTY,
	WIXL_WIX_UPGRADE_VERSION_INCLUDE_MINIMUM_PROPERTY,
	WIXL_WIX_UPGRADE_VERSION_INCLUDE_MAXIMUM_PROPERTY,
	WIXL_WIX_UPGRADE_VERSION_ONLY_DETECT_PROPERTY,
	WIXL_WIX_UPGRADE_VERSION_PROPERTY_PROPERTY,
	WIXL_WIX_UPGRADE_VERSION_NUM_PROPERTIES
};
static GParamSpec* wixl_wix_upgrade_version_properties[WIXL_WIX_UPGRADE_VERSION_NUM_PROPERTIES];
enum  {
	WIXL_WIX_CUSTOM_ACTION_0_PROPERTY,
	WIXL_WIX_CUSTOM_ACTION_PROPERTY_PROPERTY,
	WIXL_WIX_CUSTOM_ACTION_EXECUTE_PROPERTY,
	WIXL_WIX_CUSTOM_ACTION_FILE_KEY_PROPERTY,
	WIXL_WIX_CUSTOM_ACTION_EXE_COMMAND_PROPERTY,
	WIXL_WIX_CUSTOM_ACTION_IMPERSONATE_PROPERTY,
	WIXL_WIX_CUSTOM_ACTION_RETURN_PROPERTY,
	WIXL_WIX_CUSTOM_ACTION_BINARY_KEY_PROPERTY,
	WIXL_WIX_CUSTOM_ACTION_DLL_ENTRY_PROPERTY,
	WIXL_WIX_CUSTOM_ACTION_HIDE_TARGET_PROPERTY,
	WIXL_WIX_CUSTOM_ACTION_JSCRIPT_CALL_PROPERTY,
	WIXL_WIX_CUSTOM_ACTION_NUM_PROPERTIES
};
static GParamSpec* wixl_wix_custom_action_properties[WIXL_WIX_CUSTOM_ACTION_NUM_PROPERTIES];
enum  {
	WIXL_WIX_BINARY_0_PROPERTY,
	WIXL_WIX_BINARY_SOURCE_FILE_PROPERTY,
	WIXL_WIX_BINARY_NUM_PROPERTIES
};
static GParamSpec* wixl_wix_binary_properties[WIXL_WIX_BINARY_NUM_PROPERTIES];
enum  {
	WIXL_WIX_MAJOR_UPGRADE_0_PROPERTY,
	WIXL_WIX_MAJOR_UPGRADE_DOWNGRADE_ERROR_MESSAGE_PROPERTY,
	WIXL_WIX_MAJOR_UPGRADE_NUM_PROPERTIES
};
static GParamSpec* wixl_wix_major_upgrade_properties[WIXL_WIX_MAJOR_UPGRADE_NUM_PROPERTIES];
enum  {
	WIXL_WIX_MEDIA_TEMPLATE_0_PROPERTY,
	WIXL_WIX_MEDIA_TEMPLATE_EMBED_CAB_PROPERTY,
	WIXL_WIX_MEDIA_TEMPLATE_NUM_PROPERTIES
};
static GParamSpec* wixl_wix_media_template_properties[WIXL_WIX_MEDIA_TEMPLATE_NUM_PROPERTIES];
enum  {
	WIXL_WIX_PRODUCT_0_PROPERTY,
	WIXL_WIX_PRODUCT_NAME_PROPERTY,
	WIXL_WIX_PRODUCT_UPGRADE_CODE_PROPERTY,
	WIXL_WIX_PRODUCT_LANGUAGE_PROPERTY,
	WIXL_WIX_PRODUCT_CODEPAGE_PROPERTY,
	WIXL_WIX_PRODUCT_VERSION_PROPERTY,
	WIXL_WIX_PRODUCT_MANUFACTURER_PROPERTY,
	WIXL_WIX_PRODUCT_NUM_PROPERTIES
};
static GParamSpec* wixl_wix_product_properties[WIXL_WIX_PRODUCT_NUM_PROPERTIES];
enum  {
	WIXL_WIX_MEDIA_0_PROPERTY,
	WIXL_WIX_MEDIA_CABINET_PROPERTY,
	WIXL_WIX_MEDIA_EMBED_CAB_PROPERTY,
	WIXL_WIX_MEDIA_DISK_PROMPT_PROPERTY,
	WIXL_WIX_MEDIA_NUM_PROPERTIES
};
static GParamSpec* wixl_wix_media_properties[WIXL_WIX_MEDIA_NUM_PROPERTIES];
enum  {
	WIXL_WIX_REGISTRY_KEY_0_PROPERTY,
	WIXL_WIX_REGISTRY_KEY_KEY_PROPERTY,
	WIXL_WIX_REGISTRY_KEY_ROOT_PROPERTY,
	WIXL_WIX_REGISTRY_KEY_NUM_PROPERTIES
};
static GParamSpec* wixl_wix_registry_key_properties[WIXL_WIX_REGISTRY_KEY_NUM_PROPERTIES];
enum  {
	WIXL_WIX_COMPONENT_0_PROPERTY,
	WIXL_WIX_COMPONENT_GUID_PROPERTY,
	WIXL_WIX_COMPONENT_WIN64_PROPERTY,
	WIXL_WIX_COMPONENT_NUM_PROPERTIES
};
static GParamSpec* wixl_wix_component_properties[WIXL_WIX_COMPONENT_NUM_PROPERTIES];
enum  {
	WIXL_WIX_DIRECTORY_0_PROPERTY,
	WIXL_WIX_DIRECTORY_NAME_PROPERTY,
	WIXL_WIX_DIRECTORY_NUM_PROPERTIES
};
static GParamSpec* wixl_wix_directory_properties[WIXL_WIX_DIRECTORY_NUM_PROPERTIES];
enum  {
	WIXL_WIX_ELEMENT_REF_0_PROPERTY,
	WIXL_WIX_ELEMENT_REF_G_TYPE,
	WIXL_WIX_ELEMENT_REF_G_DUP_FUNC,
	WIXL_WIX_ELEMENT_REF_G_DESTROY_FUNC,
	WIXL_WIX_ELEMENT_REF_NUM_PROPERTIES
};
static GParamSpec* wixl_wix_element_ref_properties[WIXL_WIX_ELEMENT_REF_NUM_PROPERTIES];
enum  {
	WIXL_WIX_DIRECTORY_REF_0_PROPERTY,
	WIXL_WIX_DIRECTORY_REF_NUM_PROPERTIES
};
static GParamSpec* wixl_wix_directory_ref_properties[WIXL_WIX_DIRECTORY_REF_NUM_PROPERTIES];

#define WIXL_TYPE_WIX_ROOT (wixl_wix_root_get_type ())
#define WIXL_WIX_ROOT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), WIXL_TYPE_WIX_ROOT, WixlWixRoot))
#define WIXL_WIX_ROOT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), WIXL_TYPE_WIX_ROOT, WixlWixRootClass))
#define WIXL_IS_WIX_ROOT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), WIXL_TYPE_WIX_ROOT))
#define WIXL_IS_WIX_ROOT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), WIXL_TYPE_WIX_ROOT))
#define WIXL_WIX_ROOT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), WIXL_TYPE_WIX_ROOT, WixlWixRootClass))

typedef struct _WixlWixRoot WixlWixRoot;
typedef struct _WixlWixRootClass WixlWixRootClass;
typedef struct _WixlWixRootPrivate WixlWixRootPrivate;
enum  {
	WIXL_WIX_ROOT_0_PROPERTY,
	WIXL_WIX_ROOT_NUM_PROPERTIES
};
static GParamSpec* wixl_wix_root_properties[WIXL_WIX_ROOT_NUM_PROPERTIES];

struct _WixlWixElementPrivate {
	gchar* _Id;
};

struct _WixlWixComponentGroupPrivate {
	gchar* _Directory;
};

struct _WixlWixRegistrySearchPrivate {
	gchar* _Root;
	gchar* _Key;
	gchar* _Type;
	gchar* _Name;
	gchar* _Win64;
};

struct _WixlWixPropertyPrivate {
	gchar* _Value;
};

struct _WixlWixPackagePrivate {
	gchar* _Keywords;
	gchar* _InstallerDescription;
	gchar* _InstallerComments;
	gchar* _Manufacturer;
	gchar* _InstallerVersion;
	gchar* _Languages;
	gchar* _Compressed;
	gchar* _SummaryCodepage;
	gchar* _Comments;
	gchar* _Description;
	gchar* _InstallScope;
};

struct _WixlWixCreateFolderPrivate {
	gchar* _Directory;
};

struct _WixlWixIconPrivate {
	gchar* _SourceFile;
};

struct _WixlWixShortcutPrivate {
	gchar* _Directory;
	gchar* _Name;
	gchar* _IconIndex;
	gchar* _WorkingDirectory;
	gchar* _Icon;
	gchar* _Advertise;
	gchar* _Arguments;
	gchar* _Description;
	gchar* _Target;
};

struct _WixlWixKeyElementPrivate {
	gchar* _KeyPath;
};

struct _WixlWixFilePrivate {
	gchar* _DiskId;
	gchar* _Source;
	gchar* _Name;
};

struct _WixlWixRegistryValuePrivate {
	gchar* _Root;
	gchar* _Key;
	gchar* _Type;
	gchar* _Value;
	gchar* _Name;
};

struct _WixlWixRemoveFolderPrivate {
	gchar* _On;
};

struct _WixlWixFeaturePrivate {
	gchar* _Level;
	gchar* _Title;
	gchar* _Description;
	gchar* _Display;
	gchar* _ConfigurableDirectory;
	gchar* _AllowAdvertise;
	gchar* _Absent;
};

struct _WixlWixConditionPrivate {
	gchar* _Message;
};

struct _WixlWixMIMEPrivate {
	gchar* _Advertise;
	gchar* _ContentType;
	gchar* _Default;
};

struct _WixlWixServiceControlPrivate {
	gchar* _Name;
	gchar* _Start;
	gchar* _Stop;
	gchar* _Remove;
	gchar* _Wait;
};

struct _WixlWixServiceDependencyPrivate {
	gchar* _Group;
};

struct _WixlWixServiceInstallPrivate {
	gchar* _Name;
	gchar* _DisplayName;
	gchar* _Type;
	gchar* _Interactive;
	gchar* _Start;
	gchar* _ErrorControl;
	gchar* _Vital;
	gchar* _LoadOrderGroup;
	gchar* _Account;
	gchar* _Password;
	gchar* _Arguments;
	gchar* _Description;
	gchar* _EraseDescription;
};

struct _WixlWixVerbPrivate {
	gchar* _Command;
	gchar* _TargetFile;
	gchar* _Argument;
};

struct _WixlWixExtensionPrivate {
	gchar* _ContentType;
	gchar* _Advertise;
};

struct _WixlWixProgIdPrivate {
	gchar* _Description;
	gchar* _Advertise;
};

struct _WixlWixActionPrivate {
	gchar* _After;
	gchar* _Before;
	gchar* _Overridable;
	gchar* _Sequence;
	gchar* _Suppress;
	gchar* _Action;
};

struct _WixlWixUpgradeVersionPrivate {
	gchar* _Minimum;
	gchar* _Maximum;
	gchar* _IncludeMinimum;
	gchar* _IncludeMaximum;
	gchar* _OnlyDetect;
	gchar* _Property;
};

struct _WixlWixCustomActionPrivate {
	gchar* _Property;
	gchar* _Execute;
	gchar* _FileKey;
	gchar* _ExeCommand;
	gchar* _Impersonate;
	gchar* _Return;
	gchar* _BinaryKey;
	gchar* _DllEntry;
	gchar* _HideTarget;
	gchar* _JScriptCall;
};

struct _WixlWixBinaryPrivate {
	gchar* _SourceFile;
};

struct _WixlWixMajorUpgradePrivate {
	gchar* _DowngradeErrorMessage;
};

struct _WixlWixMediaTemplatePrivate {
	gchar* _EmbedCab;
};

struct _WixlWixProductPrivate {
	gchar* _Name;
	gchar* _UpgradeCode;
	gchar* _Language;
	gchar* _Codepage;
	gchar* _Version;
	gchar* _Manufacturer;
};

struct _WixlWixMediaPrivate {
	gchar* _Cabinet;
	gchar* _EmbedCab;
	gchar* _DiskPrompt;
};

struct _WixlWixRegistryKeyPrivate {
	gchar* _Key;
	gchar* _Root;
};

struct _WixlWixComponentPrivate {
	gchar* _Guid;
	gchar* _Win64;
};

struct _WixlWixDirectoryPrivate {
	gchar* _Name;
};

struct _WixlWixElementRefPrivate {
	GType g_type;
	GBoxedCopyFunc g_dup_func;
	GDestroyNotify g_destroy_func;
};

struct _WixlWixRoot {
	WixlWixElement parent_instance;
	WixlWixRootPrivate * priv;
};

struct _WixlWixRootClass {
	WixlWixElementClass parent_class;
};

static gpointer wixl_wix_node_visitor_parent_class = NULL;
static gpointer wixl_wix_node_parent_class = NULL;
static gpointer wixl_wix_text_parent_class = NULL;
static gint WixlWixElement_private_offset;
static gpointer wixl_wix_element_parent_class = NULL;
static gint WixlWixComponentGroup_private_offset;
static gpointer wixl_wix_component_group_parent_class = NULL;
static gpointer wixl_wix_fragment_parent_class = NULL;
static gint WixlWixRegistrySearch_private_offset;
static gpointer wixl_wix_registry_search_parent_class = NULL;
static gint WixlWixProperty_private_offset;
static gpointer wixl_wix_property_parent_class = NULL;
static gint WixlWixPackage_private_offset;
static gpointer wixl_wix_package_parent_class = NULL;
static gint WixlWixCreateFolder_private_offset;
static gpointer wixl_wix_create_folder_parent_class = NULL;
static gint WixlWixIcon_private_offset;
static gpointer wixl_wix_icon_parent_class = NULL;
static gint WixlWixShortcut_private_offset;
static gpointer wixl_wix_shortcut_parent_class = NULL;
static gint WixlWixKeyElement_private_offset;
static gpointer wixl_wix_key_element_parent_class = NULL;
static gint WixlWixFile_private_offset;
static gpointer wixl_wix_file_parent_class = NULL;
static gint WixlWixRegistryValue_private_offset;
static gpointer wixl_wix_registry_value_parent_class = NULL;
static gint WixlWixRemoveFolder_private_offset;
static gpointer wixl_wix_remove_folder_parent_class = NULL;
static gint WixlWixFeature_private_offset;
static gpointer wixl_wix_feature_parent_class = NULL;
static gpointer wixl_wix_component_ref_parent_class = NULL;
static gpointer wixl_wix_component_group_ref_parent_class = NULL;
static gint WixlWixCondition_private_offset;
static gpointer wixl_wix_condition_parent_class = NULL;
static gint WixlWixMIME_private_offset;
static gpointer wixl_wix_mime_parent_class = NULL;
static gpointer wixl_wix_service_argument_parent_class = NULL;
static gint WixlWixServiceControl_private_offset;
static gpointer wixl_wix_service_control_parent_class = NULL;
static gint WixlWixServiceDependency_private_offset;
static gpointer wixl_wix_service_dependency_parent_class = NULL;
static gint WixlWixServiceInstall_private_offset;
static gpointer wixl_wix_service_install_parent_class = NULL;
static gint WixlWixVerb_private_offset;
static gpointer wixl_wix_verb_parent_class = NULL;
static gint WixlWixExtension_private_offset;
static gpointer wixl_wix_extension_parent_class = NULL;
static gint WixlWixProgId_private_offset;
static gpointer wixl_wix_prog_id_parent_class = NULL;
static gint WixlWixAction_private_offset;
static gpointer wixl_wix_action_parent_class = NULL;
static gpointer wixl_wix_sequence_parent_class = NULL;
static gpointer wixl_wix_install_execute_sequence_parent_class = NULL;
static gpointer wixl_wix_install_ui_sequence_parent_class = NULL;
static gpointer wixl_wix_admin_execute_sequence_parent_class = NULL;
static gpointer wixl_wix_admin_ui_sequence_parent_class = NULL;
static gpointer wixl_wix_advertise_execute_sequence_parent_class = NULL;
static gpointer wixl_wix_upgrade_parent_class = NULL;
static gint WixlWixUpgradeVersion_private_offset;
static gpointer wixl_wix_upgrade_version_parent_class = NULL;
static gint WixlWixCustomAction_private_offset;
static gpointer wixl_wix_custom_action_parent_class = NULL;
static gint WixlWixBinary_private_offset;
static gpointer wixl_wix_binary_parent_class = NULL;
static gint WixlWixMajorUpgrade_private_offset;
static gpointer wixl_wix_major_upgrade_parent_class = NULL;
static gint WixlWixMediaTemplate_private_offset;
static gpointer wixl_wix_media_template_parent_class = NULL;
static gint WixlWixProduct_private_offset;
static gpointer wixl_wix_product_parent_class = NULL;
static gint WixlWixMedia_private_offset;
static gpointer wixl_wix_media_parent_class = NULL;
static gint WixlWixRegistryKey_private_offset;
static gpointer wixl_wix_registry_key_parent_class = NULL;
static gint WixlWixComponent_private_offset;
static gpointer wixl_wix_component_parent_class = NULL;
static gint WixlWixDirectory_private_offset;
static gpointer wixl_wix_directory_parent_class = NULL;
static gint WixlWixElementRef_private_offset;
static gpointer wixl_wix_element_ref_parent_class = NULL;
static gpointer wixl_wix_directory_ref_parent_class = NULL;
static gpointer wixl_wix_root_parent_class = NULL;

static void wixl_wix_node_visitor_real_visit_product (WixlWixNodeVisitor* self,
                                               WixlWixProduct* product,
                                               GError** error);
static void wixl_wix_node_visitor_real_visit_icon (WixlWixNodeVisitor* self,
                                            WixlWixIcon* icon,
                                            GError** error);
static void wixl_wix_node_visitor_real_visit_package (WixlWixNodeVisitor* self,
                                               WixlWixPackage* package,
                                               GError** error);
static void wixl_wix_node_visitor_real_visit_property (WixlWixNodeVisitor* self,
                                                WixlWixProperty* prop,
                                                GError** error);
static void wixl_wix_node_visitor_real_visit_media (WixlWixNodeVisitor* self,
                                             WixlWixMedia* media,
                                             GError** error);
static void wixl_wix_node_visitor_real_visit_directory (WixlWixNodeVisitor* self,
                                                 WixlWixDirectory* dir,
                                                 GError** error);
static void wixl_wix_node_visitor_real_visit_component (WixlWixNodeVisitor* self,
                                                 WixlWixComponent* comp,
                                                 WixlVisitState state,
                                                 GError** error);
static void wixl_wix_node_visitor_real_visit_feature (WixlWixNodeVisitor* self,
                                               WixlWixFeature* feature,
                                               WixlVisitState state,
                                               GError** error);
static void wixl_wix_node_visitor_real_visit_component_ref (WixlWixNodeVisitor* self,
                                                     WixlWixComponentRef* ref,
                                                     GError** error);
static void wixl_wix_node_visitor_real_visit_remove_folder (WixlWixNodeVisitor* self,
                                                     WixlWixRemoveFolder* rm,
                                                     GError** error);
static void wixl_wix_node_visitor_real_visit_registry_value (WixlWixNodeVisitor* self,
                                                      WixlWixRegistryValue* reg,
                                                      GError** error);
static void wixl_wix_node_visitor_real_visit_file (WixlWixNodeVisitor* self,
                                            WixlWixFile* reg,
                                            GError** error);
static void wixl_wix_node_visitor_real_visit_shortcut (WixlWixNodeVisitor* self,
                                                WixlWixShortcut* shortcut,
                                                GError** error);
static void wixl_wix_node_visitor_real_visit_create_folder (WixlWixNodeVisitor* self,
                                                     WixlWixCreateFolder* folder,
                                                     GError** error);
static void wixl_wix_node_visitor_real_visit_fragment (WixlWixNodeVisitor* self,
                                                WixlWixFragment* fragment,
                                                GError** error);
static void wixl_wix_node_visitor_real_visit_sequence (WixlWixNodeVisitor* self,
                                                WixlWixSequence* sequence,
                                                GError** error);
static void wixl_wix_node_visitor_real_visit_condition (WixlWixNodeVisitor* self,
                                                 WixlWixCondition* condition,
                                                 GError** error);
static void wixl_wix_node_visitor_real_visit_upgrade (WixlWixNodeVisitor* self,
                                               WixlWixUpgrade* upgrade,
                                               GError** error);
static void wixl_wix_node_visitor_real_visit_upgrade_version (WixlWixNodeVisitor* self,
                                                       WixlWixUpgradeVersion* version,
                                                       GError** error);
static void wixl_wix_node_visitor_real_visit_action (WixlWixNodeVisitor* self,
                                              WixlWixAction* action,
                                              GError** error);
static void wixl_wix_node_visitor_real_visit_text (WixlWixNodeVisitor* self,
                                            WixlWixText* text,
                                            GError** error);
static void wixl_wix_node_visitor_real_visit_component_group_ref (WixlWixNodeVisitor* self,
                                                           WixlWixComponentGroupRef* ref,
                                                           GError** error);
static void wixl_wix_node_visitor_real_visit_progid (WixlWixNodeVisitor* self,
                                              WixlWixProgId* progid,
                                              GError** error);
static void wixl_wix_node_visitor_real_visit_extension (WixlWixNodeVisitor* self,
                                                 WixlWixExtension* extension,
                                                 GError** error);
static void wixl_wix_node_visitor_real_visit_verb (WixlWixNodeVisitor* self,
                                            WixlWixVerb* verb,
                                            GError** error);
static void wixl_wix_node_visitor_real_visit_mime (WixlWixNodeVisitor* self,
                                            WixlWixMIME* mime,
                                            GError** error);
static void wixl_wix_node_visitor_real_visit_service_argument (WixlWixNodeVisitor* self,
                                                        WixlWixServiceArgument* service_argument,
                                                        GError** error);
static void wixl_wix_node_visitor_real_visit_service_control (WixlWixNodeVisitor* self,
                                                       WixlWixServiceControl* service_control,
                                                       WixlVisitState state,
                                                       GError** error);
static void wixl_wix_node_visitor_real_visit_service_dependency (WixlWixNodeVisitor* self,
                                                          WixlWixServiceDependency* service_dependency,
                                                          GError** error);
static void wixl_wix_node_visitor_real_visit_service_install (WixlWixNodeVisitor* self,
                                                       WixlWixServiceInstall* service_install,
                                                       WixlVisitState state,
                                                       GError** error);
static void wixl_wix_node_visitor_real_visit_registry_search (WixlWixNodeVisitor* self,
                                                       WixlWixRegistrySearch* search,
                                                       GError** error);
static void wixl_wix_node_visitor_real_visit_custom_action (WixlWixNodeVisitor* self,
                                                     WixlWixCustomAction* action,
                                                     GError** error);
static void wixl_wix_node_visitor_real_visit_binary (WixlWixNodeVisitor* self,
                                              WixlWixBinary* binary,
                                              GError** error);
static void wixl_wix_node_visitor_real_visit_major_upgrade (WixlWixNodeVisitor* self,
                                                     WixlWixMajorUpgrade* major,
                                                     GError** error);
static void wixl_wix_node_visitor_real_visit_media_template (WixlWixNodeVisitor* self,
                                                      WixlWixMediaTemplate* media,
                                                      GError** error);
static gchar* wixl_wix_node_real_to_string (WixlWixNode* self);
static void wixl_wix_node_real_accept (WixlWixNode* self,
                                WixlWixNodeVisitor* visitor,
                                GError** error);
static void wixl_wix_node_finalize (GObject * obj);
static gchar* wixl_wix_text_real_to_string (WixlWixNode* base);
static void wixl_wix_text_real_accept (WixlWixNode* base,
                                WixlWixNodeVisitor* visitor,
                                GError** error);
static void wixl_wix_text_finalize (GObject * obj);
static void _g_object_unref0_ (gpointer var);
static inline void _g_list_free__g_object_unref0_ (GList* self);
static gpointer* _vala_array_dup3 (gpointer* self,
                            int length,
                            GBoxedCopyFunc g_dup_func);
static void _vala_array_add7 (gpointer* * array,
                       int* length,
                       int* size,
                       gpointer value);
static gpointer* _vala_array_dup4 (gpointer* self,
                            int length,
                            GBoxedCopyFunc g_dup_func);
static void _vala_array_add8 (gpointer* * array,
                       int* length,
                       int* size,
                       gpointer value);
static gchar* wixl_wix_element_real_full_path (WixlWixElement* self,
                                        WixlWixResolver* r,
                                        GError** error);
static gchar* wixl_wix_element_get_attribute_content (WixlWixElement* self,
                                               xmlAttr* attr);
static void wixl_wix_element_real_load (WixlWixElement* self,
                                 xmlNode* node,
                                 GError** error);
static gchar* wixl_wix_element_real_to_string (WixlWixNode* base);
static void wixl_wix_element_real_accept (WixlWixNode* base,
                                   WixlWixNodeVisitor* visitor,
                                   GError** error);
static void _g_free0_ (gpointer var);
static void wixl_wix_element_finalize (GObject * obj);
static void _vala_wixl_wix_element_get_property (GObject * object,
                                          guint property_id,
                                          GValue * value,
                                          GParamSpec * pspec);
static void _vala_wixl_wix_element_set_property (GObject * object,
                                          guint property_id,
                                          const GValue * value,
                                          GParamSpec * pspec);
static void wixl_wix_component_group_finalize (GObject * obj);
static void _vala_wixl_wix_component_group_get_property (GObject * object,
                                                  guint property_id,
                                                  GValue * value,
                                                  GParamSpec * pspec);
static void _vala_wixl_wix_component_group_set_property (GObject * object,
                                                  guint property_id,
                                                  const GValue * value,
                                                  GParamSpec * pspec);
static void wixl_wix_fragment_real_accept (WixlWixNode* base,
                                    WixlWixNodeVisitor* visitor,
                                    GError** error);
static void wixl_wix_registry_search_real_accept (WixlWixNode* base,
                                           WixlWixNodeVisitor* visitor,
                                           GError** error);
static void wixl_wix_registry_search_finalize (GObject * obj);
static void _vala_wixl_wix_registry_search_get_property (GObject * object,
                                                  guint property_id,
                                                  GValue * value,
                                                  GParamSpec * pspec);
static void _vala_wixl_wix_registry_search_set_property (GObject * object,
                                                  guint property_id,
                                                  const GValue * value,
                                                  GParamSpec * pspec);
static void wixl_wix_property_real_accept (WixlWixNode* base,
                                    WixlWixNodeVisitor* visitor,
                                    GError** error);
static void wixl_wix_property_finalize (GObject * obj);
static void _vala_wixl_wix_property_get_property (GObject * object,
                                           guint property_id,
                                           GValue * value,
                                           GParamSpec * pspec);
static void _vala_wixl_wix_property_set_property (GObject * object,
                                           guint property_id,
                                           const GValue * value,
                                           GParamSpec * pspec);
static void wixl_wix_package_real_accept (WixlWixNode* base,
                                   WixlWixNodeVisitor* visitor,
                                   GError** error);
static void wixl_wix_package_finalize (GObject * obj);
static void _vala_wixl_wix_package_get_property (GObject * object,
                                          guint property_id,
                                          GValue * value,
                                          GParamSpec * pspec);
static void _vala_wixl_wix_package_set_property (GObject * object,
                                          guint property_id,
                                          const GValue * value,
                                          GParamSpec * pspec);
static void wixl_wix_create_folder_real_accept (WixlWixNode* base,
                                         WixlWixNodeVisitor* visitor,
                                         GError** error);
static void wixl_wix_create_folder_finalize (GObject * obj);
static void _vala_wixl_wix_create_folder_get_property (GObject * object,
                                                guint property_id,
                                                GValue * value,
                                                GParamSpec * pspec);
static void _vala_wixl_wix_create_folder_set_property (GObject * object,
                                                guint property_id,
                                                const GValue * value,
                                                GParamSpec * pspec);
static void wixl_wix_icon_real_accept (WixlWixNode* base,
                                WixlWixNodeVisitor* visitor,
                                GError** error);
static void wixl_wix_icon_finalize (GObject * obj);
static void _vala_wixl_wix_icon_get_property (GObject * object,
                                       guint property_id,
                                       GValue * value,
                                       GParamSpec * pspec);
static void _vala_wixl_wix_icon_set_property (GObject * object,
                                       guint property_id,
                                       const GValue * value,
                                       GParamSpec * pspec);
static void wixl_wix_shortcut_real_accept (WixlWixNode* base,
                                    WixlWixNodeVisitor* visitor,
                                    GError** error);
static void wixl_wix_shortcut_finalize (GObject * obj);
static void _vala_wixl_wix_shortcut_get_property (GObject * object,
                                           guint property_id,
                                           GValue * value,
                                           GParamSpec * pspec);
static void _vala_wixl_wix_shortcut_set_property (GObject * object,
                                           guint property_id,
                                           const GValue * value,
                                           GParamSpec * pspec);
static gchar* wixl_wix_key_element_real_path_name (WixlWixKeyElement* self,
                                            GError** error);
static void wixl_wix_key_element_finalize (GObject * obj);
static void _vala_wixl_wix_key_element_get_property (GObject * object,
                                              guint property_id,
                                              GValue * value,
                                              GParamSpec * pspec);
static void _vala_wixl_wix_key_element_set_property (GObject * object,
                                              guint property_id,
                                              const GValue * value,
                                              GParamSpec * pspec);
static gchar* wixl_wix_file_real_path_name (WixlWixKeyElement* base,
                                     GError** error);
static void wixl_wix_file_real_accept (WixlWixNode* base,
                                WixlWixNodeVisitor* visitor,
                                GError** error);
static void wixl_wix_file_finalize (GObject * obj);
static void _vala_wixl_wix_file_get_property (GObject * object,
                                       guint property_id,
                                       GValue * value,
                                       GParamSpec * pspec);
static void _vala_wixl_wix_file_set_property (GObject * object,
                                       guint property_id,
                                       const GValue * value,
                                       GParamSpec * pspec);
static gchar* wixl_wix_registry_value_real_path_name (WixlWixKeyElement* base,
                                               GError** error);
static void wixl_wix_registry_value_real_accept (WixlWixNode* base,
                                          WixlWixNodeVisitor* visitor,
                                          GError** error);
static void wixl_wix_registry_value_finalize (GObject * obj);
static void _vala_wixl_wix_registry_value_get_property (GObject * object,
                                                 guint property_id,
                                                 GValue * value,
                                                 GParamSpec * pspec);
static void _vala_wixl_wix_registry_value_set_property (GObject * object,
                                                 guint property_id,
                                                 const GValue * value,
                                                 GParamSpec * pspec);
static void wixl_wix_remove_folder_real_accept (WixlWixNode* base,
                                         WixlWixNodeVisitor* visitor,
                                         GError** error);
static void wixl_wix_remove_folder_finalize (GObject * obj);
static void _vala_wixl_wix_remove_folder_get_property (GObject * object,
                                                guint property_id,
                                                GValue * value,
                                                GParamSpec * pspec);
static void _vala_wixl_wix_remove_folder_set_property (GObject * object,
                                                guint property_id,
                                                const GValue * value,
                                                GParamSpec * pspec);
static void wixl_wix_feature_real_accept (WixlWixNode* base,
                                   WixlWixNodeVisitor* visitor,
                                   GError** error);
static void wixl_wix_feature_finalize (GObject * obj);
static void _vala_wixl_wix_feature_get_property (GObject * object,
                                          guint property_id,
                                          GValue * value,
                                          GParamSpec * pspec);
static void _vala_wixl_wix_feature_set_property (GObject * object,
                                          guint property_id,
                                          const GValue * value,
                                          GParamSpec * pspec);
static gchar* wixl_wix_component_ref_real_full_path (WixlWixElement* base,
                                              WixlWixResolver* r,
                                              GError** error);
static void wixl_wix_component_ref_real_accept (WixlWixNode* base,
                                         WixlWixNodeVisitor* visitor,
                                         GError** error);
static gchar* wixl_wix_component_group_ref_real_full_path (WixlWixElement* base,
                                                    WixlWixResolver* r,
                                                    GError** error);
static void wixl_wix_component_group_ref_real_accept (WixlWixNode* base,
                                               WixlWixNodeVisitor* visitor,
                                               GError** error);
static void wixl_wix_condition_real_accept (WixlWixNode* base,
                                     WixlWixNodeVisitor* visitor,
                                     GError** error);
static void wixl_wix_condition_finalize (GObject * obj);
static void _vala_wixl_wix_condition_get_property (GObject * object,
                                            guint property_id,
                                            GValue * value,
                                            GParamSpec * pspec);
static void _vala_wixl_wix_condition_set_property (GObject * object,
                                            guint property_id,
                                            const GValue * value,
                                            GParamSpec * pspec);
static void wixl_wix_mime_real_accept (WixlWixNode* base,
                                WixlWixNodeVisitor* visitor,
                                GError** error);
static void wixl_wix_mime_finalize (GObject * obj);
static void _vala_wixl_wix_mime_get_property (GObject * object,
                                       guint property_id,
                                       GValue * value,
                                       GParamSpec * pspec);
static void _vala_wixl_wix_mime_set_property (GObject * object,
                                       guint property_id,
                                       const GValue * value,
                                       GParamSpec * pspec);
static void wixl_wix_service_argument_real_accept (WixlWixNode* base,
                                            WixlWixNodeVisitor* visitor,
                                            GError** error);
static void wixl_wix_service_control_real_accept (WixlWixNode* base,
                                           WixlWixNodeVisitor* visitor,
                                           GError** error);
static void wixl_wix_service_control_finalize (GObject * obj);
static void _vala_wixl_wix_service_control_get_property (GObject * object,
                                                  guint property_id,
                                                  GValue * value,
                                                  GParamSpec * pspec);
static void _vala_wixl_wix_service_control_set_property (GObject * object,
                                                  guint property_id,
                                                  const GValue * value,
                                                  GParamSpec * pspec);
static void wixl_wix_service_dependency_real_accept (WixlWixNode* base,
                                              WixlWixNodeVisitor* visitor,
                                              GError** error);
static void wixl_wix_service_dependency_finalize (GObject * obj);
static void _vala_wixl_wix_service_dependency_get_property (GObject * object,
                                                     guint property_id,
                                                     GValue * value,
                                                     GParamSpec * pspec);
static void _vala_wixl_wix_service_dependency_set_property (GObject * object,
                                                     guint property_id,
                                                     const GValue * value,
                                                     GParamSpec * pspec);
static void wixl_wix_service_install_real_accept (WixlWixNode* base,
                                           WixlWixNodeVisitor* visitor,
                                           GError** error);
static void wixl_wix_service_install_finalize (GObject * obj);
static void _vala_wixl_wix_service_install_get_property (GObject * object,
                                                  guint property_id,
                                                  GValue * value,
                                                  GParamSpec * pspec);
static void _vala_wixl_wix_service_install_set_property (GObject * object,
                                                  guint property_id,
                                                  const GValue * value,
                                                  GParamSpec * pspec);
static void wixl_wix_verb_real_accept (WixlWixNode* base,
                                WixlWixNodeVisitor* visitor,
                                GError** error);
static void wixl_wix_verb_finalize (GObject * obj);
static void _vala_wixl_wix_verb_get_property (GObject * object,
                                       guint property_id,
                                       GValue * value,
                                       GParamSpec * pspec);
static void _vala_wixl_wix_verb_set_property (GObject * object,
                                       guint property_id,
                                       const GValue * value,
                                       GParamSpec * pspec);
static void wixl_wix_extension_real_accept (WixlWixNode* base,
                                     WixlWixNodeVisitor* visitor,
                                     GError** error);
static void wixl_wix_extension_finalize (GObject * obj);
static void _vala_wixl_wix_extension_get_property (GObject * object,
                                            guint property_id,
                                            GValue * value,
                                            GParamSpec * pspec);
static void _vala_wixl_wix_extension_set_property (GObject * object,
                                            guint property_id,
                                            const GValue * value,
                                            GParamSpec * pspec);
static void wixl_wix_prog_id_real_accept (WixlWixNode* base,
                                   WixlWixNodeVisitor* visitor,
                                   GError** error);
static void wixl_wix_prog_id_finalize (GObject * obj);
static void _vala_wixl_wix_prog_id_get_property (GObject * object,
                                          guint property_id,
                                          GValue * value,
                                          GParamSpec * pspec);
static void _vala_wixl_wix_prog_id_set_property (GObject * object,
                                          guint property_id,
                                          const GValue * value,
                                          GParamSpec * pspec);
static void wixl_wix_action_real_load (WixlWixElement* base,
                                xmlNode* node,
                                GError** error);
static void wixl_wix_action_real_accept (WixlWixNode* base,
                                  WixlWixNodeVisitor* visitor,
                                  GError** error);
static void wixl_wix_action_finalize (GObject * obj);
static void _vala_wixl_wix_action_get_property (GObject * object,
                                         guint property_id,
                                         GValue * value,
                                         GParamSpec * pspec);
static void _vala_wixl_wix_action_set_property (GObject * object,
                                         guint property_id,
                                         const GValue * value,
                                         GParamSpec * pspec);
static void wixl_wix_sequence_real_accept (WixlWixNode* base,
                                    WixlWixNodeVisitor* visitor,
                                    GError** error);
static void wixl_wix_upgrade_real_accept (WixlWixNode* base,
                                   WixlWixNodeVisitor* visitor,
                                   GError** error);
static void wixl_wix_upgrade_version_real_accept (WixlWixNode* base,
                                           WixlWixNodeVisitor* visitor,
                                           GError** error);
static void wixl_wix_upgrade_version_finalize (GObject * obj);
static void _vala_wixl_wix_upgrade_version_get_property (GObject * object,
                                                  guint property_id,
                                                  GValue * value,
                                                  GParamSpec * pspec);
static void _vala_wixl_wix_upgrade_version_set_property (GObject * object,
                                                  guint property_id,
                                                  const GValue * value,
                                                  GParamSpec * pspec);
static void wixl_wix_custom_action_real_accept (WixlWixNode* base,
                                         WixlWixNodeVisitor* visitor,
                                         GError** error);
static void wixl_wix_custom_action_finalize (GObject * obj);
static void _vala_wixl_wix_custom_action_get_property (GObject * object,
                                                guint property_id,
                                                GValue * value,
                                                GParamSpec * pspec);
static void _vala_wixl_wix_custom_action_set_property (GObject * object,
                                                guint property_id,
                                                const GValue * value,
                                                GParamSpec * pspec);
static void wixl_wix_binary_real_accept (WixlWixNode* base,
                                  WixlWixNodeVisitor* visitor,
                                  GError** error);
static void wixl_wix_binary_finalize (GObject * obj);
static void _vala_wixl_wix_binary_get_property (GObject * object,
                                         guint property_id,
                                         GValue * value,
                                         GParamSpec * pspec);
static void _vala_wixl_wix_binary_set_property (GObject * object,
                                         guint property_id,
                                         const GValue * value,
                                         GParamSpec * pspec);
static void wixl_wix_major_upgrade_real_accept (WixlWixNode* base,
                                         WixlWixNodeVisitor* visitor,
                                         GError** error);
static void wixl_wix_major_upgrade_finalize (GObject * obj);
static void _vala_wixl_wix_major_upgrade_get_property (GObject * object,
                                                guint property_id,
                                                GValue * value,
                                                GParamSpec * pspec);
static void _vala_wixl_wix_major_upgrade_set_property (GObject * object,
                                                guint property_id,
                                                const GValue * value,
                                                GParamSpec * pspec);
static void wixl_wix_media_template_real_accept (WixlWixNode* base,
                                          WixlWixNodeVisitor* visitor,
                                          GError** error);
static void wixl_wix_media_template_finalize (GObject * obj);
static void _vala_wixl_wix_media_template_get_property (GObject * object,
                                                 guint property_id,
                                                 GValue * value,
                                                 GParamSpec * pspec);
static void _vala_wixl_wix_media_template_set_property (GObject * object,
                                                 guint property_id,
                                                 const GValue * value,
                                                 GParamSpec * pspec);
static void wixl_wix_product_real_accept (WixlWixNode* base,
                                   WixlWixNodeVisitor* visitor,
                                   GError** error);
static void wixl_wix_product_finalize (GObject * obj);
static void _vala_wixl_wix_product_get_property (GObject * object,
                                          guint property_id,
                                          GValue * value,
                                          GParamSpec * pspec);
static void _vala_wixl_wix_product_set_property (GObject * object,
                                          guint property_id,
                                          const GValue * value,
                                          GParamSpec * pspec);
static void wixl_wix_media_real_accept (WixlWixNode* base,
                                 WixlWixNodeVisitor* visitor,
                                 GError** error);
static void wixl_wix_media_finalize (GObject * obj);
static void _vala_wixl_wix_media_get_property (GObject * object,
                                        guint property_id,
                                        GValue * value,
                                        GParamSpec * pspec);
static void _vala_wixl_wix_media_set_property (GObject * object,
                                        guint property_id,
                                        const GValue * value,
                                        GParamSpec * pspec);
static void wixl_wix_registry_key_finalize (GObject * obj);
static void _vala_wixl_wix_registry_key_get_property (GObject * object,
                                               guint property_id,
                                               GValue * value,
                                               GParamSpec * pspec);
static void _vala_wixl_wix_registry_key_set_property (GObject * object,
                                               guint property_id,
                                               const GValue * value,
                                               GParamSpec * pspec);
static void wixl_wix_component_real_accept (WixlWixNode* base,
                                     WixlWixNodeVisitor* visitor,
                                     GError** error);
static gchar* wixl_wix_component_real_full_path (WixlWixElement* base,
                                          WixlWixResolver* r,
                                          GError** error);
static void wixl_wix_component_finalize (GObject * obj);
static void _vala_wixl_wix_component_get_property (GObject * object,
                                            guint property_id,
                                            GValue * value,
                                            GParamSpec * pspec);
static void _vala_wixl_wix_component_set_property (GObject * object,
                                            guint property_id,
                                            const GValue * value,
                                            GParamSpec * pspec);
static void wixl_wix_directory_real_accept (WixlWixNode* base,
                                     WixlWixNodeVisitor* visitor,
                                     GError** error);
static gchar* wixl_wix_directory_real_full_path (WixlWixElement* base,
                                          WixlWixResolver* r,
                                          GError** error);
static void wixl_wix_directory_finalize (GObject * obj);
static void _vala_wixl_wix_directory_get_property (GObject * object,
                                            guint property_id,
                                            GValue * value,
                                            GParamSpec * pspec);
static void _vala_wixl_wix_directory_set_property (GObject * object,
                                            guint property_id,
                                            const GValue * value,
                                            GParamSpec * pspec);
static gchar* wixl_wix_element_ref_real_full_path (WixlWixElement* base,
                                            WixlWixResolver* r,
                                            GError** error);
static void wixl_wix_element_ref_finalize (GObject * obj);
static void _vala_wixl_wix_element_ref_get_property (GObject * object,
                                              guint property_id,
                                              GValue * value,
                                              GParamSpec * pspec);
static void _vala_wixl_wix_element_ref_set_property (GObject * object,
                                              guint property_id,
                                              const GValue * value,
                                              GParamSpec * pspec);
static gchar* wixl_wix_directory_ref_real_full_path (WixlWixElement* base,
                                              WixlWixResolver* r,
                                              GError** error);
GType wixl_wix_root_get_type (void) G_GNUC_CONST;
WixlWixRoot* wixl_wix_root_new (void);
WixlWixRoot* wixl_wix_root_construct (GType object_type);
static void _vala_array_destroy (gpointer array,
                          gint array_length,
                          GDestroyNotify destroy_func);
static void _vala_array_free (gpointer array,
                       gint array_length,
                       GDestroyNotify destroy_func);

gpointer
wixl_wix_resolver_find_element (WixlWixResolver* self,
                                GType g_type,
                                GBoxedCopyFunc g_dup_func,
                                GDestroyNotify g_destroy_func,
                                const gchar* Id)
{
	g_return_val_if_fail (self != NULL, NULL);
	return WIXL_WIX_RESOLVER_GET_INTERFACE (self)->find_element (self, g_type, g_dup_func, g_destroy_func, Id);
}

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

gpointer
wixl_wix_resolver_resolve (WixlWixResolver* self,
                           GType g_type,
                           GBoxedCopyFunc g_dup_func,
                           GDestroyNotify g_destroy_func,
                           WixlWixElement* element,
                           GError** error)
{
	gpointer resolved = NULL;
	gconstpointer _tmp12_;
	GError* _inner_error0_ = NULL;
	gpointer result = NULL;
	g_return_val_if_fail (element != NULL, NULL);
	resolved = NULL;
	if (g_type_is_a (G_TYPE_FROM_INSTANCE ((GObject*) element), g_type)) {
		gpointer _tmp0_;
		_tmp0_ = ((element != NULL) && (g_dup_func != NULL)) ? g_dup_func ((gpointer) element) : ((gpointer) element);
		_g_destroy_func0 (resolved);
		resolved = _tmp0_;
	} else {
		if (WIXL_IS_WIX_ELEMENT_REF (element)) {
			WixlWixElementRef* ref = NULL;
			WixlWixElementRef* _tmp1_;
			WixlWixElementRef* _tmp2_;
			WixlWixElementRef* _tmp9_;
			gconstpointer _tmp10_;
			gpointer _tmp11_;
			_tmp1_ = _g_object_ref0 (WIXL_IS_WIX_ELEMENT_REF (element) ? ((WixlWixElementRef*) element) : NULL);
			ref = _tmp1_;
			_tmp2_ = ref;
			if (!g_type_is_a (WIXL_WIX_ELEMENT_REF_CLASS (G_OBJECT_GET_CLASS (_tmp2_))->ref_type, g_type)) {
				_g_destroy_func0 (resolved);
				resolved = NULL;
			} else {
				WixlWixElementRef* _tmp3_;
				gconstpointer _tmp4_;
				_tmp3_ = ref;
				_tmp4_ = _tmp3_->resolved;
				if (_tmp4_ == NULL) {
					WixlWixElementRef* _tmp5_;
					const gchar* _tmp6_;
					const gchar* _tmp7_;
					gpointer _tmp8_;
					_tmp5_ = ref;
					_tmp6_ = wixl_wix_element_get_Id (element);
					_tmp7_ = _tmp6_;
					_tmp8_ = wixl_wix_resolver_find_element (self, g_type, (GBoxedCopyFunc) g_dup_func, (GDestroyNotify) g_destroy_func, _tmp7_);
					_g_destroy_func0 (_tmp5_->resolved);
					_tmp5_->resolved = _tmp8_;
				}
			}
			_tmp9_ = ref;
			_tmp10_ = _tmp9_->resolved;
			_tmp11_ = ((_tmp10_ != NULL) && (g_dup_func != NULL)) ? g_dup_func ((gpointer) _tmp10_) : ((gpointer) _tmp10_);
			_g_destroy_func0 (resolved);
			resolved = _tmp11_;
			_g_object_unref0 (ref);
		}
	}
	_tmp12_ = resolved;
	if (_tmp12_ == NULL) {
		const gchar* _tmp13_;
		const gchar* _tmp14_;
		GError* _tmp15_;
		_tmp13_ = wixl_wix_element_get_Id (element);
		_tmp14_ = _tmp13_;
		_tmp15_ = g_error_new (WIXL_ERROR, WIXL_ERROR_FAILED, "couldn't resolve %s", _tmp14_);
		_inner_error0_ = _tmp15_;
		g_propagate_error (error, _inner_error0_);
		_g_destroy_func0 (resolved);
		return NULL;
	}
	result = resolved;
	return result;
}

static void
wixl_wix_resolver_default_init (WixlWixResolverIface * iface,
                                gpointer iface_data)
{
}

GType
wixl_wix_resolver_get_type (void)
{
	static volatile gsize wixl_wix_resolver_type_id__volatile = 0;
	if (g_once_init_enter (&wixl_wix_resolver_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (WixlWixResolverIface), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) wixl_wix_resolver_default_init, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
		GType wixl_wix_resolver_type_id;
		wixl_wix_resolver_type_id = g_type_register_static (G_TYPE_INTERFACE, "WixlWixResolver", &g_define_type_info, 0);
		g_once_init_leave (&wixl_wix_resolver_type_id__volatile, wixl_wix_resolver_type_id);
	}
	return wixl_wix_resolver_type_id__volatile;
}

GType
wixl_visit_state_get_type (void)
{
	static volatile gsize wixl_visit_state_type_id__volatile = 0;
	if (g_once_init_enter (&wixl_visit_state_type_id__volatile)) {
		static const GEnumValue values[] = {{WIXL_VISIT_STATE_ENTER, "WIXL_VISIT_STATE_ENTER", "enter"}, {WIXL_VISIT_STATE_INFIX, "WIXL_VISIT_STATE_INFIX", "infix"}, {WIXL_VISIT_STATE_LEAVE, "WIXL_VISIT_STATE_LEAVE", "leave"}, {0, NULL, NULL}};
		GType wixl_visit_state_type_id;
		wixl_visit_state_type_id = g_enum_register_static ("WixlVisitState", values);
		g_once_init_leave (&wixl_visit_state_type_id__volatile, wixl_visit_state_type_id);
	}
	return wixl_visit_state_type_id__volatile;
}

static void
wixl_wix_node_visitor_real_visit_product (WixlWixNodeVisitor* self,
                                          WixlWixProduct* product,
                                          GError** error)
{
	g_critical ("Type `%s' does not implement abstract method `wixl_wix_node_visitor_visit_product'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
	return;
}

void
wixl_wix_node_visitor_visit_product (WixlWixNodeVisitor* self,
                                     WixlWixProduct* product,
                                     GError** error)
{
	g_return_if_fail (self != NULL);
	WIXL_WIX_NODE_VISITOR_GET_CLASS (self)->visit_product (self, product, error);
}

static void
wixl_wix_node_visitor_real_visit_icon (WixlWixNodeVisitor* self,
                                       WixlWixIcon* icon,
                                       GError** error)
{
	g_critical ("Type `%s' does not implement abstract method `wixl_wix_node_visitor_visit_icon'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
	return;
}

void
wixl_wix_node_visitor_visit_icon (WixlWixNodeVisitor* self,
                                  WixlWixIcon* icon,
                                  GError** error)
{
	g_return_if_fail (self != NULL);
	WIXL_WIX_NODE_VISITOR_GET_CLASS (self)->visit_icon (self, icon, error);
}

static void
wixl_wix_node_visitor_real_visit_package (WixlWixNodeVisitor* self,
                                          WixlWixPackage* package,
                                          GError** error)
{
	g_critical ("Type `%s' does not implement abstract method `wixl_wix_node_visitor_visit_package'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
	return;
}

void
wixl_wix_node_visitor_visit_package (WixlWixNodeVisitor* self,
                                     WixlWixPackage* package,
                                     GError** error)
{
	g_return_if_fail (self != NULL);
	WIXL_WIX_NODE_VISITOR_GET_CLASS (self)->visit_package (self, package, error);
}

static void
wixl_wix_node_visitor_real_visit_property (WixlWixNodeVisitor* self,
                                           WixlWixProperty* prop,
                                           GError** error)
{
	g_critical ("Type `%s' does not implement abstract method `wixl_wix_node_visitor_visit_property'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
	return;
}

void
wixl_wix_node_visitor_visit_property (WixlWixNodeVisitor* self,
                                      WixlWixProperty* prop,
                                      GError** error)
{
	g_return_if_fail (self != NULL);
	WIXL_WIX_NODE_VISITOR_GET_CLASS (self)->visit_property (self, prop, error);
}

static void
wixl_wix_node_visitor_real_visit_media (WixlWixNodeVisitor* self,
                                        WixlWixMedia* media,
                                        GError** error)
{
	g_critical ("Type `%s' does not implement abstract method `wixl_wix_node_visitor_visit_media'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
	return;
}

void
wixl_wix_node_visitor_visit_media (WixlWixNodeVisitor* self,
                                   WixlWixMedia* media,
                                   GError** error)
{
	g_return_if_fail (self != NULL);
	WIXL_WIX_NODE_VISITOR_GET_CLASS (self)->visit_media (self, media, error);
}

static void
wixl_wix_node_visitor_real_visit_directory (WixlWixNodeVisitor* self,
                                            WixlWixDirectory* dir,
                                            GError** error)
{
	g_critical ("Type `%s' does not implement abstract method `wixl_wix_node_visitor_visit_directory'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
	return;
}

void
wixl_wix_node_visitor_visit_directory (WixlWixNodeVisitor* self,
                                       WixlWixDirectory* dir,
                                       GError** error)
{
	g_return_if_fail (self != NULL);
	WIXL_WIX_NODE_VISITOR_GET_CLASS (self)->visit_directory (self, dir, error);
}

static void
wixl_wix_node_visitor_real_visit_component (WixlWixNodeVisitor* self,
                                            WixlWixComponent* comp,
                                            WixlVisitState state,
                                            GError** error)
{
	g_critical ("Type `%s' does not implement abstract method `wixl_wix_node_visitor_visit_component'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
	return;
}

void
wixl_wix_node_visitor_visit_component (WixlWixNodeVisitor* self,
                                       WixlWixComponent* comp,
                                       WixlVisitState state,
                                       GError** error)
{
	g_return_if_fail (self != NULL);
	WIXL_WIX_NODE_VISITOR_GET_CLASS (self)->visit_component (self, comp, state, error);
}

static void
wixl_wix_node_visitor_real_visit_feature (WixlWixNodeVisitor* self,
                                          WixlWixFeature* feature,
                                          WixlVisitState state,
                                          GError** error)
{
	g_critical ("Type `%s' does not implement abstract method `wixl_wix_node_visitor_visit_feature'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
	return;
}

void
wixl_wix_node_visitor_visit_feature (WixlWixNodeVisitor* self,
                                     WixlWixFeature* feature,
                                     WixlVisitState state,
                                     GError** error)
{
	g_return_if_fail (self != NULL);
	WIXL_WIX_NODE_VISITOR_GET_CLASS (self)->visit_feature (self, feature, state, error);
}

static void
wixl_wix_node_visitor_real_visit_component_ref (WixlWixNodeVisitor* self,
                                                WixlWixComponentRef* ref,
                                                GError** error)
{
	g_critical ("Type `%s' does not implement abstract method `wixl_wix_node_visitor_visit_component_ref'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
	return;
}

void
wixl_wix_node_visitor_visit_component_ref (WixlWixNodeVisitor* self,
                                           WixlWixComponentRef* ref,
                                           GError** error)
{
	g_return_if_fail (self != NULL);
	WIXL_WIX_NODE_VISITOR_GET_CLASS (self)->visit_component_ref (self, ref, error);
}

static void
wixl_wix_node_visitor_real_visit_remove_folder (WixlWixNodeVisitor* self,
                                                WixlWixRemoveFolder* rm,
                                                GError** error)
{
	g_critical ("Type `%s' does not implement abstract method `wixl_wix_node_visitor_visit_remove_folder'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
	return;
}

void
wixl_wix_node_visitor_visit_remove_folder (WixlWixNodeVisitor* self,
                                           WixlWixRemoveFolder* rm,
                                           GError** error)
{
	g_return_if_fail (self != NULL);
	WIXL_WIX_NODE_VISITOR_GET_CLASS (self)->visit_remove_folder (self, rm, error);
}

static void
wixl_wix_node_visitor_real_visit_registry_value (WixlWixNodeVisitor* self,
                                                 WixlWixRegistryValue* reg,
                                                 GError** error)
{
	g_critical ("Type `%s' does not implement abstract method `wixl_wix_node_visitor_visit_registry_value'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
	return;
}

void
wixl_wix_node_visitor_visit_registry_value (WixlWixNodeVisitor* self,
                                            WixlWixRegistryValue* reg,
                                            GError** error)
{
	g_return_if_fail (self != NULL);
	WIXL_WIX_NODE_VISITOR_GET_CLASS (self)->visit_registry_value (self, reg, error);
}

static void
wixl_wix_node_visitor_real_visit_file (WixlWixNodeVisitor* self,
                                       WixlWixFile* reg,
                                       GError** error)
{
	g_critical ("Type `%s' does not implement abstract method `wixl_wix_node_visitor_visit_file'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
	return;
}

void
wixl_wix_node_visitor_visit_file (WixlWixNodeVisitor* self,
                                  WixlWixFile* reg,
                                  GError** error)
{
	g_return_if_fail (self != NULL);
	WIXL_WIX_NODE_VISITOR_GET_CLASS (self)->visit_file (self, reg, error);
}

static void
wixl_wix_node_visitor_real_visit_shortcut (WixlWixNodeVisitor* self,
                                           WixlWixShortcut* shortcut,
                                           GError** error)
{
	g_critical ("Type `%s' does not implement abstract method `wixl_wix_node_visitor_visit_shortcut'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
	return;
}

void
wixl_wix_node_visitor_visit_shortcut (WixlWixNodeVisitor* self,
                                      WixlWixShortcut* shortcut,
                                      GError** error)
{
	g_return_if_fail (self != NULL);
	WIXL_WIX_NODE_VISITOR_GET_CLASS (self)->visit_shortcut (self, shortcut, error);
}

static void
wixl_wix_node_visitor_real_visit_create_folder (WixlWixNodeVisitor* self,
                                                WixlWixCreateFolder* folder,
                                                GError** error)
{
	g_critical ("Type `%s' does not implement abstract method `wixl_wix_node_visitor_visit_create_folder'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
	return;
}

void
wixl_wix_node_visitor_visit_create_folder (WixlWixNodeVisitor* self,
                                           WixlWixCreateFolder* folder,
                                           GError** error)
{
	g_return_if_fail (self != NULL);
	WIXL_WIX_NODE_VISITOR_GET_CLASS (self)->visit_create_folder (self, folder, error);
}

static void
wixl_wix_node_visitor_real_visit_fragment (WixlWixNodeVisitor* self,
                                           WixlWixFragment* fragment,
                                           GError** error)
{
	g_critical ("Type `%s' does not implement abstract method `wixl_wix_node_visitor_visit_fragment'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
	return;
}

void
wixl_wix_node_visitor_visit_fragment (WixlWixNodeVisitor* self,
                                      WixlWixFragment* fragment,
                                      GError** error)
{
	g_return_if_fail (self != NULL);
	WIXL_WIX_NODE_VISITOR_GET_CLASS (self)->visit_fragment (self, fragment, error);
}

static void
wixl_wix_node_visitor_real_visit_sequence (WixlWixNodeVisitor* self,
                                           WixlWixSequence* sequence,
                                           GError** error)
{
	g_critical ("Type `%s' does not implement abstract method `wixl_wix_node_visitor_visit_sequence'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
	return;
}

void
wixl_wix_node_visitor_visit_sequence (WixlWixNodeVisitor* self,
                                      WixlWixSequence* sequence,
                                      GError** error)
{
	g_return_if_fail (self != NULL);
	WIXL_WIX_NODE_VISITOR_GET_CLASS (self)->visit_sequence (self, sequence, error);
}

static void
wixl_wix_node_visitor_real_visit_condition (WixlWixNodeVisitor* self,
                                            WixlWixCondition* condition,
                                            GError** error)
{
	g_critical ("Type `%s' does not implement abstract method `wixl_wix_node_visitor_visit_condition'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
	return;
}

void
wixl_wix_node_visitor_visit_condition (WixlWixNodeVisitor* self,
                                       WixlWixCondition* condition,
                                       GError** error)
{
	g_return_if_fail (self != NULL);
	WIXL_WIX_NODE_VISITOR_GET_CLASS (self)->visit_condition (self, condition, error);
}

static void
wixl_wix_node_visitor_real_visit_upgrade (WixlWixNodeVisitor* self,
                                          WixlWixUpgrade* upgrade,
                                          GError** error)
{
	g_critical ("Type `%s' does not implement abstract method `wixl_wix_node_visitor_visit_upgrade'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
	return;
}

void
wixl_wix_node_visitor_visit_upgrade (WixlWixNodeVisitor* self,
                                     WixlWixUpgrade* upgrade,
                                     GError** error)
{
	g_return_if_fail (self != NULL);
	WIXL_WIX_NODE_VISITOR_GET_CLASS (self)->visit_upgrade (self, upgrade, error);
}

static void
wixl_wix_node_visitor_real_visit_upgrade_version (WixlWixNodeVisitor* self,
                                                  WixlWixUpgradeVersion* version,
                                                  GError** error)
{
	g_critical ("Type `%s' does not implement abstract method `wixl_wix_node_visitor_visit_upgrade_version'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
	return;
}

void
wixl_wix_node_visitor_visit_upgrade_version (WixlWixNodeVisitor* self,
                                             WixlWixUpgradeVersion* version,
                                             GError** error)
{
	g_return_if_fail (self != NULL);
	WIXL_WIX_NODE_VISITOR_GET_CLASS (self)->visit_upgrade_version (self, version, error);
}

static void
wixl_wix_node_visitor_real_visit_action (WixlWixNodeVisitor* self,
                                         WixlWixAction* action,
                                         GError** error)
{
	g_critical ("Type `%s' does not implement abstract method `wixl_wix_node_visitor_visit_action'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
	return;
}

void
wixl_wix_node_visitor_visit_action (WixlWixNodeVisitor* self,
                                    WixlWixAction* action,
                                    GError** error)
{
	g_return_if_fail (self != NULL);
	WIXL_WIX_NODE_VISITOR_GET_CLASS (self)->visit_action (self, action, error);
}

static void
wixl_wix_node_visitor_real_visit_text (WixlWixNodeVisitor* self,
                                       WixlWixText* text,
                                       GError** error)
{
	g_critical ("Type `%s' does not implement abstract method `wixl_wix_node_visitor_visit_text'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
	return;
}

void
wixl_wix_node_visitor_visit_text (WixlWixNodeVisitor* self,
                                  WixlWixText* text,
                                  GError** error)
{
	g_return_if_fail (self != NULL);
	WIXL_WIX_NODE_VISITOR_GET_CLASS (self)->visit_text (self, text, error);
}

static void
wixl_wix_node_visitor_real_visit_component_group_ref (WixlWixNodeVisitor* self,
                                                      WixlWixComponentGroupRef* ref,
                                                      GError** error)
{
	g_critical ("Type `%s' does not implement abstract method `wixl_wix_node_visitor_visit_component_group_ref'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
	return;
}

void
wixl_wix_node_visitor_visit_component_group_ref (WixlWixNodeVisitor* self,
                                                 WixlWixComponentGroupRef* ref,
                                                 GError** error)
{
	g_return_if_fail (self != NULL);
	WIXL_WIX_NODE_VISITOR_GET_CLASS (self)->visit_component_group_ref (self, ref, error);
}

static void
wixl_wix_node_visitor_real_visit_progid (WixlWixNodeVisitor* self,
                                         WixlWixProgId* progid,
                                         GError** error)
{
	g_critical ("Type `%s' does not implement abstract method `wixl_wix_node_visitor_visit_progid'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
	return;
}

void
wixl_wix_node_visitor_visit_progid (WixlWixNodeVisitor* self,
                                    WixlWixProgId* progid,
                                    GError** error)
{
	g_return_if_fail (self != NULL);
	WIXL_WIX_NODE_VISITOR_GET_CLASS (self)->visit_progid (self, progid, error);
}

static void
wixl_wix_node_visitor_real_visit_extension (WixlWixNodeVisitor* self,
                                            WixlWixExtension* extension,
                                            GError** error)
{
	g_critical ("Type `%s' does not implement abstract method `wixl_wix_node_visitor_visit_extension'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
	return;
}

void
wixl_wix_node_visitor_visit_extension (WixlWixNodeVisitor* self,
                                       WixlWixExtension* extension,
                                       GError** error)
{
	g_return_if_fail (self != NULL);
	WIXL_WIX_NODE_VISITOR_GET_CLASS (self)->visit_extension (self, extension, error);
}

static void
wixl_wix_node_visitor_real_visit_verb (WixlWixNodeVisitor* self,
                                       WixlWixVerb* verb,
                                       GError** error)
{
	g_critical ("Type `%s' does not implement abstract method `wixl_wix_node_visitor_visit_verb'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
	return;
}

void
wixl_wix_node_visitor_visit_verb (WixlWixNodeVisitor* self,
                                  WixlWixVerb* verb,
                                  GError** error)
{
	g_return_if_fail (self != NULL);
	WIXL_WIX_NODE_VISITOR_GET_CLASS (self)->visit_verb (self, verb, error);
}

static void
wixl_wix_node_visitor_real_visit_mime (WixlWixNodeVisitor* self,
                                       WixlWixMIME* mime,
                                       GError** error)
{
	g_critical ("Type `%s' does not implement abstract method `wixl_wix_node_visitor_visit_mime'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
	return;
}

void
wixl_wix_node_visitor_visit_mime (WixlWixNodeVisitor* self,
                                  WixlWixMIME* mime,
                                  GError** error)
{
	g_return_if_fail (self != NULL);
	WIXL_WIX_NODE_VISITOR_GET_CLASS (self)->visit_mime (self, mime, error);
}

static void
wixl_wix_node_visitor_real_visit_service_argument (WixlWixNodeVisitor* self,
                                                   WixlWixServiceArgument* service_argument,
                                                   GError** error)
{
	g_critical ("Type `%s' does not implement abstract method `wixl_wix_node_visitor_visit_service_argument'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
	return;
}

void
wixl_wix_node_visitor_visit_service_argument (WixlWixNodeVisitor* self,
                                              WixlWixServiceArgument* service_argument,
                                              GError** error)
{
	g_return_if_fail (self != NULL);
	WIXL_WIX_NODE_VISITOR_GET_CLASS (self)->visit_service_argument (self, service_argument, error);
}

static void
wixl_wix_node_visitor_real_visit_service_control (WixlWixNodeVisitor* self,
                                                  WixlWixServiceControl* service_control,
                                                  WixlVisitState state,
                                                  GError** error)
{
	g_critical ("Type `%s' does not implement abstract method `wixl_wix_node_visitor_visit_service_control'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
	return;
}

void
wixl_wix_node_visitor_visit_service_control (WixlWixNodeVisitor* self,
                                             WixlWixServiceControl* service_control,
                                             WixlVisitState state,
                                             GError** error)
{
	g_return_if_fail (self != NULL);
	WIXL_WIX_NODE_VISITOR_GET_CLASS (self)->visit_service_control (self, service_control, state, error);
}

static void
wixl_wix_node_visitor_real_visit_service_dependency (WixlWixNodeVisitor* self,
                                                     WixlWixServiceDependency* service_dependency,
                                                     GError** error)
{
	g_critical ("Type `%s' does not implement abstract method `wixl_wix_node_visitor_visit_service_dependency'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
	return;
}

void
wixl_wix_node_visitor_visit_service_dependency (WixlWixNodeVisitor* self,
                                                WixlWixServiceDependency* service_dependency,
                                                GError** error)
{
	g_return_if_fail (self != NULL);
	WIXL_WIX_NODE_VISITOR_GET_CLASS (self)->visit_service_dependency (self, service_dependency, error);
}

static void
wixl_wix_node_visitor_real_visit_service_install (WixlWixNodeVisitor* self,
                                                  WixlWixServiceInstall* service_install,
                                                  WixlVisitState state,
                                                  GError** error)
{
	g_critical ("Type `%s' does not implement abstract method `wixl_wix_node_visitor_visit_service_install'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
	return;
}

void
wixl_wix_node_visitor_visit_service_install (WixlWixNodeVisitor* self,
                                             WixlWixServiceInstall* service_install,
                                             WixlVisitState state,
                                             GError** error)
{
	g_return_if_fail (self != NULL);
	WIXL_WIX_NODE_VISITOR_GET_CLASS (self)->visit_service_install (self, service_install, state, error);
}

static void
wixl_wix_node_visitor_real_visit_registry_search (WixlWixNodeVisitor* self,
                                                  WixlWixRegistrySearch* search,
                                                  GError** error)
{
	g_critical ("Type `%s' does not implement abstract method `wixl_wix_node_visitor_visit_registry_search'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
	return;
}

void
wixl_wix_node_visitor_visit_registry_search (WixlWixNodeVisitor* self,
                                             WixlWixRegistrySearch* search,
                                             GError** error)
{
	g_return_if_fail (self != NULL);
	WIXL_WIX_NODE_VISITOR_GET_CLASS (self)->visit_registry_search (self, search, error);
}

static void
wixl_wix_node_visitor_real_visit_custom_action (WixlWixNodeVisitor* self,
                                                WixlWixCustomAction* action,
                                                GError** error)
{
	g_critical ("Type `%s' does not implement abstract method `wixl_wix_node_visitor_visit_custom_action'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
	return;
}

void
wixl_wix_node_visitor_visit_custom_action (WixlWixNodeVisitor* self,
                                           WixlWixCustomAction* action,
                                           GError** error)
{
	g_return_if_fail (self != NULL);
	WIXL_WIX_NODE_VISITOR_GET_CLASS (self)->visit_custom_action (self, action, error);
}

static void
wixl_wix_node_visitor_real_visit_binary (WixlWixNodeVisitor* self,
                                         WixlWixBinary* binary,
                                         GError** error)
{
	g_critical ("Type `%s' does not implement abstract method `wixl_wix_node_visitor_visit_binary'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
	return;
}

void
wixl_wix_node_visitor_visit_binary (WixlWixNodeVisitor* self,
                                    WixlWixBinary* binary,
                                    GError** error)
{
	g_return_if_fail (self != NULL);
	WIXL_WIX_NODE_VISITOR_GET_CLASS (self)->visit_binary (self, binary, error);
}

static void
wixl_wix_node_visitor_real_visit_major_upgrade (WixlWixNodeVisitor* self,
                                                WixlWixMajorUpgrade* major,
                                                GError** error)
{
	g_critical ("Type `%s' does not implement abstract method `wixl_wix_node_visitor_visit_major_upgrade'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
	return;
}

void
wixl_wix_node_visitor_visit_major_upgrade (WixlWixNodeVisitor* self,
                                           WixlWixMajorUpgrade* major,
                                           GError** error)
{
	g_return_if_fail (self != NULL);
	WIXL_WIX_NODE_VISITOR_GET_CLASS (self)->visit_major_upgrade (self, major, error);
}

static void
wixl_wix_node_visitor_real_visit_media_template (WixlWixNodeVisitor* self,
                                                 WixlWixMediaTemplate* media,
                                                 GError** error)
{
	g_critical ("Type `%s' does not implement abstract method `wixl_wix_node_visitor_visit_media_template'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
	return;
}

void
wixl_wix_node_visitor_visit_media_template (WixlWixNodeVisitor* self,
                                            WixlWixMediaTemplate* media,
                                            GError** error)
{
	g_return_if_fail (self != NULL);
	WIXL_WIX_NODE_VISITOR_GET_CLASS (self)->visit_media_template (self, media, error);
}

WixlWixNodeVisitor*
wixl_wix_node_visitor_construct (GType object_type)
{
	WixlWixNodeVisitor * self = NULL;
	self = (WixlWixNodeVisitor*) g_object_new (object_type, NULL);
	return self;
}

static void
wixl_wix_node_visitor_class_init (WixlWixNodeVisitorClass * klass,
                                  gpointer klass_data)
{
	wixl_wix_node_visitor_parent_class = g_type_class_peek_parent (klass);
	((WixlWixNodeVisitorClass *) klass)->visit_product = (void (*) (WixlWixNodeVisitor*, WixlWixProduct*, GError**)) wixl_wix_node_visitor_real_visit_product;
	((WixlWixNodeVisitorClass *) klass)->visit_icon = (void (*) (WixlWixNodeVisitor*, WixlWixIcon*, GError**)) wixl_wix_node_visitor_real_visit_icon;
	((WixlWixNodeVisitorClass *) klass)->visit_package = (void (*) (WixlWixNodeVisitor*, WixlWixPackage*, GError**)) wixl_wix_node_visitor_real_visit_package;
	((WixlWixNodeVisitorClass *) klass)->visit_property = (void (*) (WixlWixNodeVisitor*, WixlWixProperty*, GError**)) wixl_wix_node_visitor_real_visit_property;
	((WixlWixNodeVisitorClass *) klass)->visit_media = (void (*) (WixlWixNodeVisitor*, WixlWixMedia*, GError**)) wixl_wix_node_visitor_real_visit_media;
	((WixlWixNodeVisitorClass *) klass)->visit_directory = (void (*) (WixlWixNodeVisitor*, WixlWixDirectory*, GError**)) wixl_wix_node_visitor_real_visit_directory;
	((WixlWixNodeVisitorClass *) klass)->visit_component = (void (*) (WixlWixNodeVisitor*, WixlWixComponent*, WixlVisitState, GError**)) wixl_wix_node_visitor_real_visit_component;
	((WixlWixNodeVisitorClass *) klass)->visit_feature = (void (*) (WixlWixNodeVisitor*, WixlWixFeature*, WixlVisitState, GError**)) wixl_wix_node_visitor_real_visit_feature;
	((WixlWixNodeVisitorClass *) klass)->visit_component_ref = (void (*) (WixlWixNodeVisitor*, WixlWixComponentRef*, GError**)) wixl_wix_node_visitor_real_visit_component_ref;
	((WixlWixNodeVisitorClass *) klass)->visit_remove_folder = (void (*) (WixlWixNodeVisitor*, WixlWixRemoveFolder*, GError**)) wixl_wix_node_visitor_real_visit_remove_folder;
	((WixlWixNodeVisitorClass *) klass)->visit_registry_value = (void (*) (WixlWixNodeVisitor*, WixlWixRegistryValue*, GError**)) wixl_wix_node_visitor_real_visit_registry_value;
	((WixlWixNodeVisitorClass *) klass)->visit_file = (void (*) (WixlWixNodeVisitor*, WixlWixFile*, GError**)) wixl_wix_node_visitor_real_visit_file;
	((WixlWixNodeVisitorClass *) klass)->visit_shortcut = (void (*) (WixlWixNodeVisitor*, WixlWixShortcut*, GError**)) wixl_wix_node_visitor_real_visit_shortcut;
	((WixlWixNodeVisitorClass *) klass)->visit_create_folder = (void (*) (WixlWixNodeVisitor*, WixlWixCreateFolder*, GError**)) wixl_wix_node_visitor_real_visit_create_folder;
	((WixlWixNodeVisitorClass *) klass)->visit_fragment = (void (*) (WixlWixNodeVisitor*, WixlWixFragment*, GError**)) wixl_wix_node_visitor_real_visit_fragment;
	((WixlWixNodeVisitorClass *) klass)->visit_sequence = (void (*) (WixlWixNodeVisitor*, WixlWixSequence*, GError**)) wixl_wix_node_visitor_real_visit_sequence;
	((WixlWixNodeVisitorClass *) klass)->visit_condition = (void (*) (WixlWixNodeVisitor*, WixlWixCondition*, GError**)) wixl_wix_node_visitor_real_visit_condition;
	((WixlWixNodeVisitorClass *) klass)->visit_upgrade = (void (*) (WixlWixNodeVisitor*, WixlWixUpgrade*, GError**)) wixl_wix_node_visitor_real_visit_upgrade;
	((WixlWixNodeVisitorClass *) klass)->visit_upgrade_version = (void (*) (WixlWixNodeVisitor*, WixlWixUpgradeVersion*, GError**)) wixl_wix_node_visitor_real_visit_upgrade_version;
	((WixlWixNodeVisitorClass *) klass)->visit_action = (void (*) (WixlWixNodeVisitor*, WixlWixAction*, GError**)) wixl_wix_node_visitor_real_visit_action;
	((WixlWixNodeVisitorClass *) klass)->visit_text = (void (*) (WixlWixNodeVisitor*, WixlWixText*, GError**)) wixl_wix_node_visitor_real_visit_text;
	((WixlWixNodeVisitorClass *) klass)->visit_component_group_ref = (void (*) (WixlWixNodeVisitor*, WixlWixComponentGroupRef*, GError**)) wixl_wix_node_visitor_real_visit_component_group_ref;
	((WixlWixNodeVisitorClass *) klass)->visit_progid = (void (*) (WixlWixNodeVisitor*, WixlWixProgId*, GError**)) wixl_wix_node_visitor_real_visit_progid;
	((WixlWixNodeVisitorClass *) klass)->visit_extension = (void (*) (WixlWixNodeVisitor*, WixlWixExtension*, GError**)) wixl_wix_node_visitor_real_visit_extension;
	((WixlWixNodeVisitorClass *) klass)->visit_verb = (void (*) (WixlWixNodeVisitor*, WixlWixVerb*, GError**)) wixl_wix_node_visitor_real_visit_verb;
	((WixlWixNodeVisitorClass *) klass)->visit_mime = (void (*) (WixlWixNodeVisitor*, WixlWixMIME*, GError**)) wixl_wix_node_visitor_real_visit_mime;
	((WixlWixNodeVisitorClass *) klass)->visit_service_argument = (void (*) (WixlWixNodeVisitor*, WixlWixServiceArgument*, GError**)) wixl_wix_node_visitor_real_visit_service_argument;
	((WixlWixNodeVisitorClass *) klass)->visit_service_control = (void (*) (WixlWixNodeVisitor*, WixlWixServiceControl*, WixlVisitState, GError**)) wixl_wix_node_visitor_real_visit_service_control;
	((WixlWixNodeVisitorClass *) klass)->visit_service_dependency = (void (*) (WixlWixNodeVisitor*, WixlWixServiceDependency*, GError**)) wixl_wix_node_visitor_real_visit_service_dependency;
	((WixlWixNodeVisitorClass *) klass)->visit_service_install = (void (*) (WixlWixNodeVisitor*, WixlWixServiceInstall*, WixlVisitState, GError**)) wixl_wix_node_visitor_real_visit_service_install;
	((WixlWixNodeVisitorClass *) klass)->visit_registry_search = (void (*) (WixlWixNodeVisitor*, WixlWixRegistrySearch*, GError**)) wixl_wix_node_visitor_real_visit_registry_search;
	((WixlWixNodeVisitorClass *) klass)->visit_custom_action = (void (*) (WixlWixNodeVisitor*, WixlWixCustomAction*, GError**)) wixl_wix_node_visitor_real_visit_custom_action;
	((WixlWixNodeVisitorClass *) klass)->visit_binary = (void (*) (WixlWixNodeVisitor*, WixlWixBinary*, GError**)) wixl_wix_node_visitor_real_visit_binary;
	((WixlWixNodeVisitorClass *) klass)->visit_major_upgrade = (void (*) (WixlWixNodeVisitor*, WixlWixMajorUpgrade*, GError**)) wixl_wix_node_visitor_real_visit_major_upgrade;
	((WixlWixNodeVisitorClass *) klass)->visit_media_template = (void (*) (WixlWixNodeVisitor*, WixlWixMediaTemplate*, GError**)) wixl_wix_node_visitor_real_visit_media_template;
}

static void
wixl_wix_node_visitor_instance_init (WixlWixNodeVisitor * self,
                                     gpointer klass)
{
}

GType
wixl_wix_node_visitor_get_type (void)
{
	static volatile gsize wixl_wix_node_visitor_type_id__volatile = 0;
	if (g_once_init_enter (&wixl_wix_node_visitor_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (WixlWixNodeVisitorClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) wixl_wix_node_visitor_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (WixlWixNodeVisitor), 0, (GInstanceInitFunc) wixl_wix_node_visitor_instance_init, NULL };
		GType wixl_wix_node_visitor_type_id;
		wixl_wix_node_visitor_type_id = g_type_register_static (G_TYPE_OBJECT, "WixlWixNodeVisitor", &g_define_type_info, G_TYPE_FLAG_ABSTRACT);
		g_once_init_leave (&wixl_wix_node_visitor_type_id__volatile, wixl_wix_node_visitor_type_id);
	}
	return wixl_wix_node_visitor_type_id__volatile;
}

static gchar*
wixl_wix_node_real_to_string (WixlWixNode* self)
{
	g_critical ("Type `%s' does not implement abstract method `wixl_wix_node_to_string'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
	return NULL;
}

gchar*
wixl_wix_node_to_string (WixlWixNode* self)
{
	g_return_val_if_fail (self != NULL, NULL);
	return WIXL_WIX_NODE_GET_CLASS (self)->to_string (self);
}

void
wixl_wix_node_value_to_string (GValue* src,
                               GValue* dest)
{
	GValue _vala_dest = {0};
	WixlWixNode* e = NULL;
	GValue _tmp0_;
	WixlWixNode* _tmp1_;
	gchar* _tmp2_;
	GValue _tmp3_ = {0};
	g_return_if_fail (src != NULL);
	_tmp0_ = *src;
	_tmp1_ = wixl_wix_node_value_get_node (&_tmp0_);
	e = _tmp1_;
	_tmp2_ = wixl_wix_node_to_string (e);
	g_value_init (&_tmp3_, G_TYPE_STRING);
	g_value_take_string (&_tmp3_, _tmp2_);
	G_IS_VALUE (&_vala_dest) ? (g_value_unset (&_vala_dest), NULL) : NULL;
	_vala_dest = _tmp3_;
	_g_object_unref0 (e);
	if (dest) {
		*dest = _vala_dest;
	} else {
		G_IS_VALUE (&_vala_dest) ? (g_value_unset (&_vala_dest), NULL) : NULL;
	}
}

WixlWixNode*
wixl_wix_node_value_get_node (GValue* value)
{
	GObject* _tmp0_;
	WixlWixNode* _tmp1_;
	WixlWixNode* result = NULL;
	g_return_val_if_fail (value != NULL, NULL);
	if (!G_VALUE_HOLDS (value, WIXL_TYPE_WIX_NODE)) {
		result = NULL;
		return result;
	}
	_tmp0_ = g_value_get_object (value);
	_tmp1_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, WIXL_TYPE_WIX_NODE, WixlWixNode));
	result = _tmp1_;
	return result;
}

static void
wixl_wix_node_real_accept (WixlWixNode* self,
                           WixlWixNodeVisitor* visitor,
                           GError** error)
{
	g_critical ("Type `%s' does not implement abstract method `wixl_wix_node_accept'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
	return;
}

void
wixl_wix_node_accept (WixlWixNode* self,
                      WixlWixNodeVisitor* visitor,
                      GError** error)
{
	g_return_if_fail (self != NULL);
	WIXL_WIX_NODE_GET_CLASS (self)->accept (self, visitor, error);
}

WixlWixNode*
wixl_wix_node_construct (GType object_type)
{
	WixlWixNode * self = NULL;
	self = (WixlWixNode*) g_object_new (object_type, NULL);
	return self;
}

static void
wixl_wix_node_class_init (WixlWixNodeClass * klass,
                          gpointer klass_data)
{
	wixl_wix_node_parent_class = g_type_class_peek_parent (klass);
	((WixlWixNodeClass *) klass)->to_string = (gchar* (*) (WixlWixNode*)) wixl_wix_node_real_to_string;
	((WixlWixNodeClass *) klass)->accept = (void (*) (WixlWixNode*, WixlWixNodeVisitor*, GError**)) wixl_wix_node_real_accept;
	G_OBJECT_CLASS (klass)->finalize = wixl_wix_node_finalize;
	g_value_register_transform_func (WIXL_TYPE_WIX_NODE, G_TYPE_STRING, (GValueTransform) wixl_wix_node_value_to_string);
}

static void
wixl_wix_node_instance_init (WixlWixNode * self,
                             gpointer klass)
{
}

static void
wixl_wix_node_finalize (GObject * obj)
{
	WixlWixNode * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, WIXL_TYPE_WIX_NODE, WixlWixNode);
	_g_object_unref0 (self->parent);
	G_OBJECT_CLASS (wixl_wix_node_parent_class)->finalize (obj);
}

GType
wixl_wix_node_get_type (void)
{
	static volatile gsize wixl_wix_node_type_id__volatile = 0;
	if (g_once_init_enter (&wixl_wix_node_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (WixlWixNodeClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) wixl_wix_node_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (WixlWixNode), 0, (GInstanceInitFunc) wixl_wix_node_instance_init, NULL };
		GType wixl_wix_node_type_id;
		wixl_wix_node_type_id = g_type_register_static (G_TYPE_OBJECT, "WixlWixNode", &g_define_type_info, G_TYPE_FLAG_ABSTRACT);
		g_once_init_leave (&wixl_wix_node_type_id__volatile, wixl_wix_node_type_id);
	}
	return wixl_wix_node_type_id__volatile;
}

WixlWixText*
wixl_wix_text_construct (GType object_type,
                         const gchar* str)
{
	WixlWixText * self = NULL;
	gchar* _tmp0_;
	g_return_val_if_fail (str != NULL, NULL);
	self = (WixlWixText*) wixl_wix_node_construct (object_type);
	_tmp0_ = g_strdup (str);
	_g_free0 (self->Text);
	self->Text = _tmp0_;
	return self;
}

WixlWixText*
wixl_wix_text_new (const gchar* str)
{
	return wixl_wix_text_construct (WIXL_TYPE_WIX_TEXT, str);
}

static gchar*
wixl_wix_text_real_to_string (WixlWixNode* base)
{
	WixlWixText * self;
	const gchar* _tmp0_;
	gchar* _tmp1_;
	gchar* result = NULL;
	self = (WixlWixText*) base;
	_tmp0_ = self->Text;
	_tmp1_ = g_strdup (_tmp0_);
	result = _tmp1_;
	return result;
}

static void
wixl_wix_text_real_accept (WixlWixNode* base,
                           WixlWixNodeVisitor* visitor,
                           GError** error)
{
	WixlWixText * self;
	GError* _inner_error0_ = NULL;
	self = (WixlWixText*) base;
	g_return_if_fail (visitor != NULL);
	wixl_wix_node_visitor_visit_text (visitor, self, &_inner_error0_);
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
		g_propagate_error (error, _inner_error0_);
		return;
	}
}

static void
wixl_wix_text_class_init (WixlWixTextClass * klass,
                          gpointer klass_data)
{
	wixl_wix_text_parent_class = g_type_class_peek_parent (klass);
	((WixlWixNodeClass *) klass)->to_string = (gchar* (*) (WixlWixNode*)) wixl_wix_text_real_to_string;
	((WixlWixNodeClass *) klass)->accept = (void (*) (WixlWixNode*, WixlWixNodeVisitor*, GError**)) wixl_wix_text_real_accept;
	G_OBJECT_CLASS (klass)->finalize = wixl_wix_text_finalize;
}

static void
wixl_wix_text_instance_init (WixlWixText * self,
                             gpointer klass)
{
}

static void
wixl_wix_text_finalize (GObject * obj)
{
	WixlWixText * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, WIXL_TYPE_WIX_TEXT, WixlWixText);
	_g_free0 (self->Text);
	G_OBJECT_CLASS (wixl_wix_text_parent_class)->finalize (obj);
}

GType
wixl_wix_text_get_type (void)
{
	static volatile gsize wixl_wix_text_type_id__volatile = 0;
	if (g_once_init_enter (&wixl_wix_text_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (WixlWixTextClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) wixl_wix_text_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (WixlWixText), 0, (GInstanceInitFunc) wixl_wix_text_instance_init, NULL };
		GType wixl_wix_text_type_id;
		wixl_wix_text_type_id = g_type_register_static (WIXL_TYPE_WIX_NODE, "WixlWixText", &g_define_type_info, 0);
		g_once_init_leave (&wixl_wix_text_type_id__volatile, wixl_wix_text_type_id);
	}
	return wixl_wix_text_type_id__volatile;
}

static inline gpointer
wixl_wix_element_get_instance_private (WixlWixElement* self)
{
	return G_STRUCT_MEMBER_P (self, WixlWixElement_private_offset);
}

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

static inline void
_g_list_free__g_object_unref0_ (GList* self)
{
	g_list_free_full (self, (GDestroyNotify) _g_object_unref0_);
}

void
wixl_wix_element_add_child_types (WixlWixElementClass* klass,
                                  GHashTable* table,
                                  GType* child_types,
                                  gint child_types_length1)
{
	g_return_if_fail (table != NULL);
	{
		GType* t_collection = NULL;
		gint t_collection_length1 = 0;
		gint _t_collection_size_ = 0;
		gint t_it = 0;
		t_collection = child_types;
		t_collection_length1 = child_types_length1;
		for (t_it = 0; t_it < t_collection_length1; t_it = t_it + 1) {
			GType t = 0UL;
			t = t_collection[t_it];
			{
				gchar* n = NULL;
				GObject* _tmp0_;
				GObject* _tmp1_;
				WixlWixElement* _tmp2_;
				const gchar* _tmp3_;
				gchar* _tmp4_;
				gchar* _tmp5_;
				const gchar* _tmp6_;
				gchar* _tmp7_;
				_tmp0_ = g_object_new (t, NULL);
				_tmp1_ = G_IS_INITIALLY_UNOWNED (_tmp0_) ? g_object_ref_sink (_tmp0_) : _tmp0_;
				_tmp2_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, WIXL_TYPE_WIX_ELEMENT, WixlWixElement);
				_tmp3_ = WIXL_WIX_ELEMENT_CLASS (G_OBJECT_GET_CLASS (_tmp2_))->name;
				_tmp4_ = g_strdup (_tmp3_);
				_tmp5_ = _tmp4_;
				_g_object_unref0 (_tmp2_);
				n = _tmp5_;
				_tmp6_ = n;
				_tmp7_ = g_strdup (_tmp6_);
				g_hash_table_insert (table, _tmp7_, (gpointer) ((gintptr) t));
				_g_free0 (n);
			}
		}
	}
}

void
wixl_wix_element_add_child (WixlWixElement* self,
                            WixlWixNode* e)
{
	WixlWixElement* _tmp0_;
	WixlWixNode* _tmp1_;
	g_return_if_fail (self != NULL);
	g_return_if_fail (e != NULL);
	_tmp0_ = _g_object_ref0 (self);
	_g_object_unref0 (e->parent);
	e->parent = _tmp0_;
	_tmp1_ = _g_object_ref0 (e);
	self->children = g_list_append (self->children, _tmp1_);
}

static gpointer*
_vala_array_dup3 (gpointer* self,
                  int length,
                  GBoxedCopyFunc g_dup_func)
{
	gpointer* result;
	int i;
	result = g_new0 (gpointer, length);
	for (i = 0; i < length; i++) {
		gpointer _tmp0_;
		_tmp0_ = ((self[i] != NULL) && (g_dup_func != NULL)) ? g_dup_func ((gpointer) self[i]) : ((gpointer) self[i]);
		result[i] = _tmp0_;
	}
	return result;
}

static void
_vala_array_add7 (gpointer* * array,
                  int* length,
                  int* size,
                  gpointer value)
{
	if ((*length) == (*size)) {
		*size = (*size) ? (2 * (*size)) : 4;
		*array = g_renew (gpointer, *array, (*size) + 1);
	}
	(*array)[(*length)++] = value;
	(*array)[*length] = NULL;
}

static gpointer*
_vala_array_dup4 (gpointer* self,
                  int length,
                  GBoxedCopyFunc g_dup_func)
{
	gpointer* result;
	int i;
	result = g_new0 (gpointer, length);
	for (i = 0; i < length; i++) {
		gpointer _tmp0_;
		_tmp0_ = ((self[i] != NULL) && (g_dup_func != NULL)) ? g_dup_func ((gpointer) self[i]) : ((gpointer) self[i]);
		result[i] = _tmp0_;
	}
	return result;
}

static void
_vala_array_add8 (gpointer* * array,
                  int* length,
                  int* size,
                  gpointer value)
{
	if ((*length) == (*size)) {
		*size = (*size) ? (2 * (*size)) : 4;
		*array = g_renew (gpointer, *array, (*size) + 1);
	}
	(*array)[(*length)++] = value;
	(*array)[*length] = NULL;
}

gpointer*
wixl_wix_element_add_elements (WixlWixElement* self,
                               GType g_type,
                               GBoxedCopyFunc g_dup_func,
                               GDestroyNotify g_destroy_func,
                               gpointer* a,
                               gint a_length1,
                               gint* result_length1)
{
	gpointer* array = NULL;
	gpointer* _tmp0_;
	gint _tmp0__length1;
	gint array_length1;
	gint _array_size_;
	GType type = 0UL;
	GList* _tmp3_;
	gpointer* _tmp15_;
	gint _tmp15__length1;
	gpointer* result = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = (a != NULL) ? _vala_array_dup3 (a, a_length1, g_dup_func) : ((gpointer) a);
	_tmp0__length1 = a_length1;
	array = _tmp0_;
	array_length1 = _tmp0__length1;
	_array_size_ = array_length1;
	type = g_type;
	if (g_type_is_a (G_TYPE_FROM_INSTANCE ((GObject*) self), type)) {
		gpointer* _tmp1_;
		gint _tmp1__length1;
		gpointer _tmp2_;
		_tmp1_ = array;
		_tmp1__length1 = array_length1;
		_tmp2_ = ((self != NULL) && (g_dup_func != NULL)) ? g_dup_func ((gpointer) self) : ((gpointer) self);
		_vala_array_add7 (&array, &array_length1, &_array_size_, _tmp2_);
	}
	_tmp3_ = self->children;
	{
		GList* c_collection = NULL;
		GList* c_it = NULL;
		c_collection = _tmp3_;
		for (c_it = c_collection; c_it != NULL; c_it = c_it->next) {
			WixlWixNode* _tmp4_;
			WixlWixNode* c = NULL;
			_tmp4_ = _g_object_ref0 ((WixlWixNode*) c_it->data);
			c = _tmp4_;
			{
				WixlWixNode* _tmp5_;
				_tmp5_ = c;
				if (WIXL_IS_WIX_ELEMENT (_tmp5_)) {
					WixlWixNode* _tmp6_;
					gpointer* _tmp7_;
					gint _tmp7__length1;
					gpointer* _tmp8_;
					gint _tmp8__length1;
					gint _tmp9_ = 0;
					gpointer* _tmp10_;
					_tmp6_ = c;
					_tmp7_ = array;
					_tmp7__length1 = array_length1;
					_tmp8_ = (_tmp7_ != NULL) ? _vala_array_dup4 (_tmp7_, _tmp7__length1, g_dup_func) : ((gpointer) _tmp7_);
					_tmp8__length1 = _tmp7__length1;
					_tmp10_ = wixl_wix_element_add_elements (WIXL_IS_WIX_ELEMENT (_tmp6_) ? ((WixlWixElement*) _tmp6_) : NULL, g_type, (GBoxedCopyFunc) g_dup_func, (GDestroyNotify) g_destroy_func, _tmp8_, (gint) _tmp8__length1, &_tmp9_);
					array = (_vala_array_free (array, array_length1, (GDestroyNotify) g_destroy_func), NULL);
					array = _tmp10_;
					array_length1 = _tmp9_;
					_array_size_ = array_length1;
				} else {
					WixlWixNode* _tmp11_;
					_tmp11_ = c;
					if (g_type_is_a (G_TYPE_FROM_INSTANCE ((GObject*) _tmp11_), type)) {
						gpointer* _tmp12_;
						gint _tmp12__length1;
						WixlWixNode* _tmp13_;
						gpointer _tmp14_;
						_tmp12_ = array;
						_tmp12__length1 = array_length1;
						_tmp13_ = c;
						_tmp14_ = ((_tmp13_ != NULL) && (g_dup_func != NULL)) ? g_dup_func ((gpointer) _tmp13_) : ((gpointer) _tmp13_);
						_vala_array_add8 (&array, &array_length1, &_array_size_, _tmp14_);
					}
				}
				_g_object_unref0 (c);
			}
		}
	}
	_tmp15_ = array;
	_tmp15__length1 = array_length1;
	if (result_length1) {
		*result_length1 = _tmp15__length1;
	}
	result = _tmp15_;
	a = (_vala_array_free (a, a_length1, (GDestroyNotify) g_destroy_func), NULL);
	return result;
}

static gchar*
wixl_wix_element_real_full_path (WixlWixElement* self,
                                 WixlWixResolver* r,
                                 GError** error)
{
	gboolean _tmp0_ = FALSE;
	WixlWixElement* _tmp1_;
	GError* _inner_error0_ = NULL;
	gchar* result = NULL;
	g_return_val_if_fail (r != NULL, NULL);
	_tmp1_ = ((WixlWixNode*) self)->parent;
	if (_tmp1_ != NULL) {
		gboolean _tmp2_ = FALSE;
		WixlWixElement* _tmp3_;
		_tmp3_ = ((WixlWixNode*) self)->parent;
		if (WIXL_IS_WIX_DIRECTORY (_tmp3_)) {
			_tmp2_ = TRUE;
		} else {
			WixlWixElement* _tmp4_;
			_tmp4_ = ((WixlWixNode*) self)->parent;
			_tmp2_ = WIXL_IS_WIX_DIRECTORY_REF (_tmp4_);
		}
		_tmp0_ = _tmp2_;
	} else {
		_tmp0_ = FALSE;
	}
	if (_tmp0_) {
		gchar* _tmp5_ = NULL;
		WixlWixElement* _tmp6_;
		gchar* _tmp7_;
		gchar* _tmp8_;
		gchar* _tmp9_;
		const gchar* _tmp10_;
		gchar* _tmp11_;
		gchar* _tmp12_;
		_tmp6_ = ((WixlWixNode*) self)->parent;
		_tmp7_ = wixl_wix_element_full_path (_tmp6_, r, &_inner_error0_);
		_tmp5_ = _tmp7_;
		if (G_UNLIKELY (_inner_error0_ != NULL)) {
			g_propagate_error (error, _inner_error0_);
			return NULL;
		}
		_tmp8_ = g_strconcat (_tmp5_, "/", NULL);
		_tmp9_ = _tmp8_;
		_tmp10_ = self->priv->_Id;
		_tmp11_ = g_strconcat (_tmp9_, _tmp10_, NULL);
		_tmp12_ = _tmp11_;
		_g_free0 (_tmp9_);
		result = _tmp12_;
		_g_free0 (_tmp5_);
		return result;
	} else {
		const gchar* _tmp13_;
		gchar* _tmp14_;
		_tmp13_ = self->priv->_Id;
		_tmp14_ = g_strdup (_tmp13_);
		result = _tmp14_;
		return result;
	}
}

gchar*
wixl_wix_element_full_path (WixlWixElement* self,
                            WixlWixResolver* r,
                            GError** error)
{
	g_return_val_if_fail (self != NULL, NULL);
	return WIXL_WIX_ELEMENT_GET_CLASS (self)->full_path (self, r, error);
}

gpointer*
wixl_wix_element_get_elements (WixlWixElement* self,
                               GType g_type,
                               GBoxedCopyFunc g_dup_func,
                               GDestroyNotify g_destroy_func,
                               gint* result_length1)
{
	gpointer* _tmp0_;
	gint _tmp1_ = 0;
	gpointer* _tmp2_;
	gpointer* _tmp3_;
	gint _tmp3__length1;
	gpointer* result = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = g_new0 (gpointer, 0);
	_tmp2_ = wixl_wix_element_add_elements (self, g_type, (GBoxedCopyFunc) g_dup_func, (GDestroyNotify) g_destroy_func, _tmp0_, (gint) 0, &_tmp1_);
	_tmp3_ = _tmp2_;
	_tmp3__length1 = _tmp1_;
	if (result_length1) {
		*result_length1 = _tmp3__length1;
	}
	result = _tmp3_;
	return result;
}

gpointer
wixl_wix_element_find_element (WixlWixElement* self,
                               GType g_type,
                               GBoxedCopyFunc g_dup_func,
                               GDestroyNotify g_destroy_func,
                               const gchar* Id)
{
	GType type = 0UL;
	gboolean _tmp0_ = FALSE;
	const gchar* _tmp1_;
	GList* _tmp3_;
	gpointer result = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	g_return_val_if_fail (Id != NULL, NULL);
	type = g_type;
	_tmp1_ = self->priv->_Id;
	if (g_strcmp0 (_tmp1_, Id) == 0) {
		_tmp0_ = G_TYPE_FROM_INSTANCE ((GObject*) self) == type;
	} else {
		_tmp0_ = FALSE;
	}
	if (_tmp0_) {
		gpointer _tmp2_;
		_tmp2_ = ((self != NULL) && (g_dup_func != NULL)) ? g_dup_func ((gpointer) self) : ((gpointer) self);
		result = _tmp2_;
		return result;
	}
	_tmp3_ = self->children;
	{
		GList* c_collection = NULL;
		GList* c_it = NULL;
		c_collection = _tmp3_;
		for (c_it = c_collection; c_it != NULL; c_it = c_it->next) {
			WixlWixNode* _tmp4_;
			WixlWixNode* c = NULL;
			_tmp4_ = _g_object_ref0 ((WixlWixNode*) c_it->data);
			c = _tmp4_;
			{
				WixlWixNode* _tmp5_;
				_tmp5_ = c;
				if (WIXL_IS_WIX_ELEMENT (_tmp5_)) {
					gpointer e = NULL;
					WixlWixNode* _tmp6_;
					gpointer _tmp7_;
					gconstpointer _tmp8_;
					_tmp6_ = c;
					_tmp7_ = wixl_wix_element_find_element (WIXL_IS_WIX_ELEMENT (_tmp6_) ? ((WixlWixElement*) _tmp6_) : NULL, g_type, (GBoxedCopyFunc) g_dup_func, (GDestroyNotify) g_destroy_func, Id);
					e = _tmp7_;
					_tmp8_ = e;
					if (_tmp8_ != NULL) {
						result = e;
						_g_object_unref0 (c);
						return result;
					}
					_g_destroy_func0 (e);
				}
				_g_object_unref0 (c);
			}
		}
	}
	result = NULL;
	return result;
}

static gchar*
wixl_wix_element_get_attribute_content (WixlWixElement* self,
                                        xmlAttr* attr)
{
	xmlNode* _tmp0_;
	xmlNode* _tmp2_;
	const gchar* _tmp3_;
	gchar* _tmp4_;
	gchar* result = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = attr->children;
	if (_tmp0_ == NULL) {
		gchar* _tmp1_;
		_tmp1_ = g_strdup ("");
		result = _tmp1_;
		return result;
	}
	_tmp2_ = attr->children;
	_tmp3_ = _tmp2_->content;
	_tmp4_ = g_strdup (_tmp3_);
	result = _tmp4_;
	return result;
}

void
wixl_wix_element_load_properties_from_node (WixlWixElement* self,
                                            xmlNode* node,
                                            GError** error)
{
	g_return_if_fail (self != NULL);
	{
		xmlAttr* prop = NULL;
		xmlAttr* _tmp0_;
		_tmp0_ = node->properties;
		prop = _tmp0_;
		{
			gboolean _tmp1_ = FALSE;
			_tmp1_ = TRUE;
			while (TRUE) {
				xmlAttr* _tmp4_;
				xmlAttr* _tmp5_;
				xmlElementType _tmp6_;
				if (!_tmp1_) {
					xmlAttr* _tmp2_;
					xmlAttr* _tmp3_;
					_tmp2_ = prop;
					_tmp3_ = _tmp2_->next;
					prop = _tmp3_;
				}
				_tmp1_ = FALSE;
				_tmp4_ = prop;
				if (!(_tmp4_ != NULL)) {
					break;
				}
				_tmp5_ = prop;
				_tmp6_ = _tmp5_->type;
				if (_tmp6_ == XML_ATTRIBUTE_NODE) {
					xmlAttr* _tmp7_;
					const gchar* _tmp8_;
					xmlAttr* _tmp9_;
					gchar* _tmp10_;
					GValue _tmp11_ = {0};
					_tmp7_ = prop;
					_tmp8_ = _tmp7_->name;
					_tmp9_ = prop;
					_tmp10_ = wixl_wix_element_get_attribute_content (self, _tmp9_);
					g_value_init (&_tmp11_, G_TYPE_STRING);
					g_value_take_string (&_tmp11_, _tmp10_);
					g_object_set_property ((GObject*) self, _tmp8_, &_tmp11_);
					G_IS_VALUE (&_tmp11_) ? (g_value_unset (&_tmp11_), NULL) : NULL;
				}
			}
		}
	}
}

static void
wixl_wix_element_real_load (WixlWixElement* self,
                            xmlNode* node,
                            GError** error)
{
	gboolean _tmp0_ = FALSE;
	const gchar* _tmp1_;
	GError* _inner_error0_ = NULL;
	_tmp1_ = WIXL_WIX_ELEMENT_CLASS (G_OBJECT_GET_CLASS (self))->name;
	if (_tmp1_ != NULL) {
		const gchar* _tmp2_;
		const gchar* _tmp3_;
		_tmp2_ = node->name;
		_tmp3_ = WIXL_WIX_ELEMENT_CLASS (G_OBJECT_GET_CLASS (self))->name;
		_tmp0_ = g_strcmp0 (_tmp2_, _tmp3_) != 0;
	} else {
		_tmp0_ = FALSE;
	}
	if (_tmp0_) {
		const gchar* _tmp4_;
		const gchar* _tmp5_;
		gchar* _tmp6_;
		gchar* _tmp7_;
		GError* _tmp8_;
		GError* _tmp9_;
		_tmp4_ = WIXL_WIX_ELEMENT_CLASS (G_OBJECT_GET_CLASS (self))->name;
		_tmp5_ = node->name;
		_tmp6_ = g_strdup_printf ("%s: invalid node %s", _tmp4_, _tmp5_);
		_tmp7_ = _tmp6_;
		_tmp8_ = g_error_new_literal (WIXL_ERROR, WIXL_ERROR_FAILED, _tmp7_);
		_tmp9_ = _tmp8_;
		_g_free0 (_tmp7_);
		_inner_error0_ = _tmp9_;
		if (_inner_error0_->domain == WIXL_ERROR) {
			g_propagate_error (error, _inner_error0_);
			return;
		} else {
			g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error0_->message, g_quark_to_string (_inner_error0_->domain), _inner_error0_->code);
			g_clear_error (&_inner_error0_);
			return;
		}
	}
	wixl_wix_element_load_properties_from_node (self, node, &_inner_error0_);
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
		if (_inner_error0_->domain == WIXL_ERROR) {
			g_propagate_error (error, _inner_error0_);
			return;
		} else {
			g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error0_->message, g_quark_to_string (_inner_error0_->domain), _inner_error0_->code);
			g_clear_error (&_inner_error0_);
			return;
		}
	}
	{
		xmlNode* child = NULL;
		xmlNode* _tmp10_;
		_tmp10_ = node->children;
		child = _tmp10_;
		{
			gboolean _tmp11_ = FALSE;
			_tmp11_ = TRUE;
			while (TRUE) {
				xmlNode* _tmp14_;
				xmlNode* _tmp15_;
				xmlElementType _tmp16_;
				const gchar* _tmp31_;
				xmlNode* _tmp32_;
				const gchar* _tmp33_;
				if (!_tmp11_) {
					xmlNode* _tmp12_;
					xmlNode* _tmp13_;
					_tmp12_ = child;
					_tmp13_ = _tmp12_->next;
					child = _tmp13_;
				}
				_tmp11_ = FALSE;
				_tmp14_ = child;
				if (!(_tmp14_ != NULL)) {
					break;
				}
				_tmp15_ = child;
				_tmp16_ = _tmp15_->type;
				switch (_tmp16_) {
					case XML_COMMENT_NODE:
					{
						continue;
					}
					case XML_TEXT_NODE:
					{
						xmlNode* _tmp17_;
						const gchar* _tmp18_;
						WixlWixText* _tmp19_;
						WixlWixText* _tmp20_;
						_tmp17_ = child;
						_tmp18_ = _tmp17_->content;
						_tmp19_ = wixl_wix_text_new (_tmp18_);
						_tmp20_ = _tmp19_;
						wixl_wix_element_add_child (self, (WixlWixNode*) _tmp20_);
						_g_object_unref0 (_tmp20_);
						continue;
					}
					case XML_ELEMENT_NODE:
					{
						GType t = 0UL;
						GHashTable* _tmp21_;
						xmlNode* _tmp22_;
						const gchar* _tmp23_;
						gconstpointer _tmp24_;
						_tmp21_ = WIXL_WIX_ELEMENT_CLASS (G_OBJECT_GET_CLASS (self))->child_types;
						_tmp22_ = child;
						_tmp23_ = _tmp22_->name;
						_tmp24_ = g_hash_table_lookup (_tmp21_, _tmp23_);
						t = (GType) ((gintptr) _tmp24_);
						if (t != ((GType) 0)) {
							WixlWixElement* elem = NULL;
							GObject* _tmp25_;
							GObject* _tmp26_;
							WixlWixElement* _tmp27_;
							WixlWixElement* _tmp28_;
							xmlNode* _tmp29_;
							WixlWixElement* _tmp30_;
							_tmp25_ = g_object_new (t, NULL);
							_tmp26_ = G_IS_INITIALLY_UNOWNED (_tmp25_) ? g_object_ref_sink (_tmp25_) : _tmp25_;
							_tmp27_ = WIXL_IS_WIX_ELEMENT (_tmp26_) ? ((WixlWixElement*) _tmp26_) : NULL;
							if (_tmp27_ == NULL) {
								_g_object_unref0 (_tmp26_);
							}
							elem = _tmp27_;
							_tmp28_ = elem;
							_tmp29_ = child;
							wixl_wix_element_load (_tmp28_, _tmp29_, &_inner_error0_);
							if (G_UNLIKELY (_inner_error0_ != NULL)) {
								if (_inner_error0_->domain == WIXL_ERROR) {
									g_propagate_error (error, _inner_error0_);
									_g_object_unref0 (elem);
									return;
								} else {
									_g_object_unref0 (elem);
									g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error0_->message, g_quark_to_string (_inner_error0_->domain), _inner_error0_->code);
									g_clear_error (&_inner_error0_);
									return;
								}
							}
							_tmp30_ = elem;
							wixl_wix_element_add_child (self, (WixlWixNode*) _tmp30_);
							_g_object_unref0 (elem);
							continue;
						}
						break;
					}
					default:
					break;
				}
				_tmp31_ = WIXL_WIX_ELEMENT_CLASS (G_OBJECT_GET_CLASS (self))->name;
				_tmp32_ = child;
				_tmp33_ = _tmp32_->name;
				g_error ("wix.vala:218: unhandled child %s node %s", _tmp31_, _tmp33_);
			}
		}
	}
}

void
wixl_wix_element_load (WixlWixElement* self,
                       xmlNode* node,
                       GError** error)
{
	g_return_if_fail (self != NULL);
	WIXL_WIX_ELEMENT_GET_CLASS (self)->load (self, node, error);
}

static gchar*
wixl_wix_element_real_to_string (WixlWixNode* base)
{
	WixlWixElement * self;
	GType type = 0UL;
	GObjectClass* klass = NULL;
	GTypeClass* _tmp0_;
	gchar* str = NULL;
	const gchar* _tmp1_;
	gchar* _tmp2_;
	gint i = 0;
	GObjectClass* _tmp3_;
	guint _tmp4_ = 0;
	GParamSpec** _tmp5_;
	GList* _tmp31_;
	gchar* result = NULL;
	self = (WixlWixElement*) base;
	type = G_TYPE_FROM_INSTANCE ((GObject*) self);
	_tmp0_ = g_type_class_ref (type);
	klass = (GObjectClass*) _tmp0_;
	_tmp1_ = WIXL_WIX_ELEMENT_CLASS (G_OBJECT_GET_CLASS (self))->name;
	_tmp2_ = g_strconcat ("<", _tmp1_, NULL);
	str = _tmp2_;
	i = 0;
	_tmp3_ = klass;
	_tmp5_ = g_object_class_list_properties (_tmp3_, &_tmp4_);
	{
		GParamSpec** p_collection = NULL;
		gint p_collection_length1 = 0;
		gint _p_collection_size_ = 0;
		gint p_it = 0;
		p_collection = _tmp5_;
		p_collection_length1 = _tmp4_;
		for (p_it = 0; p_it < p_collection_length1; p_it = p_it + 1) {
			GParamSpec* p = NULL;
			p = p_collection[p_it];
			{
				GParamSpec* _tmp6_;
				GParamFlags _tmp7_;
				GValue value = {0};
				GParamSpec* _tmp8_;
				GValue _tmp9_ = {0};
				GParamSpec* _tmp10_;
				const gchar* _tmp11_;
				gchar* _tmp12_ = NULL;
				gchar* valstr = NULL;
				gchar* _tmp16_;
				const gchar* _tmp17_;
				_tmp6_ = p;
				_tmp7_ = _tmp6_->flags;
				if (!((_tmp7_ & G_PARAM_READABLE) == G_PARAM_READABLE)) {
					continue;
				}
				_tmp8_ = p;
				g_value_init (&_tmp9_, _tmp8_->value_type);
				value = _tmp9_;
				_tmp10_ = p;
				_tmp11_ = _tmp10_->name;
				g_object_get_property ((GObject*) self, _tmp11_, &value);
				if (G_VALUE_HOLDS (&value, G_TYPE_STRING)) {
					GValue _tmp13_;
					gchar* _tmp14_;
					_tmp13_ = value;
					_tmp14_ = g_strdup (g_value_get_string (&_tmp13_));
					_g_free0 (_tmp12_);
					_tmp12_ = _tmp14_;
				} else {
					gchar* _tmp15_;
					_tmp15_ = g_strdup_value_contents (&value);
					_g_free0 (_tmp12_);
					_tmp12_ = _tmp15_;
				}
				_tmp16_ = g_strdup (_tmp12_);
				valstr = _tmp16_;
				_tmp17_ = valstr;
				if (_tmp17_ != NULL) {
					const gchar* _tmp18_;
					GParamSpec* _tmp19_;
					const gchar* _tmp20_;
					gchar* _tmp21_;
					gchar* _tmp22_;
					gchar* _tmp23_;
					gchar* _tmp24_;
					const gchar* _tmp25_;
					gchar* _tmp26_;
					gchar* _tmp27_;
					gchar* _tmp28_;
					gchar* _tmp29_;
					gchar* _tmp30_;
					_tmp18_ = str;
					_tmp19_ = p;
					_tmp20_ = _tmp19_->name;
					_tmp21_ = g_strconcat (" ", _tmp20_, NULL);
					_tmp22_ = _tmp21_;
					_tmp23_ = g_strconcat (_tmp22_, "=\"", NULL);
					_tmp24_ = _tmp23_;
					_tmp25_ = valstr;
					_tmp26_ = g_strconcat (_tmp24_, _tmp25_, NULL);
					_tmp27_ = _tmp26_;
					_tmp28_ = g_strconcat (_tmp27_, "\"", NULL);
					_tmp29_ = _tmp28_;
					_tmp30_ = g_strconcat (_tmp18_, _tmp29_, NULL);
					_g_free0 (str);
					str = _tmp30_;
					_g_free0 (_tmp29_);
					_g_free0 (_tmp27_);
					_g_free0 (_tmp24_);
					_g_free0 (_tmp22_);
				}
				i = i + 1;
				_g_free0 (valstr);
				_g_free0 (_tmp12_);
				G_IS_VALUE (&value) ? (g_value_unset (&value), NULL) : NULL;
			}
		}
		p_collection = (g_free (p_collection), NULL);
	}
	_tmp31_ = self->children;
	if (g_list_length (_tmp31_) != ((guint) 0)) {
		const gchar* _tmp32_;
		gchar* _tmp33_;
		GList* _tmp34_;
		const gchar* _tmp43_;
		gchar* _tmp44_;
		gchar* _tmp45_;
		const gchar* _tmp46_;
		gchar* _tmp47_;
		gchar* _tmp48_;
		gchar* _tmp49_;
		gchar* _tmp50_;
		_tmp32_ = str;
		_tmp33_ = g_strconcat (_tmp32_, ">\n", NULL);
		_g_free0 (str);
		str = _tmp33_;
		_tmp34_ = self->children;
		{
			GList* child_collection = NULL;
			GList* child_it = NULL;
			child_collection = _tmp34_;
			for (child_it = child_collection; child_it != NULL; child_it = child_it->next) {
				WixlWixNode* _tmp35_;
				WixlWixNode* child = NULL;
				_tmp35_ = _g_object_ref0 ((WixlWixNode*) child_it->data);
				child = _tmp35_;
				{
					const gchar* _tmp36_;
					WixlWixNode* _tmp37_;
					gchar* _tmp38_;
					gchar* _tmp39_;
					gchar* _tmp40_;
					gchar* _tmp41_;
					gchar* _tmp42_;
					_tmp36_ = str;
					_tmp37_ = child;
					_tmp38_ = wixl_wix_node_to_string (_tmp37_);
					_tmp39_ = _tmp38_;
					_tmp40_ = g_strconcat (_tmp39_, "\n", NULL);
					_tmp41_ = _tmp40_;
					_tmp42_ = g_strconcat (_tmp36_, _tmp41_, NULL);
					_g_free0 (str);
					str = _tmp42_;
					_g_free0 (_tmp41_);
					_g_free0 (_tmp39_);
					_g_object_unref0 (child);
				}
			}
		}
		_tmp43_ = str;
		_tmp44_ = g_strconcat (_tmp43_, "</", NULL);
		_tmp45_ = _tmp44_;
		_tmp46_ = WIXL_WIX_ELEMENT_CLASS (G_OBJECT_GET_CLASS (self))->name;
		_tmp47_ = g_strconcat (_tmp45_, _tmp46_, NULL);
		_tmp48_ = _tmp47_;
		_tmp49_ = g_strconcat (_tmp48_, ">", NULL);
		_tmp50_ = _tmp49_;
		_g_free0 (_tmp48_);
		_g_free0 (_tmp45_);
		result = _tmp50_;
		_g_free0 (str);
		_g_type_class_unref0 (klass);
		return result;
	} else {
		const gchar* _tmp51_;
		gchar* _tmp52_;
		_tmp51_ = str;
		_tmp52_ = g_strconcat (_tmp51_, "/>", NULL);
		result = _tmp52_;
		_g_free0 (str);
		_g_type_class_unref0 (klass);
		return result;
	}
	_g_free0 (str);
	_g_type_class_unref0 (klass);
}

static void
wixl_wix_element_real_accept (WixlWixNode* base,
                              WixlWixNodeVisitor* visitor,
                              GError** error)
{
	WixlWixElement * self;
	GList* _tmp0_;
	GError* _inner_error0_ = NULL;
	self = (WixlWixElement*) base;
	g_return_if_fail (visitor != NULL);
	_tmp0_ = self->children;
	{
		GList* child_collection = NULL;
		GList* child_it = NULL;
		child_collection = _tmp0_;
		for (child_it = child_collection; child_it != NULL; child_it = child_it->next) {
			WixlWixNode* _tmp1_;
			WixlWixNode* child = NULL;
			_tmp1_ = _g_object_ref0 ((WixlWixNode*) child_it->data);
			child = _tmp1_;
			{
				WixlWixNode* _tmp2_;
				_tmp2_ = child;
				wixl_wix_node_accept (_tmp2_, visitor, &_inner_error0_);
				if (G_UNLIKELY (_inner_error0_ != NULL)) {
					g_propagate_error (error, _inner_error0_);
					_g_object_unref0 (child);
					return;
				}
				_g_object_unref0 (child);
			}
		}
	}
}

WixlWixElement*
wixl_wix_element_construct (GType object_type)
{
	WixlWixElement * self = NULL;
	self = (WixlWixElement*) wixl_wix_node_construct (object_type);
	return self;
}

const gchar*
wixl_wix_element_get_Id (WixlWixElement* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Id;
	result = _tmp0_;
	return result;
}

void
wixl_wix_element_set_Id (WixlWixElement* self,
                         const gchar* value)
{
	g_return_if_fail (self != NULL);
	if (g_strcmp0 (value, wixl_wix_element_get_Id (self)) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_Id);
		self->priv->_Id = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, wixl_wix_element_properties[WIXL_WIX_ELEMENT_ID_PROPERTY]);
	}
}

static void
_g_free0_ (gpointer var)
{
	var = (g_free (var), NULL);
}

static void
wixl_wix_element_base_init (WixlWixElementClass * klass)
{
	GHashFunc _tmp0_;
	GEqualFunc _tmp1_;
	GHashTable* _tmp2_;
	_tmp0_ = g_str_hash;
	_tmp1_ = g_str_equal;
	_tmp2_ = g_hash_table_new_full (_tmp0_, _tmp1_, _g_free0_, NULL);
	WIXL_WIX_ELEMENT_CLASS (klass)->child_types = _tmp2_;
}

static void
wixl_wix_element_class_init (WixlWixElementClass * klass,
                             gpointer klass_data)
{
	wixl_wix_element_parent_class = g_type_class_peek_parent (klass);
	g_type_class_adjust_private_offset (klass, &WixlWixElement_private_offset);
	((WixlWixElementClass *) klass)->full_path = (gchar* (*) (WixlWixElement*, WixlWixResolver*, GError**)) wixl_wix_element_real_full_path;
	((WixlWixElementClass *) klass)->load = (void (*) (WixlWixElement*, xmlNode*, GError**)) wixl_wix_element_real_load;
	((WixlWixNodeClass *) klass)->to_string = (gchar* (*) (WixlWixNode*)) wixl_wix_element_real_to_string;
	((WixlWixNodeClass *) klass)->accept = (void (*) (WixlWixNode*, WixlWixNodeVisitor*, GError**)) wixl_wix_element_real_accept;
	G_OBJECT_CLASS (klass)->get_property = _vala_wixl_wix_element_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_wixl_wix_element_set_property;
	G_OBJECT_CLASS (klass)->finalize = wixl_wix_element_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_ELEMENT_ID_PROPERTY, wixl_wix_element_properties[WIXL_WIX_ELEMENT_ID_PROPERTY] = g_param_spec_string ("Id", "Id", "Id", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	klass->child_types = NULL;
}

static void
wixl_wix_element_instance_init (WixlWixElement * self,
                                gpointer klass)
{
	self->priv = wixl_wix_element_get_instance_private (self);
}

static void
wixl_wix_element_finalize (GObject * obj)
{
	WixlWixElement * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, WIXL_TYPE_WIX_ELEMENT, WixlWixElement);
	_g_free0 (self->priv->_Id);
	(self->children == NULL) ? NULL : (self->children = (_g_list_free__g_object_unref0_ (self->children), NULL));
	G_OBJECT_CLASS (wixl_wix_element_parent_class)->finalize (obj);
}

GType
wixl_wix_element_get_type (void)
{
	static volatile gsize wixl_wix_element_type_id__volatile = 0;
	if (g_once_init_enter (&wixl_wix_element_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (WixlWixElementClass), (GBaseInitFunc) wixl_wix_element_base_init, (GBaseFinalizeFunc) NULL, (GClassInitFunc) wixl_wix_element_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (WixlWixElement), 0, (GInstanceInitFunc) wixl_wix_element_instance_init, NULL };
		GType wixl_wix_element_type_id;
		wixl_wix_element_type_id = g_type_register_static (WIXL_TYPE_WIX_NODE, "WixlWixElement", &g_define_type_info, G_TYPE_FLAG_ABSTRACT);
		WixlWixElement_private_offset = g_type_add_instance_private (wixl_wix_element_type_id, sizeof (WixlWixElementPrivate));
		g_once_init_leave (&wixl_wix_element_type_id__volatile, wixl_wix_element_type_id);
	}
	return wixl_wix_element_type_id__volatile;
}

static void
_vala_wixl_wix_element_get_property (GObject * object,
                                     guint property_id,
                                     GValue * value,
                                     GParamSpec * pspec)
{
	WixlWixElement * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, WIXL_TYPE_WIX_ELEMENT, WixlWixElement);
	switch (property_id) {
		case WIXL_WIX_ELEMENT_ID_PROPERTY:
		g_value_set_string (value, wixl_wix_element_get_Id (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static void
_vala_wixl_wix_element_set_property (GObject * object,
                                     guint property_id,
                                     const GValue * value,
                                     GParamSpec * pspec)
{
	WixlWixElement * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, WIXL_TYPE_WIX_ELEMENT, WixlWixElement);
	switch (property_id) {
		case WIXL_WIX_ELEMENT_ID_PROPERTY:
		wixl_wix_element_set_Id (self, g_value_get_string (value));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static inline gpointer
wixl_wix_component_group_get_instance_private (WixlWixComponentGroup* self)
{
	return G_STRUCT_MEMBER_P (self, WixlWixComponentGroup_private_offset);
}

WixlWixComponentGroup*
wixl_wix_component_group_construct (GType object_type)
{
	WixlWixComponentGroup * self = NULL;
	self = (WixlWixComponentGroup*) wixl_wix_element_construct (object_type);
	return self;
}

WixlWixComponentGroup*
wixl_wix_component_group_new (void)
{
	return wixl_wix_component_group_construct (WIXL_TYPE_WIX_COMPONENT_GROUP);
}

const gchar*
wixl_wix_component_group_get_Directory (WixlWixComponentGroup* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Directory;
	result = _tmp0_;
	return result;
}

void
wixl_wix_component_group_set_Directory (WixlWixComponentGroup* self,
                                        const gchar* value)
{
	g_return_if_fail (self != NULL);
	if (g_strcmp0 (value, wixl_wix_component_group_get_Directory (self)) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_Directory);
		self->priv->_Directory = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, wixl_wix_component_group_properties[WIXL_WIX_COMPONENT_GROUP_DIRECTORY_PROPERTY]);
	}
}

static void
wixl_wix_component_group_class_init (WixlWixComponentGroupClass * klass,
                                     gpointer klass_data)
{
	gchar* _tmp0_;
	GHashTable* _tmp1_;
	GType* _tmp2_;
	GType* _tmp3_;
	gint _tmp3__length1;
	wixl_wix_component_group_parent_class = g_type_class_peek_parent (klass);
	g_type_class_adjust_private_offset (klass, &WixlWixComponentGroup_private_offset);
	G_OBJECT_CLASS (klass)->get_property = _vala_wixl_wix_component_group_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_wixl_wix_component_group_set_property;
	G_OBJECT_CLASS (klass)->finalize = wixl_wix_component_group_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_COMPONENT_GROUP_DIRECTORY_PROPERTY, wixl_wix_component_group_properties[WIXL_WIX_COMPONENT_GROUP_DIRECTORY_PROPERTY] = g_param_spec_string ("Directory", "Directory", "Directory", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	_tmp0_ = g_strdup ("ComponentGroup");
	_g_free0 (WIXL_WIX_ELEMENT_CLASS (klass)->name);
	WIXL_WIX_ELEMENT_CLASS (klass)->name = _tmp0_;
	_tmp1_ = WIXL_WIX_ELEMENT_CLASS (klass)->child_types;
	_tmp2_ = g_new0 (GType, 3);
	_tmp2_[0] = WIXL_TYPE_WIX_COMPONENT;
	_tmp2_[1] = WIXL_TYPE_WIX_COMPONENT_REF;
	_tmp2_[2] = WIXL_TYPE_WIX_COMPONENT_GROUP_REF;
	_tmp3_ = _tmp2_;
	_tmp3__length1 = 3;
	wixl_wix_element_add_child_types (WIXL_WIX_ELEMENT_CLASS (klass), _tmp1_, _tmp3_, (gint) 3);
	_tmp3_ = (g_free (_tmp3_), NULL);
}

static void
wixl_wix_component_group_instance_init (WixlWixComponentGroup * self,
                                        gpointer klass)
{
	self->priv = wixl_wix_component_group_get_instance_private (self);
}

static void
wixl_wix_component_group_finalize (GObject * obj)
{
	WixlWixComponentGroup * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, WIXL_TYPE_WIX_COMPONENT_GROUP, WixlWixComponentGroup);
	_g_free0 (self->priv->_Directory);
	G_OBJECT_CLASS (wixl_wix_component_group_parent_class)->finalize (obj);
}

GType
wixl_wix_component_group_get_type (void)
{
	static volatile gsize wixl_wix_component_group_type_id__volatile = 0;
	if (g_once_init_enter (&wixl_wix_component_group_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (WixlWixComponentGroupClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) wixl_wix_component_group_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (WixlWixComponentGroup), 0, (GInstanceInitFunc) wixl_wix_component_group_instance_init, NULL };
		GType wixl_wix_component_group_type_id;
		wixl_wix_component_group_type_id = g_type_register_static (WIXL_TYPE_WIX_ELEMENT, "WixlWixComponentGroup", &g_define_type_info, 0);
		WixlWixComponentGroup_private_offset = g_type_add_instance_private (wixl_wix_component_group_type_id, sizeof (WixlWixComponentGroupPrivate));
		g_once_init_leave (&wixl_wix_component_group_type_id__volatile, wixl_wix_component_group_type_id);
	}
	return wixl_wix_component_group_type_id__volatile;
}

static void
_vala_wixl_wix_component_group_get_property (GObject * object,
                                             guint property_id,
                                             GValue * value,
                                             GParamSpec * pspec)
{
	WixlWixComponentGroup * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, WIXL_TYPE_WIX_COMPONENT_GROUP, WixlWixComponentGroup);
	switch (property_id) {
		case WIXL_WIX_COMPONENT_GROUP_DIRECTORY_PROPERTY:
		g_value_set_string (value, wixl_wix_component_group_get_Directory (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static void
_vala_wixl_wix_component_group_set_property (GObject * object,
                                             guint property_id,
                                             const GValue * value,
                                             GParamSpec * pspec)
{
	WixlWixComponentGroup * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, WIXL_TYPE_WIX_COMPONENT_GROUP, WixlWixComponentGroup);
	switch (property_id) {
		case WIXL_WIX_COMPONENT_GROUP_DIRECTORY_PROPERTY:
		wixl_wix_component_group_set_Directory (self, g_value_get_string (value));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static void
wixl_wix_fragment_real_accept (WixlWixNode* base,
                               WixlWixNodeVisitor* visitor,
                               GError** error)
{
	WixlWixFragment * self;
	GError* _inner_error0_ = NULL;
	self = (WixlWixFragment*) base;
	g_return_if_fail (visitor != NULL);
	WIXL_WIX_NODE_CLASS (wixl_wix_fragment_parent_class)->accept ((WixlWixNode*) G_TYPE_CHECK_INSTANCE_CAST (self, WIXL_TYPE_WIX_ELEMENT, WixlWixElement), visitor, &_inner_error0_);
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
		g_propagate_error (error, _inner_error0_);
		return;
	}
	wixl_wix_node_visitor_visit_fragment (visitor, self, &_inner_error0_);
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
		g_propagate_error (error, _inner_error0_);
		return;
	}
}

WixlWixFragment*
wixl_wix_fragment_construct (GType object_type)
{
	WixlWixFragment * self = NULL;
	self = (WixlWixFragment*) wixl_wix_element_construct (object_type);
	return self;
}

WixlWixFragment*
wixl_wix_fragment_new (void)
{
	return wixl_wix_fragment_construct (WIXL_TYPE_WIX_FRAGMENT);
}

static void
wixl_wix_fragment_class_init (WixlWixFragmentClass * klass,
                              gpointer klass_data)
{
	gchar* _tmp0_;
	GHashTable* _tmp1_;
	GType* _tmp2_;
	GType* _tmp3_;
	gint _tmp3__length1;
	wixl_wix_fragment_parent_class = g_type_class_peek_parent (klass);
	((WixlWixNodeClass *) klass)->accept = (void (*) (WixlWixNode*, WixlWixNodeVisitor*, GError**)) wixl_wix_fragment_real_accept;
	_tmp0_ = g_strdup ("Fragment");
	_g_free0 (WIXL_WIX_ELEMENT_CLASS (klass)->name);
	WIXL_WIX_ELEMENT_CLASS (klass)->name = _tmp0_;
	_tmp1_ = WIXL_WIX_ELEMENT_CLASS (klass)->child_types;
	_tmp2_ = g_new0 (GType, 3);
	_tmp2_[0] = WIXL_TYPE_WIX_DIRECTORY;
	_tmp2_[1] = WIXL_TYPE_WIX_DIRECTORY_REF;
	_tmp2_[2] = WIXL_TYPE_WIX_COMPONENT_GROUP;
	_tmp3_ = _tmp2_;
	_tmp3__length1 = 3;
	wixl_wix_element_add_child_types (WIXL_WIX_ELEMENT_CLASS (klass), _tmp1_, _tmp3_, (gint) 3);
	_tmp3_ = (g_free (_tmp3_), NULL);
}

static void
wixl_wix_fragment_instance_init (WixlWixFragment * self,
                                 gpointer klass)
{
}

GType
wixl_wix_fragment_get_type (void)
{
	static volatile gsize wixl_wix_fragment_type_id__volatile = 0;
	if (g_once_init_enter (&wixl_wix_fragment_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (WixlWixFragmentClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) wixl_wix_fragment_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (WixlWixFragment), 0, (GInstanceInitFunc) wixl_wix_fragment_instance_init, NULL };
		GType wixl_wix_fragment_type_id;
		wixl_wix_fragment_type_id = g_type_register_static (WIXL_TYPE_WIX_ELEMENT, "WixlWixFragment", &g_define_type_info, 0);
		g_once_init_leave (&wixl_wix_fragment_type_id__volatile, wixl_wix_fragment_type_id);
	}
	return wixl_wix_fragment_type_id__volatile;
}

static inline gpointer
wixl_wix_registry_search_get_instance_private (WixlWixRegistrySearch* self)
{
	return G_STRUCT_MEMBER_P (self, WixlWixRegistrySearch_private_offset);
}

static void
wixl_wix_registry_search_real_accept (WixlWixNode* base,
                                      WixlWixNodeVisitor* visitor,
                                      GError** error)
{
	WixlWixRegistrySearch * self;
	GError* _inner_error0_ = NULL;
	self = (WixlWixRegistrySearch*) base;
	g_return_if_fail (visitor != NULL);
	wixl_wix_node_visitor_visit_registry_search (visitor, self, &_inner_error0_);
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
		g_propagate_error (error, _inner_error0_);
		return;
	}
}

WixlWixRegistrySearch*
wixl_wix_registry_search_construct (GType object_type)
{
	WixlWixRegistrySearch * self = NULL;
	self = (WixlWixRegistrySearch*) wixl_wix_element_construct (object_type);
	return self;
}

WixlWixRegistrySearch*
wixl_wix_registry_search_new (void)
{
	return wixl_wix_registry_search_construct (WIXL_TYPE_WIX_REGISTRY_SEARCH);
}

const gchar*
wixl_wix_registry_search_get_Root (WixlWixRegistrySearch* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Root;
	result = _tmp0_;
	return result;
}

void
wixl_wix_registry_search_set_Root (WixlWixRegistrySearch* self,
                                   const gchar* value)
{
	g_return_if_fail (self != NULL);
	if (g_strcmp0 (value, wixl_wix_registry_search_get_Root (self)) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_Root);
		self->priv->_Root = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, wixl_wix_registry_search_properties[WIXL_WIX_REGISTRY_SEARCH_ROOT_PROPERTY]);
	}
}

const gchar*
wixl_wix_registry_search_get_Key (WixlWixRegistrySearch* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Key;
	result = _tmp0_;
	return result;
}

void
wixl_wix_registry_search_set_Key (WixlWixRegistrySearch* self,
                                  const gchar* value)
{
	g_return_if_fail (self != NULL);
	if (g_strcmp0 (value, wixl_wix_registry_search_get_Key (self)) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_Key);
		self->priv->_Key = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, wixl_wix_registry_search_properties[WIXL_WIX_REGISTRY_SEARCH_KEY_PROPERTY]);
	}
}

const gchar*
wixl_wix_registry_search_get_Type (WixlWixRegistrySearch* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Type;
	result = _tmp0_;
	return result;
}

void
wixl_wix_registry_search_set_Type (WixlWixRegistrySearch* self,
                                   const gchar* value)
{
	g_return_if_fail (self != NULL);
	if (g_strcmp0 (value, wixl_wix_registry_search_get_Type (self)) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_Type);
		self->priv->_Type = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, wixl_wix_registry_search_properties[WIXL_WIX_REGISTRY_SEARCH_TYPE_PROPERTY]);
	}
}

const gchar*
wixl_wix_registry_search_get_Name (WixlWixRegistrySearch* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Name;
	result = _tmp0_;
	return result;
}

void
wixl_wix_registry_search_set_Name (WixlWixRegistrySearch* self,
                                   const gchar* value)
{
	g_return_if_fail (self != NULL);
	if (g_strcmp0 (value, wixl_wix_registry_search_get_Name (self)) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_Name);
		self->priv->_Name = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, wixl_wix_registry_search_properties[WIXL_WIX_REGISTRY_SEARCH_NAME_PROPERTY]);
	}
}

const gchar*
wixl_wix_registry_search_get_Win64 (WixlWixRegistrySearch* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Win64;
	result = _tmp0_;
	return result;
}

void
wixl_wix_registry_search_set_Win64 (WixlWixRegistrySearch* self,
                                    const gchar* value)
{
	g_return_if_fail (self != NULL);
	if (g_strcmp0 (value, wixl_wix_registry_search_get_Win64 (self)) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_Win64);
		self->priv->_Win64 = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, wixl_wix_registry_search_properties[WIXL_WIX_REGISTRY_SEARCH_WIN64_PROPERTY]);
	}
}

static void
wixl_wix_registry_search_class_init (WixlWixRegistrySearchClass * klass,
                                     gpointer klass_data)
{
	gchar* _tmp0_;
	wixl_wix_registry_search_parent_class = g_type_class_peek_parent (klass);
	g_type_class_adjust_private_offset (klass, &WixlWixRegistrySearch_private_offset);
	((WixlWixNodeClass *) klass)->accept = (void (*) (WixlWixNode*, WixlWixNodeVisitor*, GError**)) wixl_wix_registry_search_real_accept;
	G_OBJECT_CLASS (klass)->get_property = _vala_wixl_wix_registry_search_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_wixl_wix_registry_search_set_property;
	G_OBJECT_CLASS (klass)->finalize = wixl_wix_registry_search_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_REGISTRY_SEARCH_ROOT_PROPERTY, wixl_wix_registry_search_properties[WIXL_WIX_REGISTRY_SEARCH_ROOT_PROPERTY] = g_param_spec_string ("Root", "Root", "Root", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_REGISTRY_SEARCH_KEY_PROPERTY, wixl_wix_registry_search_properties[WIXL_WIX_REGISTRY_SEARCH_KEY_PROPERTY] = g_param_spec_string ("Key", "Key", "Key", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_REGISTRY_SEARCH_TYPE_PROPERTY, wixl_wix_registry_search_properties[WIXL_WIX_REGISTRY_SEARCH_TYPE_PROPERTY] = g_param_spec_string ("Type", "Type", "Type", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_REGISTRY_SEARCH_NAME_PROPERTY, wixl_wix_registry_search_properties[WIXL_WIX_REGISTRY_SEARCH_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), WIXL_WIX_REGISTRY_SEARCH_WIN64_PROPERTY, wixl_wix_registry_search_properties[WIXL_WIX_REGISTRY_SEARCH_WIN64_PROPERTY] = g_param_spec_string ("Win64", "Win64", "Win64", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	_tmp0_ = g_strdup ("RegistrySearch");
	_g_free0 (WIXL_WIX_ELEMENT_CLASS (klass)->name);
	WIXL_WIX_ELEMENT_CLASS (klass)->name = _tmp0_;
}

static void
wixl_wix_registry_search_instance_init (WixlWixRegistrySearch * self,
                                        gpointer klass)
{
	self->priv = wixl_wix_registry_search_get_instance_private (self);
}

static void
wixl_wix_registry_search_finalize (GObject * obj)
{
	WixlWixRegistrySearch * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, WIXL_TYPE_WIX_REGISTRY_SEARCH, WixlWixRegistrySearch);
	_g_free0 (self->priv->_Root);
	_g_free0 (self->priv->_Key);
	_g_free0 (self->priv->_Type);
	_g_free0 (self->priv->_Name);
	_g_free0 (self->priv->_Win64);
	G_OBJECT_CLASS (wixl_wix_registry_search_parent_class)->finalize (obj);
}

GType
wixl_wix_registry_search_get_type (void)
{
	static volatile gsize wixl_wix_registry_search_type_id__volatile = 0;
	if (g_once_init_enter (&wixl_wix_registry_search_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (WixlWixRegistrySearchClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) wixl_wix_registry_search_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (WixlWixRegistrySearch), 0, (GInstanceInitFunc) wixl_wix_registry_search_instance_init, NULL };
		GType wixl_wix_registry_search_type_id;
		wixl_wix_registry_search_type_id = g_type_register_static (WIXL_TYPE_WIX_ELEMENT, "WixlWixRegistrySearch", &g_define_type_info, 0);
		WixlWixRegistrySearch_private_offset = g_type_add_instance_private (wixl_wix_registry_search_type_id, sizeof (WixlWixRegistrySearchPrivate));
		g_once_init_leave (&wixl_wix_registry_search_type_id__volatile, wixl_wix_registry_search_type_id);
	}
	return wixl_wix_registry_search_type_id__volatile;
}

static void
_vala_wixl_wix_registry_search_get_property (GObject * object,
                                             guint property_id,
                                             GValue * value,
                                             GParamSpec * pspec)
{
	WixlWixRegistrySearch * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, WIXL_TYPE_WIX_REGISTRY_SEARCH, WixlWixRegistrySearch);
	switch (property_id) {
		case WIXL_WIX_REGISTRY_SEARCH_ROOT_PROPERTY:
		g_value_set_string (value, wixl_wix_registry_search_get_Root (self));
		break;
		case WIXL_WIX_REGISTRY_SEARCH_KEY_PROPERTY:
		g_value_set_string (value, wixl_wix_registry_search_get_Key (self));
		break;
		case WIXL_WIX_REGISTRY_SEARCH_TYPE_PROPERTY:
		g_value_set_string (value, wixl_wix_registry_search_get_Type (self));
		break;
		case WIXL_WIX_REGISTRY_SEARCH_NAME_PROPERTY:
		g_value_set_string (value, wixl_wix_registry_search_get_Name (self));
		break;
		case WIXL_WIX_REGISTRY_SEARCH_WIN64_PROPERTY:
		g_value_set_string (value, wixl_wix_registry_search_get_Win64 (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static void
_vala_wixl_wix_registry_search_set_property (GObject * object,
                                             guint property_id,
                                             const GValue * value,
                                             GParamSpec * pspec)
{
	WixlWixRegistrySearch * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, WIXL_TYPE_WIX_REGISTRY_SEARCH, WixlWixRegistrySearch);
	switch (property_id) {
		case WIXL_WIX_REGISTRY_SEARCH_ROOT_PROPERTY:
		wixl_wix_registry_search_set_Root (self, g_value_get_string (value));
		break;
		case WIXL_WIX_REGISTRY_SEARCH_KEY_PROPERTY:
		wixl_wix_registry_search_set_Key (self, g_value_get_string (value));
		break;
		case WIXL_WIX_REGISTRY_SEARCH_TYPE_PROPERTY:
		wixl_wix_registry_search_set_Type (self, g_value_get_string (value));
		break;
		case WIXL_WIX_REGISTRY_SEARCH_NAME_PROPERTY:
		wixl_wix_registry_search_set_Name (self, g_value_get_string (value));
		break;
		case WIXL_WIX_REGISTRY_SEARCH_WIN64_PROPERTY:
		wixl_wix_registry_search_set_Win64 (self, g_value_get_string (value));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static inline gpointer
wixl_wix_property_get_instance_private (WixlWixProperty* self)
{
	return G_STRUCT_MEMBER_P (self, WixlWixProperty_private_offset);
}

static void
wixl_wix_property_real_accept (WixlWixNode* base,
                               WixlWixNodeVisitor* visitor,
                               GError** error)
{
	WixlWixProperty * self;
	GError* _inner_error0_ = NULL;
	self = (WixlWixProperty*) base;
	g_return_if_fail (visitor != NULL);
	WIXL_WIX_NODE_CLASS (wixl_wix_property_parent_class)->accept ((WixlWixNode*) G_TYPE_CHECK_INSTANCE_CAST (self, WIXL_TYPE_WIX_ELEMENT, WixlWixElement), visitor, &_inner_error0_);
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
		g_propagate_error (error, _inner_error0_);
		return;
	}
	wixl_wix_node_visitor_visit_property (visitor, self, &_inner_error0_);
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
		g_propagate_error (error, _inner_error0_);
		return;
	}
}

WixlWixProperty*
wixl_wix_property_construct (GType object_type)
{
	WixlWixProperty * self = NULL;
	self = (WixlWixProperty*) wixl_wix_element_construct (object_type);
	return self;
}

WixlWixProperty*
wixl_wix_property_new (void)
{
	return wixl_wix_property_construct (WIXL_TYPE_WIX_PROPERTY);
}

const gchar*
wixl_wix_property_get_Value (WixlWixProperty* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Value;
	result = _tmp0_;
	return result;
}

void
wixl_wix_property_set_Value (WixlWixProperty* self,
                             const gchar* value)
{
	g_return_if_fail (self != NULL);
	if (g_strcmp0 (value, wixl_wix_property_get_Value (self)) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_Value);
		self->priv->_Value = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, wixl_wix_property_properties[WIXL_WIX_PROPERTY_VALUE_PROPERTY]);
	}
}

static void
wixl_wix_property_class_init (WixlWixPropertyClass * klass,
                              gpointer klass_data)
{
	gchar* _tmp0_;
	GHashTable* _tmp1_;
	GType* _tmp2_;
	GType* _tmp3_;
	gint _tmp3__length1;
	wixl_wix_property_parent_class = g_type_class_peek_parent (klass);
	g_type_class_adjust_private_offset (klass, &WixlWixProperty_private_offset);
	((WixlWixNodeClass *) klass)->accept = (void (*) (WixlWixNode*, WixlWixNodeVisitor*, GError**)) wixl_wix_property_real_accept;
	G_OBJECT_CLASS (klass)->get_property = _vala_wixl_wix_property_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_wixl_wix_property_set_property;
	G_OBJECT_CLASS (klass)->finalize = wixl_wix_property_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_PROPERTY_VALUE_PROPERTY, wixl_wix_property_properties[WIXL_WIX_PROPERTY_VALUE_PROPERTY] = g_param_spec_string ("Value", "Value", "Value", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	_tmp0_ = g_strdup ("Property");
	_g_free0 (WIXL_WIX_ELEMENT_CLASS (klass)->name);
	WIXL_WIX_ELEMENT_CLASS (klass)->name = _tmp0_;
	_tmp1_ = WIXL_WIX_ELEMENT_CLASS (klass)->child_types;
	_tmp2_ = g_new0 (GType, 1);
	_tmp2_[0] = WIXL_TYPE_WIX_REGISTRY_SEARCH;
	_tmp3_ = _tmp2_;
	_tmp3__length1 = 1;
	wixl_wix_element_add_child_types (WIXL_WIX_ELEMENT_CLASS (klass), _tmp1_, _tmp3_, (gint) 1);
	_tmp3_ = (g_free (_tmp3_), NULL);
}

static void
wixl_wix_property_instance_init (WixlWixProperty * self,
                                 gpointer klass)
{
	self->priv = wixl_wix_property_get_instance_private (self);
}

static void
wixl_wix_property_finalize (GObject * obj)
{
	WixlWixProperty * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, WIXL_TYPE_WIX_PROPERTY, WixlWixProperty);
	_g_free0 (self->priv->_Value);
	G_OBJECT_CLASS (wixl_wix_property_parent_class)->finalize (obj);
}

GType
wixl_wix_property_get_type (void)
{
	static volatile gsize wixl_wix_property_type_id__volatile = 0;
	if (g_once_init_enter (&wixl_wix_property_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (WixlWixPropertyClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) wixl_wix_property_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (WixlWixProperty), 0, (GInstanceInitFunc) wixl_wix_property_instance_init, NULL };
		GType wixl_wix_property_type_id;
		wixl_wix_property_type_id = g_type_register_static (WIXL_TYPE_WIX_ELEMENT, "WixlWixProperty", &g_define_type_info, 0);
		WixlWixProperty_private_offset = g_type_add_instance_private (wixl_wix_property_type_id, sizeof (WixlWixPropertyPrivate));
		g_once_init_leave (&wixl_wix_property_type_id__volatile, wixl_wix_property_type_id);
	}
	return wixl_wix_property_type_id__volatile;
}

static void
_vala_wixl_wix_property_get_property (GObject * object,
                                      guint property_id,
                                      GValue * value,
                                      GParamSpec * pspec)
{
	WixlWixProperty * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, WIXL_TYPE_WIX_PROPERTY, WixlWixProperty);
	switch (property_id) {
		case WIXL_WIX_PROPERTY_VALUE_PROPERTY:
		g_value_set_string (value, wixl_wix_property_get_Value (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static void
_vala_wixl_wix_property_set_property (GObject * object,
                                      guint property_id,
                                      const GValue * value,
                                      GParamSpec * pspec)
{
	WixlWixProperty * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, WIXL_TYPE_WIX_PROPERTY, WixlWixProperty);
	switch (property_id) {
		case WIXL_WIX_PROPERTY_VALUE_PROPERTY:
		wixl_wix_property_set_Value (self, g_value_get_string (value));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static inline gpointer
wixl_wix_package_get_instance_private (WixlWixPackage* self)
{
	return G_STRUCT_MEMBER_P (self, WixlWixPackage_private_offset);
}

static void
wixl_wix_package_real_accept (WixlWixNode* base,
                              WixlWixNodeVisitor* visitor,
                              GError** error)
{
	WixlWixPackage * self;
	GError* _inner_error0_ = NULL;
	self = (WixlWixPackage*) base;
	g_return_if_fail (visitor != NULL);
	WIXL_WIX_NODE_CLASS (wixl_wix_package_parent_class)->accept ((WixlWixNode*) G_TYPE_CHECK_INSTANCE_CAST (self, WIXL_TYPE_WIX_ELEMENT, WixlWixElement), visitor, &_inner_error0_);
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
		g_propagate_error (error, _inner_error0_);
		return;
	}
	wixl_wix_node_visitor_visit_package (visitor, self, &_inner_error0_);
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
		g_propagate_error (error, _inner_error0_);
		return;
	}
}

WixlWixPackage*
wixl_wix_package_construct (GType object_type)
{
	WixlWixPackage * self = NULL;
	self = (WixlWixPackage*) wixl_wix_element_construct (object_type);
	return self;
}

WixlWixPackage*
wixl_wix_package_new (void)
{
	return wixl_wix_package_construct (WIXL_TYPE_WIX_PACKAGE);
}

const gchar*
wixl_wix_package_get_Keywords (WixlWixPackage* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Keywords;
	result = _tmp0_;
	return result;
}

void
wixl_wix_package_set_Keywords (WixlWixPackage* self,
                               const gchar* value)
{
	g_return_if_fail (self != NULL);
	if (g_strcmp0 (value, wixl_wix_package_get_Keywords (self)) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_Keywords);
		self->priv->_Keywords = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, wixl_wix_package_properties[WIXL_WIX_PACKAGE_KEYWORDS_PROPERTY]);
	}
}

const gchar*
wixl_wix_package_get_InstallerDescription (WixlWixPackage* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_InstallerDescription;
	result = _tmp0_;
	return result;
}

void
wixl_wix_package_set_InstallerDescription (WixlWixPackage* self,
                                           const gchar* value)
{
	g_return_if_fail (self != NULL);
	if (g_strcmp0 (value, wixl_wix_package_get_InstallerDescription (self)) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_InstallerDescription);
		self->priv->_InstallerDescription = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, wixl_wix_package_properties[WIXL_WIX_PACKAGE_INSTALLER_DESCRIPTION_PROPERTY]);
	}
}

const gchar*
wixl_wix_package_get_InstallerComments (WixlWixPackage* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_InstallerComments;
	result = _tmp0_;
	return result;
}

void
wixl_wix_package_set_InstallerComments (WixlWixPackage* self,
                                        const gchar* value)
{
	g_return_if_fail (self != NULL);
	if (g_strcmp0 (value, wixl_wix_package_get_InstallerComments (self)) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_InstallerComments);
		self->priv->_InstallerComments = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, wixl_wix_package_properties[WIXL_WIX_PACKAGE_INSTALLER_COMMENTS_PROPERTY]);
	}
}

const gchar*
wixl_wix_package_get_Manufacturer (WixlWixPackage* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Manufacturer;
	result = _tmp0_;
	return result;
}

void
wixl_wix_package_set_Manufacturer (WixlWixPackage* self,
                                   const gchar* value)
{
	g_return_if_fail (self != NULL);
	if (g_strcmp0 (value, wixl_wix_package_get_Manufacturer (self)) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_Manufacturer);
		self->priv->_Manufacturer = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, wixl_wix_package_properties[WIXL_WIX_PACKAGE_MANUFACTURER_PROPERTY]);
	}
}

const gchar*
wixl_wix_package_get_InstallerVersion (WixlWixPackage* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_InstallerVersion;
	result = _tmp0_;
	return result;
}

void
wixl_wix_package_set_InstallerVersion (WixlWixPackage* self,
                                       const gchar* value)
{
	g_return_if_fail (self != NULL);
	if (g_strcmp0 (value, wixl_wix_package_get_InstallerVersion (self)) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_InstallerVersion);
		self->priv->_InstallerVersion = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, wixl_wix_package_properties[WIXL_WIX_PACKAGE_INSTALLER_VERSION_PROPERTY]);
	}
}

const gchar*
wixl_wix_package_get_Languages (WixlWixPackage* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Languages;
	result = _tmp0_;
	return result;
}

void
wixl_wix_package_set_Languages (WixlWixPackage* self,
                                const gchar* value)
{
	g_return_if_fail (self != NULL);
	if (g_strcmp0 (value, wixl_wix_package_get_Languages (self)) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_Languages);
		self->priv->_Languages = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, wixl_wix_package_properties[WIXL_WIX_PACKAGE_LANGUAGES_PROPERTY]);
	}
}

const gchar*
wixl_wix_package_get_Compressed (WixlWixPackage* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Compressed;
	result = _tmp0_;
	return result;
}

void
wixl_wix_package_set_Compressed (WixlWixPackage* self,
                                 const gchar* value)
{
	g_return_if_fail (self != NULL);
	if (g_strcmp0 (value, wixl_wix_package_get_Compressed (self)) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_Compressed);
		self->priv->_Compressed = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, wixl_wix_package_properties[WIXL_WIX_PACKAGE_COMPRESSED_PROPERTY]);
	}
}

const gchar*
wixl_wix_package_get_SummaryCodepage (WixlWixPackage* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_SummaryCodepage;
	result = _tmp0_;
	return result;
}

void
wixl_wix_package_set_SummaryCodepage (WixlWixPackage* self,
                                      const gchar* value)
{
	g_return_if_fail (self != NULL);
	if (g_strcmp0 (value, wixl_wix_package_get_SummaryCodepage (self)) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_SummaryCodepage);
		self->priv->_SummaryCodepage = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, wixl_wix_package_properties[WIXL_WIX_PACKAGE_SUMMARY_CODEPAGE_PROPERTY]);
	}
}

const gchar*
wixl_wix_package_get_Comments (WixlWixPackage* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Comments;
	result = _tmp0_;
	return result;
}

void
wixl_wix_package_set_Comments (WixlWixPackage* self,
                               const gchar* value)
{
	g_return_if_fail (self != NULL);
	if (g_strcmp0 (value, wixl_wix_package_get_Comments (self)) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_Comments);
		self->priv->_Comments = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, wixl_wix_package_properties[WIXL_WIX_PACKAGE_COMMENTS_PROPERTY]);
	}
}

const gchar*
wixl_wix_package_get_Description (WixlWixPackage* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Description;
	result = _tmp0_;
	return result;
}

void
wixl_wix_package_set_Description (WixlWixPackage* self,
                                  const gchar* value)
{
	g_return_if_fail (self != NULL);
	if (g_strcmp0 (value, wixl_wix_package_get_Description (self)) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_Description);
		self->priv->_Description = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, wixl_wix_package_properties[WIXL_WIX_PACKAGE_DESCRIPTION_PROPERTY]);
	}
}

const gchar*
wixl_wix_package_get_InstallScope (WixlWixPackage* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_InstallScope;
	result = _tmp0_;
	return result;
}

void
wixl_wix_package_set_InstallScope (WixlWixPackage* self,
                                   const gchar* value)
{
	g_return_if_fail (self != NULL);
	if (g_strcmp0 (value, wixl_wix_package_get_InstallScope (self)) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_InstallScope);
		self->priv->_InstallScope = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, wixl_wix_package_properties[WIXL_WIX_PACKAGE_INSTALL_SCOPE_PROPERTY]);
	}
}

static void
wixl_wix_package_class_init (WixlWixPackageClass * klass,
                             gpointer klass_data)
{
	gchar* _tmp0_;
	wixl_wix_package_parent_class = g_type_class_peek_parent (klass);
	g_type_class_adjust_private_offset (klass, &WixlWixPackage_private_offset);
	((WixlWixNodeClass *) klass)->accept = (void (*) (WixlWixNode*, WixlWixNodeVisitor*, GError**)) wixl_wix_package_real_accept;
	G_OBJECT_CLASS (klass)->get_property = _vala_wixl_wix_package_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_wixl_wix_package_set_property;
	G_OBJECT_CLASS (klass)->finalize = wixl_wix_package_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_PACKAGE_KEYWORDS_PROPERTY, wixl_wix_package_properties[WIXL_WIX_PACKAGE_KEYWORDS_PROPERTY] = g_param_spec_string ("Keywords", "Keywords", "Keywords", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_PACKAGE_INSTALLER_DESCRIPTION_PROPERTY, wixl_wix_package_properties[WIXL_WIX_PACKAGE_INSTALLER_DESCRIPTION_PROPERTY] = g_param_spec_string ("InstallerDescription", "InstallerDescription", "InstallerDescription", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_PACKAGE_INSTALLER_COMMENTS_PROPERTY, wixl_wix_package_properties[WIXL_WIX_PACKAGE_INSTALLER_COMMENTS_PROPERTY] = g_param_spec_string ("InstallerComments", "InstallerComments", "InstallerComments", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_PACKAGE_MANUFACTURER_PROPERTY, wixl_wix_package_properties[WIXL_WIX_PACKAGE_MANUFACTURER_PROPERTY] = g_param_spec_string ("Manufacturer", "Manufacturer", "Manufacturer", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_PACKAGE_INSTALLER_VERSION_PROPERTY, wixl_wix_package_properties[WIXL_WIX_PACKAGE_INSTALLER_VERSION_PROPERTY] = g_param_spec_string ("InstallerVersion", "InstallerVersion", "InstallerVersion", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_PACKAGE_LANGUAGES_PROPERTY, wixl_wix_package_properties[WIXL_WIX_PACKAGE_LANGUAGES_PROPERTY] = g_param_spec_string ("Languages", "Languages", "Languages", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_PACKAGE_COMPRESSED_PROPERTY, wixl_wix_package_properties[WIXL_WIX_PACKAGE_COMPRESSED_PROPERTY] = g_param_spec_string ("Compressed", "Compressed", "Compressed", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_PACKAGE_SUMMARY_CODEPAGE_PROPERTY, wixl_wix_package_properties[WIXL_WIX_PACKAGE_SUMMARY_CODEPAGE_PROPERTY] = g_param_spec_string ("SummaryCodepage", "SummaryCodepage", "SummaryCodepage", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_PACKAGE_COMMENTS_PROPERTY, wixl_wix_package_properties[WIXL_WIX_PACKAGE_COMMENTS_PROPERTY] = g_param_spec_string ("Comments", "Comments", "Comments", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_PACKAGE_DESCRIPTION_PROPERTY, wixl_wix_package_properties[WIXL_WIX_PACKAGE_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), WIXL_WIX_PACKAGE_INSTALL_SCOPE_PROPERTY, wixl_wix_package_properties[WIXL_WIX_PACKAGE_INSTALL_SCOPE_PROPERTY] = g_param_spec_string ("InstallScope", "InstallScope", "InstallScope", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	_tmp0_ = g_strdup ("Package");
	_g_free0 (WIXL_WIX_ELEMENT_CLASS (klass)->name);
	WIXL_WIX_ELEMENT_CLASS (klass)->name = _tmp0_;
}

static void
wixl_wix_package_instance_init (WixlWixPackage * self,
                                gpointer klass)
{
	self->priv = wixl_wix_package_get_instance_private (self);
}

static void
wixl_wix_package_finalize (GObject * obj)
{
	WixlWixPackage * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, WIXL_TYPE_WIX_PACKAGE, WixlWixPackage);
	_g_free0 (self->priv->_Keywords);
	_g_free0 (self->priv->_InstallerDescription);
	_g_free0 (self->priv->_InstallerComments);
	_g_free0 (self->priv->_Manufacturer);
	_g_free0 (self->priv->_InstallerVersion);
	_g_free0 (self->priv->_Languages);
	_g_free0 (self->priv->_Compressed);
	_g_free0 (self->priv->_SummaryCodepage);
	_g_free0 (self->priv->_Comments);
	_g_free0 (self->priv->_Description);
	_g_free0 (self->priv->_InstallScope);
	G_OBJECT_CLASS (wixl_wix_package_parent_class)->finalize (obj);
}

GType
wixl_wix_package_get_type (void)
{
	static volatile gsize wixl_wix_package_type_id__volatile = 0;
	if (g_once_init_enter (&wixl_wix_package_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (WixlWixPackageClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) wixl_wix_package_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (WixlWixPackage), 0, (GInstanceInitFunc) wixl_wix_package_instance_init, NULL };
		GType wixl_wix_package_type_id;
		wixl_wix_package_type_id = g_type_register_static (WIXL_TYPE_WIX_ELEMENT, "WixlWixPackage", &g_define_type_info, 0);
		WixlWixPackage_private_offset = g_type_add_instance_private (wixl_wix_package_type_id, sizeof (WixlWixPackagePrivate));
		g_once_init_leave (&wixl_wix_package_type_id__volatile, wixl_wix_package_type_id);
	}
	return wixl_wix_package_type_id__volatile;
}

static void
_vala_wixl_wix_package_get_property (GObject * object,
                                     guint property_id,
                                     GValue * value,
                                     GParamSpec * pspec)
{
	WixlWixPackage * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, WIXL_TYPE_WIX_PACKAGE, WixlWixPackage);
	switch (property_id) {
		case WIXL_WIX_PACKAGE_KEYWORDS_PROPERTY:
		g_value_set_string (value, wixl_wix_package_get_Keywords (self));
		break;
		case WIXL_WIX_PACKAGE_INSTALLER_DESCRIPTION_PROPERTY:
		g_value_set_string (value, wixl_wix_package_get_InstallerDescription (self));
		break;
		case WIXL_WIX_PACKAGE_INSTALLER_COMMENTS_PROPERTY:
		g_value_set_string (value, wixl_wix_package_get_InstallerComments (self));
		break;
		case WIXL_WIX_PACKAGE_MANUFACTURER_PROPERTY:
		g_value_set_string (value, wixl_wix_package_get_Manufacturer (self));
		break;
		case WIXL_WIX_PACKAGE_INSTALLER_VERSION_PROPERTY:
		g_value_set_string (value, wixl_wix_package_get_InstallerVersion (self));
		break;
		case WIXL_WIX_PACKAGE_LANGUAGES_PROPERTY:
		g_value_set_string (value, wixl_wix_package_get_Languages (self));
		break;
		case WIXL_WIX_PACKAGE_COMPRESSED_PROPERTY:
		g_value_set_string (value, wixl_wix_package_get_Compressed (self));
		break;
		case WIXL_WIX_PACKAGE_SUMMARY_CODEPAGE_PROPERTY:
		g_value_set_string (value, wixl_wix_package_get_SummaryCodepage (self));
		break;
		case WIXL_WIX_PACKAGE_COMMENTS_PROPERTY:
		g_value_set_string (value, wixl_wix_package_get_Comments (self));
		break;
		case WIXL_WIX_PACKAGE_DESCRIPTION_PROPERTY:
		g_value_set_string (value, wixl_wix_package_get_Description (self));
		break;
		case WIXL_WIX_PACKAGE_INSTALL_SCOPE_PROPERTY:
		g_value_set_string (value, wixl_wix_package_get_InstallScope (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static void
_vala_wixl_wix_package_set_property (GObject * object,
                                     guint property_id,
                                     const GValue * value,
                                     GParamSpec * pspec)
{
	WixlWixPackage * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, WIXL_TYPE_WIX_PACKAGE, WixlWixPackage);
	switch (property_id) {
		case WIXL_WIX_PACKAGE_KEYWORDS_PROPERTY:
		wixl_wix_package_set_Keywords (self, g_value_get_string (value));
		break;
		case WIXL_WIX_PACKAGE_INSTALLER_DESCRIPTION_PROPERTY:
		wixl_wix_package_set_InstallerDescription (self, g_value_get_string (value));
		break;
		case WIXL_WIX_PACKAGE_INSTALLER_COMMENTS_PROPERTY:
		wixl_wix_package_set_InstallerComments (self, g_value_get_string (value));
		break;
		case WIXL_WIX_PACKAGE_MANUFACTURER_PROPERTY:
		wixl_wix_package_set_Manufacturer (self, g_value_get_string (value));
		break;
		case WIXL_WIX_PACKAGE_INSTALLER_VERSION_PROPERTY:
		wixl_wix_package_set_InstallerVersion (self, g_value_get_string (value));
		break;
		case WIXL_WIX_PACKAGE_LANGUAGES_PROPERTY:
		wixl_wix_package_set_Languages (self, g_value_get_string (value));
		break;
		case WIXL_WIX_PACKAGE_COMPRESSED_PROPERTY:
		wixl_wix_package_set_Compressed (self, g_value_get_string (value));
		break;
		case WIXL_WIX_PACKAGE_SUMMARY_CODEPAGE_PROPERTY:
		wixl_wix_package_set_SummaryCodepage (self, g_value_get_string (value));
		break;
		case WIXL_WIX_PACKAGE_COMMENTS_PROPERTY:
		wixl_wix_package_set_Comments (self, g_value_get_string (value));
		break;
		case WIXL_WIX_PACKAGE_DESCRIPTION_PROPERTY:
		wixl_wix_package_set_Description (self, g_value_get_string (value));
		break;
		case WIXL_WIX_PACKAGE_INSTALL_SCOPE_PROPERTY:
		wixl_wix_package_set_InstallScope (self, g_value_get_string (value));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static inline gpointer
wixl_wix_create_folder_get_instance_private (WixlWixCreateFolder* self)
{
	return G_STRUCT_MEMBER_P (self, WixlWixCreateFolder_private_offset);
}

static void
wixl_wix_create_folder_real_accept (WixlWixNode* base,
                                    WixlWixNodeVisitor* visitor,
                                    GError** error)
{
	WixlWixCreateFolder * self;
	GError* _inner_error0_ = NULL;
	self = (WixlWixCreateFolder*) base;
	g_return_if_fail (visitor != NULL);
	wixl_wix_node_visitor_visit_create_folder (visitor, self, &_inner_error0_);
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
		g_propagate_error (error, _inner_error0_);
		return;
	}
}

WixlWixCreateFolder*
wixl_wix_create_folder_construct (GType object_type)
{
	WixlWixCreateFolder * self = NULL;
	self = (WixlWixCreateFolder*) wixl_wix_element_construct (object_type);
	return self;
}

WixlWixCreateFolder*
wixl_wix_create_folder_new (void)
{
	return wixl_wix_create_folder_construct (WIXL_TYPE_WIX_CREATE_FOLDER);
}

const gchar*
wixl_wix_create_folder_get_Directory (WixlWixCreateFolder* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Directory;
	result = _tmp0_;
	return result;
}

void
wixl_wix_create_folder_set_Directory (WixlWixCreateFolder* self,
                                      const gchar* value)
{
	g_return_if_fail (self != NULL);
	if (g_strcmp0 (value, wixl_wix_create_folder_get_Directory (self)) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_Directory);
		self->priv->_Directory = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, wixl_wix_create_folder_properties[WIXL_WIX_CREATE_FOLDER_DIRECTORY_PROPERTY]);
	}
}

static void
wixl_wix_create_folder_class_init (WixlWixCreateFolderClass * klass,
                                   gpointer klass_data)
{
	gchar* _tmp0_;
	wixl_wix_create_folder_parent_class = g_type_class_peek_parent (klass);
	g_type_class_adjust_private_offset (klass, &WixlWixCreateFolder_private_offset);
	((WixlWixNodeClass *) klass)->accept = (void (*) (WixlWixNode*, WixlWixNodeVisitor*, GError**)) wixl_wix_create_folder_real_accept;
	G_OBJECT_CLASS (klass)->get_property = _vala_wixl_wix_create_folder_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_wixl_wix_create_folder_set_property;
	G_OBJECT_CLASS (klass)->finalize = wixl_wix_create_folder_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_CREATE_FOLDER_DIRECTORY_PROPERTY, wixl_wix_create_folder_properties[WIXL_WIX_CREATE_FOLDER_DIRECTORY_PROPERTY] = g_param_spec_string ("Directory", "Directory", "Directory", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	_tmp0_ = g_strdup ("CreateFolder");
	_g_free0 (WIXL_WIX_ELEMENT_CLASS (klass)->name);
	WIXL_WIX_ELEMENT_CLASS (klass)->name = _tmp0_;
}

static void
wixl_wix_create_folder_instance_init (WixlWixCreateFolder * self,
                                      gpointer klass)
{
	self->priv = wixl_wix_create_folder_get_instance_private (self);
}

static void
wixl_wix_create_folder_finalize (GObject * obj)
{
	WixlWixCreateFolder * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, WIXL_TYPE_WIX_CREATE_FOLDER, WixlWixCreateFolder);
	_g_free0 (self->priv->_Directory);
	G_OBJECT_CLASS (wixl_wix_create_folder_parent_class)->finalize (obj);
}

GType
wixl_wix_create_folder_get_type (void)
{
	static volatile gsize wixl_wix_create_folder_type_id__volatile = 0;
	if (g_once_init_enter (&wixl_wix_create_folder_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (WixlWixCreateFolderClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) wixl_wix_create_folder_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (WixlWixCreateFolder), 0, (GInstanceInitFunc) wixl_wix_create_folder_instance_init, NULL };
		GType wixl_wix_create_folder_type_id;
		wixl_wix_create_folder_type_id = g_type_register_static (WIXL_TYPE_WIX_ELEMENT, "WixlWixCreateFolder", &g_define_type_info, 0);
		WixlWixCreateFolder_private_offset = g_type_add_instance_private (wixl_wix_create_folder_type_id, sizeof (WixlWixCreateFolderPrivate));
		g_once_init_leave (&wixl_wix_create_folder_type_id__volatile, wixl_wix_create_folder_type_id);
	}
	return wixl_wix_create_folder_type_id__volatile;
}

static void
_vala_wixl_wix_create_folder_get_property (GObject * object,
                                           guint property_id,
                                           GValue * value,
                                           GParamSpec * pspec)
{
	WixlWixCreateFolder * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, WIXL_TYPE_WIX_CREATE_FOLDER, WixlWixCreateFolder);
	switch (property_id) {
		case WIXL_WIX_CREATE_FOLDER_DIRECTORY_PROPERTY:
		g_value_set_string (value, wixl_wix_create_folder_get_Directory (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static void
_vala_wixl_wix_create_folder_set_property (GObject * object,
                                           guint property_id,
                                           const GValue * value,
                                           GParamSpec * pspec)
{
	WixlWixCreateFolder * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, WIXL_TYPE_WIX_CREATE_FOLDER, WixlWixCreateFolder);
	switch (property_id) {
		case WIXL_WIX_CREATE_FOLDER_DIRECTORY_PROPERTY:
		wixl_wix_create_folder_set_Directory (self, g_value_get_string (value));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static inline gpointer
wixl_wix_icon_get_instance_private (WixlWixIcon* self)
{
	return G_STRUCT_MEMBER_P (self, WixlWixIcon_private_offset);
}

static void
wixl_wix_icon_real_accept (WixlWixNode* base,
                           WixlWixNodeVisitor* visitor,
                           GError** error)
{
	WixlWixIcon * self;
	GError* _inner_error0_ = NULL;
	self = (WixlWixIcon*) base;
	g_return_if_fail (visitor != NULL);
	wixl_wix_node_visitor_visit_icon (visitor, self, &_inner_error0_);
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
		g_propagate_error (error, _inner_error0_);
		return;
	}
}

WixlWixIcon*
wixl_wix_icon_construct (GType object_type)
{
	WixlWixIcon * self = NULL;
	self = (WixlWixIcon*) wixl_wix_element_construct (object_type);
	return self;
}

WixlWixIcon*
wixl_wix_icon_new (void)
{
	return wixl_wix_icon_construct (WIXL_TYPE_WIX_ICON);
}

const gchar*
wixl_wix_icon_get_SourceFile (WixlWixIcon* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_SourceFile;
	result = _tmp0_;
	return result;
}

void
wixl_wix_icon_set_SourceFile (WixlWixIcon* self,
                              const gchar* value)
{
	g_return_if_fail (self != NULL);
	if (g_strcmp0 (value, wixl_wix_icon_get_SourceFile (self)) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_SourceFile);
		self->priv->_SourceFile = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, wixl_wix_icon_properties[WIXL_WIX_ICON_SOURCE_FILE_PROPERTY]);
	}
}

static void
wixl_wix_icon_class_init (WixlWixIconClass * klass,
                          gpointer klass_data)
{
	gchar* _tmp0_;
	wixl_wix_icon_parent_class = g_type_class_peek_parent (klass);
	g_type_class_adjust_private_offset (klass, &WixlWixIcon_private_offset);
	((WixlWixNodeClass *) klass)->accept = (void (*) (WixlWixNode*, WixlWixNodeVisitor*, GError**)) wixl_wix_icon_real_accept;
	G_OBJECT_CLASS (klass)->get_property = _vala_wixl_wix_icon_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_wixl_wix_icon_set_property;
	G_OBJECT_CLASS (klass)->finalize = wixl_wix_icon_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_ICON_SOURCE_FILE_PROPERTY, wixl_wix_icon_properties[WIXL_WIX_ICON_SOURCE_FILE_PROPERTY] = g_param_spec_string ("SourceFile", "SourceFile", "SourceFile", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	_tmp0_ = g_strdup ("Icon");
	_g_free0 (WIXL_WIX_ELEMENT_CLASS (klass)->name);
	WIXL_WIX_ELEMENT_CLASS (klass)->name = _tmp0_;
}

static void
wixl_wix_icon_instance_init (WixlWixIcon * self,
                             gpointer klass)
{
	self->priv = wixl_wix_icon_get_instance_private (self);
}

static void
wixl_wix_icon_finalize (GObject * obj)
{
	WixlWixIcon * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, WIXL_TYPE_WIX_ICON, WixlWixIcon);
	_g_free0 (self->priv->_SourceFile);
	_g_object_unref0 (self->file);
	G_OBJECT_CLASS (wixl_wix_icon_parent_class)->finalize (obj);
}

GType
wixl_wix_icon_get_type (void)
{
	static volatile gsize wixl_wix_icon_type_id__volatile = 0;
	if (g_once_init_enter (&wixl_wix_icon_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (WixlWixIconClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) wixl_wix_icon_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (WixlWixIcon), 0, (GInstanceInitFunc) wixl_wix_icon_instance_init, NULL };
		GType wixl_wix_icon_type_id;
		wixl_wix_icon_type_id = g_type_register_static (WIXL_TYPE_WIX_ELEMENT, "WixlWixIcon", &g_define_type_info, 0);
		WixlWixIcon_private_offset = g_type_add_instance_private (wixl_wix_icon_type_id, sizeof (WixlWixIconPrivate));
		g_once_init_leave (&wixl_wix_icon_type_id__volatile, wixl_wix_icon_type_id);
	}
	return wixl_wix_icon_type_id__volatile;
}

static void
_vala_wixl_wix_icon_get_property (GObject * object,
                                  guint property_id,
                                  GValue * value,
                                  GParamSpec * pspec)
{
	WixlWixIcon * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, WIXL_TYPE_WIX_ICON, WixlWixIcon);
	switch (property_id) {
		case WIXL_WIX_ICON_SOURCE_FILE_PROPERTY:
		g_value_set_string (value, wixl_wix_icon_get_SourceFile (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static void
_vala_wixl_wix_icon_set_property (GObject * object,
                                  guint property_id,
                                  const GValue * value,
                                  GParamSpec * pspec)
{
	WixlWixIcon * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, WIXL_TYPE_WIX_ICON, WixlWixIcon);
	switch (property_id) {
		case WIXL_WIX_ICON_SOURCE_FILE_PROPERTY:
		wixl_wix_icon_set_SourceFile (self, g_value_get_string (value));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static inline gpointer
wixl_wix_shortcut_get_instance_private (WixlWixShortcut* self)
{
	return G_STRUCT_MEMBER_P (self, WixlWixShortcut_private_offset);
}

WixlWixComponent*
wixl_wix_shortcut_get_component (WixlWixShortcut* self)
{
	gboolean _tmp0_ = FALSE;
	WixlWixElement* _tmp1_;
	WixlWixComponent* result = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp1_ = ((WixlWixNode*) self)->parent;
	if (WIXL_IS_WIX_FILE (_tmp1_)) {
		_tmp0_ = TRUE;
	} else {
		WixlWixElement* _tmp2_;
		_tmp2_ = ((WixlWixNode*) self)->parent;
		_tmp0_ = WIXL_IS_WIX_CREATE_FOLDER (_tmp2_);
	}
	if (_tmp0_) {
		WixlWixElement* _tmp3_;
		WixlWixElement* _tmp4_;
		WixlWixComponent* _tmp5_;
		_tmp3_ = ((WixlWixNode*) self)->parent;
		_tmp4_ = ((WixlWixNode*) _tmp3_)->parent;
		_tmp5_ = _g_object_ref0 (WIXL_IS_WIX_COMPONENT (_tmp4_) ? ((WixlWixComponent*) _tmp4_) : NULL);
		result = _tmp5_;
		return result;
	} else {
		WixlWixElement* _tmp6_;
		WixlWixComponent* _tmp7_;
		_tmp6_ = ((WixlWixNode*) self)->parent;
		_tmp7_ = _g_object_ref0 (WIXL_IS_WIX_COMPONENT (_tmp6_) ? ((WixlWixComponent*) _tmp6_) : NULL);
		result = _tmp7_;
		return result;
	}
}

static void
wixl_wix_shortcut_real_accept (WixlWixNode* base,
                               WixlWixNodeVisitor* visitor,
                               GError** error)
{
	WixlWixShortcut * self;
	GError* _inner_error0_ = NULL;
	self = (WixlWixShortcut*) base;
	g_return_if_fail (visitor != NULL);
	wixl_wix_node_visitor_visit_shortcut (visitor, self, &_inner_error0_);
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
		g_propagate_error (error, _inner_error0_);
		return;
	}
}

WixlWixShortcut*
wixl_wix_shortcut_construct (GType object_type)
{
	WixlWixShortcut * self = NULL;
	self = (WixlWixShortcut*) wixl_wix_element_construct (object_type);
	return self;
}

WixlWixShortcut*
wixl_wix_shortcut_new (void)
{
	return wixl_wix_shortcut_construct (WIXL_TYPE_WIX_SHORTCUT);
}

const gchar*
wixl_wix_shortcut_get_Directory (WixlWixShortcut* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Directory;
	result = _tmp0_;
	return result;
}

void
wixl_wix_shortcut_set_Directory (WixlWixShortcut* self,
                                 const gchar* value)
{
	g_return_if_fail (self != NULL);
	if (g_strcmp0 (value, wixl_wix_shortcut_get_Directory (self)) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_Directory);
		self->priv->_Directory = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, wixl_wix_shortcut_properties[WIXL_WIX_SHORTCUT_DIRECTORY_PROPERTY]);
	}
}

const gchar*
wixl_wix_shortcut_get_Name (WixlWixShortcut* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Name;
	result = _tmp0_;
	return result;
}

void
wixl_wix_shortcut_set_Name (WixlWixShortcut* self,
                            const gchar* value)
{
	g_return_if_fail (self != NULL);
	if (g_strcmp0 (value, wixl_wix_shortcut_get_Name (self)) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_Name);
		self->priv->_Name = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, wixl_wix_shortcut_properties[WIXL_WIX_SHORTCUT_NAME_PROPERTY]);
	}
}

const gchar*
wixl_wix_shortcut_get_IconIndex (WixlWixShortcut* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_IconIndex;
	result = _tmp0_;
	return result;
}

void
wixl_wix_shortcut_set_IconIndex (WixlWixShortcut* self,
                                 const gchar* value)
{
	g_return_if_fail (self != NULL);
	if (g_strcmp0 (value, wixl_wix_shortcut_get_IconIndex (self)) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_IconIndex);
		self->priv->_IconIndex = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, wixl_wix_shortcut_properties[WIXL_WIX_SHORTCUT_ICON_INDEX_PROPERTY]);
	}
}

const gchar*
wixl_wix_shortcut_get_WorkingDirectory (WixlWixShortcut* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_WorkingDirectory;
	result = _tmp0_;
	return result;
}

void
wixl_wix_shortcut_set_WorkingDirectory (WixlWixShortcut* self,
                                        const gchar* value)
{
	g_return_if_fail (self != NULL);
	if (g_strcmp0 (value, wixl_wix_shortcut_get_WorkingDirectory (self)) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_WorkingDirectory);
		self->priv->_WorkingDirectory = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, wixl_wix_shortcut_properties[WIXL_WIX_SHORTCUT_WORKING_DIRECTORY_PROPERTY]);
	}
}

const gchar*
wixl_wix_shortcut_get_Icon (WixlWixShortcut* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Icon;
	result = _tmp0_;
	return result;
}

void
wixl_wix_shortcut_set_Icon (WixlWixShortcut* self,
                            const gchar* value)
{
	g_return_if_fail (self != NULL);
	if (g_strcmp0 (value, wixl_wix_shortcut_get_Icon (self)) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_Icon);
		self->priv->_Icon = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, wixl_wix_shortcut_properties[WIXL_WIX_SHORTCUT_ICON_PROPERTY]);
	}
}

const gchar*
wixl_wix_shortcut_get_Advertise (WixlWixShortcut* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Advertise;
	result = _tmp0_;
	return result;
}

void
wixl_wix_shortcut_set_Advertise (WixlWixShortcut* self,
                                 const gchar* value)
{
	g_return_if_fail (self != NULL);
	if (g_strcmp0 (value, wixl_wix_shortcut_get_Advertise (self)) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_Advertise);
		self->priv->_Advertise = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, wixl_wix_shortcut_properties[WIXL_WIX_SHORTCUT_ADVERTISE_PROPERTY]);
	}
}

const gchar*
wixl_wix_shortcut_get_Arguments (WixlWixShortcut* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Arguments;
	result = _tmp0_;
	return result;
}

void
wixl_wix_shortcut_set_Arguments (WixlWixShortcut* self,
                                 const gchar* value)
{
	g_return_if_fail (self != NULL);
	if (g_strcmp0 (value, wixl_wix_shortcut_get_Arguments (self)) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_Arguments);
		self->priv->_Arguments = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, wixl_wix_shortcut_properties[WIXL_WIX_SHORTCUT_ARGUMENTS_PROPERTY]);
	}
}

const gchar*
wixl_wix_shortcut_get_Description (WixlWixShortcut* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Description;
	result = _tmp0_;
	return result;
}

void
wixl_wix_shortcut_set_Description (WixlWixShortcut* self,
                                   const gchar* value)
{
	g_return_if_fail (self != NULL);
	if (g_strcmp0 (value, wixl_wix_shortcut_get_Description (self)) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_Description);
		self->priv->_Description = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, wixl_wix_shortcut_properties[WIXL_WIX_SHORTCUT_DESCRIPTION_PROPERTY]);
	}
}

const gchar*
wixl_wix_shortcut_get_Target (WixlWixShortcut* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Target;
	result = _tmp0_;
	return result;
}

void
wixl_wix_shortcut_set_Target (WixlWixShortcut* self,
                              const gchar* value)
{
	g_return_if_fail (self != NULL);
	if (g_strcmp0 (value, wixl_wix_shortcut_get_Target (self)) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_Target);
		self->priv->_Target = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, wixl_wix_shortcut_properties[WIXL_WIX_SHORTCUT_TARGET_PROPERTY]);
	}
}

static void
wixl_wix_shortcut_class_init (WixlWixShortcutClass * klass,
                              gpointer klass_data)
{
	gchar* _tmp0_;
	wixl_wix_shortcut_parent_class = g_type_class_peek_parent (klass);
	g_type_class_adjust_private_offset (klass, &WixlWixShortcut_private_offset);
	((WixlWixNodeClass *) klass)->accept = (void (*) (WixlWixNode*, WixlWixNodeVisitor*, GError**)) wixl_wix_shortcut_real_accept;
	G_OBJECT_CLASS (klass)->get_property = _vala_wixl_wix_shortcut_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_wixl_wix_shortcut_set_property;
	G_OBJECT_CLASS (klass)->finalize = wixl_wix_shortcut_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_SHORTCUT_DIRECTORY_PROPERTY, wixl_wix_shortcut_properties[WIXL_WIX_SHORTCUT_DIRECTORY_PROPERTY] = g_param_spec_string ("Directory", "Directory", "Directory", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_SHORTCUT_NAME_PROPERTY, wixl_wix_shortcut_properties[WIXL_WIX_SHORTCUT_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), WIXL_WIX_SHORTCUT_ICON_INDEX_PROPERTY, wixl_wix_shortcut_properties[WIXL_WIX_SHORTCUT_ICON_INDEX_PROPERTY] = g_param_spec_string ("IconIndex", "IconIndex", "IconIndex", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_SHORTCUT_WORKING_DIRECTORY_PROPERTY, wixl_wix_shortcut_properties[WIXL_WIX_SHORTCUT_WORKING_DIRECTORY_PROPERTY] = g_param_spec_string ("WorkingDirectory", "WorkingDirectory", "WorkingDirectory", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_SHORTCUT_ICON_PROPERTY, wixl_wix_shortcut_properties[WIXL_WIX_SHORTCUT_ICON_PROPERTY] = g_param_spec_string ("Icon", "Icon", "Icon", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_SHORTCUT_ADVERTISE_PROPERTY, wixl_wix_shortcut_properties[WIXL_WIX_SHORTCUT_ADVERTISE_PROPERTY] = g_param_spec_string ("Advertise", "Advertise", "Advertise", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_SHORTCUT_ARGUMENTS_PROPERTY, wixl_wix_shortcut_properties[WIXL_WIX_SHORTCUT_ARGUMENTS_PROPERTY] = g_param_spec_string ("Arguments", "Arguments", "Arguments", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_SHORTCUT_DESCRIPTION_PROPERTY, wixl_wix_shortcut_properties[WIXL_WIX_SHORTCUT_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), WIXL_WIX_SHORTCUT_TARGET_PROPERTY, wixl_wix_shortcut_properties[WIXL_WIX_SHORTCUT_TARGET_PROPERTY] = g_param_spec_string ("Target", "Target", "Target", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	_tmp0_ = g_strdup ("Shortcut");
	_g_free0 (WIXL_WIX_ELEMENT_CLASS (klass)->name);
	WIXL_WIX_ELEMENT_CLASS (klass)->name = _tmp0_;
}

static void
wixl_wix_shortcut_instance_init (WixlWixShortcut * self,
                                 gpointer klass)
{
	self->priv = wixl_wix_shortcut_get_instance_private (self);
}

static void
wixl_wix_shortcut_finalize (GObject * obj)
{
	WixlWixShortcut * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, WIXL_TYPE_WIX_SHORTCUT, WixlWixShortcut);
	_g_free0 (self->priv->_Directory);
	_g_free0 (self->priv->_Name);
	_g_free0 (self->priv->_IconIndex);
	_g_free0 (self->priv->_WorkingDirectory);
	_g_free0 (self->priv->_Icon);
	_g_free0 (self->priv->_Advertise);
	_g_free0 (self->priv->_Arguments);
	_g_free0 (self->priv->_Description);
	_g_free0 (self->priv->_Target);
	_g_object_unref0 (self->record);
	G_OBJECT_CLASS (wixl_wix_shortcut_parent_class)->finalize (obj);
}

GType
wixl_wix_shortcut_get_type (void)
{
	static volatile gsize wixl_wix_shortcut_type_id__volatile = 0;
	if (g_once_init_enter (&wixl_wix_shortcut_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (WixlWixShortcutClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) wixl_wix_shortcut_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (WixlWixShortcut), 0, (GInstanceInitFunc) wixl_wix_shortcut_instance_init, NULL };
		GType wixl_wix_shortcut_type_id;
		wixl_wix_shortcut_type_id = g_type_register_static (WIXL_TYPE_WIX_ELEMENT, "WixlWixShortcut", &g_define_type_info, 0);
		WixlWixShortcut_private_offset = g_type_add_instance_private (wixl_wix_shortcut_type_id, sizeof (WixlWixShortcutPrivate));
		g_once_init_leave (&wixl_wix_shortcut_type_id__volatile, wixl_wix_shortcut_type_id);
	}
	return wixl_wix_shortcut_type_id__volatile;
}

static void
_vala_wixl_wix_shortcut_get_property (GObject * object,
                                      guint property_id,
                                      GValue * value,
                                      GParamSpec * pspec)
{
	WixlWixShortcut * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, WIXL_TYPE_WIX_SHORTCUT, WixlWixShortcut);
	switch (property_id) {
		case WIXL_WIX_SHORTCUT_DIRECTORY_PROPERTY:
		g_value_set_string (value, wixl_wix_shortcut_get_Directory (self));
		break;
		case WIXL_WIX_SHORTCUT_NAME_PROPERTY:
		g_value_set_string (value, wixl_wix_shortcut_get_Name (self));
		break;
		case WIXL_WIX_SHORTCUT_ICON_INDEX_PROPERTY:
		g_value_set_string (value, wixl_wix_shortcut_get_IconIndex (self));
		break;
		case WIXL_WIX_SHORTCUT_WORKING_DIRECTORY_PROPERTY:
		g_value_set_string (value, wixl_wix_shortcut_get_WorkingDirectory (self));
		break;
		case WIXL_WIX_SHORTCUT_ICON_PROPERTY:
		g_value_set_string (value, wixl_wix_shortcut_get_Icon (self));
		break;
		case WIXL_WIX_SHORTCUT_ADVERTISE_PROPERTY:
		g_value_set_string (value, wixl_wix_shortcut_get_Advertise (self));
		break;
		case WIXL_WIX_SHORTCUT_ARGUMENTS_PROPERTY:
		g_value_set_string (value, wixl_wix_shortcut_get_Arguments (self));
		break;
		case WIXL_WIX_SHORTCUT_DESCRIPTION_PROPERTY:
		g_value_set_string (value, wixl_wix_shortcut_get_Description (self));
		break;
		case WIXL_WIX_SHORTCUT_TARGET_PROPERTY:
		g_value_set_string (value, wixl_wix_shortcut_get_Target (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static void
_vala_wixl_wix_shortcut_set_property (GObject * object,
                                      guint property_id,
                                      const GValue * value,
                                      GParamSpec * pspec)
{
	WixlWixShortcut * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, WIXL_TYPE_WIX_SHORTCUT, WixlWixShortcut);
	switch (property_id) {
		case WIXL_WIX_SHORTCUT_DIRECTORY_PROPERTY:
		wixl_wix_shortcut_set_Directory (self, g_value_get_string (value));
		break;
		case WIXL_WIX_SHORTCUT_NAME_PROPERTY:
		wixl_wix_shortcut_set_Name (self, g_value_get_string (value));
		break;
		case WIXL_WIX_SHORTCUT_ICON_INDEX_PROPERTY:
		wixl_wix_shortcut_set_IconIndex (self, g_value_get_string (value));
		break;
		case WIXL_WIX_SHORTCUT_WORKING_DIRECTORY_PROPERTY:
		wixl_wix_shortcut_set_WorkingDirectory (self, g_value_get_string (value));
		break;
		case WIXL_WIX_SHORTCUT_ICON_PROPERTY:
		wixl_wix_shortcut_set_Icon (self, g_value_get_string (value));
		break;
		case WIXL_WIX_SHORTCUT_ADVERTISE_PROPERTY:
		wixl_wix_shortcut_set_Advertise (self, g_value_get_string (value));
		break;
		case WIXL_WIX_SHORTCUT_ARGUMENTS_PROPERTY:
		wixl_wix_shortcut_set_Arguments (self, g_value_get_string (value));
		break;
		case WIXL_WIX_SHORTCUT_DESCRIPTION_PROPERTY:
		wixl_wix_shortcut_set_Description (self, g_value_get_string (value));
		break;
		case WIXL_WIX_SHORTCUT_TARGET_PROPERTY:
		wixl_wix_shortcut_set_Target (self, g_value_get_string (value));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static inline gpointer
wixl_wix_key_element_get_instance_private (WixlWixKeyElement* self)
{
	return G_STRUCT_MEMBER_P (self, WixlWixKeyElement_private_offset);
}

static gchar*
wixl_wix_key_element_real_path_name (WixlWixKeyElement* self,
                                     GError** error)
{
	GError* _tmp0_;
	GError* _inner_error0_ = NULL;
	_tmp0_ = g_error_new_literal (WIXL_ERROR, WIXL_ERROR_FAILED, "this key path does not support generating a component GUID");
	_inner_error0_ = _tmp0_;
	g_propagate_error (error, _inner_error0_);
	return NULL;
}

gchar*
wixl_wix_key_element_path_name (WixlWixKeyElement* self,
                                GError** error)
{
	g_return_val_if_fail (self != NULL, NULL);
	return WIXL_WIX_KEY_ELEMENT_GET_CLASS (self)->path_name (self, error);
}

WixlWixKeyElement*
wixl_wix_key_element_construct (GType object_type)
{
	WixlWixKeyElement * self = NULL;
	self = (WixlWixKeyElement*) wixl_wix_element_construct (object_type);
	return self;
}

const gchar*
wixl_wix_key_element_get_KeyPath (WixlWixKeyElement* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_KeyPath;
	result = _tmp0_;
	return result;
}

void
wixl_wix_key_element_set_KeyPath (WixlWixKeyElement* self,
                                  const gchar* value)
{
	g_return_if_fail (self != NULL);
	if (g_strcmp0 (value, wixl_wix_key_element_get_KeyPath (self)) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_KeyPath);
		self->priv->_KeyPath = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, wixl_wix_key_element_properties[WIXL_WIX_KEY_ELEMENT_KEY_PATH_PROPERTY]);
	}
}

static void
wixl_wix_key_element_class_init (WixlWixKeyElementClass * klass,
                                 gpointer klass_data)
{
	wixl_wix_key_element_parent_class = g_type_class_peek_parent (klass);
	g_type_class_adjust_private_offset (klass, &WixlWixKeyElement_private_offset);
	((WixlWixKeyElementClass *) klass)->path_name = (gchar* (*) (WixlWixKeyElement*, GError**)) wixl_wix_key_element_real_path_name;
	G_OBJECT_CLASS (klass)->get_property = _vala_wixl_wix_key_element_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_wixl_wix_key_element_set_property;
	G_OBJECT_CLASS (klass)->finalize = wixl_wix_key_element_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_KEY_ELEMENT_KEY_PATH_PROPERTY, wixl_wix_key_element_properties[WIXL_WIX_KEY_ELEMENT_KEY_PATH_PROPERTY] = g_param_spec_string ("KeyPath", "KeyPath", "KeyPath", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
}

static void
wixl_wix_key_element_instance_init (WixlWixKeyElement * self,
                                    gpointer klass)
{
	self->priv = wixl_wix_key_element_get_instance_private (self);
}

static void
wixl_wix_key_element_finalize (GObject * obj)
{
	WixlWixKeyElement * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, WIXL_TYPE_WIX_KEY_ELEMENT, WixlWixKeyElement);
	_g_free0 (self->priv->_KeyPath);
	G_OBJECT_CLASS (wixl_wix_key_element_parent_class)->finalize (obj);
}

GType
wixl_wix_key_element_get_type (void)
{
	static volatile gsize wixl_wix_key_element_type_id__volatile = 0;
	if (g_once_init_enter (&wixl_wix_key_element_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (WixlWixKeyElementClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) wixl_wix_key_element_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (WixlWixKeyElement), 0, (GInstanceInitFunc) wixl_wix_key_element_instance_init, NULL };
		GType wixl_wix_key_element_type_id;
		wixl_wix_key_element_type_id = g_type_register_static (WIXL_TYPE_WIX_ELEMENT, "WixlWixKeyElement", &g_define_type_info, G_TYPE_FLAG_ABSTRACT);
		WixlWixKeyElement_private_offset = g_type_add_instance_private (wixl_wix_key_element_type_id, sizeof (WixlWixKeyElementPrivate));
		g_once_init_leave (&wixl_wix_key_element_type_id__volatile, wixl_wix_key_element_type_id);
	}
	return wixl_wix_key_element_type_id__volatile;
}

static void
_vala_wixl_wix_key_element_get_property (GObject * object,
                                         guint property_id,
                                         GValue * value,
                                         GParamSpec * pspec)
{
	WixlWixKeyElement * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, WIXL_TYPE_WIX_KEY_ELEMENT, WixlWixKeyElement);
	switch (property_id) {
		case WIXL_WIX_KEY_ELEMENT_KEY_PATH_PROPERTY:
		g_value_set_string (value, wixl_wix_key_element_get_KeyPath (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static void
_vala_wixl_wix_key_element_set_property (GObject * object,
                                         guint property_id,
                                         const GValue * value,
                                         GParamSpec * pspec)
{
	WixlWixKeyElement * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, WIXL_TYPE_WIX_KEY_ELEMENT, WixlWixKeyElement);
	switch (property_id) {
		case WIXL_WIX_KEY_ELEMENT_KEY_PATH_PROPERTY:
		wixl_wix_key_element_set_KeyPath (self, g_value_get_string (value));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static inline gpointer
wixl_wix_file_get_instance_private (WixlWixFile* self)
{
	return G_STRUCT_MEMBER_P (self, WixlWixFile_private_offset);
}

static gchar*
wixl_wix_file_real_path_name (WixlWixKeyElement* base,
                              GError** error)
{
	WixlWixFile * self;
	gchar* _tmp0_ = NULL;
	const gchar* _tmp1_;
	gchar* _tmp2_;
	gchar* _tmp5_;
	gchar* result = NULL;
	self = (WixlWixFile*) base;
	_tmp1_ = self->priv->_Name;
	_tmp2_ = g_strdup (_tmp1_);
	_tmp0_ = _tmp2_;
	if (_tmp0_ == NULL) {
		const gchar* _tmp3_;
		gchar* _tmp4_;
		_tmp3_ = self->priv->_Source;
		_tmp4_ = g_path_get_basename (_tmp3_);
		_g_free0 (_tmp0_);
		_tmp0_ = _tmp4_;
	}
	_tmp5_ = _tmp0_;
	_tmp0_ = NULL;
	result = _tmp5_;
	_g_free0 (_tmp0_);
	return result;
}

static void
wixl_wix_file_real_accept (WixlWixNode* base,
                           WixlWixNodeVisitor* visitor,
                           GError** error)
{
	WixlWixFile * self;
	GError* _inner_error0_ = NULL;
	self = (WixlWixFile*) base;
	g_return_if_fail (visitor != NULL);
	WIXL_WIX_NODE_CLASS (wixl_wix_file_parent_class)->accept ((WixlWixNode*) G_TYPE_CHECK_INSTANCE_CAST (self, WIXL_TYPE_WIX_KEY_ELEMENT, WixlWixKeyElement), visitor, &_inner_error0_);
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
		g_propagate_error (error, _inner_error0_);
		return;
	}
	wixl_wix_node_visitor_visit_file (visitor, self, &_inner_error0_);
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
		g_propagate_error (error, _inner_error0_);
		return;
	}
}

WixlWixFile*
wixl_wix_file_construct (GType object_type)
{
	WixlWixFile * self = NULL;
	self = (WixlWixFile*) wixl_wix_key_element_construct (object_type);
	return self;
}

WixlWixFile*
wixl_wix_file_new (void)
{
	return wixl_wix_file_construct (WIXL_TYPE_WIX_FILE);
}

const gchar*
wixl_wix_file_get_DiskId (WixlWixFile* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_DiskId;
	result = _tmp0_;
	return result;
}

void
wixl_wix_file_set_DiskId (WixlWixFile* self,
                          const gchar* value)
{
	g_return_if_fail (self != NULL);
	if (g_strcmp0 (value, wixl_wix_file_get_DiskId (self)) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_DiskId);
		self->priv->_DiskId = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, wixl_wix_file_properties[WIXL_WIX_FILE_DISK_ID_PROPERTY]);
	}
}

const gchar*
wixl_wix_file_get_Source (WixlWixFile* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Source;
	result = _tmp0_;
	return result;
}

void
wixl_wix_file_set_Source (WixlWixFile* self,
                          const gchar* value)
{
	g_return_if_fail (self != NULL);
	if (g_strcmp0 (value, wixl_wix_file_get_Source (self)) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_Source);
		self->priv->_Source = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, wixl_wix_file_properties[WIXL_WIX_FILE_SOURCE_PROPERTY]);
	}
}

const gchar*
wixl_wix_file_get_Name (WixlWixFile* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Name;
	result = _tmp0_;
	return result;
}

void
wixl_wix_file_set_Name (WixlWixFile* self,
                        const gchar* value)
{
	g_return_if_fail (self != NULL);
	if (g_strcmp0 (value, wixl_wix_file_get_Name (self)) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_Name);
		self->priv->_Name = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, wixl_wix_file_properties[WIXL_WIX_FILE_NAME_PROPERTY]);
	}
}

static void
wixl_wix_file_class_init (WixlWixFileClass * klass,
                          gpointer klass_data)
{
	gchar* _tmp0_;
	GHashTable* _tmp1_;
	GType* _tmp2_;
	GType* _tmp3_;
	gint _tmp3__length1;
	wixl_wix_file_parent_class = g_type_class_peek_parent (klass);
	g_type_class_adjust_private_offset (klass, &WixlWixFile_private_offset);
	((WixlWixKeyElementClass *) klass)->path_name = (gchar* (*) (WixlWixKeyElement*, GError**)) wixl_wix_file_real_path_name;
	((WixlWixNodeClass *) klass)->accept = (void (*) (WixlWixNode*, WixlWixNodeVisitor*, GError**)) wixl_wix_file_real_accept;
	G_OBJECT_CLASS (klass)->get_property = _vala_wixl_wix_file_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_wixl_wix_file_set_property;
	G_OBJECT_CLASS (klass)->finalize = wixl_wix_file_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_FILE_DISK_ID_PROPERTY, wixl_wix_file_properties[WIXL_WIX_FILE_DISK_ID_PROPERTY] = g_param_spec_string ("DiskId", "DiskId", "DiskId", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_FILE_SOURCE_PROPERTY, wixl_wix_file_properties[WIXL_WIX_FILE_SOURCE_PROPERTY] = g_param_spec_string ("Source", "Source", "Source", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_FILE_NAME_PROPERTY, wixl_wix_file_properties[WIXL_WIX_FILE_NAME_PROPERTY] = g_param_spec_string ("Name", "Name", "Name", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	_tmp0_ = g_strdup ("File");
	_g_free0 (WIXL_WIX_ELEMENT_CLASS (klass)->name);
	WIXL_WIX_ELEMENT_CLASS (klass)->name = _tmp0_;
	_tmp1_ = WIXL_WIX_ELEMENT_CLASS (klass)->child_types;
	_tmp2_ = g_new0 (GType, 1);
	_tmp2_[0] = WIXL_TYPE_WIX_SHORTCUT;
	_tmp3_ = _tmp2_;
	_tmp3__length1 = 1;
	wixl_wix_element_add_child_types (WIXL_WIX_ELEMENT_CLASS (klass), _tmp1_, _tmp3_, (gint) 1);
	_tmp3_ = (g_free (_tmp3_), NULL);
}

static void
wixl_wix_file_instance_init (WixlWixFile * self,
                             gpointer klass)
{
	self->priv = wixl_wix_file_get_instance_private (self);
}

static void
wixl_wix_file_finalize (GObject * obj)
{
	WixlWixFile * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, WIXL_TYPE_WIX_FILE, WixlWixFile);
	_g_free0 (self->priv->_DiskId);
	_g_free0 (self->priv->_Source);
	_g_free0 (self->priv->_Name);
	_g_object_unref0 (self->file);
	G_OBJECT_CLASS (wixl_wix_file_parent_class)->finalize (obj);
}

GType
wixl_wix_file_get_type (void)
{
	static volatile gsize wixl_wix_file_type_id__volatile = 0;
	if (g_once_init_enter (&wixl_wix_file_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (WixlWixFileClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) wixl_wix_file_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (WixlWixFile), 0, (GInstanceInitFunc) wixl_wix_file_instance_init, NULL };
		GType wixl_wix_file_type_id;
		wixl_wix_file_type_id = g_type_register_static (WIXL_TYPE_WIX_KEY_ELEMENT, "WixlWixFile", &g_define_type_info, 0);
		WixlWixFile_private_offset = g_type_add_instance_private (wixl_wix_file_type_id, sizeof (WixlWixFilePrivate));
		g_once_init_leave (&wixl_wix_file_type_id__volatile, wixl_wix_file_type_id);
	}
	return wixl_wix_file_type_id__volatile;
}

static void
_vala_wixl_wix_file_get_property (GObject * object,
                                  guint property_id,
                                  GValue * value,
                                  GParamSpec * pspec)
{
	WixlWixFile * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, WIXL_TYPE_WIX_FILE, WixlWixFile);
	switch (property_id) {
		case WIXL_WIX_FILE_DISK_ID_PROPERTY:
		g_value_set_string (value, wixl_wix_file_get_DiskId (self));
		break;
		case WIXL_WIX_FILE_SOURCE_PROPERTY:
		g_value_set_string (value, wixl_wix_file_get_Source (self));
		break;
		case WIXL_WIX_FILE_NAME_PROPERTY:
		g_value_set_string (value, wixl_wix_file_get_Name (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static void
_vala_wixl_wix_file_set_property (GObject * object,
                                  guint property_id,
                                  const GValue * value,
                                  GParamSpec * pspec)
{
	WixlWixFile * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, WIXL_TYPE_WIX_FILE, WixlWixFile);
	switch (property_id) {
		case WIXL_WIX_FILE_DISK_ID_PROPERTY:
		wixl_wix_file_set_DiskId (self, g_value_get_string (value));
		break;
		case WIXL_WIX_FILE_SOURCE_PROPERTY:
		wixl_wix_file_set_Source (self, g_value_get_string (value));
		break;
		case WIXL_WIX_FILE_NAME_PROPERTY:
		wixl_wix_file_set_Name (self, g_value_get_string (value));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static inline gpointer
wixl_wix_registry_value_get_instance_private (WixlWixRegistryValue* self)
{
	return G_STRUCT_MEMBER_P (self, WixlWixRegistryValue_private_offset);
}

static gchar*
wixl_wix_registry_value_real_path_name (WixlWixKeyElement* base,
                                        GError** error)
{
	WixlWixRegistryValue * self;
	const gchar* _tmp0_;
	gchar* _tmp1_;
	gchar* _tmp2_;
	const gchar* _tmp3_;
	gchar* _tmp4_;
	gchar* _tmp5_;
	gchar* result = NULL;
	self = (WixlWixRegistryValue*) base;
	_tmp0_ = self->priv->_Root;
	_tmp1_ = g_strconcat (_tmp0_, "/", NULL);
	_tmp2_ = _tmp1_;
	_tmp3_ = self->priv->_Key;
	_tmp4_ = g_strconcat (_tmp2_, _tmp3_, NULL);
	_tmp5_ = _tmp4_;
	_g_free0 (_tmp2_);
	result = _tmp5_;
	return result;
}

static void
wixl_wix_registry_value_real_accept (WixlWixNode* base,
                                     WixlWixNodeVisitor* visitor,
                                     GError** error)
{
	WixlWixRegistryValue * self;
	GError* _inner_error0_ = NULL;
	self = (WixlWixRegistryValue*) base;
	g_return_if_fail (visitor != NULL);
	wixl_wix_node_visitor_visit_registry_value (visitor, self, &_inner_error0_);
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
		g_propagate_error (error, _inner_error0_);
		return;
	}
}

WixlWixRegistryValue*
wixl_wix_registry_value_construct (GType object_type)
{
	WixlWixRegistryValue * self = NULL;
	self = (WixlWixRegistryValue*) wixl_wix_key_element_construct (object_type);
	return self;
}

WixlWixRegistryValue*
wixl_wix_registry_value_new (void)
{
	return wixl_wix_registry_value_construct (WIXL_TYPE_WIX_REGISTRY_VALUE);
}

const gchar*
wixl_wix_registry_value_get_Root (WixlWixRegistryValue* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Root;
	result = _tmp0_;
	return result;
}

void
wixl_wix_registry_value_set_Root (WixlWixRegistryValue* self,
                                  const gchar* value)
{
	g_return_if_fail (self != NULL);
	if (g_strcmp0 (value, wixl_wix_registry_value_get_Root (self)) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_Root);
		self->priv->_Root = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, wixl_wix_registry_value_properties[WIXL_WIX_REGISTRY_VALUE_ROOT_PROPERTY]);
	}
}

const gchar*
wixl_wix_registry_value_get_Key (WixlWixRegistryValue* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Key;
	result = _tmp0_;
	return result;
}

void
wixl_wix_registry_value_set_Key (WixlWixRegistryValue* self,
                                 const gchar* value)
{
	g_return_if_fail (self != NULL);
	if (g_strcmp0 (value, wixl_wix_registry_value_get_Key (self)) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_Key);
		self->priv->_Key = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, wixl_wix_registry_value_properties[WIXL_WIX_REGISTRY_VALUE_KEY_PROPERTY]);
	}
}

const gchar*
wixl_wix_registry_value_get_Type (WixlWixRegistryValue* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Type;
	result = _tmp0_;
	return result;
}

void
wixl_wix_registry_value_set_Type (WixlWixRegistryValue* self,
                                  const gchar* value)
{
	g_return_if_fail (self != NULL);
	if (g_strcmp0 (value, wixl_wix_registry_value_get_Type (self)) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_Type);
		self->priv->_Type = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, wixl_wix_registry_value_properties[WIXL_WIX_REGISTRY_VALUE_TYPE_PROPERTY]);
	}
}

const gchar*
wixl_wix_registry_value_get_Value (WixlWixRegistryValue* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Value;
	result = _tmp0_;
	return result;
}

void
wixl_wix_registry_value_set_Value (WixlWixRegistryValue* self,
                                   const gchar* value)
{
	g_return_if_fail (self != NULL);
	if (g_strcmp0 (value, wixl_wix_registry_value_get_Value (self)) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_Value);
		self->priv->_Value = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, wixl_wix_registry_value_properties[WIXL_WIX_REGISTRY_VALUE_VALUE_PROPERTY]);
	}
}

const gchar*
wixl_wix_registry_value_get_Name (WixlWixRegistryValue* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Name;
	result = _tmp0_;
	return result;
}

void
wixl_wix_registry_value_set_Name (WixlWixRegistryValue* self,
                                  const gchar* value)
{
	g_return_if_fail (self != NULL);
	if (g_strcmp0 (value, wixl_wix_registry_value_get_Name (self)) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_Name);
		self->priv->_Name = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, wixl_wix_registry_value_properties[WIXL_WIX_REGISTRY_VALUE_NAME_PROPERTY]);
	}
}

static void
wixl_wix_registry_value_class_init (WixlWixRegistryValueClass * klass,
                                    gpointer klass_data)
{
	gchar* _tmp0_;
	wixl_wix_registry_value_parent_class = g_type_class_peek_parent (klass);
	g_type_class_adjust_private_offset (klass, &WixlWixRegistryValue_private_offset);
	((WixlWixKeyElementClass *) klass)->path_name = (gchar* (*) (WixlWixKeyElement*, GError**)) wixl_wix_registry_value_real_path_name;
	((WixlWixNodeClass *) klass)->accept = (void (*) (WixlWixNode*, WixlWixNodeVisitor*, GError**)) wixl_wix_registry_value_real_accept;
	G_OBJECT_CLASS (klass)->get_property = _vala_wixl_wix_registry_value_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_wixl_wix_registry_value_set_property;
	G_OBJECT_CLASS (klass)->finalize = wixl_wix_registry_value_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_REGISTRY_VALUE_ROOT_PROPERTY, wixl_wix_registry_value_properties[WIXL_WIX_REGISTRY_VALUE_ROOT_PROPERTY] = g_param_spec_string ("Root", "Root", "Root", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_REGISTRY_VALUE_KEY_PROPERTY, wixl_wix_registry_value_properties[WIXL_WIX_REGISTRY_VALUE_KEY_PROPERTY] = g_param_spec_string ("Key", "Key", "Key", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_REGISTRY_VALUE_TYPE_PROPERTY, wixl_wix_registry_value_properties[WIXL_WIX_REGISTRY_VALUE_TYPE_PROPERTY] = g_param_spec_string ("Type", "Type", "Type", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_REGISTRY_VALUE_VALUE_PROPERTY, wixl_wix_registry_value_properties[WIXL_WIX_REGISTRY_VALUE_VALUE_PROPERTY] = g_param_spec_string ("Value", "Value", "Value", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_REGISTRY_VALUE_NAME_PROPERTY, wixl_wix_registry_value_properties[WIXL_WIX_REGISTRY_VALUE_NAME_PROPERTY] = g_param_spec_string ("Name", "Name", "Name", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	_tmp0_ = g_strdup ("RegistryValue");
	_g_free0 (WIXL_WIX_ELEMENT_CLASS (klass)->name);
	WIXL_WIX_ELEMENT_CLASS (klass)->name = _tmp0_;
}

static void
wixl_wix_registry_value_instance_init (WixlWixRegistryValue * self,
                                       gpointer klass)
{
	self->priv = wixl_wix_registry_value_get_instance_private (self);
}

static void
wixl_wix_registry_value_finalize (GObject * obj)
{
	WixlWixRegistryValue * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, WIXL_TYPE_WIX_REGISTRY_VALUE, WixlWixRegistryValue);
	_g_free0 (self->priv->_Root);
	_g_free0 (self->priv->_Key);
	_g_free0 (self->priv->_Type);
	_g_free0 (self->priv->_Value);
	_g_free0 (self->priv->_Name);
	G_OBJECT_CLASS (wixl_wix_registry_value_parent_class)->finalize (obj);
}

GType
wixl_wix_registry_value_get_type (void)
{
	static volatile gsize wixl_wix_registry_value_type_id__volatile = 0;
	if (g_once_init_enter (&wixl_wix_registry_value_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (WixlWixRegistryValueClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) wixl_wix_registry_value_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (WixlWixRegistryValue), 0, (GInstanceInitFunc) wixl_wix_registry_value_instance_init, NULL };
		GType wixl_wix_registry_value_type_id;
		wixl_wix_registry_value_type_id = g_type_register_static (WIXL_TYPE_WIX_KEY_ELEMENT, "WixlWixRegistryValue", &g_define_type_info, 0);
		WixlWixRegistryValue_private_offset = g_type_add_instance_private (wixl_wix_registry_value_type_id, sizeof (WixlWixRegistryValuePrivate));
		g_once_init_leave (&wixl_wix_registry_value_type_id__volatile, wixl_wix_registry_value_type_id);
	}
	return wixl_wix_registry_value_type_id__volatile;
}

static void
_vala_wixl_wix_registry_value_get_property (GObject * object,
                                            guint property_id,
                                            GValue * value,
                                            GParamSpec * pspec)
{
	WixlWixRegistryValue * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, WIXL_TYPE_WIX_REGISTRY_VALUE, WixlWixRegistryValue);
	switch (property_id) {
		case WIXL_WIX_REGISTRY_VALUE_ROOT_PROPERTY:
		g_value_set_string (value, wixl_wix_registry_value_get_Root (self));
		break;
		case WIXL_WIX_REGISTRY_VALUE_KEY_PROPERTY:
		g_value_set_string (value, wixl_wix_registry_value_get_Key (self));
		break;
		case WIXL_WIX_REGISTRY_VALUE_TYPE_PROPERTY:
		g_value_set_string (value, wixl_wix_registry_value_get_Type (self));
		break;
		case WIXL_WIX_REGISTRY_VALUE_VALUE_PROPERTY:
		g_value_set_string (value, wixl_wix_registry_value_get_Value (self));
		break;
		case WIXL_WIX_REGISTRY_VALUE_NAME_PROPERTY:
		g_value_set_string (value, wixl_wix_registry_value_get_Name (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static void
_vala_wixl_wix_registry_value_set_property (GObject * object,
                                            guint property_id,
                                            const GValue * value,
                                            GParamSpec * pspec)
{
	WixlWixRegistryValue * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, WIXL_TYPE_WIX_REGISTRY_VALUE, WixlWixRegistryValue);
	switch (property_id) {
		case WIXL_WIX_REGISTRY_VALUE_ROOT_PROPERTY:
		wixl_wix_registry_value_set_Root (self, g_value_get_string (value));
		break;
		case WIXL_WIX_REGISTRY_VALUE_KEY_PROPERTY:
		wixl_wix_registry_value_set_Key (self, g_value_get_string (value));
		break;
		case WIXL_WIX_REGISTRY_VALUE_TYPE_PROPERTY:
		wixl_wix_registry_value_set_Type (self, g_value_get_string (value));
		break;
		case WIXL_WIX_REGISTRY_VALUE_VALUE_PROPERTY:
		wixl_wix_registry_value_set_Value (self, g_value_get_string (value));
		break;
		case WIXL_WIX_REGISTRY_VALUE_NAME_PROPERTY:
		wixl_wix_registry_value_set_Name (self, g_value_get_string (value));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static inline gpointer
wixl_wix_remove_folder_get_instance_private (WixlWixRemoveFolder* self)
{
	return G_STRUCT_MEMBER_P (self, WixlWixRemoveFolder_private_offset);
}

static void
wixl_wix_remove_folder_real_accept (WixlWixNode* base,
                                    WixlWixNodeVisitor* visitor,
                                    GError** error)
{
	WixlWixRemoveFolder * self;
	GError* _inner_error0_ = NULL;
	self = (WixlWixRemoveFolder*) base;
	g_return_if_fail (visitor != NULL);
	wixl_wix_node_visitor_visit_remove_folder (visitor, self, &_inner_error0_);
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
		g_propagate_error (error, _inner_error0_);
		return;
	}
}

WixlWixRemoveFolder*
wixl_wix_remove_folder_construct (GType object_type)
{
	WixlWixRemoveFolder * self = NULL;
	self = (WixlWixRemoveFolder*) wixl_wix_element_construct (object_type);
	return self;
}

WixlWixRemoveFolder*
wixl_wix_remove_folder_new (void)
{
	return wixl_wix_remove_folder_construct (WIXL_TYPE_WIX_REMOVE_FOLDER);
}

const gchar*
wixl_wix_remove_folder_get_On (WixlWixRemoveFolder* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_On;
	result = _tmp0_;
	return result;
}

void
wixl_wix_remove_folder_set_On (WixlWixRemoveFolder* self,
                               const gchar* value)
{
	g_return_if_fail (self != NULL);
	if (g_strcmp0 (value, wixl_wix_remove_folder_get_On (self)) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_On);
		self->priv->_On = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, wixl_wix_remove_folder_properties[WIXL_WIX_REMOVE_FOLDER_ON_PROPERTY]);
	}
}

static void
wixl_wix_remove_folder_class_init (WixlWixRemoveFolderClass * klass,
                                   gpointer klass_data)
{
	gchar* _tmp0_;
	wixl_wix_remove_folder_parent_class = g_type_class_peek_parent (klass);
	g_type_class_adjust_private_offset (klass, &WixlWixRemoveFolder_private_offset);
	((WixlWixNodeClass *) klass)->accept = (void (*) (WixlWixNode*, WixlWixNodeVisitor*, GError**)) wixl_wix_remove_folder_real_accept;
	G_OBJECT_CLASS (klass)->get_property = _vala_wixl_wix_remove_folder_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_wixl_wix_remove_folder_set_property;
	G_OBJECT_CLASS (klass)->finalize = wixl_wix_remove_folder_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_REMOVE_FOLDER_ON_PROPERTY, wixl_wix_remove_folder_properties[WIXL_WIX_REMOVE_FOLDER_ON_PROPERTY] = g_param_spec_string ("On", "On", "On", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	_tmp0_ = g_strdup ("RemoveFolder");
	_g_free0 (WIXL_WIX_ELEMENT_CLASS (klass)->name);
	WIXL_WIX_ELEMENT_CLASS (klass)->name = _tmp0_;
}

static void
wixl_wix_remove_folder_instance_init (WixlWixRemoveFolder * self,
                                      gpointer klass)
{
	self->priv = wixl_wix_remove_folder_get_instance_private (self);
}

static void
wixl_wix_remove_folder_finalize (GObject * obj)
{
	WixlWixRemoveFolder * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, WIXL_TYPE_WIX_REMOVE_FOLDER, WixlWixRemoveFolder);
	_g_free0 (self->priv->_On);
	G_OBJECT_CLASS (wixl_wix_remove_folder_parent_class)->finalize (obj);
}

GType
wixl_wix_remove_folder_get_type (void)
{
	static volatile gsize wixl_wix_remove_folder_type_id__volatile = 0;
	if (g_once_init_enter (&wixl_wix_remove_folder_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (WixlWixRemoveFolderClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) wixl_wix_remove_folder_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (WixlWixRemoveFolder), 0, (GInstanceInitFunc) wixl_wix_remove_folder_instance_init, NULL };
		GType wixl_wix_remove_folder_type_id;
		wixl_wix_remove_folder_type_id = g_type_register_static (WIXL_TYPE_WIX_ELEMENT, "WixlWixRemoveFolder", &g_define_type_info, 0);
		WixlWixRemoveFolder_private_offset = g_type_add_instance_private (wixl_wix_remove_folder_type_id, sizeof (WixlWixRemoveFolderPrivate));
		g_once_init_leave (&wixl_wix_remove_folder_type_id__volatile, wixl_wix_remove_folder_type_id);
	}
	return wixl_wix_remove_folder_type_id__volatile;
}

static void
_vala_wixl_wix_remove_folder_get_property (GObject * object,
                                           guint property_id,
                                           GValue * value,
                                           GParamSpec * pspec)
{
	WixlWixRemoveFolder * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, WIXL_TYPE_WIX_REMOVE_FOLDER, WixlWixRemoveFolder);
	switch (property_id) {
		case WIXL_WIX_REMOVE_FOLDER_ON_PROPERTY:
		g_value_set_string (value, wixl_wix_remove_folder_get_On (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static void
_vala_wixl_wix_remove_folder_set_property (GObject * object,
                                           guint property_id,
                                           const GValue * value,
                                           GParamSpec * pspec)
{
	WixlWixRemoveFolder * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, WIXL_TYPE_WIX_REMOVE_FOLDER, WixlWixRemoveFolder);
	switch (property_id) {
		case WIXL_WIX_REMOVE_FOLDER_ON_PROPERTY:
		wixl_wix_remove_folder_set_On (self, g_value_get_string (value));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static inline gpointer
wixl_wix_feature_get_instance_private (WixlWixFeature* self)
{
	return G_STRUCT_MEMBER_P (self, WixlWixFeature_private_offset);
}

static void
wixl_wix_feature_real_accept (WixlWixNode* base,
                              WixlWixNodeVisitor* visitor,
                              GError** error)
{
	WixlWixFeature * self;
	GError* _inner_error0_ = NULL;
	self = (WixlWixFeature*) base;
	g_return_if_fail (visitor != NULL);
	wixl_wix_node_visitor_visit_feature (visitor, self, WIXL_VISIT_STATE_ENTER, &_inner_error0_);
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
		g_propagate_error (error, _inner_error0_);
		return;
	}
	WIXL_WIX_NODE_CLASS (wixl_wix_feature_parent_class)->accept ((WixlWixNode*) G_TYPE_CHECK_INSTANCE_CAST (self, WIXL_TYPE_WIX_ELEMENT, WixlWixElement), visitor, &_inner_error0_);
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
		g_propagate_error (error, _inner_error0_);
		return;
	}
	wixl_wix_node_visitor_visit_feature (visitor, self, WIXL_VISIT_STATE_LEAVE, &_inner_error0_);
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
		g_propagate_error (error, _inner_error0_);
		return;
	}
}

WixlWixFeature*
wixl_wix_feature_construct (GType object_type)
{
	WixlWixFeature * self = NULL;
	self = (WixlWixFeature*) wixl_wix_element_construct (object_type);
	return self;
}

WixlWixFeature*
wixl_wix_feature_new (void)
{
	return wixl_wix_feature_construct (WIXL_TYPE_WIX_FEATURE);
}

const gchar*
wixl_wix_feature_get_Level (WixlWixFeature* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Level;
	result = _tmp0_;
	return result;
}

void
wixl_wix_feature_set_Level (WixlWixFeature* self,
                            const gchar* value)
{
	g_return_if_fail (self != NULL);
	if (g_strcmp0 (value, wixl_wix_feature_get_Level (self)) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_Level);
		self->priv->_Level = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, wixl_wix_feature_properties[WIXL_WIX_FEATURE_LEVEL_PROPERTY]);
	}
}

const gchar*
wixl_wix_feature_get_Title (WixlWixFeature* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Title;
	result = _tmp0_;
	return result;
}

void
wixl_wix_feature_set_Title (WixlWixFeature* self,
                            const gchar* value)
{
	g_return_if_fail (self != NULL);
	if (g_strcmp0 (value, wixl_wix_feature_get_Title (self)) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_Title);
		self->priv->_Title = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, wixl_wix_feature_properties[WIXL_WIX_FEATURE_TITLE_PROPERTY]);
	}
}

const gchar*
wixl_wix_feature_get_Description (WixlWixFeature* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Description;
	result = _tmp0_;
	return result;
}

void
wixl_wix_feature_set_Description (WixlWixFeature* self,
                                  const gchar* value)
{
	g_return_if_fail (self != NULL);
	if (g_strcmp0 (value, wixl_wix_feature_get_Description (self)) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_Description);
		self->priv->_Description = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, wixl_wix_feature_properties[WIXL_WIX_FEATURE_DESCRIPTION_PROPERTY]);
	}
}

const gchar*
wixl_wix_feature_get_Display (WixlWixFeature* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Display;
	result = _tmp0_;
	return result;
}

void
wixl_wix_feature_set_Display (WixlWixFeature* self,
                              const gchar* value)
{
	g_return_if_fail (self != NULL);
	if (g_strcmp0 (value, wixl_wix_feature_get_Display (self)) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_Display);
		self->priv->_Display = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, wixl_wix_feature_properties[WIXL_WIX_FEATURE_DISPLAY_PROPERTY]);
	}
}

const gchar*
wixl_wix_feature_get_ConfigurableDirectory (WixlWixFeature* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_ConfigurableDirectory;
	result = _tmp0_;
	return result;
}

void
wixl_wix_feature_set_ConfigurableDirectory (WixlWixFeature* self,
                                            const gchar* value)
{
	g_return_if_fail (self != NULL);
	if (g_strcmp0 (value, wixl_wix_feature_get_ConfigurableDirectory (self)) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_ConfigurableDirectory);
		self->priv->_ConfigurableDirectory = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, wixl_wix_feature_properties[WIXL_WIX_FEATURE_CONFIGURABLE_DIRECTORY_PROPERTY]);
	}
}

const gchar*
wixl_wix_feature_get_AllowAdvertise (WixlWixFeature* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_AllowAdvertise;
	result = _tmp0_;
	return result;
}

void
wixl_wix_feature_set_AllowAdvertise (WixlWixFeature* self,
                                     const gchar* value)
{
	g_return_if_fail (self != NULL);
	if (g_strcmp0 (value, wixl_wix_feature_get_AllowAdvertise (self)) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_AllowAdvertise);
		self->priv->_AllowAdvertise = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, wixl_wix_feature_properties[WIXL_WIX_FEATURE_ALLOW_ADVERTISE_PROPERTY]);
	}
}

const gchar*
wixl_wix_feature_get_Absent (WixlWixFeature* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Absent;
	result = _tmp0_;
	return result;
}

void
wixl_wix_feature_set_Absent (WixlWixFeature* self,
                             const gchar* value)
{
	g_return_if_fail (self != NULL);
	if (g_strcmp0 (value, wixl_wix_feature_get_Absent (self)) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_Absent);
		self->priv->_Absent = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, wixl_wix_feature_properties[WIXL_WIX_FEATURE_ABSENT_PROPERTY]);
	}
}

static void
wixl_wix_feature_class_init (WixlWixFeatureClass * klass,
                             gpointer klass_data)
{
	gchar* _tmp0_;
	GHashTable* _tmp1_;
	GType* _tmp2_;
	GType* _tmp3_;
	gint _tmp3__length1;
	wixl_wix_feature_parent_class = g_type_class_peek_parent (klass);
	g_type_class_adjust_private_offset (klass, &WixlWixFeature_private_offset);
	((WixlWixNodeClass *) klass)->accept = (void (*) (WixlWixNode*, WixlWixNodeVisitor*, GError**)) wixl_wix_feature_real_accept;
	G_OBJECT_CLASS (klass)->get_property = _vala_wixl_wix_feature_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_wixl_wix_feature_set_property;
	G_OBJECT_CLASS (klass)->finalize = wixl_wix_feature_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_FEATURE_LEVEL_PROPERTY, wixl_wix_feature_properties[WIXL_WIX_FEATURE_LEVEL_PROPERTY] = g_param_spec_string ("Level", "Level", "Level", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_FEATURE_TITLE_PROPERTY, wixl_wix_feature_properties[WIXL_WIX_FEATURE_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), WIXL_WIX_FEATURE_DESCRIPTION_PROPERTY, wixl_wix_feature_properties[WIXL_WIX_FEATURE_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), WIXL_WIX_FEATURE_DISPLAY_PROPERTY, wixl_wix_feature_properties[WIXL_WIX_FEATURE_DISPLAY_PROPERTY] = g_param_spec_string ("Display", "Display", "Display", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_FEATURE_CONFIGURABLE_DIRECTORY_PROPERTY, wixl_wix_feature_properties[WIXL_WIX_FEATURE_CONFIGURABLE_DIRECTORY_PROPERTY] = g_param_spec_string ("ConfigurableDirectory", "ConfigurableDirectory", "ConfigurableDirectory", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_FEATURE_ALLOW_ADVERTISE_PROPERTY, wixl_wix_feature_properties[WIXL_WIX_FEATURE_ALLOW_ADVERTISE_PROPERTY] = g_param_spec_string ("AllowAdvertise", "AllowAdvertise", "AllowAdvertise", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_FEATURE_ABSENT_PROPERTY, wixl_wix_feature_properties[WIXL_WIX_FEATURE_ABSENT_PROPERTY] = g_param_spec_string ("Absent", "Absent", "Absent", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	_tmp0_ = g_strdup ("Feature");
	_g_free0 (WIXL_WIX_ELEMENT_CLASS (klass)->name);
	WIXL_WIX_ELEMENT_CLASS (klass)->name = _tmp0_;
	_tmp1_ = WIXL_WIX_ELEMENT_CLASS (klass)->child_types;
	_tmp2_ = g_new0 (GType, 3);
	_tmp2_[0] = WIXL_TYPE_WIX_COMPONENT_REF;
	_tmp2_[1] = WIXL_TYPE_WIX_COMPONENT_GROUP_REF;
	_tmp2_[2] = WIXL_TYPE_WIX_FEATURE;
	_tmp3_ = _tmp2_;
	_tmp3__length1 = 3;
	wixl_wix_element_add_child_types (WIXL_WIX_ELEMENT_CLASS (klass), _tmp1_, _tmp3_, (gint) 3);
	_tmp3_ = (g_free (_tmp3_), NULL);
}

static void
wixl_wix_feature_instance_init (WixlWixFeature * self,
                                gpointer klass)
{
	self->priv = wixl_wix_feature_get_instance_private (self);
}

static void
wixl_wix_feature_finalize (GObject * obj)
{
	WixlWixFeature * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, WIXL_TYPE_WIX_FEATURE, WixlWixFeature);
	_g_free0 (self->priv->_Level);
	_g_free0 (self->priv->_Title);
	_g_free0 (self->priv->_Description);
	_g_free0 (self->priv->_Display);
	_g_free0 (self->priv->_ConfigurableDirectory);
	_g_free0 (self->priv->_AllowAdvertise);
	_g_free0 (self->priv->_Absent);
	G_OBJECT_CLASS (wixl_wix_feature_parent_class)->finalize (obj);
}

GType
wixl_wix_feature_get_type (void)
{
	static volatile gsize wixl_wix_feature_type_id__volatile = 0;
	if (g_once_init_enter (&wixl_wix_feature_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (WixlWixFeatureClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) wixl_wix_feature_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (WixlWixFeature), 0, (GInstanceInitFunc) wixl_wix_feature_instance_init, NULL };
		GType wixl_wix_feature_type_id;
		wixl_wix_feature_type_id = g_type_register_static (WIXL_TYPE_WIX_ELEMENT, "WixlWixFeature", &g_define_type_info, 0);
		WixlWixFeature_private_offset = g_type_add_instance_private (wixl_wix_feature_type_id, sizeof (WixlWixFeaturePrivate));
		g_once_init_leave (&wixl_wix_feature_type_id__volatile, wixl_wix_feature_type_id);
	}
	return wixl_wix_feature_type_id__volatile;
}

static void
_vala_wixl_wix_feature_get_property (GObject * object,
                                     guint property_id,
                                     GValue * value,
                                     GParamSpec * pspec)
{
	WixlWixFeature * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, WIXL_TYPE_WIX_FEATURE, WixlWixFeature);
	switch (property_id) {
		case WIXL_WIX_FEATURE_LEVEL_PROPERTY:
		g_value_set_string (value, wixl_wix_feature_get_Level (self));
		break;
		case WIXL_WIX_FEATURE_TITLE_PROPERTY:
		g_value_set_string (value, wixl_wix_feature_get_Title (self));
		break;
		case WIXL_WIX_FEATURE_DESCRIPTION_PROPERTY:
		g_value_set_string (value, wixl_wix_feature_get_Description (self));
		break;
		case WIXL_WIX_FEATURE_DISPLAY_PROPERTY:
		g_value_set_string (value, wixl_wix_feature_get_Display (self));
		break;
		case WIXL_WIX_FEATURE_CONFIGURABLE_DIRECTORY_PROPERTY:
		g_value_set_string (value, wixl_wix_feature_get_ConfigurableDirectory (self));
		break;
		case WIXL_WIX_FEATURE_ALLOW_ADVERTISE_PROPERTY:
		g_value_set_string (value, wixl_wix_feature_get_AllowAdvertise (self));
		break;
		case WIXL_WIX_FEATURE_ABSENT_PROPERTY:
		g_value_set_string (value, wixl_wix_feature_get_Absent (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static void
_vala_wixl_wix_feature_set_property (GObject * object,
                                     guint property_id,
                                     const GValue * value,
                                     GParamSpec * pspec)
{
	WixlWixFeature * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, WIXL_TYPE_WIX_FEATURE, WixlWixFeature);
	switch (property_id) {
		case WIXL_WIX_FEATURE_LEVEL_PROPERTY:
		wixl_wix_feature_set_Level (self, g_value_get_string (value));
		break;
		case WIXL_WIX_FEATURE_TITLE_PROPERTY:
		wixl_wix_feature_set_Title (self, g_value_get_string (value));
		break;
		case WIXL_WIX_FEATURE_DESCRIPTION_PROPERTY:
		wixl_wix_feature_set_Description (self, g_value_get_string (value));
		break;
		case WIXL_WIX_FEATURE_DISPLAY_PROPERTY:
		wixl_wix_feature_set_Display (self, g_value_get_string (value));
		break;
		case WIXL_WIX_FEATURE_CONFIGURABLE_DIRECTORY_PROPERTY:
		wixl_wix_feature_set_ConfigurableDirectory (self, g_value_get_string (value));
		break;
		case WIXL_WIX_FEATURE_ALLOW_ADVERTISE_PROPERTY:
		wixl_wix_feature_set_AllowAdvertise (self, g_value_get_string (value));
		break;
		case WIXL_WIX_FEATURE_ABSENT_PROPERTY:
		wixl_wix_feature_set_Absent (self, g_value_get_string (value));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static gchar*
wixl_wix_component_ref_real_full_path (WixlWixElement* base,
                                       WixlWixResolver* r,
                                       GError** error)
{
	WixlWixComponentRef * self;
	WixlWixComponent* _tmp0_ = NULL;
	gpointer _tmp1_;
	gchar* _tmp2_ = NULL;
	gchar* _tmp3_;
	gchar* _tmp4_;
	GError* _inner_error0_ = NULL;
	gchar* result = NULL;
	self = (WixlWixComponentRef*) base;
	g_return_val_if_fail (r != NULL, NULL);
	_tmp1_ = wixl_wix_resolver_resolve (r, WIXL_TYPE_WIX_COMPONENT, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, (WixlWixElement*) self, &_inner_error0_);
	_tmp0_ = (WixlWixComponent*) _tmp1_;
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
		g_propagate_error (error, _inner_error0_);
		return NULL;
	}
	_tmp3_ = wixl_wix_element_full_path (WIXL_IS_WIX_ELEMENT (_tmp0_) ? ((WixlWixElement*) _tmp0_) : NULL, r, &_inner_error0_);
	_tmp2_ = _tmp3_;
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
		g_propagate_error (error, _inner_error0_);
		_g_object_unref0 (_tmp0_);
		return NULL;
	}
	_tmp4_ = _tmp2_;
	_tmp2_ = NULL;
	result = _tmp4_;
	_g_free0 (_tmp2_);
	_g_object_unref0 (_tmp0_);
	return result;
}

static void
wixl_wix_component_ref_real_accept (WixlWixNode* base,
                                    WixlWixNodeVisitor* visitor,
                                    GError** error)
{
	WixlWixComponentRef * self;
	GError* _inner_error0_ = NULL;
	self = (WixlWixComponentRef*) base;
	g_return_if_fail (visitor != NULL);
	wixl_wix_node_visitor_visit_component_ref (visitor, self, &_inner_error0_);
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
		g_propagate_error (error, _inner_error0_);
		return;
	}
}

WixlWixComponentRef*
wixl_wix_component_ref_construct (GType object_type)
{
	WixlWixComponentRef * self = NULL;
	self = (WixlWixComponentRef*) wixl_wix_element_ref_construct (object_type, WIXL_TYPE_WIX_COMPONENT, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref);
	return self;
}

WixlWixComponentRef*
wixl_wix_component_ref_new (void)
{
	return wixl_wix_component_ref_construct (WIXL_TYPE_WIX_COMPONENT_REF);
}

static void
wixl_wix_component_ref_class_init (WixlWixComponentRefClass * klass,
                                   gpointer klass_data)
{
	gchar* _tmp0_;
	wixl_wix_component_ref_parent_class = g_type_class_peek_parent (klass);
	((WixlWixElementClass *) klass)->full_path = (gchar* (*) (WixlWixElement*, WixlWixResolver*, GError**)) wixl_wix_component_ref_real_full_path;
	((WixlWixNodeClass *) klass)->accept = (void (*) (WixlWixNode*, WixlWixNodeVisitor*, GError**)) wixl_wix_component_ref_real_accept;
	_tmp0_ = g_strdup ("ComponentRef");
	_g_free0 (WIXL_WIX_ELEMENT_CLASS (klass)->name);
	WIXL_WIX_ELEMENT_CLASS (klass)->name = _tmp0_;
	WIXL_WIX_ELEMENT_REF_CLASS (klass)->ref_type = WIXL_TYPE_WIX_COMPONENT;
}

static void
wixl_wix_component_ref_instance_init (WixlWixComponentRef * self,
                                      gpointer klass)
{
}

GType
wixl_wix_component_ref_get_type (void)
{
	static volatile gsize wixl_wix_component_ref_type_id__volatile = 0;
	if (g_once_init_enter (&wixl_wix_component_ref_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (WixlWixComponentRefClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) wixl_wix_component_ref_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (WixlWixComponentRef), 0, (GInstanceInitFunc) wixl_wix_component_ref_instance_init, NULL };
		GType wixl_wix_component_ref_type_id;
		wixl_wix_component_ref_type_id = g_type_register_static (WIXL_TYPE_WIX_ELEMENT_REF, "WixlWixComponentRef", &g_define_type_info, 0);
		g_once_init_leave (&wixl_wix_component_ref_type_id__volatile, wixl_wix_component_ref_type_id);
	}
	return wixl_wix_component_ref_type_id__volatile;
}

static gchar*
wixl_wix_component_group_ref_real_full_path (WixlWixElement* base,
                                             WixlWixResolver* r,
                                             GError** error)
{
	WixlWixComponentGroupRef * self;
	WixlWixComponentGroup* _tmp0_ = NULL;
	gpointer _tmp1_;
	gchar* _tmp2_ = NULL;
	gchar* _tmp3_;
	gchar* _tmp4_;
	GError* _inner_error0_ = NULL;
	gchar* result = NULL;
	self = (WixlWixComponentGroupRef*) base;
	g_return_val_if_fail (r != NULL, NULL);
	_tmp1_ = wixl_wix_resolver_resolve (r, WIXL_TYPE_WIX_COMPONENT_GROUP, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, (WixlWixElement*) self, &_inner_error0_);
	_tmp0_ = (WixlWixComponentGroup*) _tmp1_;
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
		g_propagate_error (error, _inner_error0_);
		return NULL;
	}
	_tmp3_ = wixl_wix_element_full_path (WIXL_IS_WIX_ELEMENT (_tmp0_) ? ((WixlWixElement*) _tmp0_) : NULL, r, &_inner_error0_);
	_tmp2_ = _tmp3_;
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
		g_propagate_error (error, _inner_error0_);
		_g_object_unref0 (_tmp0_);
		return NULL;
	}
	_tmp4_ = _tmp2_;
	_tmp2_ = NULL;
	result = _tmp4_;
	_g_free0 (_tmp2_);
	_g_object_unref0 (_tmp0_);
	return result;
}

static void
wixl_wix_component_group_ref_real_accept (WixlWixNode* base,
                                          WixlWixNodeVisitor* visitor,
                                          GError** error)
{
	WixlWixComponentGroupRef * self;
	GError* _inner_error0_ = NULL;
	self = (WixlWixComponentGroupRef*) base;
	g_return_if_fail (visitor != NULL);
	wixl_wix_node_visitor_visit_component_group_ref (visitor, self, &_inner_error0_);
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
		g_propagate_error (error, _inner_error0_);
		return;
	}
}

WixlWixComponentGroupRef*
wixl_wix_component_group_ref_construct (GType object_type)
{
	WixlWixComponentGroupRef * self = NULL;
	self = (WixlWixComponentGroupRef*) wixl_wix_element_ref_construct (object_type, WIXL_TYPE_WIX_COMPONENT_GROUP, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref);
	return self;
}

WixlWixComponentGroupRef*
wixl_wix_component_group_ref_new (void)
{
	return wixl_wix_component_group_ref_construct (WIXL_TYPE_WIX_COMPONENT_GROUP_REF);
}

static void
wixl_wix_component_group_ref_class_init (WixlWixComponentGroupRefClass * klass,
                                         gpointer klass_data)
{
	gchar* _tmp0_;
	wixl_wix_component_group_ref_parent_class = g_type_class_peek_parent (klass);
	((WixlWixElementClass *) klass)->full_path = (gchar* (*) (WixlWixElement*, WixlWixResolver*, GError**)) wixl_wix_component_group_ref_real_full_path;
	((WixlWixNodeClass *) klass)->accept = (void (*) (WixlWixNode*, WixlWixNodeVisitor*, GError**)) wixl_wix_component_group_ref_real_accept;
	_tmp0_ = g_strdup ("ComponentGroupRef");
	_g_free0 (WIXL_WIX_ELEMENT_CLASS (klass)->name);
	WIXL_WIX_ELEMENT_CLASS (klass)->name = _tmp0_;
	WIXL_WIX_ELEMENT_REF_CLASS (klass)->ref_type = WIXL_TYPE_WIX_COMPONENT_GROUP;
}

static void
wixl_wix_component_group_ref_instance_init (WixlWixComponentGroupRef * self,
                                            gpointer klass)
{
}

GType
wixl_wix_component_group_ref_get_type (void)
{
	static volatile gsize wixl_wix_component_group_ref_type_id__volatile = 0;
	if (g_once_init_enter (&wixl_wix_component_group_ref_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (WixlWixComponentGroupRefClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) wixl_wix_component_group_ref_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (WixlWixComponentGroupRef), 0, (GInstanceInitFunc) wixl_wix_component_group_ref_instance_init, NULL };
		GType wixl_wix_component_group_ref_type_id;
		wixl_wix_component_group_ref_type_id = g_type_register_static (WIXL_TYPE_WIX_ELEMENT_REF, "WixlWixComponentGroupRef", &g_define_type_info, 0);
		g_once_init_leave (&wixl_wix_component_group_ref_type_id__volatile, wixl_wix_component_group_ref_type_id);
	}
	return wixl_wix_component_group_ref_type_id__volatile;
}

static inline gpointer
wixl_wix_condition_get_instance_private (WixlWixCondition* self)
{
	return G_STRUCT_MEMBER_P (self, WixlWixCondition_private_offset);
}

static void
wixl_wix_condition_real_accept (WixlWixNode* base,
                                WixlWixNodeVisitor* visitor,
                                GError** error)
{
	WixlWixCondition * self;
	GError* _inner_error0_ = NULL;
	self = (WixlWixCondition*) base;
	g_return_if_fail (visitor != NULL);
	wixl_wix_node_visitor_visit_condition (visitor, self, &_inner_error0_);
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
		g_propagate_error (error, _inner_error0_);
		return;
	}
}

WixlWixCondition*
wixl_wix_condition_construct (GType object_type)
{
	WixlWixCondition * self = NULL;
	self = (WixlWixCondition*) wixl_wix_element_construct (object_type);
	return self;
}

WixlWixCondition*
wixl_wix_condition_new (void)
{
	return wixl_wix_condition_construct (WIXL_TYPE_WIX_CONDITION);
}

const gchar*
wixl_wix_condition_get_Message (WixlWixCondition* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Message;
	result = _tmp0_;
	return result;
}

void
wixl_wix_condition_set_Message (WixlWixCondition* self,
                                const gchar* value)
{
	g_return_if_fail (self != NULL);
	if (g_strcmp0 (value, wixl_wix_condition_get_Message (self)) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_Message);
		self->priv->_Message = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, wixl_wix_condition_properties[WIXL_WIX_CONDITION_MESSAGE_PROPERTY]);
	}
}

static void
wixl_wix_condition_class_init (WixlWixConditionClass * klass,
                               gpointer klass_data)
{
	gchar* _tmp0_;
	wixl_wix_condition_parent_class = g_type_class_peek_parent (klass);
	g_type_class_adjust_private_offset (klass, &WixlWixCondition_private_offset);
	((WixlWixNodeClass *) klass)->accept = (void (*) (WixlWixNode*, WixlWixNodeVisitor*, GError**)) wixl_wix_condition_real_accept;
	G_OBJECT_CLASS (klass)->get_property = _vala_wixl_wix_condition_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_wixl_wix_condition_set_property;
	G_OBJECT_CLASS (klass)->finalize = wixl_wix_condition_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_CONDITION_MESSAGE_PROPERTY, wixl_wix_condition_properties[WIXL_WIX_CONDITION_MESSAGE_PROPERTY] = g_param_spec_string ("Message", "Message", "Message", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	_tmp0_ = g_strdup ("Condition");
	_g_free0 (WIXL_WIX_ELEMENT_CLASS (klass)->name);
	WIXL_WIX_ELEMENT_CLASS (klass)->name = _tmp0_;
}

static void
wixl_wix_condition_instance_init (WixlWixCondition * self,
                                  gpointer klass)
{
	self->priv = wixl_wix_condition_get_instance_private (self);
}

static void
wixl_wix_condition_finalize (GObject * obj)
{
	WixlWixCondition * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, WIXL_TYPE_WIX_CONDITION, WixlWixCondition);
	_g_free0 (self->priv->_Message);
	G_OBJECT_CLASS (wixl_wix_condition_parent_class)->finalize (obj);
}

GType
wixl_wix_condition_get_type (void)
{
	static volatile gsize wixl_wix_condition_type_id__volatile = 0;
	if (g_once_init_enter (&wixl_wix_condition_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (WixlWixConditionClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) wixl_wix_condition_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (WixlWixCondition), 0, (GInstanceInitFunc) wixl_wix_condition_instance_init, NULL };
		GType wixl_wix_condition_type_id;
		wixl_wix_condition_type_id = g_type_register_static (WIXL_TYPE_WIX_ELEMENT, "WixlWixCondition", &g_define_type_info, 0);
		WixlWixCondition_private_offset = g_type_add_instance_private (wixl_wix_condition_type_id, sizeof (WixlWixConditionPrivate));
		g_once_init_leave (&wixl_wix_condition_type_id__volatile, wixl_wix_condition_type_id);
	}
	return wixl_wix_condition_type_id__volatile;
}

static void
_vala_wixl_wix_condition_get_property (GObject * object,
                                       guint property_id,
                                       GValue * value,
                                       GParamSpec * pspec)
{
	WixlWixCondition * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, WIXL_TYPE_WIX_CONDITION, WixlWixCondition);
	switch (property_id) {
		case WIXL_WIX_CONDITION_MESSAGE_PROPERTY:
		g_value_set_string (value, wixl_wix_condition_get_Message (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static void
_vala_wixl_wix_condition_set_property (GObject * object,
                                       guint property_id,
                                       const GValue * value,
                                       GParamSpec * pspec)
{
	WixlWixCondition * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, WIXL_TYPE_WIX_CONDITION, WixlWixCondition);
	switch (property_id) {
		case WIXL_WIX_CONDITION_MESSAGE_PROPERTY:
		wixl_wix_condition_set_Message (self, g_value_get_string (value));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static inline gpointer
wixl_wix_mime_get_instance_private (WixlWixMIME* self)
{
	return G_STRUCT_MEMBER_P (self, WixlWixMIME_private_offset);
}

static void
wixl_wix_mime_real_accept (WixlWixNode* base,
                           WixlWixNodeVisitor* visitor,
                           GError** error)
{
	WixlWixMIME * self;
	GError* _inner_error0_ = NULL;
	self = (WixlWixMIME*) base;
	g_return_if_fail (visitor != NULL);
	wixl_wix_node_visitor_visit_mime (visitor, self, &_inner_error0_);
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
		g_propagate_error (error, _inner_error0_);
		return;
	}
}

WixlWixMIME*
wixl_wix_mime_construct (GType object_type)
{
	WixlWixMIME * self = NULL;
	self = (WixlWixMIME*) wixl_wix_element_construct (object_type);
	return self;
}

WixlWixMIME*
wixl_wix_mime_new (void)
{
	return wixl_wix_mime_construct (WIXL_TYPE_WIX_MIME);
}

const gchar*
wixl_wix_mime_get_Advertise (WixlWixMIME* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Advertise;
	result = _tmp0_;
	return result;
}

void
wixl_wix_mime_set_Advertise (WixlWixMIME* self,
                             const gchar* value)
{
	g_return_if_fail (self != NULL);
	if (g_strcmp0 (value, wixl_wix_mime_get_Advertise (self)) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_Advertise);
		self->priv->_Advertise = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, wixl_wix_mime_properties[WIXL_WIX_MIME_ADVERTISE_PROPERTY]);
	}
}

const gchar*
wixl_wix_mime_get_ContentType (WixlWixMIME* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_ContentType;
	result = _tmp0_;
	return result;
}

void
wixl_wix_mime_set_ContentType (WixlWixMIME* self,
                               const gchar* value)
{
	g_return_if_fail (self != NULL);
	if (g_strcmp0 (value, wixl_wix_mime_get_ContentType (self)) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_ContentType);
		self->priv->_ContentType = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, wixl_wix_mime_properties[WIXL_WIX_MIME_CONTENT_TYPE_PROPERTY]);
	}
}

const gchar*
wixl_wix_mime_get_Default (WixlWixMIME* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Default;
	result = _tmp0_;
	return result;
}

void
wixl_wix_mime_set_Default (WixlWixMIME* self,
                           const gchar* value)
{
	g_return_if_fail (self != NULL);
	if (g_strcmp0 (value, wixl_wix_mime_get_Default (self)) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_Default);
		self->priv->_Default = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, wixl_wix_mime_properties[WIXL_WIX_MIME_DEFAULT_PROPERTY]);
	}
}

static void
wixl_wix_mime_class_init (WixlWixMIMEClass * klass,
                          gpointer klass_data)
{
	gchar* _tmp0_;
	wixl_wix_mime_parent_class = g_type_class_peek_parent (klass);
	g_type_class_adjust_private_offset (klass, &WixlWixMIME_private_offset);
	((WixlWixNodeClass *) klass)->accept = (void (*) (WixlWixNode*, WixlWixNodeVisitor*, GError**)) wixl_wix_mime_real_accept;
	G_OBJECT_CLASS (klass)->get_property = _vala_wixl_wix_mime_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_wixl_wix_mime_set_property;
	G_OBJECT_CLASS (klass)->finalize = wixl_wix_mime_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_MIME_ADVERTISE_PROPERTY, wixl_wix_mime_properties[WIXL_WIX_MIME_ADVERTISE_PROPERTY] = g_param_spec_string ("Advertise", "Advertise", "Advertise", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_MIME_CONTENT_TYPE_PROPERTY, wixl_wix_mime_properties[WIXL_WIX_MIME_CONTENT_TYPE_PROPERTY] = g_param_spec_string ("ContentType", "ContentType", "ContentType", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_MIME_DEFAULT_PROPERTY, wixl_wix_mime_properties[WIXL_WIX_MIME_DEFAULT_PROPERTY] = g_param_spec_string ("Default", "Default", "Default", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	_tmp0_ = g_strdup ("MIME");
	_g_free0 (WIXL_WIX_ELEMENT_CLASS (klass)->name);
	WIXL_WIX_ELEMENT_CLASS (klass)->name = _tmp0_;
}

static void
wixl_wix_mime_instance_init (WixlWixMIME * self,
                             gpointer klass)
{
	self->priv = wixl_wix_mime_get_instance_private (self);
}

static void
wixl_wix_mime_finalize (GObject * obj)
{
	WixlWixMIME * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, WIXL_TYPE_WIX_MIME, WixlWixMIME);
	_g_free0 (self->priv->_Advertise);
	_g_free0 (self->priv->_ContentType);
	_g_free0 (self->priv->_Default);
	G_OBJECT_CLASS (wixl_wix_mime_parent_class)->finalize (obj);
}

GType
wixl_wix_mime_get_type (void)
{
	static volatile gsize wixl_wix_mime_type_id__volatile = 0;
	if (g_once_init_enter (&wixl_wix_mime_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (WixlWixMIMEClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) wixl_wix_mime_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (WixlWixMIME), 0, (GInstanceInitFunc) wixl_wix_mime_instance_init, NULL };
		GType wixl_wix_mime_type_id;
		wixl_wix_mime_type_id = g_type_register_static (WIXL_TYPE_WIX_ELEMENT, "WixlWixMIME", &g_define_type_info, 0);
		WixlWixMIME_private_offset = g_type_add_instance_private (wixl_wix_mime_type_id, sizeof (WixlWixMIMEPrivate));
		g_once_init_leave (&wixl_wix_mime_type_id__volatile, wixl_wix_mime_type_id);
	}
	return wixl_wix_mime_type_id__volatile;
}

static void
_vala_wixl_wix_mime_get_property (GObject * object,
                                  guint property_id,
                                  GValue * value,
                                  GParamSpec * pspec)
{
	WixlWixMIME * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, WIXL_TYPE_WIX_MIME, WixlWixMIME);
	switch (property_id) {
		case WIXL_WIX_MIME_ADVERTISE_PROPERTY:
		g_value_set_string (value, wixl_wix_mime_get_Advertise (self));
		break;
		case WIXL_WIX_MIME_CONTENT_TYPE_PROPERTY:
		g_value_set_string (value, wixl_wix_mime_get_ContentType (self));
		break;
		case WIXL_WIX_MIME_DEFAULT_PROPERTY:
		g_value_set_string (value, wixl_wix_mime_get_Default (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static void
_vala_wixl_wix_mime_set_property (GObject * object,
                                  guint property_id,
                                  const GValue * value,
                                  GParamSpec * pspec)
{
	WixlWixMIME * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, WIXL_TYPE_WIX_MIME, WixlWixMIME);
	switch (property_id) {
		case WIXL_WIX_MIME_ADVERTISE_PROPERTY:
		wixl_wix_mime_set_Advertise (self, g_value_get_string (value));
		break;
		case WIXL_WIX_MIME_CONTENT_TYPE_PROPERTY:
		wixl_wix_mime_set_ContentType (self, g_value_get_string (value));
		break;
		case WIXL_WIX_MIME_DEFAULT_PROPERTY:
		wixl_wix_mime_set_Default (self, g_value_get_string (value));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

gchar*
wixl_wix_service_argument_get_text (WixlWixServiceArgument* self)
{
	GList* _tmp0_;
	gchar* _tmp6_;
	gchar* result = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = ((WixlWixElement*) self)->children;
	{
		GList* c_collection = NULL;
		GList* c_it = NULL;
		c_collection = _tmp0_;
		for (c_it = c_collection; c_it != NULL; c_it = c_it->next) {
			WixlWixNode* _tmp1_;
			WixlWixNode* c = NULL;
			_tmp1_ = _g_object_ref0 ((WixlWixNode*) c_it->data);
			c = _tmp1_;
			{
				WixlWixNode* _tmp2_;
				_tmp2_ = c;
				if (WIXL_IS_WIX_TEXT (_tmp2_)) {
					WixlWixNode* _tmp3_;
					const gchar* _tmp4_;
					gchar* _tmp5_;
					_tmp3_ = c;
					_tmp4_ = (WIXL_IS_WIX_TEXT (_tmp3_) ? ((WixlWixText*) _tmp3_) : NULL)->Text;
					_tmp5_ = g_strdup (_tmp4_);
					result = _tmp5_;
					_g_object_unref0 (c);
					return result;
				}
				_g_object_unref0 (c);
			}
		}
	}
	_tmp6_ = g_strdup ("");
	result = _tmp6_;
	return result;
}

static void
wixl_wix_service_argument_real_accept (WixlWixNode* base,
                                       WixlWixNodeVisitor* visitor,
                                       GError** error)
{
	WixlWixServiceArgument * self;
	GError* _inner_error0_ = NULL;
	self = (WixlWixServiceArgument*) base;
	g_return_if_fail (visitor != NULL);
	wixl_wix_node_visitor_visit_service_argument (visitor, self, &_inner_error0_);
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
		g_propagate_error (error, _inner_error0_);
		return;
	}
}

WixlWixServiceArgument*
wixl_wix_service_argument_construct (GType object_type)
{
	WixlWixServiceArgument * self = NULL;
	self = (WixlWixServiceArgument*) wixl_wix_element_construct (object_type);
	return self;
}

WixlWixServiceArgument*
wixl_wix_service_argument_new (void)
{
	return wixl_wix_service_argument_construct (WIXL_TYPE_WIX_SERVICE_ARGUMENT);
}

static void
wixl_wix_service_argument_class_init (WixlWixServiceArgumentClass * klass,
                                      gpointer klass_data)
{
	gchar* _tmp0_;
	wixl_wix_service_argument_parent_class = g_type_class_peek_parent (klass);
	((WixlWixNodeClass *) klass)->accept = (void (*) (WixlWixNode*, WixlWixNodeVisitor*, GError**)) wixl_wix_service_argument_real_accept;
	_tmp0_ = g_strdup ("ServiceArgument");
	_g_free0 (WIXL_WIX_ELEMENT_CLASS (klass)->name);
	WIXL_WIX_ELEMENT_CLASS (klass)->name = _tmp0_;
}

static void
wixl_wix_service_argument_instance_init (WixlWixServiceArgument * self,
                                         gpointer klass)
{
}

GType
wixl_wix_service_argument_get_type (void)
{
	static volatile gsize wixl_wix_service_argument_type_id__volatile = 0;
	if (g_once_init_enter (&wixl_wix_service_argument_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (WixlWixServiceArgumentClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) wixl_wix_service_argument_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (WixlWixServiceArgument), 0, (GInstanceInitFunc) wixl_wix_service_argument_instance_init, NULL };
		GType wixl_wix_service_argument_type_id;
		wixl_wix_service_argument_type_id = g_type_register_static (WIXL_TYPE_WIX_ELEMENT, "WixlWixServiceArgument", &g_define_type_info, 0);
		g_once_init_leave (&wixl_wix_service_argument_type_id__volatile, wixl_wix_service_argument_type_id);
	}
	return wixl_wix_service_argument_type_id__volatile;
}

static inline gpointer
wixl_wix_service_control_get_instance_private (WixlWixServiceControl* self)
{
	return G_STRUCT_MEMBER_P (self, WixlWixServiceControl_private_offset);
}

static void
wixl_wix_service_control_real_accept (WixlWixNode* base,
                                      WixlWixNodeVisitor* visitor,
                                      GError** error)
{
	WixlWixServiceControl * self;
	GError* _inner_error0_ = NULL;
	self = (WixlWixServiceControl*) base;
	g_return_if_fail (visitor != NULL);
	wixl_wix_node_visitor_visit_service_control (visitor, self, WIXL_VISIT_STATE_ENTER, &_inner_error0_);
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
		g_propagate_error (error, _inner_error0_);
		return;
	}
	WIXL_WIX_NODE_CLASS (wixl_wix_service_control_parent_class)->accept ((WixlWixNode*) G_TYPE_CHECK_INSTANCE_CAST (self, WIXL_TYPE_WIX_ELEMENT, WixlWixElement), visitor, &_inner_error0_);
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
		g_propagate_error (error, _inner_error0_);
		return;
	}
	wixl_wix_node_visitor_visit_service_control (visitor, self, WIXL_VISIT_STATE_LEAVE, &_inner_error0_);
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
		g_propagate_error (error, _inner_error0_);
		return;
	}
}

WixlWixServiceControl*
wixl_wix_service_control_construct (GType object_type)
{
	WixlWixServiceControl * self = NULL;
	self = (WixlWixServiceControl*) wixl_wix_element_construct (object_type);
	return self;
}

WixlWixServiceControl*
wixl_wix_service_control_new (void)
{
	return wixl_wix_service_control_construct (WIXL_TYPE_WIX_SERVICE_CONTROL);
}

const gchar*
wixl_wix_service_control_get_Name (WixlWixServiceControl* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Name;
	result = _tmp0_;
	return result;
}

void
wixl_wix_service_control_set_Name (WixlWixServiceControl* self,
                                   const gchar* value)
{
	g_return_if_fail (self != NULL);
	if (g_strcmp0 (value, wixl_wix_service_control_get_Name (self)) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_Name);
		self->priv->_Name = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, wixl_wix_service_control_properties[WIXL_WIX_SERVICE_CONTROL_NAME_PROPERTY]);
	}
}

const gchar*
wixl_wix_service_control_get_Start (WixlWixServiceControl* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Start;
	result = _tmp0_;
	return result;
}

void
wixl_wix_service_control_set_Start (WixlWixServiceControl* self,
                                    const gchar* value)
{
	g_return_if_fail (self != NULL);
	if (g_strcmp0 (value, wixl_wix_service_control_get_Start (self)) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_Start);
		self->priv->_Start = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, wixl_wix_service_control_properties[WIXL_WIX_SERVICE_CONTROL_START_PROPERTY]);
	}
}

const gchar*
wixl_wix_service_control_get_Stop (WixlWixServiceControl* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Stop;
	result = _tmp0_;
	return result;
}

void
wixl_wix_service_control_set_Stop (WixlWixServiceControl* self,
                                   const gchar* value)
{
	g_return_if_fail (self != NULL);
	if (g_strcmp0 (value, wixl_wix_service_control_get_Stop (self)) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_Stop);
		self->priv->_Stop = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, wixl_wix_service_control_properties[WIXL_WIX_SERVICE_CONTROL_STOP_PROPERTY]);
	}
}

const gchar*
wixl_wix_service_control_get_Remove (WixlWixServiceControl* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Remove;
	result = _tmp0_;
	return result;
}

void
wixl_wix_service_control_set_Remove (WixlWixServiceControl* self,
                                     const gchar* value)
{
	g_return_if_fail (self != NULL);
	if (g_strcmp0 (value, wixl_wix_service_control_get_Remove (self)) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_Remove);
		self->priv->_Remove = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, wixl_wix_service_control_properties[WIXL_WIX_SERVICE_CONTROL_REMOVE_PROPERTY]);
	}
}

const gchar*
wixl_wix_service_control_get_Wait (WixlWixServiceControl* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Wait;
	result = _tmp0_;
	return result;
}

void
wixl_wix_service_control_set_Wait (WixlWixServiceControl* self,
                                   const gchar* value)
{
	g_return_if_fail (self != NULL);
	if (g_strcmp0 (value, wixl_wix_service_control_get_Wait (self)) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_Wait);
		self->priv->_Wait = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, wixl_wix_service_control_properties[WIXL_WIX_SERVICE_CONTROL_WAIT_PROPERTY]);
	}
}

static void
wixl_wix_service_control_class_init (WixlWixServiceControlClass * klass,
                                     gpointer klass_data)
{
	gchar* _tmp0_;
	GHashTable* _tmp1_;
	GType* _tmp2_;
	GType* _tmp3_;
	gint _tmp3__length1;
	wixl_wix_service_control_parent_class = g_type_class_peek_parent (klass);
	g_type_class_adjust_private_offset (klass, &WixlWixServiceControl_private_offset);
	((WixlWixNodeClass *) klass)->accept = (void (*) (WixlWixNode*, WixlWixNodeVisitor*, GError**)) wixl_wix_service_control_real_accept;
	G_OBJECT_CLASS (klass)->get_property = _vala_wixl_wix_service_control_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_wixl_wix_service_control_set_property;
	G_OBJECT_CLASS (klass)->finalize = wixl_wix_service_control_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_SERVICE_CONTROL_NAME_PROPERTY, wixl_wix_service_control_properties[WIXL_WIX_SERVICE_CONTROL_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), WIXL_WIX_SERVICE_CONTROL_START_PROPERTY, wixl_wix_service_control_properties[WIXL_WIX_SERVICE_CONTROL_START_PROPERTY] = g_param_spec_string ("Start", "Start", "Start", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_SERVICE_CONTROL_STOP_PROPERTY, wixl_wix_service_control_properties[WIXL_WIX_SERVICE_CONTROL_STOP_PROPERTY] = g_param_spec_string ("Stop", "Stop", "Stop", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_SERVICE_CONTROL_REMOVE_PROPERTY, wixl_wix_service_control_properties[WIXL_WIX_SERVICE_CONTROL_REMOVE_PROPERTY] = g_param_spec_string ("Remove", "Remove", "Remove", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_SERVICE_CONTROL_WAIT_PROPERTY, wixl_wix_service_control_properties[WIXL_WIX_SERVICE_CONTROL_WAIT_PROPERTY] = g_param_spec_string ("Wait", "Wait", "Wait", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	_tmp0_ = g_strdup ("ServiceControl");
	_g_free0 (WIXL_WIX_ELEMENT_CLASS (klass)->name);
	WIXL_WIX_ELEMENT_CLASS (klass)->name = _tmp0_;
	_tmp1_ = WIXL_WIX_ELEMENT_CLASS (klass)->child_types;
	_tmp2_ = g_new0 (GType, 1);
	_tmp2_[0] = WIXL_TYPE_WIX_SERVICE_ARGUMENT;
	_tmp3_ = _tmp2_;
	_tmp3__length1 = 1;
	wixl_wix_element_add_child_types (WIXL_WIX_ELEMENT_CLASS (klass), _tmp1_, _tmp3_, (gint) 1);
	_tmp3_ = (g_free (_tmp3_), NULL);
}

static void
wixl_wix_service_control_instance_init (WixlWixServiceControl * self,
                                        gpointer klass)
{
	self->priv = wixl_wix_service_control_get_instance_private (self);
}

static void
wixl_wix_service_control_finalize (GObject * obj)
{
	WixlWixServiceControl * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, WIXL_TYPE_WIX_SERVICE_CONTROL, WixlWixServiceControl);
	_g_free0 (self->priv->_Name);
	_g_free0 (self->priv->_Start);
	_g_free0 (self->priv->_Stop);
	_g_free0 (self->priv->_Remove);
	_g_free0 (self->priv->_Wait);
	G_OBJECT_CLASS (wixl_wix_service_control_parent_class)->finalize (obj);
}

GType
wixl_wix_service_control_get_type (void)
{
	static volatile gsize wixl_wix_service_control_type_id__volatile = 0;
	if (g_once_init_enter (&wixl_wix_service_control_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (WixlWixServiceControlClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) wixl_wix_service_control_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (WixlWixServiceControl), 0, (GInstanceInitFunc) wixl_wix_service_control_instance_init, NULL };
		GType wixl_wix_service_control_type_id;
		wixl_wix_service_control_type_id = g_type_register_static (WIXL_TYPE_WIX_ELEMENT, "WixlWixServiceControl", &g_define_type_info, 0);
		WixlWixServiceControl_private_offset = g_type_add_instance_private (wixl_wix_service_control_type_id, sizeof (WixlWixServiceControlPrivate));
		g_once_init_leave (&wixl_wix_service_control_type_id__volatile, wixl_wix_service_control_type_id);
	}
	return wixl_wix_service_control_type_id__volatile;
}

static void
_vala_wixl_wix_service_control_get_property (GObject * object,
                                             guint property_id,
                                             GValue * value,
                                             GParamSpec * pspec)
{
	WixlWixServiceControl * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, WIXL_TYPE_WIX_SERVICE_CONTROL, WixlWixServiceControl);
	switch (property_id) {
		case WIXL_WIX_SERVICE_CONTROL_NAME_PROPERTY:
		g_value_set_string (value, wixl_wix_service_control_get_Name (self));
		break;
		case WIXL_WIX_SERVICE_CONTROL_START_PROPERTY:
		g_value_set_string (value, wixl_wix_service_control_get_Start (self));
		break;
		case WIXL_WIX_SERVICE_CONTROL_STOP_PROPERTY:
		g_value_set_string (value, wixl_wix_service_control_get_Stop (self));
		break;
		case WIXL_WIX_SERVICE_CONTROL_REMOVE_PROPERTY:
		g_value_set_string (value, wixl_wix_service_control_get_Remove (self));
		break;
		case WIXL_WIX_SERVICE_CONTROL_WAIT_PROPERTY:
		g_value_set_string (value, wixl_wix_service_control_get_Wait (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static void
_vala_wixl_wix_service_control_set_property (GObject * object,
                                             guint property_id,
                                             const GValue * value,
                                             GParamSpec * pspec)
{
	WixlWixServiceControl * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, WIXL_TYPE_WIX_SERVICE_CONTROL, WixlWixServiceControl);
	switch (property_id) {
		case WIXL_WIX_SERVICE_CONTROL_NAME_PROPERTY:
		wixl_wix_service_control_set_Name (self, g_value_get_string (value));
		break;
		case WIXL_WIX_SERVICE_CONTROL_START_PROPERTY:
		wixl_wix_service_control_set_Start (self, g_value_get_string (value));
		break;
		case WIXL_WIX_SERVICE_CONTROL_STOP_PROPERTY:
		wixl_wix_service_control_set_Stop (self, g_value_get_string (value));
		break;
		case WIXL_WIX_SERVICE_CONTROL_REMOVE_PROPERTY:
		wixl_wix_service_control_set_Remove (self, g_value_get_string (value));
		break;
		case WIXL_WIX_SERVICE_CONTROL_WAIT_PROPERTY:
		wixl_wix_service_control_set_Wait (self, g_value_get_string (value));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static inline gpointer
wixl_wix_service_dependency_get_instance_private (WixlWixServiceDependency* self)
{
	return G_STRUCT_MEMBER_P (self, WixlWixServiceDependency_private_offset);
}

static void
wixl_wix_service_dependency_real_accept (WixlWixNode* base,
                                         WixlWixNodeVisitor* visitor,
                                         GError** error)
{
	WixlWixServiceDependency * self;
	GError* _inner_error0_ = NULL;
	self = (WixlWixServiceDependency*) base;
	g_return_if_fail (visitor != NULL);
	wixl_wix_node_visitor_visit_service_dependency (visitor, self, &_inner_error0_);
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
		g_propagate_error (error, _inner_error0_);
		return;
	}
}

WixlWixServiceDependency*
wixl_wix_service_dependency_construct (GType object_type)
{
	WixlWixServiceDependency * self = NULL;
	self = (WixlWixServiceDependency*) wixl_wix_element_construct (object_type);
	return self;
}

WixlWixServiceDependency*
wixl_wix_service_dependency_new (void)
{
	return wixl_wix_service_dependency_construct (WIXL_TYPE_WIX_SERVICE_DEPENDENCY);
}

const gchar*
wixl_wix_service_dependency_get_Group (WixlWixServiceDependency* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Group;
	result = _tmp0_;
	return result;
}

void
wixl_wix_service_dependency_set_Group (WixlWixServiceDependency* self,
                                       const gchar* value)
{
	g_return_if_fail (self != NULL);
	if (g_strcmp0 (value, wixl_wix_service_dependency_get_Group (self)) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_Group);
		self->priv->_Group = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, wixl_wix_service_dependency_properties[WIXL_WIX_SERVICE_DEPENDENCY_GROUP_PROPERTY]);
	}
}

static void
wixl_wix_service_dependency_class_init (WixlWixServiceDependencyClass * klass,
                                        gpointer klass_data)
{
	gchar* _tmp0_;
	wixl_wix_service_dependency_parent_class = g_type_class_peek_parent (klass);
	g_type_class_adjust_private_offset (klass, &WixlWixServiceDependency_private_offset);
	((WixlWixNodeClass *) klass)->accept = (void (*) (WixlWixNode*, WixlWixNodeVisitor*, GError**)) wixl_wix_service_dependency_real_accept;
	G_OBJECT_CLASS (klass)->get_property = _vala_wixl_wix_service_dependency_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_wixl_wix_service_dependency_set_property;
	G_OBJECT_CLASS (klass)->finalize = wixl_wix_service_dependency_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_SERVICE_DEPENDENCY_GROUP_PROPERTY, wixl_wix_service_dependency_properties[WIXL_WIX_SERVICE_DEPENDENCY_GROUP_PROPERTY] = g_param_spec_string ("Group", "Group", "Group", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	_tmp0_ = g_strdup ("ServiceDependency");
	_g_free0 (WIXL_WIX_ELEMENT_CLASS (klass)->name);
	WIXL_WIX_ELEMENT_CLASS (klass)->name = _tmp0_;
}

static void
wixl_wix_service_dependency_instance_init (WixlWixServiceDependency * self,
                                           gpointer klass)
{
	self->priv = wixl_wix_service_dependency_get_instance_private (self);
}

static void
wixl_wix_service_dependency_finalize (GObject * obj)
{
	WixlWixServiceDependency * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, WIXL_TYPE_WIX_SERVICE_DEPENDENCY, WixlWixServiceDependency);
	_g_free0 (self->priv->_Group);
	G_OBJECT_CLASS (wixl_wix_service_dependency_parent_class)->finalize (obj);
}

GType
wixl_wix_service_dependency_get_type (void)
{
	static volatile gsize wixl_wix_service_dependency_type_id__volatile = 0;
	if (g_once_init_enter (&wixl_wix_service_dependency_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (WixlWixServiceDependencyClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) wixl_wix_service_dependency_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (WixlWixServiceDependency), 0, (GInstanceInitFunc) wixl_wix_service_dependency_instance_init, NULL };
		GType wixl_wix_service_dependency_type_id;
		wixl_wix_service_dependency_type_id = g_type_register_static (WIXL_TYPE_WIX_ELEMENT, "WixlWixServiceDependency", &g_define_type_info, 0);
		WixlWixServiceDependency_private_offset = g_type_add_instance_private (wixl_wix_service_dependency_type_id, sizeof (WixlWixServiceDependencyPrivate));
		g_once_init_leave (&wixl_wix_service_dependency_type_id__volatile, wixl_wix_service_dependency_type_id);
	}
	return wixl_wix_service_dependency_type_id__volatile;
}

static void
_vala_wixl_wix_service_dependency_get_property (GObject * object,
                                                guint property_id,
                                                GValue * value,
                                                GParamSpec * pspec)
{
	WixlWixServiceDependency * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, WIXL_TYPE_WIX_SERVICE_DEPENDENCY, WixlWixServiceDependency);
	switch (property_id) {
		case WIXL_WIX_SERVICE_DEPENDENCY_GROUP_PROPERTY:
		g_value_set_string (value, wixl_wix_service_dependency_get_Group (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static void
_vala_wixl_wix_service_dependency_set_property (GObject * object,
                                                guint property_id,
                                                const GValue * value,
                                                GParamSpec * pspec)
{
	WixlWixServiceDependency * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, WIXL_TYPE_WIX_SERVICE_DEPENDENCY, WixlWixServiceDependency);
	switch (property_id) {
		case WIXL_WIX_SERVICE_DEPENDENCY_GROUP_PROPERTY:
		wixl_wix_service_dependency_set_Group (self, g_value_get_string (value));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static inline gpointer
wixl_wix_service_install_get_instance_private (WixlWixServiceInstall* self)
{
	return G_STRUCT_MEMBER_P (self, WixlWixServiceInstall_private_offset);
}

static void
wixl_wix_service_install_real_accept (WixlWixNode* base,
                                      WixlWixNodeVisitor* visitor,
                                      GError** error)
{
	WixlWixServiceInstall * self;
	GError* _inner_error0_ = NULL;
	self = (WixlWixServiceInstall*) base;
	g_return_if_fail (visitor != NULL);
	wixl_wix_node_visitor_visit_service_install (visitor, self, WIXL_VISIT_STATE_ENTER, &_inner_error0_);
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
		g_propagate_error (error, _inner_error0_);
		return;
	}
	WIXL_WIX_NODE_CLASS (wixl_wix_service_install_parent_class)->accept ((WixlWixNode*) G_TYPE_CHECK_INSTANCE_CAST (self, WIXL_TYPE_WIX_ELEMENT, WixlWixElement), visitor, &_inner_error0_);
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
		g_propagate_error (error, _inner_error0_);
		return;
	}
	wixl_wix_node_visitor_visit_service_install (visitor, self, WIXL_VISIT_STATE_LEAVE, &_inner_error0_);
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
		g_propagate_error (error, _inner_error0_);
		return;
	}
}

WixlWixServiceInstall*
wixl_wix_service_install_construct (GType object_type)
{
	WixlWixServiceInstall * self = NULL;
	self = (WixlWixServiceInstall*) wixl_wix_element_construct (object_type);
	return self;
}

WixlWixServiceInstall*
wixl_wix_service_install_new (void)
{
	return wixl_wix_service_install_construct (WIXL_TYPE_WIX_SERVICE_INSTALL);
}

const gchar*
wixl_wix_service_install_get_Name (WixlWixServiceInstall* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Name;
	result = _tmp0_;
	return result;
}

void
wixl_wix_service_install_set_Name (WixlWixServiceInstall* self,
                                   const gchar* value)
{
	g_return_if_fail (self != NULL);
	if (g_strcmp0 (value, wixl_wix_service_install_get_Name (self)) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_Name);
		self->priv->_Name = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, wixl_wix_service_install_properties[WIXL_WIX_SERVICE_INSTALL_NAME_PROPERTY]);
	}
}

const gchar*
wixl_wix_service_install_get_DisplayName (WixlWixServiceInstall* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_DisplayName;
	result = _tmp0_;
	return result;
}

void
wixl_wix_service_install_set_DisplayName (WixlWixServiceInstall* self,
                                          const gchar* value)
{
	g_return_if_fail (self != NULL);
	if (g_strcmp0 (value, wixl_wix_service_install_get_DisplayName (self)) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_DisplayName);
		self->priv->_DisplayName = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, wixl_wix_service_install_properties[WIXL_WIX_SERVICE_INSTALL_DISPLAY_NAME_PROPERTY]);
	}
}

const gchar*
wixl_wix_service_install_get_Type (WixlWixServiceInstall* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Type;
	result = _tmp0_;
	return result;
}

void
wixl_wix_service_install_set_Type (WixlWixServiceInstall* self,
                                   const gchar* value)
{
	g_return_if_fail (self != NULL);
	if (g_strcmp0 (value, wixl_wix_service_install_get_Type (self)) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_Type);
		self->priv->_Type = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, wixl_wix_service_install_properties[WIXL_WIX_SERVICE_INSTALL_TYPE_PROPERTY]);
	}
}

const gchar*
wixl_wix_service_install_get_Interactive (WixlWixServiceInstall* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Interactive;
	result = _tmp0_;
	return result;
}

void
wixl_wix_service_install_set_Interactive (WixlWixServiceInstall* self,
                                          const gchar* value)
{
	g_return_if_fail (self != NULL);
	if (g_strcmp0 (value, wixl_wix_service_install_get_Interactive (self)) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_Interactive);
		self->priv->_Interactive = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, wixl_wix_service_install_properties[WIXL_WIX_SERVICE_INSTALL_INTERACTIVE_PROPERTY]);
	}
}

const gchar*
wixl_wix_service_install_get_Start (WixlWixServiceInstall* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Start;
	result = _tmp0_;
	return result;
}

void
wixl_wix_service_install_set_Start (WixlWixServiceInstall* self,
                                    const gchar* value)
{
	g_return_if_fail (self != NULL);
	if (g_strcmp0 (value, wixl_wix_service_install_get_Start (self)) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_Start);
		self->priv->_Start = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, wixl_wix_service_install_properties[WIXL_WIX_SERVICE_INSTALL_START_PROPERTY]);
	}
}

const gchar*
wixl_wix_service_install_get_ErrorControl (WixlWixServiceInstall* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_ErrorControl;
	result = _tmp0_;
	return result;
}

void
wixl_wix_service_install_set_ErrorControl (WixlWixServiceInstall* self,
                                           const gchar* value)
{
	g_return_if_fail (self != NULL);
	if (g_strcmp0 (value, wixl_wix_service_install_get_ErrorControl (self)) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_ErrorControl);
		self->priv->_ErrorControl = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, wixl_wix_service_install_properties[WIXL_WIX_SERVICE_INSTALL_ERROR_CONTROL_PROPERTY]);
	}
}

const gchar*
wixl_wix_service_install_get_Vital (WixlWixServiceInstall* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Vital;
	result = _tmp0_;
	return result;
}

void
wixl_wix_service_install_set_Vital (WixlWixServiceInstall* self,
                                    const gchar* value)
{
	g_return_if_fail (self != NULL);
	if (g_strcmp0 (value, wixl_wix_service_install_get_Vital (self)) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_Vital);
		self->priv->_Vital = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, wixl_wix_service_install_properties[WIXL_WIX_SERVICE_INSTALL_VITAL_PROPERTY]);
	}
}

const gchar*
wixl_wix_service_install_get_LoadOrderGroup (WixlWixServiceInstall* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_LoadOrderGroup;
	result = _tmp0_;
	return result;
}

void
wixl_wix_service_install_set_LoadOrderGroup (WixlWixServiceInstall* self,
                                             const gchar* value)
{
	g_return_if_fail (self != NULL);
	if (g_strcmp0 (value, wixl_wix_service_install_get_LoadOrderGroup (self)) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_LoadOrderGroup);
		self->priv->_LoadOrderGroup = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, wixl_wix_service_install_properties[WIXL_WIX_SERVICE_INSTALL_LOAD_ORDER_GROUP_PROPERTY]);
	}
}

const gchar*
wixl_wix_service_install_get_Account (WixlWixServiceInstall* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Account;
	result = _tmp0_;
	return result;
}

void
wixl_wix_service_install_set_Account (WixlWixServiceInstall* self,
                                      const gchar* value)
{
	g_return_if_fail (self != NULL);
	if (g_strcmp0 (value, wixl_wix_service_install_get_Account (self)) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_Account);
		self->priv->_Account = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, wixl_wix_service_install_properties[WIXL_WIX_SERVICE_INSTALL_ACCOUNT_PROPERTY]);
	}
}

const gchar*
wixl_wix_service_install_get_Password (WixlWixServiceInstall* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Password;
	result = _tmp0_;
	return result;
}

void
wixl_wix_service_install_set_Password (WixlWixServiceInstall* self,
                                       const gchar* value)
{
	g_return_if_fail (self != NULL);
	if (g_strcmp0 (value, wixl_wix_service_install_get_Password (self)) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_Password);
		self->priv->_Password = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, wixl_wix_service_install_properties[WIXL_WIX_SERVICE_INSTALL_PASSWORD_PROPERTY]);
	}
}

const gchar*
wixl_wix_service_install_get_Arguments (WixlWixServiceInstall* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Arguments;
	result = _tmp0_;
	return result;
}

void
wixl_wix_service_install_set_Arguments (WixlWixServiceInstall* self,
                                        const gchar* value)
{
	g_return_if_fail (self != NULL);
	if (g_strcmp0 (value, wixl_wix_service_install_get_Arguments (self)) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_Arguments);
		self->priv->_Arguments = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, wixl_wix_service_install_properties[WIXL_WIX_SERVICE_INSTALL_ARGUMENTS_PROPERTY]);
	}
}

const gchar*
wixl_wix_service_install_get_Description (WixlWixServiceInstall* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Description;
	result = _tmp0_;
	return result;
}

void
wixl_wix_service_install_set_Description (WixlWixServiceInstall* self,
                                          const gchar* value)
{
	g_return_if_fail (self != NULL);
	if (g_strcmp0 (value, wixl_wix_service_install_get_Description (self)) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_Description);
		self->priv->_Description = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, wixl_wix_service_install_properties[WIXL_WIX_SERVICE_INSTALL_DESCRIPTION_PROPERTY]);
	}
}

const gchar*
wixl_wix_service_install_get_EraseDescription (WixlWixServiceInstall* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_EraseDescription;
	result = _tmp0_;
	return result;
}

void
wixl_wix_service_install_set_EraseDescription (WixlWixServiceInstall* self,
                                               const gchar* value)
{
	g_return_if_fail (self != NULL);
	if (g_strcmp0 (value, wixl_wix_service_install_get_EraseDescription (self)) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_EraseDescription);
		self->priv->_EraseDescription = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, wixl_wix_service_install_properties[WIXL_WIX_SERVICE_INSTALL_ERASE_DESCRIPTION_PROPERTY]);
	}
}

static void
wixl_wix_service_install_class_init (WixlWixServiceInstallClass * klass,
                                     gpointer klass_data)
{
	gchar* _tmp0_;
	GHashTable* _tmp1_;
	GType* _tmp2_;
	GType* _tmp3_;
	gint _tmp3__length1;
	wixl_wix_service_install_parent_class = g_type_class_peek_parent (klass);
	g_type_class_adjust_private_offset (klass, &WixlWixServiceInstall_private_offset);
	((WixlWixNodeClass *) klass)->accept = (void (*) (WixlWixNode*, WixlWixNodeVisitor*, GError**)) wixl_wix_service_install_real_accept;
	G_OBJECT_CLASS (klass)->get_property = _vala_wixl_wix_service_install_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_wixl_wix_service_install_set_property;
	G_OBJECT_CLASS (klass)->finalize = wixl_wix_service_install_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_SERVICE_INSTALL_NAME_PROPERTY, wixl_wix_service_install_properties[WIXL_WIX_SERVICE_INSTALL_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), WIXL_WIX_SERVICE_INSTALL_DISPLAY_NAME_PROPERTY, wixl_wix_service_install_properties[WIXL_WIX_SERVICE_INSTALL_DISPLAY_NAME_PROPERTY] = g_param_spec_string ("DisplayName", "DisplayName", "DisplayName", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_SERVICE_INSTALL_TYPE_PROPERTY, wixl_wix_service_install_properties[WIXL_WIX_SERVICE_INSTALL_TYPE_PROPERTY] = g_param_spec_string ("Type", "Type", "Type", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_SERVICE_INSTALL_INTERACTIVE_PROPERTY, wixl_wix_service_install_properties[WIXL_WIX_SERVICE_INSTALL_INTERACTIVE_PROPERTY] = g_param_spec_string ("Interactive", "Interactive", "Interactive", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_SERVICE_INSTALL_START_PROPERTY, wixl_wix_service_install_properties[WIXL_WIX_SERVICE_INSTALL_START_PROPERTY] = g_param_spec_string ("Start", "Start", "Start", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_SERVICE_INSTALL_ERROR_CONTROL_PROPERTY, wixl_wix_service_install_properties[WIXL_WIX_SERVICE_INSTALL_ERROR_CONTROL_PROPERTY] = g_param_spec_string ("ErrorControl", "ErrorControl", "ErrorControl", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_SERVICE_INSTALL_VITAL_PROPERTY, wixl_wix_service_install_properties[WIXL_WIX_SERVICE_INSTALL_VITAL_PROPERTY] = g_param_spec_string ("Vital", "Vital", "Vital", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_SERVICE_INSTALL_LOAD_ORDER_GROUP_PROPERTY, wixl_wix_service_install_properties[WIXL_WIX_SERVICE_INSTALL_LOAD_ORDER_GROUP_PROPERTY] = g_param_spec_string ("LoadOrderGroup", "LoadOrderGroup", "LoadOrderGroup", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_SERVICE_INSTALL_ACCOUNT_PROPERTY, wixl_wix_service_install_properties[WIXL_WIX_SERVICE_INSTALL_ACCOUNT_PROPERTY] = g_param_spec_string ("Account", "Account", "Account", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_SERVICE_INSTALL_PASSWORD_PROPERTY, wixl_wix_service_install_properties[WIXL_WIX_SERVICE_INSTALL_PASSWORD_PROPERTY] = g_param_spec_string ("Password", "Password", "Password", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_SERVICE_INSTALL_ARGUMENTS_PROPERTY, wixl_wix_service_install_properties[WIXL_WIX_SERVICE_INSTALL_ARGUMENTS_PROPERTY] = g_param_spec_string ("Arguments", "Arguments", "Arguments", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_SERVICE_INSTALL_DESCRIPTION_PROPERTY, wixl_wix_service_install_properties[WIXL_WIX_SERVICE_INSTALL_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), WIXL_WIX_SERVICE_INSTALL_ERASE_DESCRIPTION_PROPERTY, wixl_wix_service_install_properties[WIXL_WIX_SERVICE_INSTALL_ERASE_DESCRIPTION_PROPERTY] = g_param_spec_string ("EraseDescription", "EraseDescription", "EraseDescription", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	_tmp0_ = g_strdup ("ServiceInstall");
	_g_free0 (WIXL_WIX_ELEMENT_CLASS (klass)->name);
	WIXL_WIX_ELEMENT_CLASS (klass)->name = _tmp0_;
	_tmp1_ = WIXL_WIX_ELEMENT_CLASS (klass)->child_types;
	_tmp2_ = g_new0 (GType, 1);
	_tmp2_[0] = WIXL_TYPE_WIX_SERVICE_DEPENDENCY;
	_tmp3_ = _tmp2_;
	_tmp3__length1 = 1;
	wixl_wix_element_add_child_types (WIXL_WIX_ELEMENT_CLASS (klass), _tmp1_, _tmp3_, (gint) 1);
	_tmp3_ = (g_free (_tmp3_), NULL);
}

static void
wixl_wix_service_install_instance_init (WixlWixServiceInstall * self,
                                        gpointer klass)
{
	self->priv = wixl_wix_service_install_get_instance_private (self);
}

static void
wixl_wix_service_install_finalize (GObject * obj)
{
	WixlWixServiceInstall * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, WIXL_TYPE_WIX_SERVICE_INSTALL, WixlWixServiceInstall);
	_g_free0 (self->priv->_Name);
	_g_free0 (self->priv->_DisplayName);
	_g_free0 (self->priv->_Type);
	_g_free0 (self->priv->_Interactive);
	_g_free0 (self->priv->_Start);
	_g_free0 (self->priv->_ErrorControl);
	_g_free0 (self->priv->_Vital);
	_g_free0 (self->priv->_LoadOrderGroup);
	_g_free0 (self->priv->_Account);
	_g_free0 (self->priv->_Password);
	_g_free0 (self->priv->_Arguments);
	_g_free0 (self->priv->_Description);
	_g_free0 (self->priv->_EraseDescription);
	G_OBJECT_CLASS (wixl_wix_service_install_parent_class)->finalize (obj);
}

GType
wixl_wix_service_install_get_type (void)
{
	static volatile gsize wixl_wix_service_install_type_id__volatile = 0;
	if (g_once_init_enter (&wixl_wix_service_install_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (WixlWixServiceInstallClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) wixl_wix_service_install_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (WixlWixServiceInstall), 0, (GInstanceInitFunc) wixl_wix_service_install_instance_init, NULL };
		GType wixl_wix_service_install_type_id;
		wixl_wix_service_install_type_id = g_type_register_static (WIXL_TYPE_WIX_ELEMENT, "WixlWixServiceInstall", &g_define_type_info, 0);
		WixlWixServiceInstall_private_offset = g_type_add_instance_private (wixl_wix_service_install_type_id, sizeof (WixlWixServiceInstallPrivate));
		g_once_init_leave (&wixl_wix_service_install_type_id__volatile, wixl_wix_service_install_type_id);
	}
	return wixl_wix_service_install_type_id__volatile;
}

static void
_vala_wixl_wix_service_install_get_property (GObject * object,
                                             guint property_id,
                                             GValue * value,
                                             GParamSpec * pspec)
{
	WixlWixServiceInstall * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, WIXL_TYPE_WIX_SERVICE_INSTALL, WixlWixServiceInstall);
	switch (property_id) {
		case WIXL_WIX_SERVICE_INSTALL_NAME_PROPERTY:
		g_value_set_string (value, wixl_wix_service_install_get_Name (self));
		break;
		case WIXL_WIX_SERVICE_INSTALL_DISPLAY_NAME_PROPERTY:
		g_value_set_string (value, wixl_wix_service_install_get_DisplayName (self));
		break;
		case WIXL_WIX_SERVICE_INSTALL_TYPE_PROPERTY:
		g_value_set_string (value, wixl_wix_service_install_get_Type (self));
		break;
		case WIXL_WIX_SERVICE_INSTALL_INTERACTIVE_PROPERTY:
		g_value_set_string (value, wixl_wix_service_install_get_Interactive (self));
		break;
		case WIXL_WIX_SERVICE_INSTALL_START_PROPERTY:
		g_value_set_string (value, wixl_wix_service_install_get_Start (self));
		break;
		case WIXL_WIX_SERVICE_INSTALL_ERROR_CONTROL_PROPERTY:
		g_value_set_string (value, wixl_wix_service_install_get_ErrorControl (self));
		break;
		case WIXL_WIX_SERVICE_INSTALL_VITAL_PROPERTY:
		g_value_set_string (value, wixl_wix_service_install_get_Vital (self));
		break;
		case WIXL_WIX_SERVICE_INSTALL_LOAD_ORDER_GROUP_PROPERTY:
		g_value_set_string (value, wixl_wix_service_install_get_LoadOrderGroup (self));
		break;
		case WIXL_WIX_SERVICE_INSTALL_ACCOUNT_PROPERTY:
		g_value_set_string (value, wixl_wix_service_install_get_Account (self));
		break;
		case WIXL_WIX_SERVICE_INSTALL_PASSWORD_PROPERTY:
		g_value_set_string (value, wixl_wix_service_install_get_Password (self));
		break;
		case WIXL_WIX_SERVICE_INSTALL_ARGUMENTS_PROPERTY:
		g_value_set_string (value, wixl_wix_service_install_get_Arguments (self));
		break;
		case WIXL_WIX_SERVICE_INSTALL_DESCRIPTION_PROPERTY:
		g_value_set_string (value, wixl_wix_service_install_get_Description (self));
		break;
		case WIXL_WIX_SERVICE_INSTALL_ERASE_DESCRIPTION_PROPERTY:
		g_value_set_string (value, wixl_wix_service_install_get_EraseDescription (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static void
_vala_wixl_wix_service_install_set_property (GObject * object,
                                             guint property_id,
                                             const GValue * value,
                                             GParamSpec * pspec)
{
	WixlWixServiceInstall * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, WIXL_TYPE_WIX_SERVICE_INSTALL, WixlWixServiceInstall);
	switch (property_id) {
		case WIXL_WIX_SERVICE_INSTALL_NAME_PROPERTY:
		wixl_wix_service_install_set_Name (self, g_value_get_string (value));
		break;
		case WIXL_WIX_SERVICE_INSTALL_DISPLAY_NAME_PROPERTY:
		wixl_wix_service_install_set_DisplayName (self, g_value_get_string (value));
		break;
		case WIXL_WIX_SERVICE_INSTALL_TYPE_PROPERTY:
		wixl_wix_service_install_set_Type (self, g_value_get_string (value));
		break;
		case WIXL_WIX_SERVICE_INSTALL_INTERACTIVE_PROPERTY:
		wixl_wix_service_install_set_Interactive (self, g_value_get_string (value));
		break;
		case WIXL_WIX_SERVICE_INSTALL_START_PROPERTY:
		wixl_wix_service_install_set_Start (self, g_value_get_string (value));
		break;
		case WIXL_WIX_SERVICE_INSTALL_ERROR_CONTROL_PROPERTY:
		wixl_wix_service_install_set_ErrorControl (self, g_value_get_string (value));
		break;
		case WIXL_WIX_SERVICE_INSTALL_VITAL_PROPERTY:
		wixl_wix_service_install_set_Vital (self, g_value_get_string (value));
		break;
		case WIXL_WIX_SERVICE_INSTALL_LOAD_ORDER_GROUP_PROPERTY:
		wixl_wix_service_install_set_LoadOrderGroup (self, g_value_get_string (value));
		break;
		case WIXL_WIX_SERVICE_INSTALL_ACCOUNT_PROPERTY:
		wixl_wix_service_install_set_Account (self, g_value_get_string (value));
		break;
		case WIXL_WIX_SERVICE_INSTALL_PASSWORD_PROPERTY:
		wixl_wix_service_install_set_Password (self, g_value_get_string (value));
		break;
		case WIXL_WIX_SERVICE_INSTALL_ARGUMENTS_PROPERTY:
		wixl_wix_service_install_set_Arguments (self, g_value_get_string (value));
		break;
		case WIXL_WIX_SERVICE_INSTALL_DESCRIPTION_PROPERTY:
		wixl_wix_service_install_set_Description (self, g_value_get_string (value));
		break;
		case WIXL_WIX_SERVICE_INSTALL_ERASE_DESCRIPTION_PROPERTY:
		wixl_wix_service_install_set_EraseDescription (self, g_value_get_string (value));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static inline gpointer
wixl_wix_verb_get_instance_private (WixlWixVerb* self)
{
	return G_STRUCT_MEMBER_P (self, WixlWixVerb_private_offset);
}

static void
wixl_wix_verb_real_accept (WixlWixNode* base,
                           WixlWixNodeVisitor* visitor,
                           GError** error)
{
	WixlWixVerb * self;
	GError* _inner_error0_ = NULL;
	self = (WixlWixVerb*) base;
	g_return_if_fail (visitor != NULL);
	WIXL_WIX_NODE_CLASS (wixl_wix_verb_parent_class)->accept ((WixlWixNode*) G_TYPE_CHECK_INSTANCE_CAST (self, WIXL_TYPE_WIX_ELEMENT, WixlWixElement), visitor, &_inner_error0_);
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
		g_propagate_error (error, _inner_error0_);
		return;
	}
	wixl_wix_node_visitor_visit_verb (visitor, self, &_inner_error0_);
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
		g_propagate_error (error, _inner_error0_);
		return;
	}
}

WixlWixVerb*
wixl_wix_verb_construct (GType object_type)
{
	WixlWixVerb * self = NULL;
	self = (WixlWixVerb*) wixl_wix_element_construct (object_type);
	return self;
}

WixlWixVerb*
wixl_wix_verb_new (void)
{
	return wixl_wix_verb_construct (WIXL_TYPE_WIX_VERB);
}

const gchar*
wixl_wix_verb_get_Command (WixlWixVerb* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Command;
	result = _tmp0_;
	return result;
}

void
wixl_wix_verb_set_Command (WixlWixVerb* self,
                           const gchar* value)
{
	g_return_if_fail (self != NULL);
	if (g_strcmp0 (value, wixl_wix_verb_get_Command (self)) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_Command);
		self->priv->_Command = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, wixl_wix_verb_properties[WIXL_WIX_VERB_COMMAND_PROPERTY]);
	}
}

const gchar*
wixl_wix_verb_get_TargetFile (WixlWixVerb* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_TargetFile;
	result = _tmp0_;
	return result;
}

void
wixl_wix_verb_set_TargetFile (WixlWixVerb* self,
                              const gchar* value)
{
	g_return_if_fail (self != NULL);
	if (g_strcmp0 (value, wixl_wix_verb_get_TargetFile (self)) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_TargetFile);
		self->priv->_TargetFile = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, wixl_wix_verb_properties[WIXL_WIX_VERB_TARGET_FILE_PROPERTY]);
	}
}

const gchar*
wixl_wix_verb_get_Argument (WixlWixVerb* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Argument;
	result = _tmp0_;
	return result;
}

void
wixl_wix_verb_set_Argument (WixlWixVerb* self,
                            const gchar* value)
{
	g_return_if_fail (self != NULL);
	if (g_strcmp0 (value, wixl_wix_verb_get_Argument (self)) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_Argument);
		self->priv->_Argument = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, wixl_wix_verb_properties[WIXL_WIX_VERB_ARGUMENT_PROPERTY]);
	}
}

static void
wixl_wix_verb_class_init (WixlWixVerbClass * klass,
                          gpointer klass_data)
{
	gchar* _tmp0_;
	wixl_wix_verb_parent_class = g_type_class_peek_parent (klass);
	g_type_class_adjust_private_offset (klass, &WixlWixVerb_private_offset);
	((WixlWixNodeClass *) klass)->accept = (void (*) (WixlWixNode*, WixlWixNodeVisitor*, GError**)) wixl_wix_verb_real_accept;
	G_OBJECT_CLASS (klass)->get_property = _vala_wixl_wix_verb_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_wixl_wix_verb_set_property;
	G_OBJECT_CLASS (klass)->finalize = wixl_wix_verb_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_VERB_COMMAND_PROPERTY, wixl_wix_verb_properties[WIXL_WIX_VERB_COMMAND_PROPERTY] = g_param_spec_string ("Command", "Command", "Command", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_VERB_TARGET_FILE_PROPERTY, wixl_wix_verb_properties[WIXL_WIX_VERB_TARGET_FILE_PROPERTY] = g_param_spec_string ("TargetFile", "TargetFile", "TargetFile", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_VERB_ARGUMENT_PROPERTY, wixl_wix_verb_properties[WIXL_WIX_VERB_ARGUMENT_PROPERTY] = g_param_spec_string ("Argument", "Argument", "Argument", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	_tmp0_ = g_strdup ("Verb");
	_g_free0 (WIXL_WIX_ELEMENT_CLASS (klass)->name);
	WIXL_WIX_ELEMENT_CLASS (klass)->name = _tmp0_;
}

static void
wixl_wix_verb_instance_init (WixlWixVerb * self,
                             gpointer klass)
{
	self->priv = wixl_wix_verb_get_instance_private (self);
}

static void
wixl_wix_verb_finalize (GObject * obj)
{
	WixlWixVerb * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, WIXL_TYPE_WIX_VERB, WixlWixVerb);
	_g_free0 (self->priv->_Command);
	_g_free0 (self->priv->_TargetFile);
	_g_free0 (self->priv->_Argument);
	G_OBJECT_CLASS (wixl_wix_verb_parent_class)->finalize (obj);
}

GType
wixl_wix_verb_get_type (void)
{
	static volatile gsize wixl_wix_verb_type_id__volatile = 0;
	if (g_once_init_enter (&wixl_wix_verb_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (WixlWixVerbClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) wixl_wix_verb_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (WixlWixVerb), 0, (GInstanceInitFunc) wixl_wix_verb_instance_init, NULL };
		GType wixl_wix_verb_type_id;
		wixl_wix_verb_type_id = g_type_register_static (WIXL_TYPE_WIX_ELEMENT, "WixlWixVerb", &g_define_type_info, 0);
		WixlWixVerb_private_offset = g_type_add_instance_private (wixl_wix_verb_type_id, sizeof (WixlWixVerbPrivate));
		g_once_init_leave (&wixl_wix_verb_type_id__volatile, wixl_wix_verb_type_id);
	}
	return wixl_wix_verb_type_id__volatile;
}

static void
_vala_wixl_wix_verb_get_property (GObject * object,
                                  guint property_id,
                                  GValue * value,
                                  GParamSpec * pspec)
{
	WixlWixVerb * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, WIXL_TYPE_WIX_VERB, WixlWixVerb);
	switch (property_id) {
		case WIXL_WIX_VERB_COMMAND_PROPERTY:
		g_value_set_string (value, wixl_wix_verb_get_Command (self));
		break;
		case WIXL_WIX_VERB_TARGET_FILE_PROPERTY:
		g_value_set_string (value, wixl_wix_verb_get_TargetFile (self));
		break;
		case WIXL_WIX_VERB_ARGUMENT_PROPERTY:
		g_value_set_string (value, wixl_wix_verb_get_Argument (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static void
_vala_wixl_wix_verb_set_property (GObject * object,
                                  guint property_id,
                                  const GValue * value,
                                  GParamSpec * pspec)
{
	WixlWixVerb * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, WIXL_TYPE_WIX_VERB, WixlWixVerb);
	switch (property_id) {
		case WIXL_WIX_VERB_COMMAND_PROPERTY:
		wixl_wix_verb_set_Command (self, g_value_get_string (value));
		break;
		case WIXL_WIX_VERB_TARGET_FILE_PROPERTY:
		wixl_wix_verb_set_TargetFile (self, g_value_get_string (value));
		break;
		case WIXL_WIX_VERB_ARGUMENT_PROPERTY:
		wixl_wix_verb_set_Argument (self, g_value_get_string (value));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static inline gpointer
wixl_wix_extension_get_instance_private (WixlWixExtension* self)
{
	return G_STRUCT_MEMBER_P (self, WixlWixExtension_private_offset);
}

static void
wixl_wix_extension_real_accept (WixlWixNode* base,
                                WixlWixNodeVisitor* visitor,
                                GError** error)
{
	WixlWixExtension * self;
	GError* _inner_error0_ = NULL;
	self = (WixlWixExtension*) base;
	g_return_if_fail (visitor != NULL);
	WIXL_WIX_NODE_CLASS (wixl_wix_extension_parent_class)->accept ((WixlWixNode*) G_TYPE_CHECK_INSTANCE_CAST (self, WIXL_TYPE_WIX_ELEMENT, WixlWixElement), visitor, &_inner_error0_);
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
		g_propagate_error (error, _inner_error0_);
		return;
	}
	wixl_wix_node_visitor_visit_extension (visitor, self, &_inner_error0_);
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
		g_propagate_error (error, _inner_error0_);
		return;
	}
}

WixlWixExtension*
wixl_wix_extension_construct (GType object_type)
{
	WixlWixExtension * self = NULL;
	self = (WixlWixExtension*) wixl_wix_element_construct (object_type);
	return self;
}

WixlWixExtension*
wixl_wix_extension_new (void)
{
	return wixl_wix_extension_construct (WIXL_TYPE_WIX_EXTENSION);
}

const gchar*
wixl_wix_extension_get_ContentType (WixlWixExtension* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_ContentType;
	result = _tmp0_;
	return result;
}

void
wixl_wix_extension_set_ContentType (WixlWixExtension* self,
                                    const gchar* value)
{
	g_return_if_fail (self != NULL);
	if (g_strcmp0 (value, wixl_wix_extension_get_ContentType (self)) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_ContentType);
		self->priv->_ContentType = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, wixl_wix_extension_properties[WIXL_WIX_EXTENSION_CONTENT_TYPE_PROPERTY]);
	}
}

const gchar*
wixl_wix_extension_get_Advertise (WixlWixExtension* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Advertise;
	result = _tmp0_;
	return result;
}

void
wixl_wix_extension_set_Advertise (WixlWixExtension* self,
                                  const gchar* value)
{
	g_return_if_fail (self != NULL);
	if (g_strcmp0 (value, wixl_wix_extension_get_Advertise (self)) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_Advertise);
		self->priv->_Advertise = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, wixl_wix_extension_properties[WIXL_WIX_EXTENSION_ADVERTISE_PROPERTY]);
	}
}

static void
wixl_wix_extension_class_init (WixlWixExtensionClass * klass,
                               gpointer klass_data)
{
	gchar* _tmp0_;
	GHashTable* _tmp1_;
	GType* _tmp2_;
	GType* _tmp3_;
	gint _tmp3__length1;
	wixl_wix_extension_parent_class = g_type_class_peek_parent (klass);
	g_type_class_adjust_private_offset (klass, &WixlWixExtension_private_offset);
	((WixlWixNodeClass *) klass)->accept = (void (*) (WixlWixNode*, WixlWixNodeVisitor*, GError**)) wixl_wix_extension_real_accept;
	G_OBJECT_CLASS (klass)->get_property = _vala_wixl_wix_extension_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_wixl_wix_extension_set_property;
	G_OBJECT_CLASS (klass)->finalize = wixl_wix_extension_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_EXTENSION_CONTENT_TYPE_PROPERTY, wixl_wix_extension_properties[WIXL_WIX_EXTENSION_CONTENT_TYPE_PROPERTY] = g_param_spec_string ("ContentType", "ContentType", "ContentType", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_EXTENSION_ADVERTISE_PROPERTY, wixl_wix_extension_properties[WIXL_WIX_EXTENSION_ADVERTISE_PROPERTY] = g_param_spec_string ("Advertise", "Advertise", "Advertise", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	_tmp0_ = g_strdup ("Extension");
	_g_free0 (WIXL_WIX_ELEMENT_CLASS (klass)->name);
	WIXL_WIX_ELEMENT_CLASS (klass)->name = _tmp0_;
	_tmp1_ = WIXL_WIX_ELEMENT_CLASS (klass)->child_types;
	_tmp2_ = g_new0 (GType, 2);
	_tmp2_[0] = WIXL_TYPE_WIX_VERB;
	_tmp2_[1] = WIXL_TYPE_WIX_MIME;
	_tmp3_ = _tmp2_;
	_tmp3__length1 = 2;
	wixl_wix_element_add_child_types (WIXL_WIX_ELEMENT_CLASS (klass), _tmp1_, _tmp3_, (gint) 2);
	_tmp3_ = (g_free (_tmp3_), NULL);
}

static void
wixl_wix_extension_instance_init (WixlWixExtension * self,
                                  gpointer klass)
{
	self->priv = wixl_wix_extension_get_instance_private (self);
}

static void
wixl_wix_extension_finalize (GObject * obj)
{
	WixlWixExtension * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, WIXL_TYPE_WIX_EXTENSION, WixlWixExtension);
	_g_free0 (self->priv->_ContentType);
	_g_free0 (self->priv->_Advertise);
	G_OBJECT_CLASS (wixl_wix_extension_parent_class)->finalize (obj);
}

GType
wixl_wix_extension_get_type (void)
{
	static volatile gsize wixl_wix_extension_type_id__volatile = 0;
	if (g_once_init_enter (&wixl_wix_extension_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (WixlWixExtensionClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) wixl_wix_extension_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (WixlWixExtension), 0, (GInstanceInitFunc) wixl_wix_extension_instance_init, NULL };
		GType wixl_wix_extension_type_id;
		wixl_wix_extension_type_id = g_type_register_static (WIXL_TYPE_WIX_ELEMENT, "WixlWixExtension", &g_define_type_info, 0);
		WixlWixExtension_private_offset = g_type_add_instance_private (wixl_wix_extension_type_id, sizeof (WixlWixExtensionPrivate));
		g_once_init_leave (&wixl_wix_extension_type_id__volatile, wixl_wix_extension_type_id);
	}
	return wixl_wix_extension_type_id__volatile;
}

static void
_vala_wixl_wix_extension_get_property (GObject * object,
                                       guint property_id,
                                       GValue * value,
                                       GParamSpec * pspec)
{
	WixlWixExtension * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, WIXL_TYPE_WIX_EXTENSION, WixlWixExtension);
	switch (property_id) {
		case WIXL_WIX_EXTENSION_CONTENT_TYPE_PROPERTY:
		g_value_set_string (value, wixl_wix_extension_get_ContentType (self));
		break;
		case WIXL_WIX_EXTENSION_ADVERTISE_PROPERTY:
		g_value_set_string (value, wixl_wix_extension_get_Advertise (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static void
_vala_wixl_wix_extension_set_property (GObject * object,
                                       guint property_id,
                                       const GValue * value,
                                       GParamSpec * pspec)
{
	WixlWixExtension * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, WIXL_TYPE_WIX_EXTENSION, WixlWixExtension);
	switch (property_id) {
		case WIXL_WIX_EXTENSION_CONTENT_TYPE_PROPERTY:
		wixl_wix_extension_set_ContentType (self, g_value_get_string (value));
		break;
		case WIXL_WIX_EXTENSION_ADVERTISE_PROPERTY:
		wixl_wix_extension_set_Advertise (self, g_value_get_string (value));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static inline gpointer
wixl_wix_prog_id_get_instance_private (WixlWixProgId* self)
{
	return G_STRUCT_MEMBER_P (self, WixlWixProgId_private_offset);
}

static void
wixl_wix_prog_id_real_accept (WixlWixNode* base,
                              WixlWixNodeVisitor* visitor,
                              GError** error)
{
	WixlWixProgId * self;
	GError* _inner_error0_ = NULL;
	self = (WixlWixProgId*) base;
	g_return_if_fail (visitor != NULL);
	WIXL_WIX_NODE_CLASS (wixl_wix_prog_id_parent_class)->accept ((WixlWixNode*) G_TYPE_CHECK_INSTANCE_CAST (self, WIXL_TYPE_WIX_ELEMENT, WixlWixElement), visitor, &_inner_error0_);
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
		g_propagate_error (error, _inner_error0_);
		return;
	}
	wixl_wix_node_visitor_visit_progid (visitor, self, &_inner_error0_);
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
		g_propagate_error (error, _inner_error0_);
		return;
	}
}

WixlWixProgId*
wixl_wix_prog_id_construct (GType object_type)
{
	WixlWixProgId * self = NULL;
	self = (WixlWixProgId*) wixl_wix_element_construct (object_type);
	return self;
}

WixlWixProgId*
wixl_wix_prog_id_new (void)
{
	return wixl_wix_prog_id_construct (WIXL_TYPE_WIX_PROG_ID);
}

const gchar*
wixl_wix_prog_id_get_Description (WixlWixProgId* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Description;
	result = _tmp0_;
	return result;
}

void
wixl_wix_prog_id_set_Description (WixlWixProgId* self,
                                  const gchar* value)
{
	g_return_if_fail (self != NULL);
	if (g_strcmp0 (value, wixl_wix_prog_id_get_Description (self)) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_Description);
		self->priv->_Description = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, wixl_wix_prog_id_properties[WIXL_WIX_PROG_ID_DESCRIPTION_PROPERTY]);
	}
}

const gchar*
wixl_wix_prog_id_get_Advertise (WixlWixProgId* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Advertise;
	result = _tmp0_;
	return result;
}

void
wixl_wix_prog_id_set_Advertise (WixlWixProgId* self,
                                const gchar* value)
{
	g_return_if_fail (self != NULL);
	if (g_strcmp0 (value, wixl_wix_prog_id_get_Advertise (self)) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_Advertise);
		self->priv->_Advertise = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, wixl_wix_prog_id_properties[WIXL_WIX_PROG_ID_ADVERTISE_PROPERTY]);
	}
}

static void
wixl_wix_prog_id_class_init (WixlWixProgIdClass * klass,
                             gpointer klass_data)
{
	gchar* _tmp0_;
	GHashTable* _tmp1_;
	GType* _tmp2_;
	GType* _tmp3_;
	gint _tmp3__length1;
	wixl_wix_prog_id_parent_class = g_type_class_peek_parent (klass);
	g_type_class_adjust_private_offset (klass, &WixlWixProgId_private_offset);
	((WixlWixNodeClass *) klass)->accept = (void (*) (WixlWixNode*, WixlWixNodeVisitor*, GError**)) wixl_wix_prog_id_real_accept;
	G_OBJECT_CLASS (klass)->get_property = _vala_wixl_wix_prog_id_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_wixl_wix_prog_id_set_property;
	G_OBJECT_CLASS (klass)->finalize = wixl_wix_prog_id_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_PROG_ID_DESCRIPTION_PROPERTY, wixl_wix_prog_id_properties[WIXL_WIX_PROG_ID_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), WIXL_WIX_PROG_ID_ADVERTISE_PROPERTY, wixl_wix_prog_id_properties[WIXL_WIX_PROG_ID_ADVERTISE_PROPERTY] = g_param_spec_string ("Advertise", "Advertise", "Advertise", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	_tmp0_ = g_strdup ("ProgId");
	_g_free0 (WIXL_WIX_ELEMENT_CLASS (klass)->name);
	WIXL_WIX_ELEMENT_CLASS (klass)->name = _tmp0_;
	_tmp1_ = WIXL_WIX_ELEMENT_CLASS (klass)->child_types;
	_tmp2_ = g_new0 (GType, 1);
	_tmp2_[0] = WIXL_TYPE_WIX_EXTENSION;
	_tmp3_ = _tmp2_;
	_tmp3__length1 = 1;
	wixl_wix_element_add_child_types (WIXL_WIX_ELEMENT_CLASS (klass), _tmp1_, _tmp3_, (gint) 1);
	_tmp3_ = (g_free (_tmp3_), NULL);
}

static void
wixl_wix_prog_id_instance_init (WixlWixProgId * self,
                                gpointer klass)
{
	self->priv = wixl_wix_prog_id_get_instance_private (self);
}

static void
wixl_wix_prog_id_finalize (GObject * obj)
{
	WixlWixProgId * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, WIXL_TYPE_WIX_PROG_ID, WixlWixProgId);
	_g_free0 (self->priv->_Description);
	_g_free0 (self->priv->_Advertise);
	G_OBJECT_CLASS (wixl_wix_prog_id_parent_class)->finalize (obj);
}

GType
wixl_wix_prog_id_get_type (void)
{
	static volatile gsize wixl_wix_prog_id_type_id__volatile = 0;
	if (g_once_init_enter (&wixl_wix_prog_id_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (WixlWixProgIdClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) wixl_wix_prog_id_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (WixlWixProgId), 0, (GInstanceInitFunc) wixl_wix_prog_id_instance_init, NULL };
		GType wixl_wix_prog_id_type_id;
		wixl_wix_prog_id_type_id = g_type_register_static (WIXL_TYPE_WIX_ELEMENT, "WixlWixProgId", &g_define_type_info, 0);
		WixlWixProgId_private_offset = g_type_add_instance_private (wixl_wix_prog_id_type_id, sizeof (WixlWixProgIdPrivate));
		g_once_init_leave (&wixl_wix_prog_id_type_id__volatile, wixl_wix_prog_id_type_id);
	}
	return wixl_wix_prog_id_type_id__volatile;
}

static void
_vala_wixl_wix_prog_id_get_property (GObject * object,
                                     guint property_id,
                                     GValue * value,
                                     GParamSpec * pspec)
{
	WixlWixProgId * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, WIXL_TYPE_WIX_PROG_ID, WixlWixProgId);
	switch (property_id) {
		case WIXL_WIX_PROG_ID_DESCRIPTION_PROPERTY:
		g_value_set_string (value, wixl_wix_prog_id_get_Description (self));
		break;
		case WIXL_WIX_PROG_ID_ADVERTISE_PROPERTY:
		g_value_set_string (value, wixl_wix_prog_id_get_Advertise (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static void
_vala_wixl_wix_prog_id_set_property (GObject * object,
                                     guint property_id,
                                     const GValue * value,
                                     GParamSpec * pspec)
{
	WixlWixProgId * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, WIXL_TYPE_WIX_PROG_ID, WixlWixProgId);
	switch (property_id) {
		case WIXL_WIX_PROG_ID_DESCRIPTION_PROPERTY:
		wixl_wix_prog_id_set_Description (self, g_value_get_string (value));
		break;
		case WIXL_WIX_PROG_ID_ADVERTISE_PROPERTY:
		wixl_wix_prog_id_set_Advertise (self, g_value_get_string (value));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static inline gpointer
wixl_wix_action_get_instance_private (WixlWixAction* self)
{
	return G_STRUCT_MEMBER_P (self, WixlWixAction_private_offset);
}

static void
wixl_wix_action_real_load (WixlWixElement* base,
                           xmlNode* node,
                           GError** error)
{
	WixlWixAction * self;
	const gchar* _tmp0_;
	gchar* _tmp1_;
	GError* _inner_error0_ = NULL;
	self = (WixlWixAction*) base;
	WIXL_WIX_ELEMENT_CLASS (wixl_wix_action_parent_class)->load (G_TYPE_CHECK_INSTANCE_CAST (self, WIXL_TYPE_WIX_ELEMENT, WixlWixElement), node, &_inner_error0_);
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
		if (_inner_error0_->domain == WIXL_ERROR) {
			g_propagate_error (error, _inner_error0_);
			return;
		} else {
			g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error0_->message, g_quark_to_string (_inner_error0_->domain), _inner_error0_->code);
			g_clear_error (&_inner_error0_);
			return;
		}
	}
	_tmp0_ = node->name;
	_tmp1_ = g_strdup (_tmp0_);
	_g_free0 (self->name);
	self->name = _tmp1_;
}

static void
wixl_wix_action_real_accept (WixlWixNode* base,
                             WixlWixNodeVisitor* visitor,
                             GError** error)
{
	WixlWixAction * self;
	GError* _inner_error0_ = NULL;
	self = (WixlWixAction*) base;
	g_return_if_fail (visitor != NULL);
	wixl_wix_node_visitor_visit_action (visitor, self, &_inner_error0_);
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
		g_propagate_error (error, _inner_error0_);
		return;
	}
}

WixlWixAction*
wixl_wix_action_construct (GType object_type)
{
	WixlWixAction * self = NULL;
	self = (WixlWixAction*) wixl_wix_element_construct (object_type);
	return self;
}

WixlWixAction*
wixl_wix_action_new (void)
{
	return wixl_wix_action_construct (WIXL_TYPE_WIX_ACTION);
}

const gchar*
wixl_wix_action_get_After (WixlWixAction* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_After;
	result = _tmp0_;
	return result;
}

void
wixl_wix_action_set_After (WixlWixAction* self,
                           const gchar* value)
{
	g_return_if_fail (self != NULL);
	if (g_strcmp0 (value, wixl_wix_action_get_After (self)) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_After);
		self->priv->_After = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, wixl_wix_action_properties[WIXL_WIX_ACTION_AFTER_PROPERTY]);
	}
}

const gchar*
wixl_wix_action_get_Before (WixlWixAction* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Before;
	result = _tmp0_;
	return result;
}

void
wixl_wix_action_set_Before (WixlWixAction* self,
                            const gchar* value)
{
	g_return_if_fail (self != NULL);
	if (g_strcmp0 (value, wixl_wix_action_get_Before (self)) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_Before);
		self->priv->_Before = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, wixl_wix_action_properties[WIXL_WIX_ACTION_BEFORE_PROPERTY]);
	}
}

const gchar*
wixl_wix_action_get_Overridable (WixlWixAction* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Overridable;
	result = _tmp0_;
	return result;
}

void
wixl_wix_action_set_Overridable (WixlWixAction* self,
                                 const gchar* value)
{
	g_return_if_fail (self != NULL);
	if (g_strcmp0 (value, wixl_wix_action_get_Overridable (self)) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_Overridable);
		self->priv->_Overridable = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, wixl_wix_action_properties[WIXL_WIX_ACTION_OVERRIDABLE_PROPERTY]);
	}
}

const gchar*
wixl_wix_action_get_Sequence (WixlWixAction* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Sequence;
	result = _tmp0_;
	return result;
}

void
wixl_wix_action_set_Sequence (WixlWixAction* self,
                              const gchar* value)
{
	g_return_if_fail (self != NULL);
	if (g_strcmp0 (value, wixl_wix_action_get_Sequence (self)) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_Sequence);
		self->priv->_Sequence = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, wixl_wix_action_properties[WIXL_WIX_ACTION_SEQUENCE_PROPERTY]);
	}
}

const gchar*
wixl_wix_action_get_Suppress (WixlWixAction* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Suppress;
	result = _tmp0_;
	return result;
}

void
wixl_wix_action_set_Suppress (WixlWixAction* self,
                              const gchar* value)
{
	g_return_if_fail (self != NULL);
	if (g_strcmp0 (value, wixl_wix_action_get_Suppress (self)) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_Suppress);
		self->priv->_Suppress = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, wixl_wix_action_properties[WIXL_WIX_ACTION_SUPPRESS_PROPERTY]);
	}
}

const gchar*
wixl_wix_action_get_Action (WixlWixAction* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Action;
	result = _tmp0_;
	return result;
}

void
wixl_wix_action_set_Action (WixlWixAction* self,
                            const gchar* value)
{
	g_return_if_fail (self != NULL);
	if (g_strcmp0 (value, wixl_wix_action_get_Action (self)) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_Action);
		self->priv->_Action = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, wixl_wix_action_properties[WIXL_WIX_ACTION_ACTION_PROPERTY]);
	}
}

static void
wixl_wix_action_class_init (WixlWixActionClass * klass,
                            gpointer klass_data)
{
	wixl_wix_action_parent_class = g_type_class_peek_parent (klass);
	g_type_class_adjust_private_offset (klass, &WixlWixAction_private_offset);
	((WixlWixElementClass *) klass)->load = (void (*) (WixlWixElement*, xmlNode*, GError**)) wixl_wix_action_real_load;
	((WixlWixNodeClass *) klass)->accept = (void (*) (WixlWixNode*, WixlWixNodeVisitor*, GError**)) wixl_wix_action_real_accept;
	G_OBJECT_CLASS (klass)->get_property = _vala_wixl_wix_action_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_wixl_wix_action_set_property;
	G_OBJECT_CLASS (klass)->finalize = wixl_wix_action_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_ACTION_AFTER_PROPERTY, wixl_wix_action_properties[WIXL_WIX_ACTION_AFTER_PROPERTY] = g_param_spec_string ("After", "After", "After", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_ACTION_BEFORE_PROPERTY, wixl_wix_action_properties[WIXL_WIX_ACTION_BEFORE_PROPERTY] = g_param_spec_string ("Before", "Before", "Before", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_ACTION_OVERRIDABLE_PROPERTY, wixl_wix_action_properties[WIXL_WIX_ACTION_OVERRIDABLE_PROPERTY] = g_param_spec_string ("Overridable", "Overridable", "Overridable", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_ACTION_SEQUENCE_PROPERTY, wixl_wix_action_properties[WIXL_WIX_ACTION_SEQUENCE_PROPERTY] = g_param_spec_string ("Sequence", "Sequence", "Sequence", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_ACTION_SUPPRESS_PROPERTY, wixl_wix_action_properties[WIXL_WIX_ACTION_SUPPRESS_PROPERTY] = g_param_spec_string ("Suppress", "Suppress", "Suppress", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_ACTION_ACTION_PROPERTY, wixl_wix_action_properties[WIXL_WIX_ACTION_ACTION_PROPERTY] = g_param_spec_string ("Action", "Action", "Action", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
}

static void
wixl_wix_action_instance_init (WixlWixAction * self,
                               gpointer klass)
{
	self->priv = wixl_wix_action_get_instance_private (self);
}

static void
wixl_wix_action_finalize (GObject * obj)
{
	WixlWixAction * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, WIXL_TYPE_WIX_ACTION, WixlWixAction);
	_g_free0 (self->name);
	_g_free0 (self->priv->_After);
	_g_free0 (self->priv->_Before);
	_g_free0 (self->priv->_Overridable);
	_g_free0 (self->priv->_Sequence);
	_g_free0 (self->priv->_Suppress);
	_g_free0 (self->priv->_Action);
	G_OBJECT_CLASS (wixl_wix_action_parent_class)->finalize (obj);
}

GType
wixl_wix_action_get_type (void)
{
	static volatile gsize wixl_wix_action_type_id__volatile = 0;
	if (g_once_init_enter (&wixl_wix_action_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (WixlWixActionClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) wixl_wix_action_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (WixlWixAction), 0, (GInstanceInitFunc) wixl_wix_action_instance_init, NULL };
		GType wixl_wix_action_type_id;
		wixl_wix_action_type_id = g_type_register_static (WIXL_TYPE_WIX_ELEMENT, "WixlWixAction", &g_define_type_info, 0);
		WixlWixAction_private_offset = g_type_add_instance_private (wixl_wix_action_type_id, sizeof (WixlWixActionPrivate));
		g_once_init_leave (&wixl_wix_action_type_id__volatile, wixl_wix_action_type_id);
	}
	return wixl_wix_action_type_id__volatile;
}

static void
_vala_wixl_wix_action_get_property (GObject * object,
                                    guint property_id,
                                    GValue * value,
                                    GParamSpec * pspec)
{
	WixlWixAction * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, WIXL_TYPE_WIX_ACTION, WixlWixAction);
	switch (property_id) {
		case WIXL_WIX_ACTION_AFTER_PROPERTY:
		g_value_set_string (value, wixl_wix_action_get_After (self));
		break;
		case WIXL_WIX_ACTION_BEFORE_PROPERTY:
		g_value_set_string (value, wixl_wix_action_get_Before (self));
		break;
		case WIXL_WIX_ACTION_OVERRIDABLE_PROPERTY:
		g_value_set_string (value, wixl_wix_action_get_Overridable (self));
		break;
		case WIXL_WIX_ACTION_SEQUENCE_PROPERTY:
		g_value_set_string (value, wixl_wix_action_get_Sequence (self));
		break;
		case WIXL_WIX_ACTION_SUPPRESS_PROPERTY:
		g_value_set_string (value, wixl_wix_action_get_Suppress (self));
		break;
		case WIXL_WIX_ACTION_ACTION_PROPERTY:
		g_value_set_string (value, wixl_wix_action_get_Action (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static void
_vala_wixl_wix_action_set_property (GObject * object,
                                    guint property_id,
                                    const GValue * value,
                                    GParamSpec * pspec)
{
	WixlWixAction * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, WIXL_TYPE_WIX_ACTION, WixlWixAction);
	switch (property_id) {
		case WIXL_WIX_ACTION_AFTER_PROPERTY:
		wixl_wix_action_set_After (self, g_value_get_string (value));
		break;
		case WIXL_WIX_ACTION_BEFORE_PROPERTY:
		wixl_wix_action_set_Before (self, g_value_get_string (value));
		break;
		case WIXL_WIX_ACTION_OVERRIDABLE_PROPERTY:
		wixl_wix_action_set_Overridable (self, g_value_get_string (value));
		break;
		case WIXL_WIX_ACTION_SEQUENCE_PROPERTY:
		wixl_wix_action_set_Sequence (self, g_value_get_string (value));
		break;
		case WIXL_WIX_ACTION_SUPPRESS_PROPERTY:
		wixl_wix_action_set_Suppress (self, g_value_get_string (value));
		break;
		case WIXL_WIX_ACTION_ACTION_PROPERTY:
		wixl_wix_action_set_Action (self, g_value_get_string (value));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static void
wixl_wix_sequence_real_accept (WixlWixNode* base,
                               WixlWixNodeVisitor* visitor,
                               GError** error)
{
	WixlWixSequence * self;
	GError* _inner_error0_ = NULL;
	self = (WixlWixSequence*) base;
	g_return_if_fail (visitor != NULL);
	WIXL_WIX_NODE_CLASS (wixl_wix_sequence_parent_class)->accept ((WixlWixNode*) G_TYPE_CHECK_INSTANCE_CAST (self, WIXL_TYPE_WIX_ELEMENT, WixlWixElement), visitor, &_inner_error0_);
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
		g_propagate_error (error, _inner_error0_);
		return;
	}
	wixl_wix_node_visitor_visit_sequence (visitor, self, &_inner_error0_);
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
		g_propagate_error (error, _inner_error0_);
		return;
	}
}

WixlWixSequence*
wixl_wix_sequence_construct (GType object_type)
{
	WixlWixSequence * self = NULL;
	self = (WixlWixSequence*) wixl_wix_element_construct (object_type);
	return self;
}

WixlWixSequence*
wixl_wix_sequence_new (void)
{
	return wixl_wix_sequence_construct (WIXL_TYPE_WIX_SEQUENCE);
}

static void
wixl_wix_sequence_class_init (WixlWixSequenceClass * klass,
                              gpointer klass_data)
{
	wixl_wix_sequence_parent_class = g_type_class_peek_parent (klass);
	((WixlWixNodeClass *) klass)->accept = (void (*) (WixlWixNode*, WixlWixNodeVisitor*, GError**)) wixl_wix_sequence_real_accept;
}

static void
wixl_wix_sequence_instance_init (WixlWixSequence * self,
                                 gpointer klass)
{
}

GType
wixl_wix_sequence_get_type (void)
{
	static volatile gsize wixl_wix_sequence_type_id__volatile = 0;
	if (g_once_init_enter (&wixl_wix_sequence_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (WixlWixSequenceClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) wixl_wix_sequence_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (WixlWixSequence), 0, (GInstanceInitFunc) wixl_wix_sequence_instance_init, NULL };
		GType wixl_wix_sequence_type_id;
		wixl_wix_sequence_type_id = g_type_register_static (WIXL_TYPE_WIX_ELEMENT, "WixlWixSequence", &g_define_type_info, 0);
		g_once_init_leave (&wixl_wix_sequence_type_id__volatile, wixl_wix_sequence_type_id);
	}
	return wixl_wix_sequence_type_id__volatile;
}

WixlWixInstallExecuteSequence*
wixl_wix_install_execute_sequence_construct (GType object_type)
{
	WixlWixInstallExecuteSequence * self = NULL;
	self = (WixlWixInstallExecuteSequence*) wixl_wix_sequence_construct (object_type);
	return self;
}

WixlWixInstallExecuteSequence*
wixl_wix_install_execute_sequence_new (void)
{
	return wixl_wix_install_execute_sequence_construct (WIXL_TYPE_WIX_INSTALL_EXECUTE_SEQUENCE);
}

static void
wixl_wix_install_execute_sequence_class_init (WixlWixInstallExecuteSequenceClass * klass,
                                              gpointer klass_data)
{
	gchar* _tmp0_;
	gchar* _tmp1_;
	gchar* _tmp2_;
	gchar* _tmp3_;
	gchar* _tmp4_;
	gchar* _tmp5_;
	gchar* _tmp6_;
	gchar* _tmp7_;
	gchar* _tmp8_;
	gchar* _tmp9_;
	gchar* _tmp10_;
	gchar* _tmp11_;
	gchar* _tmp12_;
	gchar* _tmp13_;
	gchar* _tmp14_;
	gchar* _tmp15_;
	gchar* _tmp16_;
	gchar* _tmp17_;
	gchar* _tmp18_;
	gchar* _tmp19_;
	gchar* _tmp20_;
	gchar* _tmp21_;
	gchar* _tmp22_;
	gchar* _tmp23_;
	gchar* _tmp24_;
	gchar* _tmp25_;
	gchar* _tmp26_;
	gchar* _tmp27_;
	gchar* _tmp28_;
	gchar* _tmp29_;
	gchar* _tmp30_;
	gchar* _tmp31_;
	gchar* _tmp32_;
	gchar* _tmp33_;
	gchar* _tmp34_;
	gchar* _tmp35_;
	gchar* _tmp36_;
	gchar* _tmp37_;
	gchar* _tmp38_;
	gchar* _tmp39_;
	gchar* _tmp40_;
	gchar* _tmp41_;
	gchar* _tmp42_;
	gchar* _tmp43_;
	gchar* _tmp44_;
	gchar* _tmp45_;
	gchar* _tmp46_;
	gchar* _tmp47_;
	gchar* _tmp48_;
	gchar* _tmp49_;
	gchar* _tmp50_;
	gchar* _tmp51_;
	gchar* _tmp52_;
	gchar* _tmp53_;
	gchar* _tmp54_;
	gchar* _tmp55_;
	gchar* _tmp56_;
	gchar* _tmp57_;
	gchar* _tmp58_;
	gchar* _tmp59_;
	gchar* _tmp60_;
	gchar* _tmp61_;
	gchar* _tmp62_;
	gchar* _tmp63_;
	gchar* _tmp64_;
	gchar* _tmp65_;
	gchar* _tmp66_;
	gchar* _tmp67_;
	gchar* _tmp68_;
	gchar* _tmp69_;
	gchar* _tmp70_;
	gchar* _tmp71_;
	gchar* _tmp72_;
	gchar* _tmp73_;
	gchar** _tmp74_;
	wixl_wix_install_execute_sequence_parent_class = g_type_class_peek_parent (klass);
	_tmp0_ = g_strdup ("InstallExecuteSequence");
	_g_free0 (WIXL_WIX_ELEMENT_CLASS (klass)->name);
	WIXL_WIX_ELEMENT_CLASS (klass)->name = _tmp0_;
	_tmp1_ = g_strdup ("AllocateRegistrySpace");
	_tmp2_ = g_strdup ("AppSearch");
	_tmp3_ = g_strdup ("BindImage");
	_tmp4_ = g_strdup ("CCPSearch");
	_tmp5_ = g_strdup ("CostFinalize");
	_tmp6_ = g_strdup ("CostInitialize");
	_tmp7_ = g_strdup ("CreateFolders");
	_tmp8_ = g_strdup ("CreateShortcuts");
	_tmp9_ = g_strdup ("Custom");
	_tmp10_ = g_strdup ("DeleteServices");
	_tmp11_ = g_strdup ("DisableRollback");
	_tmp12_ = g_strdup ("DuplicateFiles");
	_tmp13_ = g_strdup ("FileCost");
	_tmp14_ = g_strdup ("FindRelatedProducts");
	_tmp15_ = g_strdup ("ForceReboot");
	_tmp16_ = g_strdup ("InstallExecute");
	_tmp17_ = g_strdup ("InstallExecuteAgain");
	_tmp18_ = g_strdup ("InstallFiles");
	_tmp19_ = g_strdup ("InstallFinalize");
	_tmp20_ = g_strdup ("InstallInitialize");
	_tmp21_ = g_strdup ("InstallODBC");
	_tmp22_ = g_strdup ("InstallServices");
	_tmp23_ = g_strdup ("InstallValidate");
	_tmp24_ = g_strdup ("IsolateComponents");
	_tmp25_ = g_strdup ("LaunchConditions");
	_tmp26_ = g_strdup ("MigrateFeatureStates");
	_tmp27_ = g_strdup ("MoveFiles");
	_tmp28_ = g_strdup ("MsiPublishAssemblies");
	_tmp29_ = g_strdup ("MsiUnpublishAssemblies");
	_tmp30_ = g_strdup ("PatchFiles");
	_tmp31_ = g_strdup ("ProcessComponents");
	_tmp32_ = g_strdup ("PublishComponents");
	_tmp33_ = g_strdup ("PublishFeatures");
	_tmp34_ = g_strdup ("PublishProduct");
	_tmp35_ = g_strdup ("RegisterClassInfo");
	_tmp36_ = g_strdup ("RegisterComPlus");
	_tmp37_ = g_strdup ("RegisterExtensionInfo");
	_tmp38_ = g_strdup ("RegisterFonts");
	_tmp39_ = g_strdup ("RegisterMIMEInfo");
	_tmp40_ = g_strdup ("RegisterProduct");
	_tmp41_ = g_strdup ("RegisterProgIdInfo");
	_tmp42_ = g_strdup ("RegisterTypeLibraries");
	_tmp43_ = g_strdup ("RegisterUser");
	_tmp44_ = g_strdup ("RemoveDuplicateFiles");
	_tmp45_ = g_strdup ("RemoveEnvironmentStrings");
	_tmp46_ = g_strdup ("RemoveExistingProducts");
	_tmp47_ = g_strdup ("RemoveFiles");
	_tmp48_ = g_strdup ("RemoveFolders");
	_tmp49_ = g_strdup ("RemoveIniValues");
	_tmp50_ = g_strdup ("RemoveODBC");
	_tmp51_ = g_strdup ("RemoveRegistryValues");
	_tmp52_ = g_strdup ("RemoveShortcuts");
	_tmp53_ = g_strdup ("ResolveSource");
	_tmp54_ = g_strdup ("RMCCPSearch");
	_tmp55_ = g_strdup ("ScheduleReboot");
	_tmp56_ = g_strdup ("SelfRegModules");
	_tmp57_ = g_strdup ("SelfUnregModules");
	_tmp58_ = g_strdup ("SetODBCFolders");
	_tmp59_ = g_strdup ("StartServices");
	_tmp60_ = g_strdup ("StopServices");
	_tmp61_ = g_strdup ("UnpublishComponents");
	_tmp62_ = g_strdup ("UnpublishFeatures");
	_tmp63_ = g_strdup ("UnregisterClassInfo");
	_tmp64_ = g_strdup ("UnregisterComPlus");
	_tmp65_ = g_strdup ("UnregisterExtensionInfo");
	_tmp66_ = g_strdup ("UnregisterFonts");
	_tmp67_ = g_strdup ("UnregisterMIMEInfo");
	_tmp68_ = g_strdup ("UnregisterProgIdInfo");
	_tmp69_ = g_strdup ("UnregisterTypeLibraries");
	_tmp70_ = g_strdup ("ValidateProductID");
	_tmp71_ = g_strdup ("WriteEnvironmentStrings");
	_tmp72_ = g_strdup ("WriteIniValues");
	_tmp73_ = g_strdup ("WriteRegistryValues");
	_tmp74_ = g_new0 (gchar*, 73 + 1);
	_tmp74_[0] = _tmp1_;
	_tmp74_[1] = _tmp2_;
	_tmp74_[2] = _tmp3_;
	_tmp74_[3] = _tmp4_;
	_tmp74_[4] = _tmp5_;
	_tmp74_[5] = _tmp6_;
	_tmp74_[6] = _tmp7_;
	_tmp74_[7] = _tmp8_;
	_tmp74_[8] = _tmp9_;
	_tmp74_[9] = _tmp10_;
	_tmp74_[10] = _tmp11_;
	_tmp74_[11] = _tmp12_;
	_tmp74_[12] = _tmp13_;
	_tmp74_[13] = _tmp14_;
	_tmp74_[14] = _tmp15_;
	_tmp74_[15] = _tmp16_;
	_tmp74_[16] = _tmp17_;
	_tmp74_[17] = _tmp18_;
	_tmp74_[18] = _tmp19_;
	_tmp74_[19] = _tmp20_;
	_tmp74_[20] = _tmp21_;
	_tmp74_[21] = _tmp22_;
	_tmp74_[22] = _tmp23_;
	_tmp74_[23] = _tmp24_;
	_tmp74_[24] = _tmp25_;
	_tmp74_[25] = _tmp26_;
	_tmp74_[26] = _tmp27_;
	_tmp74_[27] = _tmp28_;
	_tmp74_[28] = _tmp29_;
	_tmp74_[29] = _tmp30_;
	_tmp74_[30] = _tmp31_;
	_tmp74_[31] = _tmp32_;
	_tmp74_[32] = _tmp33_;
	_tmp74_[33] = _tmp34_;
	_tmp74_[34] = _tmp35_;
	_tmp74_[35] = _tmp36_;
	_tmp74_[36] = _tmp37_;
	_tmp74_[37] = _tmp38_;
	_tmp74_[38] = _tmp39_;
	_tmp74_[39] = _tmp40_;
	_tmp74_[40] = _tmp41_;
	_tmp74_[41] = _tmp42_;
	_tmp74_[42] = _tmp43_;
	_tmp74_[43] = _tmp44_;
	_tmp74_[44] = _tmp45_;
	_tmp74_[45] = _tmp46_;
	_tmp74_[46] = _tmp47_;
	_tmp74_[47] = _tmp48_;
	_tmp74_[48] = _tmp49_;
	_tmp74_[49] = _tmp50_;
	_tmp74_[50] = _tmp51_;
	_tmp74_[51] = _tmp52_;
	_tmp74_[52] = _tmp53_;
	_tmp74_[53] = _tmp54_;
	_tmp74_[54] = _tmp55_;
	_tmp74_[55] = _tmp56_;
	_tmp74_[56] = _tmp57_;
	_tmp74_[57] = _tmp58_;
	_tmp74_[58] = _tmp59_;
	_tmp74_[59] = _tmp60_;
	_tmp74_[60] = _tmp61_;
	_tmp74_[61] = _tmp62_;
	_tmp74_[62] = _tmp63_;
	_tmp74_[63] = _tmp64_;
	_tmp74_[64] = _tmp65_;
	_tmp74_[65] = _tmp66_;
	_tmp74_[66] = _tmp67_;
	_tmp74_[67] = _tmp68_;
	_tmp74_[68] = _tmp69_;
	_tmp74_[69] = _tmp70_;
	_tmp74_[70] = _tmp71_;
	_tmp74_[71] = _tmp72_;
	_tmp74_[72] = _tmp73_;
	{
		gchar** action_collection = NULL;
		gint action_collection_length1 = 0;
		gint _action_collection_size_ = 0;
		gint action_it = 0;
		action_collection = _tmp74_;
		action_collection_length1 = 73;
		for (action_it = 0; action_it < action_collection_length1; action_it = action_it + 1) {
			gchar* _tmp75_;
			gchar* action = NULL;
			_tmp75_ = g_strdup (action_collection[action_it]);
			action = _tmp75_;
			{
				GHashTable* _tmp76_;
				const gchar* _tmp77_;
				gchar* _tmp78_;
				_tmp76_ = WIXL_WIX_ELEMENT_CLASS (klass)->child_types;
				_tmp77_ = action;
				_tmp78_ = g_strdup (_tmp77_);
				g_hash_table_insert (_tmp76_, _tmp78_, (gpointer) ((gintptr) WIXL_TYPE_WIX_ACTION));
				_g_free0 (action);
			}
		}
		action_collection = (_vala_array_free (action_collection, action_collection_length1, (GDestroyNotify) g_free), NULL);
	}
}

static void
wixl_wix_install_execute_sequence_instance_init (WixlWixInstallExecuteSequence * self,
                                                 gpointer klass)
{
}

GType
wixl_wix_install_execute_sequence_get_type (void)
{
	static volatile gsize wixl_wix_install_execute_sequence_type_id__volatile = 0;
	if (g_once_init_enter (&wixl_wix_install_execute_sequence_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (WixlWixInstallExecuteSequenceClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) wixl_wix_install_execute_sequence_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (WixlWixInstallExecuteSequence), 0, (GInstanceInitFunc) wixl_wix_install_execute_sequence_instance_init, NULL };
		GType wixl_wix_install_execute_sequence_type_id;
		wixl_wix_install_execute_sequence_type_id = g_type_register_static (WIXL_TYPE_WIX_SEQUENCE, "WixlWixInstallExecuteSequence", &g_define_type_info, 0);
		g_once_init_leave (&wixl_wix_install_execute_sequence_type_id__volatile, wixl_wix_install_execute_sequence_type_id);
	}
	return wixl_wix_install_execute_sequence_type_id__volatile;
}

WixlWixInstallUISequence*
wixl_wix_install_ui_sequence_construct (GType object_type)
{
	WixlWixInstallUISequence * self = NULL;
	self = (WixlWixInstallUISequence*) wixl_wix_sequence_construct (object_type);
	return self;
}

WixlWixInstallUISequence*
wixl_wix_install_ui_sequence_new (void)
{
	return wixl_wix_install_ui_sequence_construct (WIXL_TYPE_WIX_INSTALL_UI_SEQUENCE);
}

static void
wixl_wix_install_ui_sequence_class_init (WixlWixInstallUISequenceClass * klass,
                                         gpointer klass_data)
{
	gchar* _tmp0_;
	gchar* _tmp1_;
	gchar* _tmp2_;
	gchar* _tmp3_;
	gchar* _tmp4_;
	gchar* _tmp5_;
	gchar* _tmp6_;
	gchar* _tmp7_;
	gchar* _tmp8_;
	gchar* _tmp9_;
	gchar* _tmp10_;
	gchar* _tmp11_;
	gchar* _tmp12_;
	gchar* _tmp13_;
	gchar* _tmp14_;
	gchar* _tmp15_;
	gchar* _tmp16_;
	gchar** _tmp17_;
	wixl_wix_install_ui_sequence_parent_class = g_type_class_peek_parent (klass);
	_tmp0_ = g_strdup ("InstallUISequence");
	_g_free0 (WIXL_WIX_ELEMENT_CLASS (klass)->name);
	WIXL_WIX_ELEMENT_CLASS (klass)->name = _tmp0_;
	_tmp1_ = g_strdup ("AppSearch");
	_tmp2_ = g_strdup ("CCPSearch");
	_tmp3_ = g_strdup ("CostFinalize");
	_tmp4_ = g_strdup ("CostInitialize");
	_tmp5_ = g_strdup ("Custom");
	_tmp6_ = g_strdup ("ExecuteAction");
	_tmp7_ = g_strdup ("FileCost");
	_tmp8_ = g_strdup ("FindRelatedProducts");
	_tmp9_ = g_strdup ("IsolateComponents");
	_tmp10_ = g_strdup ("LaunchConditions");
	_tmp11_ = g_strdup ("MigrateFeatureStates");
	_tmp12_ = g_strdup ("ResolveSource");
	_tmp13_ = g_strdup ("RMCCPSearch");
	_tmp14_ = g_strdup ("ScheduleReboot");
	_tmp15_ = g_strdup ("Show");
	_tmp16_ = g_strdup ("ValidateProductID");
	_tmp17_ = g_new0 (gchar*, 16 + 1);
	_tmp17_[0] = _tmp1_;
	_tmp17_[1] = _tmp2_;
	_tmp17_[2] = _tmp3_;
	_tmp17_[3] = _tmp4_;
	_tmp17_[4] = _tmp5_;
	_tmp17_[5] = _tmp6_;
	_tmp17_[6] = _tmp7_;
	_tmp17_[7] = _tmp8_;
	_tmp17_[8] = _tmp9_;
	_tmp17_[9] = _tmp10_;
	_tmp17_[10] = _tmp11_;
	_tmp17_[11] = _tmp12_;
	_tmp17_[12] = _tmp13_;
	_tmp17_[13] = _tmp14_;
	_tmp17_[14] = _tmp15_;
	_tmp17_[15] = _tmp16_;
	{
		gchar** action_collection = NULL;
		gint action_collection_length1 = 0;
		gint _action_collection_size_ = 0;
		gint action_it = 0;
		action_collection = _tmp17_;
		action_collection_length1 = 16;
		for (action_it = 0; action_it < action_collection_length1; action_it = action_it + 1) {
			gchar* _tmp18_;
			gchar* action = NULL;
			_tmp18_ = g_strdup (action_collection[action_it]);
			action = _tmp18_;
			{
				GHashTable* _tmp19_;
				const gchar* _tmp20_;
				gchar* _tmp21_;
				_tmp19_ = WIXL_WIX_ELEMENT_CLASS (klass)->child_types;
				_tmp20_ = action;
				_tmp21_ = g_strdup (_tmp20_);
				g_hash_table_insert (_tmp19_, _tmp21_, (gpointer) ((gintptr) WIXL_TYPE_WIX_ACTION));
				_g_free0 (action);
			}
		}
		action_collection = (_vala_array_free (action_collection, action_collection_length1, (GDestroyNotify) g_free), NULL);
	}
}

static void
wixl_wix_install_ui_sequence_instance_init (WixlWixInstallUISequence * self,
                                            gpointer klass)
{
}

GType
wixl_wix_install_ui_sequence_get_type (void)
{
	static volatile gsize wixl_wix_install_ui_sequence_type_id__volatile = 0;
	if (g_once_init_enter (&wixl_wix_install_ui_sequence_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (WixlWixInstallUISequenceClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) wixl_wix_install_ui_sequence_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (WixlWixInstallUISequence), 0, (GInstanceInitFunc) wixl_wix_install_ui_sequence_instance_init, NULL };
		GType wixl_wix_install_ui_sequence_type_id;
		wixl_wix_install_ui_sequence_type_id = g_type_register_static (WIXL_TYPE_WIX_SEQUENCE, "WixlWixInstallUISequence", &g_define_type_info, 0);
		g_once_init_leave (&wixl_wix_install_ui_sequence_type_id__volatile, wixl_wix_install_ui_sequence_type_id);
	}
	return wixl_wix_install_ui_sequence_type_id__volatile;
}

WixlWixAdminExecuteSequence*
wixl_wix_admin_execute_sequence_construct (GType object_type)
{
	WixlWixAdminExecuteSequence * self = NULL;
	self = (WixlWixAdminExecuteSequence*) wixl_wix_sequence_construct (object_type);
	return self;
}

WixlWixAdminExecuteSequence*
wixl_wix_admin_execute_sequence_new (void)
{
	return wixl_wix_admin_execute_sequence_construct (WIXL_TYPE_WIX_ADMIN_EXECUTE_SEQUENCE);
}

static void
wixl_wix_admin_execute_sequence_class_init (WixlWixAdminExecuteSequenceClass * klass,
                                            gpointer klass_data)
{
	gchar* _tmp0_;
	gchar* _tmp1_;
	gchar* _tmp2_;
	gchar* _tmp3_;
	gchar* _tmp4_;
	gchar* _tmp5_;
	gchar* _tmp6_;
	gchar* _tmp7_;
	gchar* _tmp8_;
	gchar* _tmp9_;
	gchar* _tmp10_;
	gchar* _tmp11_;
	gchar* _tmp12_;
	gchar** _tmp13_;
	wixl_wix_admin_execute_sequence_parent_class = g_type_class_peek_parent (klass);
	_tmp0_ = g_strdup ("AdminExecuteSequence");
	_g_free0 (WIXL_WIX_ELEMENT_CLASS (klass)->name);
	WIXL_WIX_ELEMENT_CLASS (klass)->name = _tmp0_;
	_tmp1_ = g_strdup ("CostFinalize");
	_tmp2_ = g_strdup ("CostInitialize");
	_tmp3_ = g_strdup ("Custom");
	_tmp4_ = g_strdup ("FileCost");
	_tmp5_ = g_strdup ("InstallAdminPackage");
	_tmp6_ = g_strdup ("InstallFiles");
	_tmp7_ = g_strdup ("InstallFinalize");
	_tmp8_ = g_strdup ("InstallInitialize");
	_tmp9_ = g_strdup ("InstallValidate");
	_tmp10_ = g_strdup ("LaunchConditions");
	_tmp11_ = g_strdup ("PatchFiles");
	_tmp12_ = g_strdup ("ResolveSource");
	_tmp13_ = g_new0 (gchar*, 12 + 1);
	_tmp13_[0] = _tmp1_;
	_tmp13_[1] = _tmp2_;
	_tmp13_[2] = _tmp3_;
	_tmp13_[3] = _tmp4_;
	_tmp13_[4] = _tmp5_;
	_tmp13_[5] = _tmp6_;
	_tmp13_[6] = _tmp7_;
	_tmp13_[7] = _tmp8_;
	_tmp13_[8] = _tmp9_;
	_tmp13_[9] = _tmp10_;
	_tmp13_[10] = _tmp11_;
	_tmp13_[11] = _tmp12_;
	{
		gchar** action_collection = NULL;
		gint action_collection_length1 = 0;
		gint _action_collection_size_ = 0;
		gint action_it = 0;
		action_collection = _tmp13_;
		action_collection_length1 = 12;
		for (action_it = 0; action_it < action_collection_length1; action_it = action_it + 1) {
			gchar* _tmp14_;
			gchar* action = NULL;
			_tmp14_ = g_strdup (action_collection[action_it]);
			action = _tmp14_;
			{
				GHashTable* _tmp15_;
				const gchar* _tmp16_;
				gchar* _tmp17_;
				_tmp15_ = WIXL_WIX_ELEMENT_CLASS (klass)->child_types;
				_tmp16_ = action;
				_tmp17_ = g_strdup (_tmp16_);
				g_hash_table_insert (_tmp15_, _tmp17_, (gpointer) ((gintptr) WIXL_TYPE_WIX_ACTION));
				_g_free0 (action);
			}
		}
		action_collection = (_vala_array_free (action_collection, action_collection_length1, (GDestroyNotify) g_free), NULL);
	}
}

static void
wixl_wix_admin_execute_sequence_instance_init (WixlWixAdminExecuteSequence * self,
                                               gpointer klass)
{
}

GType
wixl_wix_admin_execute_sequence_get_type (void)
{
	static volatile gsize wixl_wix_admin_execute_sequence_type_id__volatile = 0;
	if (g_once_init_enter (&wixl_wix_admin_execute_sequence_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (WixlWixAdminExecuteSequenceClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) wixl_wix_admin_execute_sequence_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (WixlWixAdminExecuteSequence), 0, (GInstanceInitFunc) wixl_wix_admin_execute_sequence_instance_init, NULL };
		GType wixl_wix_admin_execute_sequence_type_id;
		wixl_wix_admin_execute_sequence_type_id = g_type_register_static (WIXL_TYPE_WIX_SEQUENCE, "WixlWixAdminExecuteSequence", &g_define_type_info, 0);
		g_once_init_leave (&wixl_wix_admin_execute_sequence_type_id__volatile, wixl_wix_admin_execute_sequence_type_id);
	}
	return wixl_wix_admin_execute_sequence_type_id__volatile;
}

WixlWixAdminUISequence*
wixl_wix_admin_ui_sequence_construct (GType object_type)
{
	WixlWixAdminUISequence * self = NULL;
	self = (WixlWixAdminUISequence*) wixl_wix_sequence_construct (object_type);
	return self;
}

WixlWixAdminUISequence*
wixl_wix_admin_ui_sequence_new (void)
{
	return wixl_wix_admin_ui_sequence_construct (WIXL_TYPE_WIX_ADMIN_UI_SEQUENCE);
}

static void
wixl_wix_admin_ui_sequence_class_init (WixlWixAdminUISequenceClass * klass,
                                       gpointer klass_data)
{
	gchar* _tmp0_;
	gchar* _tmp1_;
	gchar* _tmp2_;
	gchar* _tmp3_;
	gchar* _tmp4_;
	gchar* _tmp5_;
	gchar* _tmp6_;
	gchar* _tmp7_;
	gchar* _tmp8_;
	gchar* _tmp9_;
	gchar* _tmp10_;
	gchar* _tmp11_;
	gchar* _tmp12_;
	gchar** _tmp13_;
	wixl_wix_admin_ui_sequence_parent_class = g_type_class_peek_parent (klass);
	_tmp0_ = g_strdup ("AdminUISequence");
	_g_free0 (WIXL_WIX_ELEMENT_CLASS (klass)->name);
	WIXL_WIX_ELEMENT_CLASS (klass)->name = _tmp0_;
	_tmp1_ = g_strdup ("CostFinalize");
	_tmp2_ = g_strdup ("CostInitialize");
	_tmp3_ = g_strdup ("Custom");
	_tmp4_ = g_strdup ("ExecuteAction");
	_tmp5_ = g_strdup ("FileCost");
	_tmp6_ = g_strdup ("InstallAdminPackage");
	_tmp7_ = g_strdup ("InstallFiles");
	_tmp8_ = g_strdup ("InstallFinalize");
	_tmp9_ = g_strdup ("InstallInitialize");
	_tmp10_ = g_strdup ("InstallValidate");
	_tmp11_ = g_strdup ("LaunchConditions");
	_tmp12_ = g_strdup ("Show");
	_tmp13_ = g_new0 (gchar*, 12 + 1);
	_tmp13_[0] = _tmp1_;
	_tmp13_[1] = _tmp2_;
	_tmp13_[2] = _tmp3_;
	_tmp13_[3] = _tmp4_;
	_tmp13_[4] = _tmp5_;
	_tmp13_[5] = _tmp6_;
	_tmp13_[6] = _tmp7_;
	_tmp13_[7] = _tmp8_;
	_tmp13_[8] = _tmp9_;
	_tmp13_[9] = _tmp10_;
	_tmp13_[10] = _tmp11_;
	_tmp13_[11] = _tmp12_;
	{
		gchar** action_collection = NULL;
		gint action_collection_length1 = 0;
		gint _action_collection_size_ = 0;
		gint action_it = 0;
		action_collection = _tmp13_;
		action_collection_length1 = 12;
		for (action_it = 0; action_it < action_collection_length1; action_it = action_it + 1) {
			gchar* _tmp14_;
			gchar* action = NULL;
			_tmp14_ = g_strdup (action_collection[action_it]);
			action = _tmp14_;
			{
				GHashTable* _tmp15_;
				const gchar* _tmp16_;
				gchar* _tmp17_;
				_tmp15_ = WIXL_WIX_ELEMENT_CLASS (klass)->child_types;
				_tmp16_ = action;
				_tmp17_ = g_strdup (_tmp16_);
				g_hash_table_insert (_tmp15_, _tmp17_, (gpointer) ((gintptr) WIXL_TYPE_WIX_ACTION));
				_g_free0 (action);
			}
		}
		action_collection = (_vala_array_free (action_collection, action_collection_length1, (GDestroyNotify) g_free), NULL);
	}
}

static void
wixl_wix_admin_ui_sequence_instance_init (WixlWixAdminUISequence * self,
                                          gpointer klass)
{
}

GType
wixl_wix_admin_ui_sequence_get_type (void)
{
	static volatile gsize wixl_wix_admin_ui_sequence_type_id__volatile = 0;
	if (g_once_init_enter (&wixl_wix_admin_ui_sequence_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (WixlWixAdminUISequenceClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) wixl_wix_admin_ui_sequence_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (WixlWixAdminUISequence), 0, (GInstanceInitFunc) wixl_wix_admin_ui_sequence_instance_init, NULL };
		GType wixl_wix_admin_ui_sequence_type_id;
		wixl_wix_admin_ui_sequence_type_id = g_type_register_static (WIXL_TYPE_WIX_SEQUENCE, "WixlWixAdminUISequence", &g_define_type_info, 0);
		g_once_init_leave (&wixl_wix_admin_ui_sequence_type_id__volatile, wixl_wix_admin_ui_sequence_type_id);
	}
	return wixl_wix_admin_ui_sequence_type_id__volatile;
}

WixlWixAdvertiseExecuteSequence*
wixl_wix_advertise_execute_sequence_construct (GType object_type)
{
	WixlWixAdvertiseExecuteSequence * self = NULL;
	self = (WixlWixAdvertiseExecuteSequence*) wixl_wix_sequence_construct (object_type);
	return self;
}

WixlWixAdvertiseExecuteSequence*
wixl_wix_advertise_execute_sequence_new (void)
{
	return wixl_wix_advertise_execute_sequence_construct (WIXL_TYPE_WIX_ADVERTISE_EXECUTE_SEQUENCE);
}

static void
wixl_wix_advertise_execute_sequence_class_init (WixlWixAdvertiseExecuteSequenceClass * klass,
                                                gpointer klass_data)
{
	gchar* _tmp0_;
	gchar* _tmp1_;
	gchar* _tmp2_;
	gchar* _tmp3_;
	gchar* _tmp4_;
	gchar* _tmp5_;
	gchar* _tmp6_;
	gchar* _tmp7_;
	gchar* _tmp8_;
	gchar* _tmp9_;
	gchar* _tmp10_;
	gchar* _tmp11_;
	gchar* _tmp12_;
	gchar* _tmp13_;
	gchar* _tmp14_;
	gchar* _tmp15_;
	gchar** _tmp16_;
	wixl_wix_advertise_execute_sequence_parent_class = g_type_class_peek_parent (klass);
	_tmp0_ = g_strdup ("AdvertiseExecuteSequence");
	_g_free0 (WIXL_WIX_ELEMENT_CLASS (klass)->name);
	WIXL_WIX_ELEMENT_CLASS (klass)->name = _tmp0_;
	_tmp1_ = g_strdup ("CostFinalize");
	_tmp2_ = g_strdup ("CostInitialize");
	_tmp3_ = g_strdup ("CreateShortcuts");
	_tmp4_ = g_strdup ("Custom");
	_tmp5_ = g_strdup ("InstallFinalize");
	_tmp6_ = g_strdup ("InstallInitialize");
	_tmp7_ = g_strdup ("InstallValidate");
	_tmp8_ = g_strdup ("MsiPublishAssemblies");
	_tmp9_ = g_strdup ("PublishComponents");
	_tmp10_ = g_strdup ("PublishFeatures");
	_tmp11_ = g_strdup ("PublishProduct");
	_tmp12_ = g_strdup ("RegisterClassInfo");
	_tmp13_ = g_strdup ("RegisterExtensionInfo");
	_tmp14_ = g_strdup ("RegisterMIMEInfo");
	_tmp15_ = g_strdup ("RegisterProgIdInfo");
	_tmp16_ = g_new0 (gchar*, 15 + 1);
	_tmp16_[0] = _tmp1_;
	_tmp16_[1] = _tmp2_;
	_tmp16_[2] = _tmp3_;
	_tmp16_[3] = _tmp4_;
	_tmp16_[4] = _tmp5_;
	_tmp16_[5] = _tmp6_;
	_tmp16_[6] = _tmp7_;
	_tmp16_[7] = _tmp8_;
	_tmp16_[8] = _tmp9_;
	_tmp16_[9] = _tmp10_;
	_tmp16_[10] = _tmp11_;
	_tmp16_[11] = _tmp12_;
	_tmp16_[12] = _tmp13_;
	_tmp16_[13] = _tmp14_;
	_tmp16_[14] = _tmp15_;
	{
		gchar** action_collection = NULL;
		gint action_collection_length1 = 0;
		gint _action_collection_size_ = 0;
		gint action_it = 0;
		action_collection = _tmp16_;
		action_collection_length1 = 15;
		for (action_it = 0; action_it < action_collection_length1; action_it = action_it + 1) {
			gchar* _tmp17_;
			gchar* action = NULL;
			_tmp17_ = g_strdup (action_collection[action_it]);
			action = _tmp17_;
			{
				GHashTable* _tmp18_;
				const gchar* _tmp19_;
				gchar* _tmp20_;
				_tmp18_ = WIXL_WIX_ELEMENT_CLASS (klass)->child_types;
				_tmp19_ = action;
				_tmp20_ = g_strdup (_tmp19_);
				g_hash_table_insert (_tmp18_, _tmp20_, (gpointer) ((gintptr) WIXL_TYPE_WIX_ACTION));
				_g_free0 (action);
			}
		}
		action_collection = (_vala_array_free (action_collection, action_collection_length1, (GDestroyNotify) g_free), NULL);
	}
}

static void
wixl_wix_advertise_execute_sequence_instance_init (WixlWixAdvertiseExecuteSequence * self,
                                                   gpointer klass)
{
}

GType
wixl_wix_advertise_execute_sequence_get_type (void)
{
	static volatile gsize wixl_wix_advertise_execute_sequence_type_id__volatile = 0;
	if (g_once_init_enter (&wixl_wix_advertise_execute_sequence_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (WixlWixAdvertiseExecuteSequenceClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) wixl_wix_advertise_execute_sequence_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (WixlWixAdvertiseExecuteSequence), 0, (GInstanceInitFunc) wixl_wix_advertise_execute_sequence_instance_init, NULL };
		GType wixl_wix_advertise_execute_sequence_type_id;
		wixl_wix_advertise_execute_sequence_type_id = g_type_register_static (WIXL_TYPE_WIX_SEQUENCE, "WixlWixAdvertiseExecuteSequence", &g_define_type_info, 0);
		g_once_init_leave (&wixl_wix_advertise_execute_sequence_type_id__volatile, wixl_wix_advertise_execute_sequence_type_id);
	}
	return wixl_wix_advertise_execute_sequence_type_id__volatile;
}

static void
wixl_wix_upgrade_real_accept (WixlWixNode* base,
                              WixlWixNodeVisitor* visitor,
                              GError** error)
{
	WixlWixUpgrade * self;
	GError* _inner_error0_ = NULL;
	self = (WixlWixUpgrade*) base;
	g_return_if_fail (visitor != NULL);
	WIXL_WIX_NODE_CLASS (wixl_wix_upgrade_parent_class)->accept ((WixlWixNode*) G_TYPE_CHECK_INSTANCE_CAST (self, WIXL_TYPE_WIX_ELEMENT, WixlWixElement), visitor, &_inner_error0_);
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
		g_propagate_error (error, _inner_error0_);
		return;
	}
	wixl_wix_node_visitor_visit_upgrade (visitor, self, &_inner_error0_);
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
		g_propagate_error (error, _inner_error0_);
		return;
	}
}

WixlWixUpgrade*
wixl_wix_upgrade_construct (GType object_type)
{
	WixlWixUpgrade * self = NULL;
	self = (WixlWixUpgrade*) wixl_wix_element_construct (object_type);
	return self;
}

WixlWixUpgrade*
wixl_wix_upgrade_new (void)
{
	return wixl_wix_upgrade_construct (WIXL_TYPE_WIX_UPGRADE);
}

static void
wixl_wix_upgrade_class_init (WixlWixUpgradeClass * klass,
                             gpointer klass_data)
{
	gchar* _tmp0_;
	GHashTable* _tmp1_;
	GType* _tmp2_;
	GType* _tmp3_;
	gint _tmp3__length1;
	wixl_wix_upgrade_parent_class = g_type_class_peek_parent (klass);
	((WixlWixNodeClass *) klass)->accept = (void (*) (WixlWixNode*, WixlWixNodeVisitor*, GError**)) wixl_wix_upgrade_real_accept;
	_tmp0_ = g_strdup ("Upgrade");
	_g_free0 (WIXL_WIX_ELEMENT_CLASS (klass)->name);
	WIXL_WIX_ELEMENT_CLASS (klass)->name = _tmp0_;
	_tmp1_ = WIXL_WIX_ELEMENT_CLASS (klass)->child_types;
	_tmp2_ = g_new0 (GType, 1);
	_tmp2_[0] = WIXL_TYPE_WIX_UPGRADE_VERSION;
	_tmp3_ = _tmp2_;
	_tmp3__length1 = 1;
	wixl_wix_element_add_child_types (WIXL_WIX_ELEMENT_CLASS (klass), _tmp1_, _tmp3_, (gint) 1);
	_tmp3_ = (g_free (_tmp3_), NULL);
}

static void
wixl_wix_upgrade_instance_init (WixlWixUpgrade * self,
                                gpointer klass)
{
}

GType
wixl_wix_upgrade_get_type (void)
{
	static volatile gsize wixl_wix_upgrade_type_id__volatile = 0;
	if (g_once_init_enter (&wixl_wix_upgrade_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (WixlWixUpgradeClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) wixl_wix_upgrade_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (WixlWixUpgrade), 0, (GInstanceInitFunc) wixl_wix_upgrade_instance_init, NULL };
		GType wixl_wix_upgrade_type_id;
		wixl_wix_upgrade_type_id = g_type_register_static (WIXL_TYPE_WIX_ELEMENT, "WixlWixUpgrade", &g_define_type_info, 0);
		g_once_init_leave (&wixl_wix_upgrade_type_id__volatile, wixl_wix_upgrade_type_id);
	}
	return wixl_wix_upgrade_type_id__volatile;
}

static inline gpointer
wixl_wix_upgrade_version_get_instance_private (WixlWixUpgradeVersion* self)
{
	return G_STRUCT_MEMBER_P (self, WixlWixUpgradeVersion_private_offset);
}

static void
wixl_wix_upgrade_version_real_accept (WixlWixNode* base,
                                      WixlWixNodeVisitor* visitor,
                                      GError** error)
{
	WixlWixUpgradeVersion * self;
	GError* _inner_error0_ = NULL;
	self = (WixlWixUpgradeVersion*) base;
	g_return_if_fail (visitor != NULL);
	wixl_wix_node_visitor_visit_upgrade_version (visitor, self, &_inner_error0_);
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
		g_propagate_error (error, _inner_error0_);
		return;
	}
}

WixlWixUpgradeVersion*
wixl_wix_upgrade_version_construct (GType object_type)
{
	WixlWixUpgradeVersion * self = NULL;
	self = (WixlWixUpgradeVersion*) wixl_wix_element_construct (object_type);
	return self;
}

WixlWixUpgradeVersion*
wixl_wix_upgrade_version_new (void)
{
	return wixl_wix_upgrade_version_construct (WIXL_TYPE_WIX_UPGRADE_VERSION);
}

const gchar*
wixl_wix_upgrade_version_get_Minimum (WixlWixUpgradeVersion* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Minimum;
	result = _tmp0_;
	return result;
}

void
wixl_wix_upgrade_version_set_Minimum (WixlWixUpgradeVersion* self,
                                      const gchar* value)
{
	g_return_if_fail (self != NULL);
	if (g_strcmp0 (value, wixl_wix_upgrade_version_get_Minimum (self)) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_Minimum);
		self->priv->_Minimum = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, wixl_wix_upgrade_version_properties[WIXL_WIX_UPGRADE_VERSION_MINIMUM_PROPERTY]);
	}
}

const gchar*
wixl_wix_upgrade_version_get_Maximum (WixlWixUpgradeVersion* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Maximum;
	result = _tmp0_;
	return result;
}

void
wixl_wix_upgrade_version_set_Maximum (WixlWixUpgradeVersion* self,
                                      const gchar* value)
{
	g_return_if_fail (self != NULL);
	if (g_strcmp0 (value, wixl_wix_upgrade_version_get_Maximum (self)) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_Maximum);
		self->priv->_Maximum = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, wixl_wix_upgrade_version_properties[WIXL_WIX_UPGRADE_VERSION_MAXIMUM_PROPERTY]);
	}
}

const gchar*
wixl_wix_upgrade_version_get_IncludeMinimum (WixlWixUpgradeVersion* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_IncludeMinimum;
	result = _tmp0_;
	return result;
}

void
wixl_wix_upgrade_version_set_IncludeMinimum (WixlWixUpgradeVersion* self,
                                             const gchar* value)
{
	g_return_if_fail (self != NULL);
	if (g_strcmp0 (value, wixl_wix_upgrade_version_get_IncludeMinimum (self)) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_IncludeMinimum);
		self->priv->_IncludeMinimum = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, wixl_wix_upgrade_version_properties[WIXL_WIX_UPGRADE_VERSION_INCLUDE_MINIMUM_PROPERTY]);
	}
}

const gchar*
wixl_wix_upgrade_version_get_IncludeMaximum (WixlWixUpgradeVersion* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_IncludeMaximum;
	result = _tmp0_;
	return result;
}

void
wixl_wix_upgrade_version_set_IncludeMaximum (WixlWixUpgradeVersion* self,
                                             const gchar* value)
{
	g_return_if_fail (self != NULL);
	if (g_strcmp0 (value, wixl_wix_upgrade_version_get_IncludeMaximum (self)) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_IncludeMaximum);
		self->priv->_IncludeMaximum = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, wixl_wix_upgrade_version_properties[WIXL_WIX_UPGRADE_VERSION_INCLUDE_MAXIMUM_PROPERTY]);
	}
}

const gchar*
wixl_wix_upgrade_version_get_OnlyDetect (WixlWixUpgradeVersion* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_OnlyDetect;
	result = _tmp0_;
	return result;
}

void
wixl_wix_upgrade_version_set_OnlyDetect (WixlWixUpgradeVersion* self,
                                         const gchar* value)
{
	g_return_if_fail (self != NULL);
	if (g_strcmp0 (value, wixl_wix_upgrade_version_get_OnlyDetect (self)) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_OnlyDetect);
		self->priv->_OnlyDetect = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, wixl_wix_upgrade_version_properties[WIXL_WIX_UPGRADE_VERSION_ONLY_DETECT_PROPERTY]);
	}
}

const gchar*
wixl_wix_upgrade_version_get_Property (WixlWixUpgradeVersion* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Property;
	result = _tmp0_;
	return result;
}

void
wixl_wix_upgrade_version_set_Property (WixlWixUpgradeVersion* self,
                                       const gchar* value)
{
	g_return_if_fail (self != NULL);
	if (g_strcmp0 (value, wixl_wix_upgrade_version_get_Property (self)) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_Property);
		self->priv->_Property = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, wixl_wix_upgrade_version_properties[WIXL_WIX_UPGRADE_VERSION_PROPERTY_PROPERTY]);
	}
}

static void
wixl_wix_upgrade_version_class_init (WixlWixUpgradeVersionClass * klass,
                                     gpointer klass_data)
{
	gchar* _tmp0_;
	wixl_wix_upgrade_version_parent_class = g_type_class_peek_parent (klass);
	g_type_class_adjust_private_offset (klass, &WixlWixUpgradeVersion_private_offset);
	((WixlWixNodeClass *) klass)->accept = (void (*) (WixlWixNode*, WixlWixNodeVisitor*, GError**)) wixl_wix_upgrade_version_real_accept;
	G_OBJECT_CLASS (klass)->get_property = _vala_wixl_wix_upgrade_version_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_wixl_wix_upgrade_version_set_property;
	G_OBJECT_CLASS (klass)->finalize = wixl_wix_upgrade_version_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_UPGRADE_VERSION_MINIMUM_PROPERTY, wixl_wix_upgrade_version_properties[WIXL_WIX_UPGRADE_VERSION_MINIMUM_PROPERTY] = g_param_spec_string ("Minimum", "Minimum", "Minimum", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_UPGRADE_VERSION_MAXIMUM_PROPERTY, wixl_wix_upgrade_version_properties[WIXL_WIX_UPGRADE_VERSION_MAXIMUM_PROPERTY] = g_param_spec_string ("Maximum", "Maximum", "Maximum", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_UPGRADE_VERSION_INCLUDE_MINIMUM_PROPERTY, wixl_wix_upgrade_version_properties[WIXL_WIX_UPGRADE_VERSION_INCLUDE_MINIMUM_PROPERTY] = g_param_spec_string ("IncludeMinimum", "IncludeMinimum", "IncludeMinimum", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_UPGRADE_VERSION_INCLUDE_MAXIMUM_PROPERTY, wixl_wix_upgrade_version_properties[WIXL_WIX_UPGRADE_VERSION_INCLUDE_MAXIMUM_PROPERTY] = g_param_spec_string ("IncludeMaximum", "IncludeMaximum", "IncludeMaximum", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_UPGRADE_VERSION_ONLY_DETECT_PROPERTY, wixl_wix_upgrade_version_properties[WIXL_WIX_UPGRADE_VERSION_ONLY_DETECT_PROPERTY] = g_param_spec_string ("OnlyDetect", "OnlyDetect", "OnlyDetect", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_UPGRADE_VERSION_PROPERTY_PROPERTY, wixl_wix_upgrade_version_properties[WIXL_WIX_UPGRADE_VERSION_PROPERTY_PROPERTY] = g_param_spec_string ("Property", "Property", "Property", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	_tmp0_ = g_strdup ("UpgradeVersion");
	_g_free0 (WIXL_WIX_ELEMENT_CLASS (klass)->name);
	WIXL_WIX_ELEMENT_CLASS (klass)->name = _tmp0_;
}

static void
wixl_wix_upgrade_version_instance_init (WixlWixUpgradeVersion * self,
                                        gpointer klass)
{
	self->priv = wixl_wix_upgrade_version_get_instance_private (self);
}

static void
wixl_wix_upgrade_version_finalize (GObject * obj)
{
	WixlWixUpgradeVersion * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, WIXL_TYPE_WIX_UPGRADE_VERSION, WixlWixUpgradeVersion);
	_g_free0 (self->priv->_Minimum);
	_g_free0 (self->priv->_Maximum);
	_g_free0 (self->priv->_IncludeMinimum);
	_g_free0 (self->priv->_IncludeMaximum);
	_g_free0 (self->priv->_OnlyDetect);
	_g_free0 (self->priv->_Property);
	G_OBJECT_CLASS (wixl_wix_upgrade_version_parent_class)->finalize (obj);
}

GType
wixl_wix_upgrade_version_get_type (void)
{
	static volatile gsize wixl_wix_upgrade_version_type_id__volatile = 0;
	if (g_once_init_enter (&wixl_wix_upgrade_version_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (WixlWixUpgradeVersionClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) wixl_wix_upgrade_version_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (WixlWixUpgradeVersion), 0, (GInstanceInitFunc) wixl_wix_upgrade_version_instance_init, NULL };
		GType wixl_wix_upgrade_version_type_id;
		wixl_wix_upgrade_version_type_id = g_type_register_static (WIXL_TYPE_WIX_ELEMENT, "WixlWixUpgradeVersion", &g_define_type_info, 0);
		WixlWixUpgradeVersion_private_offset = g_type_add_instance_private (wixl_wix_upgrade_version_type_id, sizeof (WixlWixUpgradeVersionPrivate));
		g_once_init_leave (&wixl_wix_upgrade_version_type_id__volatile, wixl_wix_upgrade_version_type_id);
	}
	return wixl_wix_upgrade_version_type_id__volatile;
}

static void
_vala_wixl_wix_upgrade_version_get_property (GObject * object,
                                             guint property_id,
                                             GValue * value,
                                             GParamSpec * pspec)
{
	WixlWixUpgradeVersion * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, WIXL_TYPE_WIX_UPGRADE_VERSION, WixlWixUpgradeVersion);
	switch (property_id) {
		case WIXL_WIX_UPGRADE_VERSION_MINIMUM_PROPERTY:
		g_value_set_string (value, wixl_wix_upgrade_version_get_Minimum (self));
		break;
		case WIXL_WIX_UPGRADE_VERSION_MAXIMUM_PROPERTY:
		g_value_set_string (value, wixl_wix_upgrade_version_get_Maximum (self));
		break;
		case WIXL_WIX_UPGRADE_VERSION_INCLUDE_MINIMUM_PROPERTY:
		g_value_set_string (value, wixl_wix_upgrade_version_get_IncludeMinimum (self));
		break;
		case WIXL_WIX_UPGRADE_VERSION_INCLUDE_MAXIMUM_PROPERTY:
		g_value_set_string (value, wixl_wix_upgrade_version_get_IncludeMaximum (self));
		break;
		case WIXL_WIX_UPGRADE_VERSION_ONLY_DETECT_PROPERTY:
		g_value_set_string (value, wixl_wix_upgrade_version_get_OnlyDetect (self));
		break;
		case WIXL_WIX_UPGRADE_VERSION_PROPERTY_PROPERTY:
		g_value_set_string (value, wixl_wix_upgrade_version_get_Property (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static void
_vala_wixl_wix_upgrade_version_set_property (GObject * object,
                                             guint property_id,
                                             const GValue * value,
                                             GParamSpec * pspec)
{
	WixlWixUpgradeVersion * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, WIXL_TYPE_WIX_UPGRADE_VERSION, WixlWixUpgradeVersion);
	switch (property_id) {
		case WIXL_WIX_UPGRADE_VERSION_MINIMUM_PROPERTY:
		wixl_wix_upgrade_version_set_Minimum (self, g_value_get_string (value));
		break;
		case WIXL_WIX_UPGRADE_VERSION_MAXIMUM_PROPERTY:
		wixl_wix_upgrade_version_set_Maximum (self, g_value_get_string (value));
		break;
		case WIXL_WIX_UPGRADE_VERSION_INCLUDE_MINIMUM_PROPERTY:
		wixl_wix_upgrade_version_set_IncludeMinimum (self, g_value_get_string (value));
		break;
		case WIXL_WIX_UPGRADE_VERSION_INCLUDE_MAXIMUM_PROPERTY:
		wixl_wix_upgrade_version_set_IncludeMaximum (self, g_value_get_string (value));
		break;
		case WIXL_WIX_UPGRADE_VERSION_ONLY_DETECT_PROPERTY:
		wixl_wix_upgrade_version_set_OnlyDetect (self, g_value_get_string (value));
		break;
		case WIXL_WIX_UPGRADE_VERSION_PROPERTY_PROPERTY:
		wixl_wix_upgrade_version_set_Property (self, g_value_get_string (value));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static inline gpointer
wixl_wix_custom_action_get_instance_private (WixlWixCustomAction* self)
{
	return G_STRUCT_MEMBER_P (self, WixlWixCustomAction_private_offset);
}

static void
wixl_wix_custom_action_real_accept (WixlWixNode* base,
                                    WixlWixNodeVisitor* visitor,
                                    GError** error)
{
	WixlWixCustomAction * self;
	GError* _inner_error0_ = NULL;
	self = (WixlWixCustomAction*) base;
	g_return_if_fail (visitor != NULL);
	wixl_wix_node_visitor_visit_custom_action (visitor, self, &_inner_error0_);
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
		g_propagate_error (error, _inner_error0_);
		return;
	}
}

WixlWixCustomAction*
wixl_wix_custom_action_construct (GType object_type)
{
	WixlWixCustomAction * self = NULL;
	self = (WixlWixCustomAction*) wixl_wix_element_construct (object_type);
	return self;
}

WixlWixCustomAction*
wixl_wix_custom_action_new (void)
{
	return wixl_wix_custom_action_construct (WIXL_TYPE_WIX_CUSTOM_ACTION);
}

const gchar*
wixl_wix_custom_action_get_Property (WixlWixCustomAction* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Property;
	result = _tmp0_;
	return result;
}

void
wixl_wix_custom_action_set_Property (WixlWixCustomAction* self,
                                     const gchar* value)
{
	g_return_if_fail (self != NULL);
	if (g_strcmp0 (value, wixl_wix_custom_action_get_Property (self)) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_Property);
		self->priv->_Property = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, wixl_wix_custom_action_properties[WIXL_WIX_CUSTOM_ACTION_PROPERTY_PROPERTY]);
	}
}

const gchar*
wixl_wix_custom_action_get_Execute (WixlWixCustomAction* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Execute;
	result = _tmp0_;
	return result;
}

void
wixl_wix_custom_action_set_Execute (WixlWixCustomAction* self,
                                    const gchar* value)
{
	g_return_if_fail (self != NULL);
	if (g_strcmp0 (value, wixl_wix_custom_action_get_Execute (self)) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_Execute);
		self->priv->_Execute = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, wixl_wix_custom_action_properties[WIXL_WIX_CUSTOM_ACTION_EXECUTE_PROPERTY]);
	}
}

const gchar*
wixl_wix_custom_action_get_FileKey (WixlWixCustomAction* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_FileKey;
	result = _tmp0_;
	return result;
}

void
wixl_wix_custom_action_set_FileKey (WixlWixCustomAction* self,
                                    const gchar* value)
{
	g_return_if_fail (self != NULL);
	if (g_strcmp0 (value, wixl_wix_custom_action_get_FileKey (self)) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_FileKey);
		self->priv->_FileKey = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, wixl_wix_custom_action_properties[WIXL_WIX_CUSTOM_ACTION_FILE_KEY_PROPERTY]);
	}
}

const gchar*
wixl_wix_custom_action_get_ExeCommand (WixlWixCustomAction* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_ExeCommand;
	result = _tmp0_;
	return result;
}

void
wixl_wix_custom_action_set_ExeCommand (WixlWixCustomAction* self,
                                       const gchar* value)
{
	g_return_if_fail (self != NULL);
	if (g_strcmp0 (value, wixl_wix_custom_action_get_ExeCommand (self)) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_ExeCommand);
		self->priv->_ExeCommand = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, wixl_wix_custom_action_properties[WIXL_WIX_CUSTOM_ACTION_EXE_COMMAND_PROPERTY]);
	}
}

const gchar*
wixl_wix_custom_action_get_Impersonate (WixlWixCustomAction* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Impersonate;
	result = _tmp0_;
	return result;
}

void
wixl_wix_custom_action_set_Impersonate (WixlWixCustomAction* self,
                                        const gchar* value)
{
	g_return_if_fail (self != NULL);
	if (g_strcmp0 (value, wixl_wix_custom_action_get_Impersonate (self)) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_Impersonate);
		self->priv->_Impersonate = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, wixl_wix_custom_action_properties[WIXL_WIX_CUSTOM_ACTION_IMPERSONATE_PROPERTY]);
	}
}

const gchar*
wixl_wix_custom_action_get_Return (WixlWixCustomAction* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Return;
	result = _tmp0_;
	return result;
}

void
wixl_wix_custom_action_set_Return (WixlWixCustomAction* self,
                                   const gchar* value)
{
	g_return_if_fail (self != NULL);
	if (g_strcmp0 (value, wixl_wix_custom_action_get_Return (self)) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_Return);
		self->priv->_Return = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, wixl_wix_custom_action_properties[WIXL_WIX_CUSTOM_ACTION_RETURN_PROPERTY]);
	}
}

const gchar*
wixl_wix_custom_action_get_BinaryKey (WixlWixCustomAction* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_BinaryKey;
	result = _tmp0_;
	return result;
}

void
wixl_wix_custom_action_set_BinaryKey (WixlWixCustomAction* self,
                                      const gchar* value)
{
	g_return_if_fail (self != NULL);
	if (g_strcmp0 (value, wixl_wix_custom_action_get_BinaryKey (self)) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_BinaryKey);
		self->priv->_BinaryKey = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, wixl_wix_custom_action_properties[WIXL_WIX_CUSTOM_ACTION_BINARY_KEY_PROPERTY]);
	}
}

const gchar*
wixl_wix_custom_action_get_DllEntry (WixlWixCustomAction* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_DllEntry;
	result = _tmp0_;
	return result;
}

void
wixl_wix_custom_action_set_DllEntry (WixlWixCustomAction* self,
                                     const gchar* value)
{
	g_return_if_fail (self != NULL);
	if (g_strcmp0 (value, wixl_wix_custom_action_get_DllEntry (self)) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_DllEntry);
		self->priv->_DllEntry = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, wixl_wix_custom_action_properties[WIXL_WIX_CUSTOM_ACTION_DLL_ENTRY_PROPERTY]);
	}
}

const gchar*
wixl_wix_custom_action_get_HideTarget (WixlWixCustomAction* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_HideTarget;
	result = _tmp0_;
	return result;
}

void
wixl_wix_custom_action_set_HideTarget (WixlWixCustomAction* self,
                                       const gchar* value)
{
	g_return_if_fail (self != NULL);
	if (g_strcmp0 (value, wixl_wix_custom_action_get_HideTarget (self)) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_HideTarget);
		self->priv->_HideTarget = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, wixl_wix_custom_action_properties[WIXL_WIX_CUSTOM_ACTION_HIDE_TARGET_PROPERTY]);
	}
}

const gchar*
wixl_wix_custom_action_get_JScriptCall (WixlWixCustomAction* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_JScriptCall;
	result = _tmp0_;
	return result;
}

void
wixl_wix_custom_action_set_JScriptCall (WixlWixCustomAction* self,
                                        const gchar* value)
{
	g_return_if_fail (self != NULL);
	if (g_strcmp0 (value, wixl_wix_custom_action_get_JScriptCall (self)) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_JScriptCall);
		self->priv->_JScriptCall = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, wixl_wix_custom_action_properties[WIXL_WIX_CUSTOM_ACTION_JSCRIPT_CALL_PROPERTY]);
	}
}

static void
wixl_wix_custom_action_class_init (WixlWixCustomActionClass * klass,
                                   gpointer klass_data)
{
	gchar* _tmp0_;
	wixl_wix_custom_action_parent_class = g_type_class_peek_parent (klass);
	g_type_class_adjust_private_offset (klass, &WixlWixCustomAction_private_offset);
	((WixlWixNodeClass *) klass)->accept = (void (*) (WixlWixNode*, WixlWixNodeVisitor*, GError**)) wixl_wix_custom_action_real_accept;
	G_OBJECT_CLASS (klass)->get_property = _vala_wixl_wix_custom_action_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_wixl_wix_custom_action_set_property;
	G_OBJECT_CLASS (klass)->finalize = wixl_wix_custom_action_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_CUSTOM_ACTION_PROPERTY_PROPERTY, wixl_wix_custom_action_properties[WIXL_WIX_CUSTOM_ACTION_PROPERTY_PROPERTY] = g_param_spec_string ("Property", "Property", "Property", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_CUSTOM_ACTION_EXECUTE_PROPERTY, wixl_wix_custom_action_properties[WIXL_WIX_CUSTOM_ACTION_EXECUTE_PROPERTY] = g_param_spec_string ("Execute", "Execute", "Execute", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_CUSTOM_ACTION_FILE_KEY_PROPERTY, wixl_wix_custom_action_properties[WIXL_WIX_CUSTOM_ACTION_FILE_KEY_PROPERTY] = g_param_spec_string ("FileKey", "FileKey", "FileKey", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_CUSTOM_ACTION_EXE_COMMAND_PROPERTY, wixl_wix_custom_action_properties[WIXL_WIX_CUSTOM_ACTION_EXE_COMMAND_PROPERTY] = g_param_spec_string ("ExeCommand", "ExeCommand", "ExeCommand", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_CUSTOM_ACTION_IMPERSONATE_PROPERTY, wixl_wix_custom_action_properties[WIXL_WIX_CUSTOM_ACTION_IMPERSONATE_PROPERTY] = g_param_spec_string ("Impersonate", "Impersonate", "Impersonate", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_CUSTOM_ACTION_RETURN_PROPERTY, wixl_wix_custom_action_properties[WIXL_WIX_CUSTOM_ACTION_RETURN_PROPERTY] = g_param_spec_string ("Return", "Return", "Return", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_CUSTOM_ACTION_BINARY_KEY_PROPERTY, wixl_wix_custom_action_properties[WIXL_WIX_CUSTOM_ACTION_BINARY_KEY_PROPERTY] = g_param_spec_string ("BinaryKey", "BinaryKey", "BinaryKey", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_CUSTOM_ACTION_DLL_ENTRY_PROPERTY, wixl_wix_custom_action_properties[WIXL_WIX_CUSTOM_ACTION_DLL_ENTRY_PROPERTY] = g_param_spec_string ("DllEntry", "DllEntry", "DllEntry", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_CUSTOM_ACTION_HIDE_TARGET_PROPERTY, wixl_wix_custom_action_properties[WIXL_WIX_CUSTOM_ACTION_HIDE_TARGET_PROPERTY] = g_param_spec_string ("HideTarget", "HideTarget", "HideTarget", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_CUSTOM_ACTION_JSCRIPT_CALL_PROPERTY, wixl_wix_custom_action_properties[WIXL_WIX_CUSTOM_ACTION_JSCRIPT_CALL_PROPERTY] = g_param_spec_string ("JScriptCall", "JScriptCall", "JScriptCall", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	_tmp0_ = g_strdup ("CustomAction");
	_g_free0 (WIXL_WIX_ELEMENT_CLASS (klass)->name);
	WIXL_WIX_ELEMENT_CLASS (klass)->name = _tmp0_;
}

static void
wixl_wix_custom_action_instance_init (WixlWixCustomAction * self,
                                      gpointer klass)
{
	self->priv = wixl_wix_custom_action_get_instance_private (self);
}

static void
wixl_wix_custom_action_finalize (GObject * obj)
{
	WixlWixCustomAction * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, WIXL_TYPE_WIX_CUSTOM_ACTION, WixlWixCustomAction);
	_g_free0 (self->priv->_Property);
	_g_free0 (self->priv->_Execute);
	_g_free0 (self->priv->_FileKey);
	_g_free0 (self->priv->_ExeCommand);
	_g_free0 (self->priv->_Impersonate);
	_g_free0 (self->priv->_Return);
	_g_free0 (self->priv->_BinaryKey);
	_g_free0 (self->priv->_DllEntry);
	_g_free0 (self->priv->_HideTarget);
	_g_free0 (self->priv->_JScriptCall);
	G_OBJECT_CLASS (wixl_wix_custom_action_parent_class)->finalize (obj);
}

GType
wixl_wix_custom_action_get_type (void)
{
	static volatile gsize wixl_wix_custom_action_type_id__volatile = 0;
	if (g_once_init_enter (&wixl_wix_custom_action_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (WixlWixCustomActionClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) wixl_wix_custom_action_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (WixlWixCustomAction), 0, (GInstanceInitFunc) wixl_wix_custom_action_instance_init, NULL };
		GType wixl_wix_custom_action_type_id;
		wixl_wix_custom_action_type_id = g_type_register_static (WIXL_TYPE_WIX_ELEMENT, "WixlWixCustomAction", &g_define_type_info, 0);
		WixlWixCustomAction_private_offset = g_type_add_instance_private (wixl_wix_custom_action_type_id, sizeof (WixlWixCustomActionPrivate));
		g_once_init_leave (&wixl_wix_custom_action_type_id__volatile, wixl_wix_custom_action_type_id);
	}
	return wixl_wix_custom_action_type_id__volatile;
}

static void
_vala_wixl_wix_custom_action_get_property (GObject * object,
                                           guint property_id,
                                           GValue * value,
                                           GParamSpec * pspec)
{
	WixlWixCustomAction * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, WIXL_TYPE_WIX_CUSTOM_ACTION, WixlWixCustomAction);
	switch (property_id) {
		case WIXL_WIX_CUSTOM_ACTION_PROPERTY_PROPERTY:
		g_value_set_string (value, wixl_wix_custom_action_get_Property (self));
		break;
		case WIXL_WIX_CUSTOM_ACTION_EXECUTE_PROPERTY:
		g_value_set_string (value, wixl_wix_custom_action_get_Execute (self));
		break;
		case WIXL_WIX_CUSTOM_ACTION_FILE_KEY_PROPERTY:
		g_value_set_string (value, wixl_wix_custom_action_get_FileKey (self));
		break;
		case WIXL_WIX_CUSTOM_ACTION_EXE_COMMAND_PROPERTY:
		g_value_set_string (value, wixl_wix_custom_action_get_ExeCommand (self));
		break;
		case WIXL_WIX_CUSTOM_ACTION_IMPERSONATE_PROPERTY:
		g_value_set_string (value, wixl_wix_custom_action_get_Impersonate (self));
		break;
		case WIXL_WIX_CUSTOM_ACTION_RETURN_PROPERTY:
		g_value_set_string (value, wixl_wix_custom_action_get_Return (self));
		break;
		case WIXL_WIX_CUSTOM_ACTION_BINARY_KEY_PROPERTY:
		g_value_set_string (value, wixl_wix_custom_action_get_BinaryKey (self));
		break;
		case WIXL_WIX_CUSTOM_ACTION_DLL_ENTRY_PROPERTY:
		g_value_set_string (value, wixl_wix_custom_action_get_DllEntry (self));
		break;
		case WIXL_WIX_CUSTOM_ACTION_HIDE_TARGET_PROPERTY:
		g_value_set_string (value, wixl_wix_custom_action_get_HideTarget (self));
		break;
		case WIXL_WIX_CUSTOM_ACTION_JSCRIPT_CALL_PROPERTY:
		g_value_set_string (value, wixl_wix_custom_action_get_JScriptCall (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static void
_vala_wixl_wix_custom_action_set_property (GObject * object,
                                           guint property_id,
                                           const GValue * value,
                                           GParamSpec * pspec)
{
	WixlWixCustomAction * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, WIXL_TYPE_WIX_CUSTOM_ACTION, WixlWixCustomAction);
	switch (property_id) {
		case WIXL_WIX_CUSTOM_ACTION_PROPERTY_PROPERTY:
		wixl_wix_custom_action_set_Property (self, g_value_get_string (value));
		break;
		case WIXL_WIX_CUSTOM_ACTION_EXECUTE_PROPERTY:
		wixl_wix_custom_action_set_Execute (self, g_value_get_string (value));
		break;
		case WIXL_WIX_CUSTOM_ACTION_FILE_KEY_PROPERTY:
		wixl_wix_custom_action_set_FileKey (self, g_value_get_string (value));
		break;
		case WIXL_WIX_CUSTOM_ACTION_EXE_COMMAND_PROPERTY:
		wixl_wix_custom_action_set_ExeCommand (self, g_value_get_string (value));
		break;
		case WIXL_WIX_CUSTOM_ACTION_IMPERSONATE_PROPERTY:
		wixl_wix_custom_action_set_Impersonate (self, g_value_get_string (value));
		break;
		case WIXL_WIX_CUSTOM_ACTION_RETURN_PROPERTY:
		wixl_wix_custom_action_set_Return (self, g_value_get_string (value));
		break;
		case WIXL_WIX_CUSTOM_ACTION_BINARY_KEY_PROPERTY:
		wixl_wix_custom_action_set_BinaryKey (self, g_value_get_string (value));
		break;
		case WIXL_WIX_CUSTOM_ACTION_DLL_ENTRY_PROPERTY:
		wixl_wix_custom_action_set_DllEntry (self, g_value_get_string (value));
		break;
		case WIXL_WIX_CUSTOM_ACTION_HIDE_TARGET_PROPERTY:
		wixl_wix_custom_action_set_HideTarget (self, g_value_get_string (value));
		break;
		case WIXL_WIX_CUSTOM_ACTION_JSCRIPT_CALL_PROPERTY:
		wixl_wix_custom_action_set_JScriptCall (self, g_value_get_string (value));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static inline gpointer
wixl_wix_binary_get_instance_private (WixlWixBinary* self)
{
	return G_STRUCT_MEMBER_P (self, WixlWixBinary_private_offset);
}

static void
wixl_wix_binary_real_accept (WixlWixNode* base,
                             WixlWixNodeVisitor* visitor,
                             GError** error)
{
	WixlWixBinary * self;
	GError* _inner_error0_ = NULL;
	self = (WixlWixBinary*) base;
	g_return_if_fail (visitor != NULL);
	wixl_wix_node_visitor_visit_binary (visitor, self, &_inner_error0_);
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
		g_propagate_error (error, _inner_error0_);
		return;
	}
}

WixlWixBinary*
wixl_wix_binary_construct (GType object_type)
{
	WixlWixBinary * self = NULL;
	self = (WixlWixBinary*) wixl_wix_element_construct (object_type);
	return self;
}

WixlWixBinary*
wixl_wix_binary_new (void)
{
	return wixl_wix_binary_construct (WIXL_TYPE_WIX_BINARY);
}

const gchar*
wixl_wix_binary_get_SourceFile (WixlWixBinary* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_SourceFile;
	result = _tmp0_;
	return result;
}

void
wixl_wix_binary_set_SourceFile (WixlWixBinary* self,
                                const gchar* value)
{
	g_return_if_fail (self != NULL);
	if (g_strcmp0 (value, wixl_wix_binary_get_SourceFile (self)) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_SourceFile);
		self->priv->_SourceFile = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, wixl_wix_binary_properties[WIXL_WIX_BINARY_SOURCE_FILE_PROPERTY]);
	}
}

static void
wixl_wix_binary_class_init (WixlWixBinaryClass * klass,
                            gpointer klass_data)
{
	gchar* _tmp0_;
	wixl_wix_binary_parent_class = g_type_class_peek_parent (klass);
	g_type_class_adjust_private_offset (klass, &WixlWixBinary_private_offset);
	((WixlWixNodeClass *) klass)->accept = (void (*) (WixlWixNode*, WixlWixNodeVisitor*, GError**)) wixl_wix_binary_real_accept;
	G_OBJECT_CLASS (klass)->get_property = _vala_wixl_wix_binary_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_wixl_wix_binary_set_property;
	G_OBJECT_CLASS (klass)->finalize = wixl_wix_binary_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_BINARY_SOURCE_FILE_PROPERTY, wixl_wix_binary_properties[WIXL_WIX_BINARY_SOURCE_FILE_PROPERTY] = g_param_spec_string ("SourceFile", "SourceFile", "SourceFile", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	_tmp0_ = g_strdup ("Binary");
	_g_free0 (WIXL_WIX_ELEMENT_CLASS (klass)->name);
	WIXL_WIX_ELEMENT_CLASS (klass)->name = _tmp0_;
}

static void
wixl_wix_binary_instance_init (WixlWixBinary * self,
                               gpointer klass)
{
	self->priv = wixl_wix_binary_get_instance_private (self);
}

static void
wixl_wix_binary_finalize (GObject * obj)
{
	WixlWixBinary * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, WIXL_TYPE_WIX_BINARY, WixlWixBinary);
	_g_free0 (self->priv->_SourceFile);
	_g_object_unref0 (self->file);
	G_OBJECT_CLASS (wixl_wix_binary_parent_class)->finalize (obj);
}

GType
wixl_wix_binary_get_type (void)
{
	static volatile gsize wixl_wix_binary_type_id__volatile = 0;
	if (g_once_init_enter (&wixl_wix_binary_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (WixlWixBinaryClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) wixl_wix_binary_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (WixlWixBinary), 0, (GInstanceInitFunc) wixl_wix_binary_instance_init, NULL };
		GType wixl_wix_binary_type_id;
		wixl_wix_binary_type_id = g_type_register_static (WIXL_TYPE_WIX_ELEMENT, "WixlWixBinary", &g_define_type_info, 0);
		WixlWixBinary_private_offset = g_type_add_instance_private (wixl_wix_binary_type_id, sizeof (WixlWixBinaryPrivate));
		g_once_init_leave (&wixl_wix_binary_type_id__volatile, wixl_wix_binary_type_id);
	}
	return wixl_wix_binary_type_id__volatile;
}

static void
_vala_wixl_wix_binary_get_property (GObject * object,
                                    guint property_id,
                                    GValue * value,
                                    GParamSpec * pspec)
{
	WixlWixBinary * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, WIXL_TYPE_WIX_BINARY, WixlWixBinary);
	switch (property_id) {
		case WIXL_WIX_BINARY_SOURCE_FILE_PROPERTY:
		g_value_set_string (value, wixl_wix_binary_get_SourceFile (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static void
_vala_wixl_wix_binary_set_property (GObject * object,
                                    guint property_id,
                                    const GValue * value,
                                    GParamSpec * pspec)
{
	WixlWixBinary * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, WIXL_TYPE_WIX_BINARY, WixlWixBinary);
	switch (property_id) {
		case WIXL_WIX_BINARY_SOURCE_FILE_PROPERTY:
		wixl_wix_binary_set_SourceFile (self, g_value_get_string (value));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static inline gpointer
wixl_wix_major_upgrade_get_instance_private (WixlWixMajorUpgrade* self)
{
	return G_STRUCT_MEMBER_P (self, WixlWixMajorUpgrade_private_offset);
}

static void
wixl_wix_major_upgrade_real_accept (WixlWixNode* base,
                                    WixlWixNodeVisitor* visitor,
                                    GError** error)
{
	WixlWixMajorUpgrade * self;
	GError* _inner_error0_ = NULL;
	self = (WixlWixMajorUpgrade*) base;
	g_return_if_fail (visitor != NULL);
	wixl_wix_node_visitor_visit_major_upgrade (visitor, self, &_inner_error0_);
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
		g_propagate_error (error, _inner_error0_);
		return;
	}
}

WixlWixMajorUpgrade*
wixl_wix_major_upgrade_construct (GType object_type)
{
	WixlWixMajorUpgrade * self = NULL;
	self = (WixlWixMajorUpgrade*) wixl_wix_element_construct (object_type);
	return self;
}

WixlWixMajorUpgrade*
wixl_wix_major_upgrade_new (void)
{
	return wixl_wix_major_upgrade_construct (WIXL_TYPE_WIX_MAJOR_UPGRADE);
}

const gchar*
wixl_wix_major_upgrade_get_DowngradeErrorMessage (WixlWixMajorUpgrade* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_DowngradeErrorMessage;
	result = _tmp0_;
	return result;
}

void
wixl_wix_major_upgrade_set_DowngradeErrorMessage (WixlWixMajorUpgrade* self,
                                                  const gchar* value)
{
	g_return_if_fail (self != NULL);
	if (g_strcmp0 (value, wixl_wix_major_upgrade_get_DowngradeErrorMessage (self)) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_DowngradeErrorMessage);
		self->priv->_DowngradeErrorMessage = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, wixl_wix_major_upgrade_properties[WIXL_WIX_MAJOR_UPGRADE_DOWNGRADE_ERROR_MESSAGE_PROPERTY]);
	}
}

static void
wixl_wix_major_upgrade_class_init (WixlWixMajorUpgradeClass * klass,
                                   gpointer klass_data)
{
	gchar* _tmp0_;
	wixl_wix_major_upgrade_parent_class = g_type_class_peek_parent (klass);
	g_type_class_adjust_private_offset (klass, &WixlWixMajorUpgrade_private_offset);
	((WixlWixNodeClass *) klass)->accept = (void (*) (WixlWixNode*, WixlWixNodeVisitor*, GError**)) wixl_wix_major_upgrade_real_accept;
	G_OBJECT_CLASS (klass)->get_property = _vala_wixl_wix_major_upgrade_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_wixl_wix_major_upgrade_set_property;
	G_OBJECT_CLASS (klass)->finalize = wixl_wix_major_upgrade_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_MAJOR_UPGRADE_DOWNGRADE_ERROR_MESSAGE_PROPERTY, wixl_wix_major_upgrade_properties[WIXL_WIX_MAJOR_UPGRADE_DOWNGRADE_ERROR_MESSAGE_PROPERTY] = g_param_spec_string ("DowngradeErrorMessage", "DowngradeErrorMessage", "DowngradeErrorMessage", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	_tmp0_ = g_strdup ("MajorUpgrade");
	_g_free0 (WIXL_WIX_ELEMENT_CLASS (klass)->name);
	WIXL_WIX_ELEMENT_CLASS (klass)->name = _tmp0_;
}

static void
wixl_wix_major_upgrade_instance_init (WixlWixMajorUpgrade * self,
                                      gpointer klass)
{
	self->priv = wixl_wix_major_upgrade_get_instance_private (self);
}

static void
wixl_wix_major_upgrade_finalize (GObject * obj)
{
	WixlWixMajorUpgrade * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, WIXL_TYPE_WIX_MAJOR_UPGRADE, WixlWixMajorUpgrade);
	_g_free0 (self->priv->_DowngradeErrorMessage);
	G_OBJECT_CLASS (wixl_wix_major_upgrade_parent_class)->finalize (obj);
}

GType
wixl_wix_major_upgrade_get_type (void)
{
	static volatile gsize wixl_wix_major_upgrade_type_id__volatile = 0;
	if (g_once_init_enter (&wixl_wix_major_upgrade_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (WixlWixMajorUpgradeClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) wixl_wix_major_upgrade_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (WixlWixMajorUpgrade), 0, (GInstanceInitFunc) wixl_wix_major_upgrade_instance_init, NULL };
		GType wixl_wix_major_upgrade_type_id;
		wixl_wix_major_upgrade_type_id = g_type_register_static (WIXL_TYPE_WIX_ELEMENT, "WixlWixMajorUpgrade", &g_define_type_info, 0);
		WixlWixMajorUpgrade_private_offset = g_type_add_instance_private (wixl_wix_major_upgrade_type_id, sizeof (WixlWixMajorUpgradePrivate));
		g_once_init_leave (&wixl_wix_major_upgrade_type_id__volatile, wixl_wix_major_upgrade_type_id);
	}
	return wixl_wix_major_upgrade_type_id__volatile;
}

static void
_vala_wixl_wix_major_upgrade_get_property (GObject * object,
                                           guint property_id,
                                           GValue * value,
                                           GParamSpec * pspec)
{
	WixlWixMajorUpgrade * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, WIXL_TYPE_WIX_MAJOR_UPGRADE, WixlWixMajorUpgrade);
	switch (property_id) {
		case WIXL_WIX_MAJOR_UPGRADE_DOWNGRADE_ERROR_MESSAGE_PROPERTY:
		g_value_set_string (value, wixl_wix_major_upgrade_get_DowngradeErrorMessage (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static void
_vala_wixl_wix_major_upgrade_set_property (GObject * object,
                                           guint property_id,
                                           const GValue * value,
                                           GParamSpec * pspec)
{
	WixlWixMajorUpgrade * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, WIXL_TYPE_WIX_MAJOR_UPGRADE, WixlWixMajorUpgrade);
	switch (property_id) {
		case WIXL_WIX_MAJOR_UPGRADE_DOWNGRADE_ERROR_MESSAGE_PROPERTY:
		wixl_wix_major_upgrade_set_DowngradeErrorMessage (self, g_value_get_string (value));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static inline gpointer
wixl_wix_media_template_get_instance_private (WixlWixMediaTemplate* self)
{
	return G_STRUCT_MEMBER_P (self, WixlWixMediaTemplate_private_offset);
}

static void
wixl_wix_media_template_real_accept (WixlWixNode* base,
                                     WixlWixNodeVisitor* visitor,
                                     GError** error)
{
	WixlWixMediaTemplate * self;
	GError* _inner_error0_ = NULL;
	self = (WixlWixMediaTemplate*) base;
	g_return_if_fail (visitor != NULL);
	wixl_wix_node_visitor_visit_media_template (visitor, self, &_inner_error0_);
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
		g_propagate_error (error, _inner_error0_);
		return;
	}
}

WixlWixMediaTemplate*
wixl_wix_media_template_construct (GType object_type)
{
	WixlWixMediaTemplate * self = NULL;
	self = (WixlWixMediaTemplate*) wixl_wix_element_construct (object_type);
	return self;
}

WixlWixMediaTemplate*
wixl_wix_media_template_new (void)
{
	return wixl_wix_media_template_construct (WIXL_TYPE_WIX_MEDIA_TEMPLATE);
}

const gchar*
wixl_wix_media_template_get_EmbedCab (WixlWixMediaTemplate* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_EmbedCab;
	result = _tmp0_;
	return result;
}

void
wixl_wix_media_template_set_EmbedCab (WixlWixMediaTemplate* self,
                                      const gchar* value)
{
	g_return_if_fail (self != NULL);
	if (g_strcmp0 (value, wixl_wix_media_template_get_EmbedCab (self)) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_EmbedCab);
		self->priv->_EmbedCab = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, wixl_wix_media_template_properties[WIXL_WIX_MEDIA_TEMPLATE_EMBED_CAB_PROPERTY]);
	}
}

static void
wixl_wix_media_template_class_init (WixlWixMediaTemplateClass * klass,
                                    gpointer klass_data)
{
	gchar* _tmp0_;
	wixl_wix_media_template_parent_class = g_type_class_peek_parent (klass);
	g_type_class_adjust_private_offset (klass, &WixlWixMediaTemplate_private_offset);
	((WixlWixNodeClass *) klass)->accept = (void (*) (WixlWixNode*, WixlWixNodeVisitor*, GError**)) wixl_wix_media_template_real_accept;
	G_OBJECT_CLASS (klass)->get_property = _vala_wixl_wix_media_template_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_wixl_wix_media_template_set_property;
	G_OBJECT_CLASS (klass)->finalize = wixl_wix_media_template_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_MEDIA_TEMPLATE_EMBED_CAB_PROPERTY, wixl_wix_media_template_properties[WIXL_WIX_MEDIA_TEMPLATE_EMBED_CAB_PROPERTY] = g_param_spec_string ("EmbedCab", "EmbedCab", "EmbedCab", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	_tmp0_ = g_strdup ("MediaTemplate");
	_g_free0 (WIXL_WIX_ELEMENT_CLASS (klass)->name);
	WIXL_WIX_ELEMENT_CLASS (klass)->name = _tmp0_;
}

static void
wixl_wix_media_template_instance_init (WixlWixMediaTemplate * self,
                                       gpointer klass)
{
	self->priv = wixl_wix_media_template_get_instance_private (self);
}

static void
wixl_wix_media_template_finalize (GObject * obj)
{
	WixlWixMediaTemplate * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, WIXL_TYPE_WIX_MEDIA_TEMPLATE, WixlWixMediaTemplate);
	_g_free0 (self->priv->_EmbedCab);
	G_OBJECT_CLASS (wixl_wix_media_template_parent_class)->finalize (obj);
}

GType
wixl_wix_media_template_get_type (void)
{
	static volatile gsize wixl_wix_media_template_type_id__volatile = 0;
	if (g_once_init_enter (&wixl_wix_media_template_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (WixlWixMediaTemplateClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) wixl_wix_media_template_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (WixlWixMediaTemplate), 0, (GInstanceInitFunc) wixl_wix_media_template_instance_init, NULL };
		GType wixl_wix_media_template_type_id;
		wixl_wix_media_template_type_id = g_type_register_static (WIXL_TYPE_WIX_ELEMENT, "WixlWixMediaTemplate", &g_define_type_info, 0);
		WixlWixMediaTemplate_private_offset = g_type_add_instance_private (wixl_wix_media_template_type_id, sizeof (WixlWixMediaTemplatePrivate));
		g_once_init_leave (&wixl_wix_media_template_type_id__volatile, wixl_wix_media_template_type_id);
	}
	return wixl_wix_media_template_type_id__volatile;
}

static void
_vala_wixl_wix_media_template_get_property (GObject * object,
                                            guint property_id,
                                            GValue * value,
                                            GParamSpec * pspec)
{
	WixlWixMediaTemplate * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, WIXL_TYPE_WIX_MEDIA_TEMPLATE, WixlWixMediaTemplate);
	switch (property_id) {
		case WIXL_WIX_MEDIA_TEMPLATE_EMBED_CAB_PROPERTY:
		g_value_set_string (value, wixl_wix_media_template_get_EmbedCab (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static void
_vala_wixl_wix_media_template_set_property (GObject * object,
                                            guint property_id,
                                            const GValue * value,
                                            GParamSpec * pspec)
{
	WixlWixMediaTemplate * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, WIXL_TYPE_WIX_MEDIA_TEMPLATE, WixlWixMediaTemplate);
	switch (property_id) {
		case WIXL_WIX_MEDIA_TEMPLATE_EMBED_CAB_PROPERTY:
		wixl_wix_media_template_set_EmbedCab (self, g_value_get_string (value));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static inline gpointer
wixl_wix_product_get_instance_private (WixlWixProduct* self)
{
	return G_STRUCT_MEMBER_P (self, WixlWixProduct_private_offset);
}

WixlWixProduct*
wixl_wix_product_construct (GType object_type)
{
	WixlWixProduct * self = NULL;
	self = (WixlWixProduct*) wixl_wix_element_construct (object_type);
	return self;
}

WixlWixProduct*
wixl_wix_product_new (void)
{
	return wixl_wix_product_construct (WIXL_TYPE_WIX_PRODUCT);
}

static void
wixl_wix_product_real_accept (WixlWixNode* base,
                              WixlWixNodeVisitor* visitor,
                              GError** error)
{
	WixlWixProduct * self;
	GError* _inner_error0_ = NULL;
	self = (WixlWixProduct*) base;
	g_return_if_fail (visitor != NULL);
	WIXL_WIX_NODE_CLASS (wixl_wix_product_parent_class)->accept ((WixlWixNode*) G_TYPE_CHECK_INSTANCE_CAST (self, WIXL_TYPE_WIX_ELEMENT, WixlWixElement), visitor, &_inner_error0_);
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
		g_propagate_error (error, _inner_error0_);
		return;
	}
	wixl_wix_node_visitor_visit_product (visitor, self, &_inner_error0_);
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
		g_propagate_error (error, _inner_error0_);
		return;
	}
}

const gchar*
wixl_wix_product_get_Name (WixlWixProduct* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Name;
	result = _tmp0_;
	return result;
}

void
wixl_wix_product_set_Name (WixlWixProduct* self,
                           const gchar* value)
{
	g_return_if_fail (self != NULL);
	if (g_strcmp0 (value, wixl_wix_product_get_Name (self)) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_Name);
		self->priv->_Name = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, wixl_wix_product_properties[WIXL_WIX_PRODUCT_NAME_PROPERTY]);
	}
}

const gchar*
wixl_wix_product_get_UpgradeCode (WixlWixProduct* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_UpgradeCode;
	result = _tmp0_;
	return result;
}

void
wixl_wix_product_set_UpgradeCode (WixlWixProduct* self,
                                  const gchar* value)
{
	g_return_if_fail (self != NULL);
	if (g_strcmp0 (value, wixl_wix_product_get_UpgradeCode (self)) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_UpgradeCode);
		self->priv->_UpgradeCode = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, wixl_wix_product_properties[WIXL_WIX_PRODUCT_UPGRADE_CODE_PROPERTY]);
	}
}

const gchar*
wixl_wix_product_get_Language (WixlWixProduct* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Language;
	result = _tmp0_;
	return result;
}

void
wixl_wix_product_set_Language (WixlWixProduct* self,
                               const gchar* value)
{
	g_return_if_fail (self != NULL);
	if (g_strcmp0 (value, wixl_wix_product_get_Language (self)) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_Language);
		self->priv->_Language = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, wixl_wix_product_properties[WIXL_WIX_PRODUCT_LANGUAGE_PROPERTY]);
	}
}

const gchar*
wixl_wix_product_get_Codepage (WixlWixProduct* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Codepage;
	result = _tmp0_;
	return result;
}

void
wixl_wix_product_set_Codepage (WixlWixProduct* self,
                               const gchar* value)
{
	g_return_if_fail (self != NULL);
	if (g_strcmp0 (value, wixl_wix_product_get_Codepage (self)) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_Codepage);
		self->priv->_Codepage = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, wixl_wix_product_properties[WIXL_WIX_PRODUCT_CODEPAGE_PROPERTY]);
	}
}

const gchar*
wixl_wix_product_get_Version (WixlWixProduct* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Version;
	result = _tmp0_;
	return result;
}

void
wixl_wix_product_set_Version (WixlWixProduct* self,
                              const gchar* value)
{
	g_return_if_fail (self != NULL);
	if (g_strcmp0 (value, wixl_wix_product_get_Version (self)) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_Version);
		self->priv->_Version = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, wixl_wix_product_properties[WIXL_WIX_PRODUCT_VERSION_PROPERTY]);
	}
}

const gchar*
wixl_wix_product_get_Manufacturer (WixlWixProduct* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Manufacturer;
	result = _tmp0_;
	return result;
}

void
wixl_wix_product_set_Manufacturer (WixlWixProduct* self,
                                   const gchar* value)
{
	g_return_if_fail (self != NULL);
	if (g_strcmp0 (value, wixl_wix_product_get_Manufacturer (self)) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_Manufacturer);
		self->priv->_Manufacturer = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, wixl_wix_product_properties[WIXL_WIX_PRODUCT_MANUFACTURER_PROPERTY]);
	}
}

static void
wixl_wix_product_class_init (WixlWixProductClass * klass,
                             gpointer klass_data)
{
	gchar* _tmp0_;
	GHashTable* _tmp1_;
	GType* _tmp2_;
	GType* _tmp3_;
	gint _tmp3__length1;
	wixl_wix_product_parent_class = g_type_class_peek_parent (klass);
	g_type_class_adjust_private_offset (klass, &WixlWixProduct_private_offset);
	((WixlWixNodeClass *) klass)->accept = (void (*) (WixlWixNode*, WixlWixNodeVisitor*, GError**)) wixl_wix_product_real_accept;
	G_OBJECT_CLASS (klass)->get_property = _vala_wixl_wix_product_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_wixl_wix_product_set_property;
	G_OBJECT_CLASS (klass)->finalize = wixl_wix_product_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_PRODUCT_NAME_PROPERTY, wixl_wix_product_properties[WIXL_WIX_PRODUCT_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), WIXL_WIX_PRODUCT_UPGRADE_CODE_PROPERTY, wixl_wix_product_properties[WIXL_WIX_PRODUCT_UPGRADE_CODE_PROPERTY] = g_param_spec_string ("UpgradeCode", "UpgradeCode", "UpgradeCode", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_PRODUCT_LANGUAGE_PROPERTY, wixl_wix_product_properties[WIXL_WIX_PRODUCT_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), WIXL_WIX_PRODUCT_CODEPAGE_PROPERTY, wixl_wix_product_properties[WIXL_WIX_PRODUCT_CODEPAGE_PROPERTY] = g_param_spec_string ("Codepage", "Codepage", "Codepage", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_PRODUCT_VERSION_PROPERTY, wixl_wix_product_properties[WIXL_WIX_PRODUCT_VERSION_PROPERTY] = g_param_spec_string ("Version", "Version", "Version", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_PRODUCT_MANUFACTURER_PROPERTY, wixl_wix_product_properties[WIXL_WIX_PRODUCT_MANUFACTURER_PROPERTY] = g_param_spec_string ("Manufacturer", "Manufacturer", "Manufacturer", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	_tmp0_ = g_strdup ("Product");
	_g_free0 (WIXL_WIX_ELEMENT_CLASS (klass)->name);
	WIXL_WIX_ELEMENT_CLASS (klass)->name = _tmp0_;
	_tmp1_ = WIXL_WIX_ELEMENT_CLASS (klass)->child_types;
	_tmp2_ = g_new0 (GType, 18);
	_tmp2_[0] = WIXL_TYPE_WIX_CONDITION;
	_tmp2_[1] = WIXL_TYPE_WIX_DIRECTORY;
	_tmp2_[2] = WIXL_TYPE_WIX_DIRECTORY_REF;
	_tmp2_[3] = WIXL_TYPE_WIX_FEATURE;
	_tmp2_[4] = WIXL_TYPE_WIX_ICON;
	_tmp2_[5] = WIXL_TYPE_WIX_INSTALL_EXECUTE_SEQUENCE;
	_tmp2_[6] = WIXL_TYPE_WIX_INSTALL_UI_SEQUENCE;
	_tmp2_[7] = WIXL_TYPE_WIX_ADMIN_EXECUTE_SEQUENCE;
	_tmp2_[8] = WIXL_TYPE_WIX_ADMIN_UI_SEQUENCE;
	_tmp2_[9] = WIXL_TYPE_WIX_ADVERTISE_EXECUTE_SEQUENCE;
	_tmp2_[10] = WIXL_TYPE_WIX_MEDIA;
	_tmp2_[11] = WIXL_TYPE_WIX_PACKAGE;
	_tmp2_[12] = WIXL_TYPE_WIX_PROPERTY;
	_tmp2_[13] = WIXL_TYPE_WIX_UPGRADE;
	_tmp2_[14] = WIXL_TYPE_WIX_CUSTOM_ACTION;
	_tmp2_[15] = WIXL_TYPE_WIX_BINARY;
	_tmp2_[16] = WIXL_TYPE_WIX_MAJOR_UPGRADE;
	_tmp2_[17] = WIXL_TYPE_WIX_MEDIA_TEMPLATE;
	_tmp3_ = _tmp2_;
	_tmp3__length1 = 18;
	wixl_wix_element_add_child_types (WIXL_WIX_ELEMENT_CLASS (klass), _tmp1_, _tmp3_, (gint) 18);
	_tmp3_ = (g_free (_tmp3_), NULL);
}

static void
wixl_wix_product_instance_init (WixlWixProduct * self,
                                gpointer klass)
{
	self->priv = wixl_wix_product_get_instance_private (self);
}

static void
wixl_wix_product_finalize (GObject * obj)
{
	WixlWixProduct * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, WIXL_TYPE_WIX_PRODUCT, WixlWixProduct);
	_g_free0 (self->priv->_Name);
	_g_free0 (self->priv->_UpgradeCode);
	_g_free0 (self->priv->_Language);
	_g_free0 (self->priv->_Codepage);
	_g_free0 (self->priv->_Version);
	_g_free0 (self->priv->_Manufacturer);
	G_OBJECT_CLASS (wixl_wix_product_parent_class)->finalize (obj);
}

GType
wixl_wix_product_get_type (void)
{
	static volatile gsize wixl_wix_product_type_id__volatile = 0;
	if (g_once_init_enter (&wixl_wix_product_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (WixlWixProductClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) wixl_wix_product_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (WixlWixProduct), 0, (GInstanceInitFunc) wixl_wix_product_instance_init, NULL };
		GType wixl_wix_product_type_id;
		wixl_wix_product_type_id = g_type_register_static (WIXL_TYPE_WIX_ELEMENT, "WixlWixProduct", &g_define_type_info, 0);
		WixlWixProduct_private_offset = g_type_add_instance_private (wixl_wix_product_type_id, sizeof (WixlWixProductPrivate));
		g_once_init_leave (&wixl_wix_product_type_id__volatile, wixl_wix_product_type_id);
	}
	return wixl_wix_product_type_id__volatile;
}

static void
_vala_wixl_wix_product_get_property (GObject * object,
                                     guint property_id,
                                     GValue * value,
                                     GParamSpec * pspec)
{
	WixlWixProduct * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, WIXL_TYPE_WIX_PRODUCT, WixlWixProduct);
	switch (property_id) {
		case WIXL_WIX_PRODUCT_NAME_PROPERTY:
		g_value_set_string (value, wixl_wix_product_get_Name (self));
		break;
		case WIXL_WIX_PRODUCT_UPGRADE_CODE_PROPERTY:
		g_value_set_string (value, wixl_wix_product_get_UpgradeCode (self));
		break;
		case WIXL_WIX_PRODUCT_LANGUAGE_PROPERTY:
		g_value_set_string (value, wixl_wix_product_get_Language (self));
		break;
		case WIXL_WIX_PRODUCT_CODEPAGE_PROPERTY:
		g_value_set_string (value, wixl_wix_product_get_Codepage (self));
		break;
		case WIXL_WIX_PRODUCT_VERSION_PROPERTY:
		g_value_set_string (value, wixl_wix_product_get_Version (self));
		break;
		case WIXL_WIX_PRODUCT_MANUFACTURER_PROPERTY:
		g_value_set_string (value, wixl_wix_product_get_Manufacturer (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static void
_vala_wixl_wix_product_set_property (GObject * object,
                                     guint property_id,
                                     const GValue * value,
                                     GParamSpec * pspec)
{
	WixlWixProduct * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, WIXL_TYPE_WIX_PRODUCT, WixlWixProduct);
	switch (property_id) {
		case WIXL_WIX_PRODUCT_NAME_PROPERTY:
		wixl_wix_product_set_Name (self, g_value_get_string (value));
		break;
		case WIXL_WIX_PRODUCT_UPGRADE_CODE_PROPERTY:
		wixl_wix_product_set_UpgradeCode (self, g_value_get_string (value));
		break;
		case WIXL_WIX_PRODUCT_LANGUAGE_PROPERTY:
		wixl_wix_product_set_Language (self, g_value_get_string (value));
		break;
		case WIXL_WIX_PRODUCT_CODEPAGE_PROPERTY:
		wixl_wix_product_set_Codepage (self, g_value_get_string (value));
		break;
		case WIXL_WIX_PRODUCT_VERSION_PROPERTY:
		wixl_wix_product_set_Version (self, g_value_get_string (value));
		break;
		case WIXL_WIX_PRODUCT_MANUFACTURER_PROPERTY:
		wixl_wix_product_set_Manufacturer (self, g_value_get_string (value));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static inline gpointer
wixl_wix_media_get_instance_private (WixlWixMedia* self)
{
	return G_STRUCT_MEMBER_P (self, WixlWixMedia_private_offset);
}

static void
wixl_wix_media_real_accept (WixlWixNode* base,
                            WixlWixNodeVisitor* visitor,
                            GError** error)
{
	WixlWixMedia * self;
	GError* _inner_error0_ = NULL;
	self = (WixlWixMedia*) base;
	g_return_if_fail (visitor != NULL);
	wixl_wix_node_visitor_visit_media (visitor, self, &_inner_error0_);
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
		g_propagate_error (error, _inner_error0_);
		return;
	}
}

WixlWixMedia*
wixl_wix_media_construct (GType object_type)
{
	WixlWixMedia * self = NULL;
	self = (WixlWixMedia*) wixl_wix_element_construct (object_type);
	return self;
}

WixlWixMedia*
wixl_wix_media_new (void)
{
	return wixl_wix_media_construct (WIXL_TYPE_WIX_MEDIA);
}

const gchar*
wixl_wix_media_get_Cabinet (WixlWixMedia* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Cabinet;
	result = _tmp0_;
	return result;
}

void
wixl_wix_media_set_Cabinet (WixlWixMedia* self,
                            const gchar* value)
{
	g_return_if_fail (self != NULL);
	if (g_strcmp0 (value, wixl_wix_media_get_Cabinet (self)) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_Cabinet);
		self->priv->_Cabinet = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, wixl_wix_media_properties[WIXL_WIX_MEDIA_CABINET_PROPERTY]);
	}
}

const gchar*
wixl_wix_media_get_EmbedCab (WixlWixMedia* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_EmbedCab;
	result = _tmp0_;
	return result;
}

void
wixl_wix_media_set_EmbedCab (WixlWixMedia* self,
                             const gchar* value)
{
	g_return_if_fail (self != NULL);
	if (g_strcmp0 (value, wixl_wix_media_get_EmbedCab (self)) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_EmbedCab);
		self->priv->_EmbedCab = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, wixl_wix_media_properties[WIXL_WIX_MEDIA_EMBED_CAB_PROPERTY]);
	}
}

const gchar*
wixl_wix_media_get_DiskPrompt (WixlWixMedia* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_DiskPrompt;
	result = _tmp0_;
	return result;
}

void
wixl_wix_media_set_DiskPrompt (WixlWixMedia* self,
                               const gchar* value)
{
	g_return_if_fail (self != NULL);
	if (g_strcmp0 (value, wixl_wix_media_get_DiskPrompt (self)) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_DiskPrompt);
		self->priv->_DiskPrompt = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, wixl_wix_media_properties[WIXL_WIX_MEDIA_DISK_PROMPT_PROPERTY]);
	}
}

static void
wixl_wix_media_class_init (WixlWixMediaClass * klass,
                           gpointer klass_data)
{
	gchar* _tmp0_;
	wixl_wix_media_parent_class = g_type_class_peek_parent (klass);
	g_type_class_adjust_private_offset (klass, &WixlWixMedia_private_offset);
	((WixlWixNodeClass *) klass)->accept = (void (*) (WixlWixNode*, WixlWixNodeVisitor*, GError**)) wixl_wix_media_real_accept;
	G_OBJECT_CLASS (klass)->get_property = _vala_wixl_wix_media_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_wixl_wix_media_set_property;
	G_OBJECT_CLASS (klass)->finalize = wixl_wix_media_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_MEDIA_CABINET_PROPERTY, wixl_wix_media_properties[WIXL_WIX_MEDIA_CABINET_PROPERTY] = g_param_spec_string ("Cabinet", "Cabinet", "Cabinet", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_MEDIA_EMBED_CAB_PROPERTY, wixl_wix_media_properties[WIXL_WIX_MEDIA_EMBED_CAB_PROPERTY] = g_param_spec_string ("EmbedCab", "EmbedCab", "EmbedCab", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_MEDIA_DISK_PROMPT_PROPERTY, wixl_wix_media_properties[WIXL_WIX_MEDIA_DISK_PROMPT_PROPERTY] = g_param_spec_string ("DiskPrompt", "DiskPrompt", "DiskPrompt", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	_tmp0_ = g_strdup ("Media");
	_g_free0 (WIXL_WIX_ELEMENT_CLASS (klass)->name);
	WIXL_WIX_ELEMENT_CLASS (klass)->name = _tmp0_;
}

static void
wixl_wix_media_instance_init (WixlWixMedia * self,
                              gpointer klass)
{
	self->priv = wixl_wix_media_get_instance_private (self);
}

static void
wixl_wix_media_finalize (GObject * obj)
{
	WixlWixMedia * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, WIXL_TYPE_WIX_MEDIA, WixlWixMedia);
	_g_free0 (self->priv->_Cabinet);
	_g_free0 (self->priv->_EmbedCab);
	_g_free0 (self->priv->_DiskPrompt);
	_g_object_unref0 (self->record);
	G_OBJECT_CLASS (wixl_wix_media_parent_class)->finalize (obj);
}

GType
wixl_wix_media_get_type (void)
{
	static volatile gsize wixl_wix_media_type_id__volatile = 0;
	if (g_once_init_enter (&wixl_wix_media_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (WixlWixMediaClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) wixl_wix_media_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (WixlWixMedia), 0, (GInstanceInitFunc) wixl_wix_media_instance_init, NULL };
		GType wixl_wix_media_type_id;
		wixl_wix_media_type_id = g_type_register_static (WIXL_TYPE_WIX_ELEMENT, "WixlWixMedia", &g_define_type_info, 0);
		WixlWixMedia_private_offset = g_type_add_instance_private (wixl_wix_media_type_id, sizeof (WixlWixMediaPrivate));
		g_once_init_leave (&wixl_wix_media_type_id__volatile, wixl_wix_media_type_id);
	}
	return wixl_wix_media_type_id__volatile;
}

static void
_vala_wixl_wix_media_get_property (GObject * object,
                                   guint property_id,
                                   GValue * value,
                                   GParamSpec * pspec)
{
	WixlWixMedia * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, WIXL_TYPE_WIX_MEDIA, WixlWixMedia);
	switch (property_id) {
		case WIXL_WIX_MEDIA_CABINET_PROPERTY:
		g_value_set_string (value, wixl_wix_media_get_Cabinet (self));
		break;
		case WIXL_WIX_MEDIA_EMBED_CAB_PROPERTY:
		g_value_set_string (value, wixl_wix_media_get_EmbedCab (self));
		break;
		case WIXL_WIX_MEDIA_DISK_PROMPT_PROPERTY:
		g_value_set_string (value, wixl_wix_media_get_DiskPrompt (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static void
_vala_wixl_wix_media_set_property (GObject * object,
                                   guint property_id,
                                   const GValue * value,
                                   GParamSpec * pspec)
{
	WixlWixMedia * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, WIXL_TYPE_WIX_MEDIA, WixlWixMedia);
	switch (property_id) {
		case WIXL_WIX_MEDIA_CABINET_PROPERTY:
		wixl_wix_media_set_Cabinet (self, g_value_get_string (value));
		break;
		case WIXL_WIX_MEDIA_EMBED_CAB_PROPERTY:
		wixl_wix_media_set_EmbedCab (self, g_value_get_string (value));
		break;
		case WIXL_WIX_MEDIA_DISK_PROMPT_PROPERTY:
		wixl_wix_media_set_DiskPrompt (self, g_value_get_string (value));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static inline gpointer
wixl_wix_registry_key_get_instance_private (WixlWixRegistryKey* self)
{
	return G_STRUCT_MEMBER_P (self, WixlWixRegistryKey_private_offset);
}

WixlWixRegistryKey*
wixl_wix_registry_key_construct (GType object_type)
{
	WixlWixRegistryKey * self = NULL;
	self = (WixlWixRegistryKey*) wixl_wix_element_construct (object_type);
	return self;
}

WixlWixRegistryKey*
wixl_wix_registry_key_new (void)
{
	return wixl_wix_registry_key_construct (WIXL_TYPE_WIX_REGISTRY_KEY);
}

const gchar*
wixl_wix_registry_key_get_Key (WixlWixRegistryKey* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Key;
	result = _tmp0_;
	return result;
}

void
wixl_wix_registry_key_set_Key (WixlWixRegistryKey* self,
                               const gchar* value)
{
	g_return_if_fail (self != NULL);
	if (g_strcmp0 (value, wixl_wix_registry_key_get_Key (self)) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_Key);
		self->priv->_Key = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, wixl_wix_registry_key_properties[WIXL_WIX_REGISTRY_KEY_KEY_PROPERTY]);
	}
}

const gchar*
wixl_wix_registry_key_get_Root (WixlWixRegistryKey* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Root;
	result = _tmp0_;
	return result;
}

void
wixl_wix_registry_key_set_Root (WixlWixRegistryKey* self,
                                const gchar* value)
{
	g_return_if_fail (self != NULL);
	if (g_strcmp0 (value, wixl_wix_registry_key_get_Root (self)) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_Root);
		self->priv->_Root = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, wixl_wix_registry_key_properties[WIXL_WIX_REGISTRY_KEY_ROOT_PROPERTY]);
	}
}

static void
wixl_wix_registry_key_class_init (WixlWixRegistryKeyClass * klass,
                                  gpointer klass_data)
{
	gchar* _tmp0_;
	GHashTable* _tmp1_;
	GType* _tmp2_;
	GType* _tmp3_;
	gint _tmp3__length1;
	wixl_wix_registry_key_parent_class = g_type_class_peek_parent (klass);
	g_type_class_adjust_private_offset (klass, &WixlWixRegistryKey_private_offset);
	G_OBJECT_CLASS (klass)->get_property = _vala_wixl_wix_registry_key_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_wixl_wix_registry_key_set_property;
	G_OBJECT_CLASS (klass)->finalize = wixl_wix_registry_key_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_REGISTRY_KEY_KEY_PROPERTY, wixl_wix_registry_key_properties[WIXL_WIX_REGISTRY_KEY_KEY_PROPERTY] = g_param_spec_string ("Key", "Key", "Key", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_REGISTRY_KEY_ROOT_PROPERTY, wixl_wix_registry_key_properties[WIXL_WIX_REGISTRY_KEY_ROOT_PROPERTY] = g_param_spec_string ("Root", "Root", "Root", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	_tmp0_ = g_strdup ("RegistryKey");
	_g_free0 (WIXL_WIX_ELEMENT_CLASS (klass)->name);
	WIXL_WIX_ELEMENT_CLASS (klass)->name = _tmp0_;
	_tmp1_ = WIXL_WIX_ELEMENT_CLASS (klass)->child_types;
	_tmp2_ = g_new0 (GType, 1);
	_tmp2_[0] = WIXL_TYPE_WIX_REGISTRY_VALUE;
	_tmp3_ = _tmp2_;
	_tmp3__length1 = 1;
	wixl_wix_element_add_child_types (WIXL_WIX_ELEMENT_CLASS (klass), _tmp1_, _tmp3_, (gint) 1);
	_tmp3_ = (g_free (_tmp3_), NULL);
}

static void
wixl_wix_registry_key_instance_init (WixlWixRegistryKey * self,
                                     gpointer klass)
{
	self->priv = wixl_wix_registry_key_get_instance_private (self);
}

static void
wixl_wix_registry_key_finalize (GObject * obj)
{
	WixlWixRegistryKey * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, WIXL_TYPE_WIX_REGISTRY_KEY, WixlWixRegistryKey);
	_g_free0 (self->priv->_Key);
	_g_free0 (self->priv->_Root);
	G_OBJECT_CLASS (wixl_wix_registry_key_parent_class)->finalize (obj);
}

GType
wixl_wix_registry_key_get_type (void)
{
	static volatile gsize wixl_wix_registry_key_type_id__volatile = 0;
	if (g_once_init_enter (&wixl_wix_registry_key_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (WixlWixRegistryKeyClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) wixl_wix_registry_key_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (WixlWixRegistryKey), 0, (GInstanceInitFunc) wixl_wix_registry_key_instance_init, NULL };
		GType wixl_wix_registry_key_type_id;
		wixl_wix_registry_key_type_id = g_type_register_static (WIXL_TYPE_WIX_ELEMENT, "WixlWixRegistryKey", &g_define_type_info, 0);
		WixlWixRegistryKey_private_offset = g_type_add_instance_private (wixl_wix_registry_key_type_id, sizeof (WixlWixRegistryKeyPrivate));
		g_once_init_leave (&wixl_wix_registry_key_type_id__volatile, wixl_wix_registry_key_type_id);
	}
	return wixl_wix_registry_key_type_id__volatile;
}

static void
_vala_wixl_wix_registry_key_get_property (GObject * object,
                                          guint property_id,
                                          GValue * value,
                                          GParamSpec * pspec)
{
	WixlWixRegistryKey * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, WIXL_TYPE_WIX_REGISTRY_KEY, WixlWixRegistryKey);
	switch (property_id) {
		case WIXL_WIX_REGISTRY_KEY_KEY_PROPERTY:
		g_value_set_string (value, wixl_wix_registry_key_get_Key (self));
		break;
		case WIXL_WIX_REGISTRY_KEY_ROOT_PROPERTY:
		g_value_set_string (value, wixl_wix_registry_key_get_Root (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static void
_vala_wixl_wix_registry_key_set_property (GObject * object,
                                          guint property_id,
                                          const GValue * value,
                                          GParamSpec * pspec)
{
	WixlWixRegistryKey * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, WIXL_TYPE_WIX_REGISTRY_KEY, WixlWixRegistryKey);
	switch (property_id) {
		case WIXL_WIX_REGISTRY_KEY_KEY_PROPERTY:
		wixl_wix_registry_key_set_Key (self, g_value_get_string (value));
		break;
		case WIXL_WIX_REGISTRY_KEY_ROOT_PROPERTY:
		wixl_wix_registry_key_set_Root (self, g_value_get_string (value));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static inline gpointer
wixl_wix_component_get_instance_private (WixlWixComponent* self)
{
	return G_STRUCT_MEMBER_P (self, WixlWixComponent_private_offset);
}

static void
wixl_wix_component_real_accept (WixlWixNode* base,
                                WixlWixNodeVisitor* visitor,
                                GError** error)
{
	WixlWixComponent * self;
	GError* _inner_error0_ = NULL;
	self = (WixlWixComponent*) base;
	g_return_if_fail (visitor != NULL);
	wixl_wix_node_visitor_visit_component (visitor, self, WIXL_VISIT_STATE_ENTER, &_inner_error0_);
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
		g_propagate_error (error, _inner_error0_);
		return;
	}
	WIXL_WIX_NODE_CLASS (wixl_wix_component_parent_class)->accept ((WixlWixNode*) G_TYPE_CHECK_INSTANCE_CAST (self, WIXL_TYPE_WIX_ELEMENT, WixlWixElement), visitor, &_inner_error0_);
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
		g_propagate_error (error, _inner_error0_);
		return;
	}
	wixl_wix_node_visitor_visit_component (visitor, self, WIXL_VISIT_STATE_LEAVE, &_inner_error0_);
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
		g_propagate_error (error, _inner_error0_);
		return;
	}
}

static gchar*
wixl_wix_component_real_full_path (WixlWixElement* base,
                                   WixlWixResolver* r,
                                   GError** error)
{
	WixlWixComponent * self;
	WixlWixKeyElement* _tmp0_;
	gchar* _tmp2_ = NULL;
	gchar* _tmp3_;
	gchar* _tmp4_ = NULL;
	WixlWixKeyElement* _tmp5_;
	gchar* _tmp6_;
	gchar* _tmp7_;
	gchar* _tmp8_;
	gchar* _tmp9_;
	gchar* _tmp10_;
	GError* _inner_error0_ = NULL;
	gchar* result = NULL;
	self = (WixlWixComponent*) base;
	g_return_val_if_fail (r != NULL, NULL);
	_tmp0_ = self->key;
	if (_tmp0_ == NULL) {
		GError* _tmp1_;
		_tmp1_ = g_error_new_literal (WIXL_ERROR, WIXL_ERROR_FAILED, "a child is needed to generate a component GUID");
		_inner_error0_ = _tmp1_;
		g_propagate_error (error, _inner_error0_);
		return NULL;
	}
	_tmp3_ = WIXL_WIX_ELEMENT_CLASS (wixl_wix_component_parent_class)->full_path (G_TYPE_CHECK_INSTANCE_CAST (self, WIXL_TYPE_WIX_ELEMENT, WixlWixElement), r, &_inner_error0_);
	_tmp2_ = _tmp3_;
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
		g_propagate_error (error, _inner_error0_);
		return NULL;
	}
	_tmp5_ = self->key;
	_tmp6_ = wixl_wix_key_element_path_name (_tmp5_, &_inner_error0_);
	_tmp4_ = _tmp6_;
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
		g_propagate_error (error, _inner_error0_);
		_g_free0 (_tmp2_);
		return NULL;
	}
	_tmp7_ = g_strconcat (_tmp2_, "/", NULL);
	_tmp8_ = _tmp7_;
	_tmp9_ = g_strconcat (_tmp8_, _tmp4_, NULL);
	_tmp10_ = _tmp9_;
	_g_free0 (_tmp8_);
	result = _tmp10_;
	_g_free0 (_tmp4_);
	_g_free0 (_tmp2_);
	return result;
}

WixlWixComponent*
wixl_wix_component_construct (GType object_type)
{
	WixlWixComponent * self = NULL;
	self = (WixlWixComponent*) wixl_wix_element_construct (object_type);
	return self;
}

WixlWixComponent*
wixl_wix_component_new (void)
{
	return wixl_wix_component_construct (WIXL_TYPE_WIX_COMPONENT);
}

const gchar*
wixl_wix_component_get_Guid (WixlWixComponent* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Guid;
	result = _tmp0_;
	return result;
}

void
wixl_wix_component_set_Guid (WixlWixComponent* self,
                             const gchar* value)
{
	g_return_if_fail (self != NULL);
	if (g_strcmp0 (value, wixl_wix_component_get_Guid (self)) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_Guid);
		self->priv->_Guid = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, wixl_wix_component_properties[WIXL_WIX_COMPONENT_GUID_PROPERTY]);
	}
}

const gchar*
wixl_wix_component_get_Win64 (WixlWixComponent* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Win64;
	result = _tmp0_;
	return result;
}

void
wixl_wix_component_set_Win64 (WixlWixComponent* self,
                              const gchar* value)
{
	g_return_if_fail (self != NULL);
	if (g_strcmp0 (value, wixl_wix_component_get_Win64 (self)) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_Win64);
		self->priv->_Win64 = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, wixl_wix_component_properties[WIXL_WIX_COMPONENT_WIN64_PROPERTY]);
	}
}

static void
wixl_wix_component_class_init (WixlWixComponentClass * klass,
                               gpointer klass_data)
{
	gchar* _tmp0_;
	GHashTable* _tmp1_;
	GType* _tmp2_;
	GType* _tmp3_;
	gint _tmp3__length1;
	wixl_wix_component_parent_class = g_type_class_peek_parent (klass);
	g_type_class_adjust_private_offset (klass, &WixlWixComponent_private_offset);
	((WixlWixNodeClass *) klass)->accept = (void (*) (WixlWixNode*, WixlWixNodeVisitor*, GError**)) wixl_wix_component_real_accept;
	((WixlWixElementClass *) klass)->full_path = (gchar* (*) (WixlWixElement*, WixlWixResolver*, GError**)) wixl_wix_component_real_full_path;
	G_OBJECT_CLASS (klass)->get_property = _vala_wixl_wix_component_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_wixl_wix_component_set_property;
	G_OBJECT_CLASS (klass)->finalize = wixl_wix_component_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_COMPONENT_GUID_PROPERTY, wixl_wix_component_properties[WIXL_WIX_COMPONENT_GUID_PROPERTY] = g_param_spec_string ("Guid", "Guid", "Guid", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_COMPONENT_WIN64_PROPERTY, wixl_wix_component_properties[WIXL_WIX_COMPONENT_WIN64_PROPERTY] = g_param_spec_string ("Win64", "Win64", "Win64", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	_tmp0_ = g_strdup ("Component");
	_g_free0 (WIXL_WIX_ELEMENT_CLASS (klass)->name);
	WIXL_WIX_ELEMENT_CLASS (klass)->name = _tmp0_;
	_tmp1_ = WIXL_WIX_ELEMENT_CLASS (klass)->child_types;
	_tmp2_ = g_new0 (GType, 9);
	_tmp2_[0] = WIXL_TYPE_WIX_CREATE_FOLDER;
	_tmp2_[1] = WIXL_TYPE_WIX_REMOVE_FOLDER;
	_tmp2_[2] = WIXL_TYPE_WIX_REGISTRY_VALUE;
	_tmp2_[3] = WIXL_TYPE_WIX_FILE;
	_tmp2_[4] = WIXL_TYPE_WIX_SHORTCUT;
	_tmp2_[5] = WIXL_TYPE_WIX_PROG_ID;
	_tmp2_[6] = WIXL_TYPE_WIX_REGISTRY_KEY;
	_tmp2_[7] = WIXL_TYPE_WIX_SERVICE_CONTROL;
	_tmp2_[8] = WIXL_TYPE_WIX_SERVICE_INSTALL;
	_tmp3_ = _tmp2_;
	_tmp3__length1 = 9;
	wixl_wix_element_add_child_types (WIXL_WIX_ELEMENT_CLASS (klass), _tmp1_, _tmp3_, (gint) 9);
	_tmp3_ = (g_free (_tmp3_), NULL);
}

static void
wixl_wix_component_instance_init (WixlWixComponent * self,
                                  gpointer klass)
{
	self->priv = wixl_wix_component_get_instance_private (self);
}

static void
wixl_wix_component_finalize (GObject * obj)
{
	WixlWixComponent * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, WIXL_TYPE_WIX_COMPONENT, WixlWixComponent);
	_g_free0 (self->priv->_Guid);
	_g_free0 (self->priv->_Win64);
	_g_object_unref0 (self->key);
	(self->in_feature == NULL) ? NULL : (self->in_feature = (_g_list_free__g_object_unref0_ (self->in_feature), NULL));
	G_OBJECT_CLASS (wixl_wix_component_parent_class)->finalize (obj);
}

GType
wixl_wix_component_get_type (void)
{
	static volatile gsize wixl_wix_component_type_id__volatile = 0;
	if (g_once_init_enter (&wixl_wix_component_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (WixlWixComponentClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) wixl_wix_component_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (WixlWixComponent), 0, (GInstanceInitFunc) wixl_wix_component_instance_init, NULL };
		GType wixl_wix_component_type_id;
		wixl_wix_component_type_id = g_type_register_static (WIXL_TYPE_WIX_ELEMENT, "WixlWixComponent", &g_define_type_info, 0);
		WixlWixComponent_private_offset = g_type_add_instance_private (wixl_wix_component_type_id, sizeof (WixlWixComponentPrivate));
		g_once_init_leave (&wixl_wix_component_type_id__volatile, wixl_wix_component_type_id);
	}
	return wixl_wix_component_type_id__volatile;
}

static void
_vala_wixl_wix_component_get_property (GObject * object,
                                       guint property_id,
                                       GValue * value,
                                       GParamSpec * pspec)
{
	WixlWixComponent * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, WIXL_TYPE_WIX_COMPONENT, WixlWixComponent);
	switch (property_id) {
		case WIXL_WIX_COMPONENT_GUID_PROPERTY:
		g_value_set_string (value, wixl_wix_component_get_Guid (self));
		break;
		case WIXL_WIX_COMPONENT_WIN64_PROPERTY:
		g_value_set_string (value, wixl_wix_component_get_Win64 (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static void
_vala_wixl_wix_component_set_property (GObject * object,
                                       guint property_id,
                                       const GValue * value,
                                       GParamSpec * pspec)
{
	WixlWixComponent * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, WIXL_TYPE_WIX_COMPONENT, WixlWixComponent);
	switch (property_id) {
		case WIXL_WIX_COMPONENT_GUID_PROPERTY:
		wixl_wix_component_set_Guid (self, g_value_get_string (value));
		break;
		case WIXL_WIX_COMPONENT_WIN64_PROPERTY:
		wixl_wix_component_set_Win64 (self, g_value_get_string (value));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static inline gpointer
wixl_wix_directory_get_instance_private (WixlWixDirectory* self)
{
	return G_STRUCT_MEMBER_P (self, WixlWixDirectory_private_offset);
}

static void
wixl_wix_directory_real_accept (WixlWixNode* base,
                                WixlWixNodeVisitor* visitor,
                                GError** error)
{
	WixlWixDirectory * self;
	GError* _inner_error0_ = NULL;
	self = (WixlWixDirectory*) base;
	g_return_if_fail (visitor != NULL);
	WIXL_WIX_NODE_CLASS (wixl_wix_directory_parent_class)->accept ((WixlWixNode*) G_TYPE_CHECK_INSTANCE_CAST (self, WIXL_TYPE_WIX_ELEMENT, WixlWixElement), visitor, &_inner_error0_);
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
		g_propagate_error (error, _inner_error0_);
		return;
	}
	wixl_wix_node_visitor_visit_directory (visitor, self, &_inner_error0_);
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
		g_propagate_error (error, _inner_error0_);
		return;
	}
}

gchar*
wixl_wix_directory_path_name (WixlWixDirectory* self)
{
	const gchar* _tmp0_ = NULL;
	const gchar* _tmp1_;
	gchar* _tmp4_;
	gchar* result = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp1_ = self->priv->_Name;
	_tmp0_ = _tmp1_;
	if (_tmp0_ == NULL) {
		const gchar* _tmp2_;
		const gchar* _tmp3_;
		_tmp2_ = wixl_wix_element_get_Id ((WixlWixElement*) self);
		_tmp3_ = _tmp2_;
		_tmp0_ = _tmp3_;
	}
	_tmp4_ = g_strdup (_tmp0_);
	result = _tmp4_;
	return result;
}

static gchar*
wixl_wix_directory_real_full_path (WixlWixElement* base,
                                   WixlWixResolver* r,
                                   GError** error)
{
	WixlWixDirectory * self;
	gboolean _tmp0_ = FALSE;
	WixlWixElement* _tmp1_;
	GError* _inner_error0_ = NULL;
	gchar* result = NULL;
	self = (WixlWixDirectory*) base;
	g_return_val_if_fail (r != NULL, NULL);
	_tmp1_ = ((WixlWixNode*) self)->parent;
	if (_tmp1_ != NULL) {
		gboolean _tmp2_ = FALSE;
		WixlWixElement* _tmp3_;
		_tmp3_ = ((WixlWixNode*) self)->parent;
		if (WIXL_IS_WIX_DIRECTORY (_tmp3_)) {
			_tmp2_ = TRUE;
		} else {
			WixlWixElement* _tmp4_;
			_tmp4_ = ((WixlWixNode*) self)->parent;
			_tmp2_ = WIXL_IS_WIX_DIRECTORY_REF (_tmp4_);
		}
		_tmp0_ = _tmp2_;
	} else {
		_tmp0_ = FALSE;
	}
	if (_tmp0_) {
		gchar* _tmp5_ = NULL;
		WixlWixElement* _tmp6_;
		gchar* _tmp7_;
		gchar* _tmp8_;
		gchar* _tmp9_;
		gchar* _tmp10_;
		gchar* _tmp11_;
		gchar* _tmp12_;
		gchar* _tmp13_;
		_tmp6_ = ((WixlWixNode*) self)->parent;
		_tmp7_ = wixl_wix_element_full_path (_tmp6_, r, &_inner_error0_);
		_tmp5_ = _tmp7_;
		if (G_UNLIKELY (_inner_error0_ != NULL)) {
			g_propagate_error (error, _inner_error0_);
			return NULL;
		}
		_tmp8_ = g_strconcat (_tmp5_, "/", NULL);
		_tmp9_ = _tmp8_;
		_tmp10_ = wixl_wix_directory_path_name (self);
		_tmp11_ = _tmp10_;
		_tmp12_ = g_strconcat (_tmp9_, _tmp11_, NULL);
		_tmp13_ = _tmp12_;
		_g_free0 (_tmp11_);
		_g_free0 (_tmp9_);
		result = _tmp13_;
		_g_free0 (_tmp5_);
		return result;
	} else {
		gchar* _tmp14_;
		_tmp14_ = wixl_wix_directory_path_name (self);
		result = _tmp14_;
		return result;
	}
}

WixlWixDirectory*
wixl_wix_directory_construct (GType object_type)
{
	WixlWixDirectory * self = NULL;
	self = (WixlWixDirectory*) wixl_wix_element_construct (object_type);
	return self;
}

WixlWixDirectory*
wixl_wix_directory_new (void)
{
	return wixl_wix_directory_construct (WIXL_TYPE_WIX_DIRECTORY);
}

const gchar*
wixl_wix_directory_get_Name (WixlWixDirectory* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Name;
	result = _tmp0_;
	return result;
}

void
wixl_wix_directory_set_Name (WixlWixDirectory* self,
                             const gchar* value)
{
	g_return_if_fail (self != NULL);
	if (g_strcmp0 (value, wixl_wix_directory_get_Name (self)) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_Name);
		self->priv->_Name = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, wixl_wix_directory_properties[WIXL_WIX_DIRECTORY_NAME_PROPERTY]);
	}
}

static void
wixl_wix_directory_class_init (WixlWixDirectoryClass * klass,
                               gpointer klass_data)
{
	gchar* _tmp0_;
	GHashTable* _tmp1_;
	GType* _tmp2_;
	GType* _tmp3_;
	gint _tmp3__length1;
	wixl_wix_directory_parent_class = g_type_class_peek_parent (klass);
	g_type_class_adjust_private_offset (klass, &WixlWixDirectory_private_offset);
	((WixlWixNodeClass *) klass)->accept = (void (*) (WixlWixNode*, WixlWixNodeVisitor*, GError**)) wixl_wix_directory_real_accept;
	((WixlWixElementClass *) klass)->full_path = (gchar* (*) (WixlWixElement*, WixlWixResolver*, GError**)) wixl_wix_directory_real_full_path;
	G_OBJECT_CLASS (klass)->get_property = _vala_wixl_wix_directory_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_wixl_wix_directory_set_property;
	G_OBJECT_CLASS (klass)->finalize = wixl_wix_directory_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_DIRECTORY_NAME_PROPERTY, wixl_wix_directory_properties[WIXL_WIX_DIRECTORY_NAME_PROPERTY] = g_param_spec_string ("Name", "Name", "Name", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	_tmp0_ = g_strdup ("Directory");
	_g_free0 (WIXL_WIX_ELEMENT_CLASS (klass)->name);
	WIXL_WIX_ELEMENT_CLASS (klass)->name = _tmp0_;
	_tmp1_ = WIXL_WIX_ELEMENT_CLASS (klass)->child_types;
	_tmp2_ = g_new0 (GType, 2);
	_tmp2_[0] = WIXL_TYPE_WIX_DIRECTORY;
	_tmp2_[1] = WIXL_TYPE_WIX_COMPONENT;
	_tmp3_ = _tmp2_;
	_tmp3__length1 = 2;
	wixl_wix_element_add_child_types (WIXL_WIX_ELEMENT_CLASS (klass), _tmp1_, _tmp3_, (gint) 2);
	_tmp3_ = (g_free (_tmp3_), NULL);
}

static void
wixl_wix_directory_instance_init (WixlWixDirectory * self,
                                  gpointer klass)
{
	self->priv = wixl_wix_directory_get_instance_private (self);
}

static void
wixl_wix_directory_finalize (GObject * obj)
{
	WixlWixDirectory * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, WIXL_TYPE_WIX_DIRECTORY, WixlWixDirectory);
	_g_free0 (self->priv->_Name);
	G_OBJECT_CLASS (wixl_wix_directory_parent_class)->finalize (obj);
}

GType
wixl_wix_directory_get_type (void)
{
	static volatile gsize wixl_wix_directory_type_id__volatile = 0;
	if (g_once_init_enter (&wixl_wix_directory_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (WixlWixDirectoryClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) wixl_wix_directory_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (WixlWixDirectory), 0, (GInstanceInitFunc) wixl_wix_directory_instance_init, NULL };
		GType wixl_wix_directory_type_id;
		wixl_wix_directory_type_id = g_type_register_static (WIXL_TYPE_WIX_ELEMENT, "WixlWixDirectory", &g_define_type_info, 0);
		WixlWixDirectory_private_offset = g_type_add_instance_private (wixl_wix_directory_type_id, sizeof (WixlWixDirectoryPrivate));
		g_once_init_leave (&wixl_wix_directory_type_id__volatile, wixl_wix_directory_type_id);
	}
	return wixl_wix_directory_type_id__volatile;
}

static void
_vala_wixl_wix_directory_get_property (GObject * object,
                                       guint property_id,
                                       GValue * value,
                                       GParamSpec * pspec)
{
	WixlWixDirectory * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, WIXL_TYPE_WIX_DIRECTORY, WixlWixDirectory);
	switch (property_id) {
		case WIXL_WIX_DIRECTORY_NAME_PROPERTY:
		g_value_set_string (value, wixl_wix_directory_get_Name (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static void
_vala_wixl_wix_directory_set_property (GObject * object,
                                       guint property_id,
                                       const GValue * value,
                                       GParamSpec * pspec)
{
	WixlWixDirectory * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, WIXL_TYPE_WIX_DIRECTORY, WixlWixDirectory);
	switch (property_id) {
		case WIXL_WIX_DIRECTORY_NAME_PROPERTY:
		wixl_wix_directory_set_Name (self, g_value_get_string (value));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static inline gpointer
wixl_wix_element_ref_get_instance_private (WixlWixElementRef* self)
{
	return G_STRUCT_MEMBER_P (self, WixlWixElementRef_private_offset);
}

static gchar*
wixl_wix_element_ref_real_full_path (WixlWixElement* base,
                                     WixlWixResolver* r,
                                     GError** error)
{
	WixlWixElementRef * self;
	gpointer _tmp0_ = NULL;
	gpointer _tmp1_;
	gchar* _tmp2_ = NULL;
	gchar* _tmp3_;
	gchar* _tmp4_;
	GError* _inner_error0_ = NULL;
	gchar* result = NULL;
	self = (WixlWixElementRef*) base;
	g_return_val_if_fail (r != NULL, NULL);
	_tmp1_ = wixl_wix_resolver_resolve (r, self->priv->g_type, (GBoxedCopyFunc) self->priv->g_dup_func, (GDestroyNotify) self->priv->g_destroy_func, (WixlWixElement*) self, &_inner_error0_);
	_tmp0_ = _tmp1_;
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
		g_propagate_error (error, _inner_error0_);
		return NULL;
	}
	_tmp3_ = wixl_wix_element_full_path (WIXL_IS_WIX_ELEMENT (_tmp0_) ? ((WixlWixElement*) _tmp0_) : NULL, r, &_inner_error0_);
	_tmp2_ = _tmp3_;
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
		g_propagate_error (error, _inner_error0_);
		((_tmp0_ == NULL) || (self->priv->g_destroy_func == NULL)) ? NULL : (_tmp0_ = (self->priv->g_destroy_func (_tmp0_), NULL));
		return NULL;
	}
	_tmp4_ = _tmp2_;
	_tmp2_ = NULL;
	result = _tmp4_;
	_g_free0 (_tmp2_);
	((_tmp0_ == NULL) || (self->priv->g_destroy_func == NULL)) ? NULL : (_tmp0_ = (self->priv->g_destroy_func (_tmp0_), NULL));
	return result;
}

WixlWixElementRef*
wixl_wix_element_ref_construct (GType object_type,
                                GType g_type,
                                GBoxedCopyFunc g_dup_func,
                                GDestroyNotify g_destroy_func)
{
	WixlWixElementRef * self = NULL;
	self = (WixlWixElementRef*) wixl_wix_element_construct (object_type);
	self->priv->g_type = g_type;
	self->priv->g_dup_func = g_dup_func;
	self->priv->g_destroy_func = g_destroy_func;
	return self;
}

WixlWixElementRef*
wixl_wix_element_ref_new (GType g_type,
                          GBoxedCopyFunc g_dup_func,
                          GDestroyNotify g_destroy_func)
{
	return wixl_wix_element_ref_construct (WIXL_TYPE_WIX_ELEMENT_REF, g_type, g_dup_func, g_destroy_func);
}

static void
wixl_wix_element_ref_class_init (WixlWixElementRefClass * klass,
                                 gpointer klass_data)
{
	wixl_wix_element_ref_parent_class = g_type_class_peek_parent (klass);
	g_type_class_adjust_private_offset (klass, &WixlWixElementRef_private_offset);
	((WixlWixElementClass *) klass)->full_path = (gchar* (*) (WixlWixElement*, WixlWixResolver*, GError**)) wixl_wix_element_ref_real_full_path;
	G_OBJECT_CLASS (klass)->get_property = _vala_wixl_wix_element_ref_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_wixl_wix_element_ref_set_property;
	G_OBJECT_CLASS (klass)->finalize = wixl_wix_element_ref_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_ELEMENT_REF_G_TYPE, g_param_spec_gtype ("g-type", "type", "type", G_TYPE_NONE, G_PARAM_STATIC_STRINGS | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_ELEMENT_REF_G_DUP_FUNC, g_param_spec_pointer ("g-dup-func", "dup func", "dup func", G_PARAM_STATIC_STRINGS | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_ELEMENT_REF_G_DESTROY_FUNC, g_param_spec_pointer ("g-destroy-func", "destroy func", "destroy func", G_PARAM_STATIC_STRINGS | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
}

static void
wixl_wix_element_ref_instance_init (WixlWixElementRef * self,
                                    gpointer klass)
{
	self->priv = wixl_wix_element_ref_get_instance_private (self);
}

static void
wixl_wix_element_ref_finalize (GObject * obj)
{
	WixlWixElementRef * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, WIXL_TYPE_WIX_ELEMENT_REF, WixlWixElementRef);
	((self->resolved == NULL) || (self->priv->g_destroy_func == NULL)) ? NULL : (self->resolved = (self->priv->g_destroy_func (self->resolved), NULL));
	G_OBJECT_CLASS (wixl_wix_element_ref_parent_class)->finalize (obj);
}

GType
wixl_wix_element_ref_get_type (void)
{
	static volatile gsize wixl_wix_element_ref_type_id__volatile = 0;
	if (g_once_init_enter (&wixl_wix_element_ref_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (WixlWixElementRefClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) wixl_wix_element_ref_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (WixlWixElementRef), 0, (GInstanceInitFunc) wixl_wix_element_ref_instance_init, NULL };
		GType wixl_wix_element_ref_type_id;
		wixl_wix_element_ref_type_id = g_type_register_static (WIXL_TYPE_WIX_ELEMENT, "WixlWixElementRef", &g_define_type_info, 0);
		WixlWixElementRef_private_offset = g_type_add_instance_private (wixl_wix_element_ref_type_id, sizeof (WixlWixElementRefPrivate));
		g_once_init_leave (&wixl_wix_element_ref_type_id__volatile, wixl_wix_element_ref_type_id);
	}
	return wixl_wix_element_ref_type_id__volatile;
}

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

static void
_vala_wixl_wix_element_ref_set_property (GObject * object,
                                         guint property_id,
                                         const GValue * value,
                                         GParamSpec * pspec)
{
	WixlWixElementRef * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, WIXL_TYPE_WIX_ELEMENT_REF, WixlWixElementRef);
	switch (property_id) {
		case WIXL_WIX_ELEMENT_REF_G_TYPE:
		self->priv->g_type = g_value_get_gtype (value);
		break;
		case WIXL_WIX_ELEMENT_REF_G_DUP_FUNC:
		self->priv->g_dup_func = g_value_get_pointer (value);
		break;
		case WIXL_WIX_ELEMENT_REF_G_DESTROY_FUNC:
		self->priv->g_destroy_func = g_value_get_pointer (value);
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static gchar*
wixl_wix_directory_ref_real_full_path (WixlWixElement* base,
                                       WixlWixResolver* r,
                                       GError** error)
{
	WixlWixDirectoryRef * self;
	WixlWixDirectory* _tmp0_ = NULL;
	gpointer _tmp1_;
	gchar* _tmp2_ = NULL;
	gchar* _tmp3_;
	gchar* _tmp4_;
	GError* _inner_error0_ = NULL;
	gchar* result = NULL;
	self = (WixlWixDirectoryRef*) base;
	g_return_val_if_fail (r != NULL, NULL);
	_tmp1_ = wixl_wix_resolver_resolve (r, WIXL_TYPE_WIX_DIRECTORY, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, (WixlWixElement*) self, &_inner_error0_);
	_tmp0_ = (WixlWixDirectory*) _tmp1_;
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
		g_propagate_error (error, _inner_error0_);
		return NULL;
	}
	_tmp3_ = wixl_wix_element_full_path (WIXL_IS_WIX_ELEMENT (_tmp0_) ? ((WixlWixElement*) _tmp0_) : NULL, r, &_inner_error0_);
	_tmp2_ = _tmp3_;
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
		g_propagate_error (error, _inner_error0_);
		_g_object_unref0 (_tmp0_);
		return NULL;
	}
	_tmp4_ = _tmp2_;
	_tmp2_ = NULL;
	result = _tmp4_;
	_g_free0 (_tmp2_);
	_g_object_unref0 (_tmp0_);
	return result;
}

WixlWixDirectoryRef*
wixl_wix_directory_ref_construct (GType object_type)
{
	WixlWixDirectoryRef * self = NULL;
	self = (WixlWixDirectoryRef*) wixl_wix_element_ref_construct (object_type, WIXL_TYPE_WIX_DIRECTORY, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref);
	return self;
}

WixlWixDirectoryRef*
wixl_wix_directory_ref_new (void)
{
	return wixl_wix_directory_ref_construct (WIXL_TYPE_WIX_DIRECTORY_REF);
}

static void
wixl_wix_directory_ref_class_init (WixlWixDirectoryRefClass * klass,
                                   gpointer klass_data)
{
	gchar* _tmp0_;
	GHashTable* _tmp1_;
	GType* _tmp2_;
	GType* _tmp3_;
	gint _tmp3__length1;
	wixl_wix_directory_ref_parent_class = g_type_class_peek_parent (klass);
	((WixlWixElementClass *) klass)->full_path = (gchar* (*) (WixlWixElement*, WixlWixResolver*, GError**)) wixl_wix_directory_ref_real_full_path;
	_tmp0_ = g_strdup ("DirectoryRef");
	_g_free0 (WIXL_WIX_ELEMENT_CLASS (klass)->name);
	WIXL_WIX_ELEMENT_CLASS (klass)->name = _tmp0_;
	WIXL_WIX_ELEMENT_REF_CLASS (klass)->ref_type = WIXL_TYPE_WIX_DIRECTORY;
	_tmp1_ = WIXL_WIX_ELEMENT_CLASS (klass)->child_types;
	_tmp2_ = g_new0 (GType, 2);
	_tmp2_[0] = WIXL_TYPE_WIX_DIRECTORY;
	_tmp2_[1] = WIXL_TYPE_WIX_COMPONENT;
	_tmp3_ = _tmp2_;
	_tmp3__length1 = 2;
	wixl_wix_element_add_child_types (WIXL_WIX_ELEMENT_CLASS (klass), _tmp1_, _tmp3_, (gint) 2);
	_tmp3_ = (g_free (_tmp3_), NULL);
}

static void
wixl_wix_directory_ref_instance_init (WixlWixDirectoryRef * self,
                                      gpointer klass)
{
}

GType
wixl_wix_directory_ref_get_type (void)
{
	static volatile gsize wixl_wix_directory_ref_type_id__volatile = 0;
	if (g_once_init_enter (&wixl_wix_directory_ref_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (WixlWixDirectoryRefClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) wixl_wix_directory_ref_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (WixlWixDirectoryRef), 0, (GInstanceInitFunc) wixl_wix_directory_ref_instance_init, NULL };
		GType wixl_wix_directory_ref_type_id;
		wixl_wix_directory_ref_type_id = g_type_register_static (WIXL_TYPE_WIX_ELEMENT_REF, "WixlWixDirectoryRef", &g_define_type_info, 0);
		g_once_init_leave (&wixl_wix_directory_ref_type_id__volatile, wixl_wix_directory_ref_type_id);
	}
	return wixl_wix_directory_ref_type_id__volatile;
}

WixlWixRoot*
wixl_wix_root_construct (GType object_type)
{
	WixlWixRoot * self = NULL;
	self = (WixlWixRoot*) wixl_wix_element_construct (object_type);
	return self;
}

WixlWixRoot*
wixl_wix_root_new (void)
{
	return wixl_wix_root_construct (WIXL_TYPE_WIX_ROOT);
}

static void
wixl_wix_root_class_init (WixlWixRootClass * klass,
                          gpointer klass_data)
{
	gchar* _tmp0_;
	GHashTable* _tmp1_;
	GType* _tmp2_;
	GType* _tmp3_;
	gint _tmp3__length1;
	wixl_wix_root_parent_class = g_type_class_peek_parent (klass);
	_tmp0_ = g_strdup ("Wix");
	_g_free0 (WIXL_WIX_ELEMENT_CLASS (klass)->name);
	WIXL_WIX_ELEMENT_CLASS (klass)->name = _tmp0_;
	_tmp1_ = WIXL_WIX_ELEMENT_CLASS (klass)->child_types;
	_tmp2_ = g_new0 (GType, 2);
	_tmp2_[0] = WIXL_TYPE_WIX_PRODUCT;
	_tmp2_[1] = WIXL_TYPE_WIX_FRAGMENT;
	_tmp3_ = _tmp2_;
	_tmp3__length1 = 2;
	wixl_wix_element_add_child_types (WIXL_WIX_ELEMENT_CLASS (klass), _tmp1_, _tmp3_, (gint) 2);
	_tmp3_ = (g_free (_tmp3_), NULL);
}

static void
wixl_wix_root_instance_init (WixlWixRoot * self,
                             gpointer klass)
{
}

GType
wixl_wix_root_get_type (void)
{
	static volatile gsize wixl_wix_root_type_id__volatile = 0;
	if (g_once_init_enter (&wixl_wix_root_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (WixlWixRootClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) wixl_wix_root_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (WixlWixRoot), 0, (GInstanceInitFunc) wixl_wix_root_instance_init, NULL };
		GType wixl_wix_root_type_id;
		wixl_wix_root_type_id = g_type_register_static (WIXL_TYPE_WIX_ELEMENT, "WixlWixRoot", &g_define_type_info, 0);
		g_once_init_leave (&wixl_wix_root_type_id__volatile, wixl_wix_root_type_id);
	}
	return wixl_wix_root_type_id__volatile;
}

static void
_vala_array_destroy (gpointer array,
                     gint array_length,
                     GDestroyNotify destroy_func)
{
	if ((array != NULL) && (destroy_func != NULL)) {
		int i;
		for (i = 0; i < array_length; i = i + 1) {
			if (((gpointer*) array)[i] != NULL) {
				destroy_func (((gpointer*) array)[i]);
			}
		}
	}
}

static void
_vala_array_free (gpointer array,
                  gint array_length,
                  GDestroyNotify destroy_func)
{
	_vala_array_destroy (array, array_length, destroy_func);
	g_free (array);
}

