#include <hxcpp.h>

#ifndef INCLUDED_snow_types_FileEventType
#include <snow/types/FileEventType.h>
#endif
#ifndef INCLUDED_snow_types_FileEvents
#include <snow/types/FileEvents.h>
#endif
namespace snow{
namespace types{

Void FileEvents_obj::__construct()
{
	return null();
}

//FileEvents_obj::~FileEvents_obj() { }

Dynamic FileEvents_obj::__CreateEmpty() { return  new FileEvents_obj; }
hx::ObjectPtr< FileEvents_obj > FileEvents_obj::__new()
{  hx::ObjectPtr< FileEvents_obj > result = new FileEvents_obj();
	result->__construct();
	return result;}

Dynamic FileEvents_obj::__Create(hx::DynamicArray inArgs)
{  hx::ObjectPtr< FileEvents_obj > result = new FileEvents_obj();
	result->__construct();
	return result;}

int FileEvents_obj::fe_unknown;

int FileEvents_obj::fe_modify;

int FileEvents_obj::fe_remove;

int FileEvents_obj::fe_create;

int FileEvents_obj::fe_drop;

::snow::types::FileEventType FileEvents_obj::typed( int type){
	HX_STACK_FRAME("snow.types.FileEvents","typed",0xcbdec631,"snow.types.FileEvents.typed","snow/types/Types.hx",660,0x72b41ce7)
	HX_STACK_ARG(type,"type")
	HX_STACK_LINE(662)
	if (((type == ::snow::types::FileEvents_obj::fe_unknown))){
		HX_STACK_LINE(662)
		return ::snow::types::FileEventType_obj::unknown;
	}
	HX_STACK_LINE(663)
	if (((type == ::snow::types::FileEvents_obj::fe_modify))){
		HX_STACK_LINE(663)
		return ::snow::types::FileEventType_obj::modify;
	}
	HX_STACK_LINE(664)
	if (((type == ::snow::types::FileEvents_obj::fe_remove))){
		HX_STACK_LINE(664)
		return ::snow::types::FileEventType_obj::remove;
	}
	HX_STACK_LINE(665)
	if (((type == ::snow::types::FileEvents_obj::fe_create))){
		HX_STACK_LINE(665)
		return ::snow::types::FileEventType_obj::create;
	}
	HX_STACK_LINE(666)
	if (((type == ::snow::types::FileEvents_obj::fe_drop))){
		HX_STACK_LINE(666)
		return ::snow::types::FileEventType_obj::drop;
	}
	HX_STACK_LINE(668)
	return ::snow::types::FileEventType_obj::unknown;
}


STATIC_HX_DEFINE_DYNAMIC_FUNC1(FileEvents_obj,typed,return )


FileEvents_obj::FileEvents_obj()
{
}

Dynamic FileEvents_obj::__Field(const ::String &inName,bool inCallProp)
{
	switch(inName.length) {
	case 5:
		if (HX_FIELD_EQ(inName,"typed") ) { return typed_dyn(); }
		break;
	case 7:
		if (HX_FIELD_EQ(inName,"fe_drop") ) { return fe_drop; }
		break;
	case 9:
		if (HX_FIELD_EQ(inName,"fe_modify") ) { return fe_modify; }
		if (HX_FIELD_EQ(inName,"fe_remove") ) { return fe_remove; }
		if (HX_FIELD_EQ(inName,"fe_create") ) { return fe_create; }
		break;
	case 10:
		if (HX_FIELD_EQ(inName,"fe_unknown") ) { return fe_unknown; }
	}
	return super::__Field(inName,inCallProp);
}

Dynamic FileEvents_obj::__SetField(const ::String &inName,const Dynamic &inValue,bool inCallProp)
{
	switch(inName.length) {
	case 7:
		if (HX_FIELD_EQ(inName,"fe_drop") ) { fe_drop=inValue.Cast< int >(); return inValue; }
		break;
	case 9:
		if (HX_FIELD_EQ(inName,"fe_modify") ) { fe_modify=inValue.Cast< int >(); return inValue; }
		if (HX_FIELD_EQ(inName,"fe_remove") ) { fe_remove=inValue.Cast< int >(); return inValue; }
		if (HX_FIELD_EQ(inName,"fe_create") ) { fe_create=inValue.Cast< int >(); return inValue; }
		break;
	case 10:
		if (HX_FIELD_EQ(inName,"fe_unknown") ) { fe_unknown=inValue.Cast< int >(); return inValue; }
	}
	return super::__SetField(inName,inValue,inCallProp);
}

void FileEvents_obj::__GetFields(Array< ::String> &outFields)
{
	super::__GetFields(outFields);
};

static ::String sStaticFields[] = {
	HX_CSTRING("fe_unknown"),
	HX_CSTRING("fe_modify"),
	HX_CSTRING("fe_remove"),
	HX_CSTRING("fe_create"),
	HX_CSTRING("fe_drop"),
	HX_CSTRING("typed"),
	String(null()) };

#if HXCPP_SCRIPTABLE
static hx::StorageInfo *sMemberStorageInfo = 0;
#endif

static ::String sMemberFields[] = {
	String(null()) };

static void sMarkStatics(HX_MARK_PARAMS) {
	HX_MARK_MEMBER_NAME(FileEvents_obj::__mClass,"__mClass");
	HX_MARK_MEMBER_NAME(FileEvents_obj::fe_unknown,"fe_unknown");
	HX_MARK_MEMBER_NAME(FileEvents_obj::fe_modify,"fe_modify");
	HX_MARK_MEMBER_NAME(FileEvents_obj::fe_remove,"fe_remove");
	HX_MARK_MEMBER_NAME(FileEvents_obj::fe_create,"fe_create");
	HX_MARK_MEMBER_NAME(FileEvents_obj::fe_drop,"fe_drop");
};

#ifdef HXCPP_VISIT_ALLOCS
static void sVisitStatics(HX_VISIT_PARAMS) {
	HX_VISIT_MEMBER_NAME(FileEvents_obj::__mClass,"__mClass");
	HX_VISIT_MEMBER_NAME(FileEvents_obj::fe_unknown,"fe_unknown");
	HX_VISIT_MEMBER_NAME(FileEvents_obj::fe_modify,"fe_modify");
	HX_VISIT_MEMBER_NAME(FileEvents_obj::fe_remove,"fe_remove");
	HX_VISIT_MEMBER_NAME(FileEvents_obj::fe_create,"fe_create");
	HX_VISIT_MEMBER_NAME(FileEvents_obj::fe_drop,"fe_drop");
};

#endif

Class FileEvents_obj::__mClass;

void FileEvents_obj::__register()
{
	hx::Static(__mClass) = hx::RegisterClass(HX_CSTRING("snow.types.FileEvents"), hx::TCanCast< FileEvents_obj> ,sStaticFields,sMemberFields,
	&__CreateEmpty, &__Create,
	&super::__SGetClass(), 0, sMarkStatics
#ifdef HXCPP_VISIT_ALLOCS
    , sVisitStatics
#endif
#ifdef HXCPP_SCRIPTABLE
    , sMemberStorageInfo
#endif
);
}

void FileEvents_obj::__boot()
{
	fe_unknown= (int)0;
	fe_modify= (int)1;
	fe_remove= (int)2;
	fe_create= (int)3;
	fe_drop= (int)4;
}

} // end namespace snow
} // end namespace types
