2005/5/9

     
 

ref_metainf_ext.cpp

artefaktur
// Generated by ACDK Metacompiler, 
// Copyrighted by Roger Rene Kommer, artefaktur
// 
// Dont edit this file manually
// 
#include <acdk.h>


#include "../ref.h"
#include "../NotifyObjectEvent.h"
#include "../PhantomReference.h"
#include "../ref.h"
#include "../Reference.h"
#include "../ReferenceQueue.h"
#include "../SharedOwning.h"
#include "../SoftReference.h"
#include "../WeakReference.h"
#include <acdk/lang/dmi/ClazzInfoInternals.h>


struct acdk::lang::dmi::UnitInfo acdk_lang_ref_unitInfo = {
  ::acdk::lang::dmi::MiUnitInfo, // flags
  0, //attributeRes
  "ref", // name of unit
  -1, // hashCode
  "acdk/lang", // ns
  0, // _scopeParent
  0, // _nextScopeSibling
  0 // _firstChild first ClazzInfo of this unit
};

static ::acdk::lang::dmi::RegisterUnitInfo _register_acdk_lang_ref_unitInfo(&acdk_lang_ref_unitInfo);


namespace acdk { 
namespace lang { 
namespace ref { 

using namespace acdk::lang;

//static
::acdk::lang::RObject
NotifyObjectEventListener_create_array(int length)
{
  return new ObjectArrayImpl<RNotifyObjectEventListener>(length);
}

//static
::acdk::lang::RObject
NotifyObjectEventListener_create_array_array(int firstLength, int secondLength)
{
  return Nil;//not implemented yet
}
class NotifyObjectEventListener_MetainfoWrapper 
{

public:
  static const ::acdk::lang::dmi::ClazzMethodInfo* 
  NotifyObjectEventListener_method_GetClass__L_acdk_lang_RClass__dispatch(::acdk::lang::Object* This_, IN(::acdk::lang::RString) fname, ::acdk::lang::dmi::ScriptVar& ret, ::acdk::lang::dmi::ScriptVarArray& args, ::acdk::lang::dmi::DmiClient& dc, IN(::acdk::lang::RStringArray) namedArgs, int flags, const ::acdk::lang::dmi::ClazzInfo* clazzinfo, const ::acdk::lang::dmi::ClazzMethodInfo* methinf)
  {
    ret = (::acdk::lang::RObject)NotifyObjectEventListener::GetClass();
    return methinf;
  }
};

::acdk::lang::dmi::ClazzFieldInfo* _NotifyObjectEventListener_fields[] = 
{
  0
};

::acdk::lang::dmi::ClazzMethodArgInfo* NotifyObjectEventListener_methods_GetClass__L_acdk_lang_RClass__args[] = 
{
  0
};

::acdk::lang::dmi::ClazzInfo* NotifyObjectEventListener_methods_GetClass__L_acdk_lang_RClass__exceptions[] =
{
  0
};

::acdk::lang::dmi::ClazzMethodInfo NotifyObjectEventListener_method_GetClass__L_acdk_lang_RClass_ = 
{
  ::acdk::lang::dmi::MiPublic | ::acdk::lang::dmi::MiStatic | ::acdk::lang::dmi::MiMethodInfo,// class flags, like static, 
  0, //AttributesRes
  "GetClass", // name of method
  -1, // hashCode
  "", // ns
  0, // _scopeParent
  0, // _nextSibling
  ::acdk::lang::RClass::clazzInfo(), // return type
  "_0_GetClass", // alternative name of method
  -1, // altlabelHashCode
  NotifyObjectEventListener_methods_GetClass__L_acdk_lang_RClass__args, // the arguments
  0, //arguments count
  NotifyObjectEventListener_methods_GetClass__L_acdk_lang_RClass__exceptions, // the declared exceptions
  NotifyObjectEventListener_MetainfoWrapper::NotifyObjectEventListener_method_GetClass__L_acdk_lang_RClass__dispatch, // invoke this method
  ::acdk::lang::dmi::ClazzMethodInfo::DefaultDispatchThrowableFunc, // dispatch throwing exceptions
  0 // cached method signature hash
};

::acdk::lang::dmi::ClazzMethodInfo* _NotifyObjectEventListener_methods[] = 
{
  &NotifyObjectEventListener_method_GetClass__L_acdk_lang_RClass_,
  0
};


struct NotifyObjectEventListener_MetaInfoInitializer
{  NotifyObjectEventListener_MetaInfoInitializer()
  {
    ::acdk::lang::dmi::ClazzInfo* ci = NotifyObjectEventListener::clazzInfo();
    ci->fields =  _NotifyObjectEventListener_fields;
    ci->methods =  _NotifyObjectEventListener_methods;
    ci->_scopeParent = acdk_lang_ref_unitInfo.getMetaInfo();
    ci->registerClazzInfo(); // make sure clazzinfo is registered
    ci->_resolveMemberParents();
    ci->flags |= ::acdk::lang::dmi::MiResolved;
  }
};
NotifyObjectEventListener_MetaInfoInitializer NotifyObjectEventListener_MetaInfoInitializer_staticinstance__;


} // namespace acdk
} // namespace lang
} // namespace ref

namespace acdk { 
namespace lang { 
namespace ref { 

using namespace acdk::lang;

//static
::acdk::lang::RObject
PhantomReference_create_array(int length)
{
  return new ObjectArrayImpl<RPhantomReference>(length);
}

//static
::acdk::lang::RObject
PhantomReference_create_array_array(int firstLength, int secondLength)
{
  return Nil;//not implemented yet
}
class PhantomReference_MetainfoWrapper 
{

public:
  static const ::acdk::lang::dmi::ClazzMethodInfo* 
  PhantomReference_method_GetClass__L_acdk_lang_RClass__dispatch(::acdk::lang::Object* This_, IN(::acdk::lang::RString) fname, ::acdk::lang::dmi::ScriptVar& ret, ::acdk::lang::dmi::ScriptVarArray& args, ::acdk::lang::dmi::DmiClient& dc, IN(::acdk::lang::RStringArray) namedArgs, int flags, const ::acdk::lang::dmi::ClazzInfo* clazzinfo, const ::acdk::lang::dmi::ClazzMethodInfo* methinf)
  {
    ret = (::acdk::lang::RObject)PhantomReference::GetClass();
    return methinf;
  }
  static const ::acdk::lang::dmi::ClazzMethodInfo* 
  PhantomReference_method_PhantomReference_INLRObject_INLRReferenceQueue__LRPhantomReference__dispatch(::acdk::lang::Object* This_, IN(::acdk::lang::RString) fname, ::acdk::lang::dmi::ScriptVar& ret, ::acdk::lang::dmi::ScriptVarArray& args, ::acdk::lang::dmi::DmiClient& dc, IN(::acdk::lang::RStringArray) namedArgs, int flags, const ::acdk::lang::dmi::ClazzInfo* clazzinfo, const ::acdk::lang::dmi::ClazzMethodInfo* methinf)
  {
    ret = (::acdk::lang::RObject)new PhantomReference(::acdk::lang::dmi::castTo< acdk::lang::Object>(args[0], dc), ::acdk::lang::dmi::castTo< RReferenceQueue>(args[1], dc));
    return methinf;
  }
  static const ::acdk::lang::dmi::ClazzMethodInfo* 
  PhantomReference_method_PhantomReference_INLRObject__LRPhantomReference__dispatch(::acdk::lang::Object* This_, IN(::acdk::lang::RString) fname, ::acdk::lang::dmi::ScriptVar& ret, ::acdk::lang::dmi::ScriptVarArray& args, ::acdk::lang::dmi::DmiClient& dc, IN(::acdk::lang::RStringArray) namedArgs, int flags, const ::acdk::lang::dmi::ClazzInfo* clazzinfo, const ::acdk::lang::dmi::ClazzMethodInfo* methinf)
  {
    ret = (::acdk::lang::RObject)new PhantomReference(::acdk::lang::dmi::castTo< acdk::lang::Object>(args[0], dc));
    return methinf;
  }
};

::acdk::lang::dmi::ClazzFieldInfo* _PhantomReference_fields[] = 
{
  0
};

::acdk::lang::dmi::ClazzMethodArgInfo* PhantomReference_methods_GetClass__L_acdk_lang_RClass__args[] = 
{
  0
};

::acdk::lang::dmi::ClazzInfo* PhantomReference_methods_GetClass__L_acdk_lang_RClass__exceptions[] =
{
  0
};

::acdk::lang::dmi::ClazzMethodInfo PhantomReference_method_GetClass__L_acdk_lang_RClass_ = 
{
  ::acdk::lang::dmi::MiPublic | ::acdk::lang::dmi::MiStatic | ::acdk::lang::dmi::MiMethodInfo,// class flags, like static, 
  0, //AttributesRes
  "GetClass", // name of method
  -1, // hashCode
  "", // ns
  0, // _scopeParent
  0, // _nextSibling
  ::acdk::lang::RClass::clazzInfo(), // return type
  "_2_GetClass", // alternative name of method
  -1, // altlabelHashCode
  PhantomReference_methods_GetClass__L_acdk_lang_RClass__args, // the arguments
  0, //arguments count
  PhantomReference_methods_GetClass__L_acdk_lang_RClass__exceptions, // the declared exceptions
  PhantomReference_MetainfoWrapper::PhantomReference_method_GetClass__L_acdk_lang_RClass__dispatch, // invoke this method
  ::acdk::lang::dmi::ClazzMethodInfo::DefaultDispatchThrowableFunc, // dispatch throwing exceptions
  0 // cached method signature hash
};

::acdk::lang::dmi::ClazzMethodArgInfo PhantomReference_methods_PhantomReference_INLRObject_INLRReferenceQueue__LRPhantomReference__arg_ref = 
{
  ::acdk::lang::dmi::MiMethodArgInfo | ::acdk::lang::dmi::MiAiIn, 
  0, //AttributesRes
  "ref", // name of arg
  -1, // hashCode
  "", // ns
  0, // _scopeParent
  0, // _nextSibling
  acdk::lang::Object::clazzInfo() // type or arg
};

::acdk::lang::dmi::ClazzMethodArgInfo PhantomReference_methods_PhantomReference_INLRObject_INLRReferenceQueue__LRPhantomReference__arg_queue = 
{
  ::acdk::lang::dmi::MiMethodArgInfo | ::acdk::lang::dmi::MiAiIn | ::acdk::lang::dmi::MiAiHasDefaultInit, 
  0, //AttributesRes
  "queue", // name of arg
  -1, // hashCode
  "", // ns
  0, // _scopeParent
  0, // _nextSibling
  RReferenceQueue::clazzInfo() // type or arg
};

::acdk::lang::dmi::ClazzMethodArgInfo* PhantomReference_methods_PhantomReference_INLRObject_INLRReferenceQueue__LRPhantomReference__args[] = 
{
  &PhantomReference_methods_PhantomReference_INLRObject_INLRReferenceQueue__LRPhantomReference__arg_ref,
  &PhantomReference_methods_PhantomReference_INLRObject_INLRReferenceQueue__LRPhantomReference__arg_queue,
  0
};

::acdk::lang::dmi::ClazzInfo* PhantomReference_methods_PhantomReference_INLRObject_INLRReferenceQueue__LRPhantomReference__exceptions[] =
{
  0
};

::acdk::lang::dmi::ClazzMethodInfo PhantomReference_method_PhantomReference_INLRObject_INLRReferenceQueue__LRPhantomReference_ = 
{
  ::acdk::lang::dmi::MiPublic | ::acdk::lang::dmi::MiMethodInfo | ::acdk::lang::dmi::MiMiConstructor | ::acdk::lang::dmi::MiMiOrgPoly,// class flags, like static, 
  0, //AttributesRes
  "PhantomReference", // name of method
  -1, // hashCode
  "", // ns
  0, // _scopeParent
  0, // _nextSibling
  PhantomReference::clazzInfo(), // return type
  "_0_PhantomReference", // alternative name of method
  -1, // altlabelHashCode
  PhantomReference_methods_PhantomReference_INLRObject_INLRReferenceQueue__LRPhantomReference__args, // the arguments
  0, //arguments count
  PhantomReference_methods_PhantomReference_INLRObject_INLRReferenceQueue__LRPhantomReference__exceptions, // the declared exceptions
  PhantomReference_MetainfoWrapper::PhantomReference_method_PhantomReference_INLRObject_INLRReferenceQueue__LRPhantomReference__dispatch, // invoke this method
  ::acdk::lang::dmi::ClazzMethodInfo::DefaultDispatchThrowableFunc, // dispatch throwing exceptions
  0 // cached method signature hash
};

::acdk::lang::dmi::ClazzMethodArgInfo PhantomReference_methods_PhantomReference_INLRObject__LRPhantomReference__arg_ref = 
{
  ::acdk::lang::dmi::MiMethodArgInfo | ::acdk::lang::dmi::MiAiIn, 
  0, //AttributesRes
  "ref", // name of arg
  -1, // hashCode
  "", // ns
  0, // _scopeParent
  0, // _nextSibling
  acdk::lang::Object::clazzInfo() // type or arg
};

::acdk::lang::dmi::ClazzMethodArgInfo* PhantomReference_methods_PhantomReference_INLRObject__LRPhantomReference__args[] = 
{
  &PhantomReference_methods_PhantomReference_INLRObject__LRPhantomReference__arg_ref,
  0
};

::acdk::lang::dmi::ClazzInfo* PhantomReference_methods_PhantomReference_INLRObject__LRPhantomReference__exceptions[] =
{
  0
};

::acdk::lang::dmi::ClazzMethodInfo PhantomReference_method_PhantomReference_INLRObject__LRPhantomReference_ = 
{
  ::acdk::lang::dmi::MiPublic | ::acdk::lang::dmi::MiMethodInfo | ::acdk::lang::dmi::MiMiConstructor,// class flags, like static, 
  0, //AttributesRes
  "PhantomReference", // name of method
  -1, // hashCode
  "", // ns
  0, // _scopeParent
  0, // _nextSibling
  PhantomReference::clazzInfo(), // return type
  "_1_PhantomReference", // alternative name of method
  -1, // altlabelHashCode
  PhantomReference_methods_PhantomReference_INLRObject__LRPhantomReference__args, // the arguments
  0, //arguments count
  PhantomReference_methods_PhantomReference_INLRObject__LRPhantomReference__exceptions, // the declared exceptions
  PhantomReference_MetainfoWrapper::PhantomReference_method_PhantomReference_INLRObject__LRPhantomReference__dispatch, // invoke this method
  ::acdk::lang::dmi::ClazzMethodInfo::DefaultDispatchThrowableFunc, // dispatch throwing exceptions
  0 // cached method signature hash
};

::acdk::lang::dmi::ClazzMethodInfo* _PhantomReference_methods[] = 
{
  &PhantomReference_method_GetClass__L_acdk_lang_RClass_,
  &PhantomReference_method_PhantomReference_INLRObject_INLRReferenceQueue__LRPhantomReference_,
  &PhantomReference_method_PhantomReference_INLRObject__LRPhantomReference_,
  0
};


struct PhantomReference_MetaInfoInitializer
{  PhantomReference_MetaInfoInitializer()
  {
    ::acdk::lang::dmi::ClazzInfo* ci = PhantomReference::clazzInfo();
    ci->fields =  _PhantomReference_fields;
    ci->methods =  _PhantomReference_methods;
    ci->_scopeParent = acdk_lang_ref_unitInfo.getMetaInfo();
    ci->registerClazzInfo(); // make sure clazzinfo is registered
    ci->_resolveMemberParents();
    ci->flags |= ::acdk::lang::dmi::MiResolved;
  }
};
PhantomReference_MetaInfoInitializer PhantomReference_MetaInfoInitializer_staticinstance__;


} // namespace acdk
} // namespace lang
} // namespace ref

namespace acdk { 
namespace lang { 
namespace ref { 

using namespace acdk::lang;

//static
::acdk::lang::RObject
Reference_create_array(int length)
{
  return new ObjectArrayImpl<RReference>(length);
}

//static
::acdk::lang::RObject
Reference_create_array_array(int firstLength, int secondLength)
{
  return Nil;//not implemented yet
}
class Reference_MetainfoWrapper 
{

public:
  static const ::acdk::lang::dmi::ClazzMethodInfo* 
  Reference_method_GetClass__L_acdk_lang_RClass__dispatch(::acdk::lang::Object* This_, IN(::acdk::lang::RString) fname, ::acdk::lang::dmi::ScriptVar& ret, ::acdk::lang::dmi::ScriptVarArray& args, ::acdk::lang::dmi::DmiClient& dc, IN(::acdk::lang::RStringArray) namedArgs, int flags, const ::acdk::lang::dmi::ClazzInfo* clazzinfo, const ::acdk::lang::dmi::ClazzMethodInfo* methinf)
  {
    ret = (::acdk::lang::RObject)Reference::GetClass();
    return methinf;
  }
  static const ::acdk::lang::dmi::ClazzMethodInfo* 
  Reference_method_Reference_INLRObject_INLRReferenceQueue__LRReference__dispatch(::acdk::lang::Object* This_, IN(::acdk::lang::RString) fname, ::acdk::lang::dmi::ScriptVar& ret, ::acdk::lang::dmi::ScriptVarArray& args, ::acdk::lang::dmi::DmiClient& dc, IN(::acdk::lang::RStringArray) namedArgs, int flags, const ::acdk::lang::dmi::ClazzInfo* clazzinfo, const ::acdk::lang::dmi::ClazzMethodInfo* methinf)
  {
    ret = (::acdk::lang::RObject)new Reference(::acdk::lang::dmi::castTo< acdk::lang::Object>(args[0], dc), ::acdk::lang::dmi::castTo< RReferenceQueue>(args[1], dc));
    return methinf;
  }
  static const ::acdk::lang::dmi::ClazzMethodInfo* 
  Reference_method_Reference_INLRObject__LRReference__dispatch(::acdk::lang::Object* This_, IN(::acdk::lang::RString) fname, ::acdk::lang::dmi::ScriptVar& ret, ::acdk::lang::dmi::ScriptVarArray& args, ::acdk::lang::dmi::DmiClient& dc, IN(::acdk::lang::RStringArray) namedArgs, int flags, const ::acdk::lang::dmi::ClazzInfo* clazzinfo, const ::acdk::lang::dmi::ClazzMethodInfo* methinf)
  {
    ret = (::acdk::lang::RObject)new Reference(::acdk::lang::dmi::castTo< acdk::lang::Object>(args[0], dc));
    return methinf;
  }
  static const ::acdk::lang::dmi::ClazzMethodInfo* 
  Reference_method_clear__V_dispatch(::acdk::lang::Object* This_, IN(::acdk::lang::RString) fname, ::acdk::lang::dmi::ScriptVar& ret, ::acdk::lang::dmi::ScriptVarArray& args, ::acdk::lang::dmi::DmiClient& dc, IN(::acdk::lang::RStringArray) namedArgs, int flags, const ::acdk::lang::dmi::ClazzInfo* clazzinfo, const ::acdk::lang::dmi::ClazzMethodInfo* methinf)
  {
    Reference* This = dmi_cast<Reference>(This_);
    if (flags & ::acdk::lang::dmi::MiIvNoWeakBind)
        This->Reference::clear();
    else
        This->clear();
    return methinf;
  }
  static const ::acdk::lang::dmi::ClazzMethodInfo* 
  Reference_method_enqueue__Z_dispatch(::acdk::lang::Object* This_, IN(::acdk::lang::RString) fname, ::acdk::lang::dmi::ScriptVar& ret, ::acdk::lang::dmi::ScriptVarArray& args, ::acdk::lang::dmi::DmiClient& dc, IN(::acdk::lang::RStringArray) namedArgs, int flags, const ::acdk::lang::dmi::ClazzInfo* clazzinfo, const ::acdk::lang::dmi::ClazzMethodInfo* methinf)
  {
    Reference* This = dmi_cast<Reference>(This_);
    if (flags & ::acdk::lang::dmi::MiIvNoWeakBind)
      ret = This->Reference::enqueue();
    else
      ret = This->enqueue();
    return methinf;
  }
  static const ::acdk::lang::dmi::ClazzMethodInfo* 
  Reference_method_get__LRObject__dispatch(::acdk::lang::Object* This_, IN(::acdk::lang::RString) fname, ::acdk::lang::dmi::ScriptVar& ret, ::acdk::lang::dmi::ScriptVarArray& args, ::acdk::lang::dmi::DmiClient& dc, IN(::acdk::lang::RStringArray) namedArgs, int flags, const ::acdk::lang::dmi::ClazzInfo* clazzinfo, const ::acdk::lang::dmi::ClazzMethodInfo* methinf)
  {
    Reference* This = dmi_cast<Reference>(This_);
    if (flags & ::acdk::lang::dmi::MiIvNoWeakBind)
        ret = (::acdk::lang::RObject)This->Reference::get();
    else
        ret = (::acdk::lang::RObject)This->get();
    return methinf;
  }
  static const ::acdk::lang::dmi::ClazzMethodInfo* 
  Reference_method_isDequeued__Z_dispatch(::acdk::lang::Object* This_, IN(::acdk::lang::RString) fname, ::acdk::lang::dmi::ScriptVar& ret, ::acdk::lang::dmi::ScriptVarArray& args, ::acdk::lang::dmi::DmiClient& dc, IN(::acdk::lang::RStringArray) namedArgs, int flags, const ::acdk::lang::dmi::ClazzInfo* clazzinfo, const ::acdk::lang::dmi::ClazzMethodInfo* methinf)
  {
    Reference* This = dmi_cast<Reference>(This_);
    if (flags & ::acdk::lang::dmi::MiIvNoWeakBind)
      ret = This->Reference::isDequeued();
    else
      ret = This->isDequeued();
    return methinf;
  }
  static const ::acdk::lang::dmi::ClazzMethodInfo* 
  Reference_method_isEnqueued__Z_dispatch(::acdk::lang::Object* This_, IN(::acdk::lang::RString) fname, ::acdk::lang::dmi::ScriptVar& ret, ::acdk::lang::dmi::ScriptVarArray& args, ::acdk::lang::dmi::DmiClient& dc, IN(::acdk::lang::RStringArray) namedArgs, int flags, const ::acdk::lang::dmi::ClazzInfo* clazzinfo, const ::acdk::lang::dmi::ClazzMethodInfo* methinf)
  {
    Reference* This = dmi_cast<Reference>(This_);
    if (flags & ::acdk::lang::dmi::MiIvNoWeakBind)
      ret = This->Reference::isEnqueued();
    else
      ret = This->isEnqueued();
    return methinf;
  }
  static const ::acdk::lang::dmi::ClazzFieldInfo*
  Reference_fields__inDestructor_accessor(::acdk::lang::Object* This_, IN(::acdk::lang::RString) fname, ::acdk::lang::dmi::ScriptVar& var, ::acdk::lang::dmi::DmiClient& dc, int flags, const ::acdk::lang::dmi::ClazzInfo* clazzinfo, const ::acdk::lang::dmi::ClazzFieldInfo* fieldinf)
  {
    Reference* This = dmi_cast<Reference>(This_);
    if (flags & ::acdk::lang::dmi::MiReadOnly)
     var = ::acdk::lang::getScriptVarOf(This->_inDestructor, flags);
    else
      This->_inDestructor = ::acdk::lang::dmi::castTo< bool>(var, dc);
    return fieldinf;
  }
  static const ::acdk::lang::dmi::ClazzFieldInfo*
  Reference_fields__isDequeued_accessor(::acdk::lang::Object* This_, IN(::acdk::lang::RString) fname, ::acdk::lang::dmi::ScriptVar& var, ::acdk::lang::dmi::DmiClient& dc, int flags, const ::acdk::lang::dmi::ClazzInfo* clazzinfo, const ::acdk::lang::dmi::ClazzFieldInfo* fieldinf)
  {
    Reference* This = dmi_cast<Reference>(This_);
    if (flags & ::acdk::lang::dmi::MiReadOnly)
     var = ::acdk::lang::getScriptVarOf(This->_isDequeued, flags);
    else
      This->_isDequeued = ::acdk::lang::dmi::castTo< bool>(var, dc);
    return fieldinf;
  }
  static const ::acdk::lang::dmi::ClazzFieldInfo*
  Reference_fields__isOnQueue_accessor(::acdk::lang::Object* This_, IN(::acdk::lang::RString) fname, ::acdk::lang::dmi::ScriptVar& var, ::acdk::lang::dmi::DmiClient& dc, int flags, const ::acdk::lang::dmi::ClazzInfo* clazzinfo, const ::acdk::lang::dmi::ClazzFieldInfo* fieldinf)
  {
    Reference* This = dmi_cast<Reference>(This_);
    if (flags & ::acdk::lang::dmi::MiReadOnly)
     var = ::acdk::lang::getScriptVarOf(This->_isOnQueue, flags);
    else
      This->_isOnQueue = ::acdk::lang::dmi::castTo< bool>(var, dc);
    return fieldinf;
  }
  static const ::acdk::lang::dmi::ClazzFieldInfo*
  Reference_fields__next_accessor(::acdk::lang::Object* This_, IN(::acdk::lang::RString) fname, ::acdk::lang::dmi::ScriptVar& var, ::acdk::lang::dmi::DmiClient& dc, int flags, const ::acdk::lang::dmi::ClazzInfo* clazzinfo, const ::acdk::lang::dmi::ClazzFieldInfo* fieldinf)
  {
    Reference* This = dmi_cast<Reference>(This_);
    if (flags & ::acdk::lang::dmi::MiReadOnly)
     var = ::acdk::lang::getScriptVarOf(This->_next, flags);
    else
      This->_next = ::acdk::lang::dmi::castTo< RReference>(var, dc);
    return fieldinf;
  }
  static const ::acdk::lang::dmi::ClazzFieldInfo*
  Reference_fields__queue_accessor(::acdk::lang::Object* This_, IN(::acdk::lang::RString) fname, ::acdk::lang::dmi::ScriptVar& var, ::acdk::lang::dmi::DmiClient& dc, int flags, const ::acdk::lang::dmi::ClazzInfo* clazzinfo, const ::acdk::lang::dmi::ClazzFieldInfo* fieldinf)
  {
    Reference* This = dmi_cast<Reference>(This_);
    if (flags & ::acdk::lang::dmi::MiReadOnly)
     var = ::acdk::lang::getScriptVarOf(This->_queue, flags);
    else
      This->_queue = ::acdk::lang::dmi::castTo< RReferenceQueue>(var, dc);
    return fieldinf;
  }
  static const ::acdk::lang::dmi::ClazzFieldInfo*
  Reference_fields__releaseReference_accessor(::acdk::lang::Object* This_, IN(::acdk::lang::RString) fname, ::acdk::lang::dmi::ScriptVar& var, ::acdk::lang::dmi::DmiClient& dc, int flags, const ::acdk::lang::dmi::ClazzInfo* clazzinfo, const ::acdk::lang::dmi::ClazzFieldInfo* fieldinf)
  {
    Reference* This = dmi_cast<Reference>(This_);
    if (flags & ::acdk::lang::dmi::MiReadOnly)
     var = ::acdk::lang::getScriptVarOf(This->_releaseReference, flags);
    else
      This->_releaseReference = ::acdk::lang::dmi::castTo< bool>(var, dc);
    return fieldinf;
  }
};

::acdk::lang::dmi::ClazzFieldInfo Reference_fields__inDestructor = 
{
  ::acdk::lang::dmi::MiProtected | ::acdk::lang::dmi::MiFieldInfo,
  0, //AttributesRes
  "_inDestructor", // name
   -1, // hashCode
   "", // ns
  0, // _scopeParent
  0, // _nextSibling
  ::acdk::lang::dmi::ClazzInfo::getBoolClazz(),
  Reference_MetainfoWrapper::Reference_fields__inDestructor_accessor, // read/write access to this fields
  (void*)0 // address of field
};

::acdk::lang::dmi::ClazzFieldInfo Reference_fields__isDequeued = 
{
  ::acdk::lang::dmi::MiProtected | ::acdk::lang::dmi::MiFieldInfo,
  0, //AttributesRes
  "_isDequeued", // name
   -1, // hashCode
   "", // ns
  0, // _scopeParent
  0, // _nextSibling
  ::acdk::lang::dmi::ClazzInfo::getBoolClazz(),
  Reference_MetainfoWrapper::Reference_fields__isDequeued_accessor, // read/write access to this fields
  (void*)0 // address of field
};

::acdk::lang::dmi::ClazzFieldInfo Reference_fields__isOnQueue = 
{
  ::acdk::lang::dmi::MiProtected | ::acdk::lang::dmi::MiFieldInfo,
  0, //AttributesRes
  "_isOnQueue", // name
   -1, // hashCode
   "", // ns
  0, // _scopeParent
  0, // _nextSibling
  ::acdk::lang::dmi::ClazzInfo::getBoolClazz(),
  Reference_MetainfoWrapper::Reference_fields__isOnQueue_accessor, // read/write access to this fields
  (void*)0 // address of field
};

::acdk::lang::dmi::ClazzFieldInfo Reference_fields__next = 
{
  ::acdk::lang::dmi::MiProtected | ::acdk::lang::dmi::MiFieldInfo,
  0, //AttributesRes
  "_next", // name
   -1, // hashCode
   "", // ns
  0, // _scopeParent
  0, // _nextSibling
  RReference::clazzInfo(),
  Reference_MetainfoWrapper::Reference_fields__next_accessor, // read/write access to this fields
  (void*)0 // address of field
};

::acdk::lang::dmi::ClazzFieldInfo Reference_fields__queue = 
{
  ::acdk::lang::dmi::MiProtected | ::acdk::lang::dmi::MiFieldInfo,
  0, //AttributesRes
  "_queue", // name
   -1, // hashCode
   "", // ns
  0, // _scopeParent
  0, // _nextSibling
  RReferenceQueue::clazzInfo(),
  Reference_MetainfoWrapper::Reference_fields__queue_accessor, // read/write access to this fields
  (void*)0 // address of field
};

::acdk::lang::dmi::ClazzFieldInfo Reference_fields__releaseReference = 
{
  ::acdk::lang::dmi::MiProtected | ::acdk::lang::dmi::MiFieldInfo,
  0, //AttributesRes
  "_releaseReference", // name
   -1, // hashCode
   "", // ns
  0, // _scopeParent
  0, // _nextSibling
  ::acdk::lang::dmi::ClazzInfo::getBoolClazz(),
  Reference_MetainfoWrapper::Reference_fields__releaseReference_accessor, // read/write access to this fields
  (void*)0 // address of field
};

::acdk::lang::dmi::ClazzFieldInfo* _Reference_fields[] = 
{
  &Reference_fields__inDestructor,
  &Reference_fields__isDequeued,
  &Reference_fields__isOnQueue,
  &Reference_fields__next,
  &Reference_fields__queue,
  &Reference_fields__releaseReference,
  0
};

::acdk::lang::dmi::ClazzMethodArgInfo* Reference_methods_GetClass__L_acdk_lang_RClass__args[] = 
{
  0
};

::acdk::lang::dmi::ClazzInfo* Reference_methods_GetClass__L_acdk_lang_RClass__exceptions[] =
{
  0
};

::acdk::lang::dmi::ClazzMethodInfo Reference_method_GetClass__L_acdk_lang_RClass_ = 
{
  ::acdk::lang::dmi::MiPublic | ::acdk::lang::dmi::MiStatic | ::acdk::lang::dmi::MiMethodInfo,// class flags, like static, 
  0, //AttributesRes
  "GetClass", // name of method
  -1, // hashCode
  "", // ns
  0, // _scopeParent
  0, // _nextSibling
  ::acdk::lang::RClass::clazzInfo(), // return type
  "_7_GetClass", // alternative name of method
  -1, // altlabelHashCode
  Reference_methods_GetClass__L_acdk_lang_RClass__args, // the arguments
  0, //arguments count
  Reference_methods_GetClass__L_acdk_lang_RClass__exceptions, // the declared exceptions
  Reference_MetainfoWrapper::Reference_method_GetClass__L_acdk_lang_RClass__dispatch, // invoke this method
  ::acdk::lang::dmi::ClazzMethodInfo::DefaultDispatchThrowableFunc, // dispatch throwing exceptions
  0 // cached method signature hash
};

::acdk::lang::dmi::ClazzMethodArgInfo Reference_methods_Reference_INLRObject_INLRReferenceQueue__LRReference__arg_ref = 
{
  ::acdk::lang::dmi::MiMethodArgInfo | ::acdk::lang::dmi::MiAiIn, 
  0, //AttributesRes
  "ref", // name of arg
  -1, // hashCode
  "", // ns
  0, // _scopeParent
  0, // _nextSibling
  acdk::lang::Object::clazzInfo() // type or arg
};

::acdk::lang::dmi::ClazzMethodArgInfo Reference_methods_Reference_INLRObject_INLRReferenceQueue__LRReference__arg_queue = 
{
  ::acdk::lang::dmi::MiMethodArgInfo | ::acdk::lang::dmi::MiAiIn | ::acdk::lang::dmi::MiAiHasDefaultInit, 
  0, //AttributesRes
  "queue", // name of arg
  -1, // hashCode
  "", // ns
  0, // _scopeParent
  0, // _nextSibling
  RReferenceQueue::clazzInfo() // type or arg
};

::acdk::lang::dmi::ClazzMethodArgInfo* Reference_methods_Reference_INLRObject_INLRReferenceQueue__LRReference__args[] = 
{
  &Reference_methods_Reference_INLRObject_INLRReferenceQueue__LRReference__arg_ref,
  &Reference_methods_Reference_INLRObject_INLRReferenceQueue__LRReference__arg_queue,
  0
};

::acdk::lang::dmi::ClazzInfo* Reference_methods_Reference_INLRObject_INLRReferenceQueue__LRReference__exceptions[] =
{
  0
};

::acdk::lang::dmi::ClazzMethodInfo Reference_method_Reference_INLRObject_INLRReferenceQueue__LRReference_ = 
{
  ::acdk::lang::dmi::MiPublic | ::acdk::lang::dmi::MiMethodInfo | ::acdk::lang::dmi::MiMiConstructor | ::acdk::lang::dmi::MiMiOrgPoly,// class flags, like static, 
  0, //AttributesRes
  "Reference", // name of method
  -1, // hashCode
  "", // ns
  0, // _scopeParent
  0, // _nextSibling
  Reference::clazzInfo(), // return type
  "_0_Reference", // alternative name of method
  -1, // altlabelHashCode
  Reference_methods_Reference_INLRObject_INLRReferenceQueue__LRReference__args, // the arguments
  0, //arguments count
  Reference_methods_Reference_INLRObject_INLRReferenceQueue__LRReference__exceptions, // the declared exceptions
  Reference_MetainfoWrapper::Reference_method_Reference_INLRObject_INLRReferenceQueue__LRReference__dispatch, // invoke this method
  ::acdk::lang::dmi::ClazzMethodInfo::DefaultDispatchThrowableFunc, // dispatch throwing exceptions
  0 // cached method signature hash
};

::acdk::lang::dmi::ClazzMethodArgInfo Reference_methods_Reference_INLRObject__LRReference__arg_ref = 
{
  ::acdk::lang::dmi::MiMethodArgInfo | ::acdk::lang::dmi::MiAiIn, 
  0, //AttributesRes
  "ref", // name of arg
  -1, // hashCode
  "", // ns
  0, // _scopeParent
  0, // _nextSibling
  acdk::lang::Object::clazzInfo() // type or arg
};

::acdk::lang::dmi::ClazzMethodArgInfo* Reference_methods_Reference_INLRObject__LRReference__args[] = 
{
  &Reference_methods_Reference_INLRObject__LRReference__arg_ref,
  0
};

::acdk::lang::dmi::ClazzInfo* Reference_methods_Reference_INLRObject__LRReference__exceptions[] =
{
  0
};

::acdk::lang::dmi::ClazzMethodInfo Reference_method_Reference_INLRObject__LRReference_ = 
{
  ::acdk::lang::dmi::MiPublic | ::acdk::lang::dmi::MiMethodInfo | ::acdk::lang::dmi::MiMiConstructor,// class flags, like static, 
  0, //AttributesRes
  "Reference", // name of method
  -1, // hashCode
  "", // ns
  0, // _scopeParent
  0, // _nextSibling
  Reference::clazzInfo(), // return type
  "_1_Reference", // alternative name of method
  -1, // altlabelHashCode
  Reference_methods_Reference_INLRObject__LRReference__args, // the arguments
  0, //arguments count
  Reference_methods_Reference_INLRObject__LRReference__exceptions, // the declared exceptions
  Reference_MetainfoWrapper::Reference_method_Reference_INLRObject__LRReference__dispatch, // invoke this method
  ::acdk::lang::dmi::ClazzMethodInfo::DefaultDispatchThrowableFunc, // dispatch throwing exceptions
  0 // cached method signature hash
};

::acdk::lang::dmi::ClazzMethodArgInfo* Reference_methods_clear__V_args[] = 
{
  0
};

::acdk::lang::dmi::ClazzInfo* Reference_methods_clear__V_exceptions[] =
{
  0
};

::acdk::lang::dmi::ClazzMethodInfo Reference_method_clear__V = 
{
  ::acdk::lang::dmi::MiPublic | ::acdk::lang::dmi::MiMethodInfo | ::acdk::lang::dmi::MiMiVirtual | ::acdk::lang::dmi::MiMiOrgPoly,// class flags, like static, 
  0, //AttributesRes
  "clear", // name of method
  -1, // hashCode
  "", // ns
  0, // _scopeParent
  0, // _nextSibling
  ::acdk::lang::dmi::ClazzInfo::getVoidClazz(), // return type
  "_3_clear", // alternative name of method
  -1, // altlabelHashCode
  Reference_methods_clear__V_args, // the arguments
  0, //arguments count
  Reference_methods_clear__V_exceptions, // the declared exceptions
  Reference_MetainfoWrapper::Reference_method_clear__V_dispatch, // invoke this method
  ::acdk::lang::dmi::ClazzMethodInfo::DefaultDispatchThrowableFunc, // dispatch throwing exceptions
  0 // cached method signature hash
};

::acdk::lang::dmi::ClazzMethodArgInfo* Reference_methods_enqueue__Z_args[] = 
{
  0
};

::acdk::lang::dmi::ClazzInfo* Reference_methods_enqueue__Z_exceptions[] =
{
  0
};

::acdk::lang::dmi::ClazzMethodInfo Reference_method_enqueue__Z = 
{
  ::acdk::lang::dmi::MiPublic | ::acdk::lang::dmi::MiMethodInfo | ::acdk::lang::dmi::MiMiVirtual | ::acdk::lang::dmi::MiMiOrgPoly,// class flags, like static, 
  0, //AttributesRes
  "enqueue", // name of method
  -1, // hashCode
  "", // ns
  0, // _scopeParent
  0, // _nextSibling
  ::acdk::lang::dmi::ClazzInfo::getBoolClazz(), // return type
  "_6_enqueue", // alternative name of method
  -1, // altlabelHashCode
  Reference_methods_enqueue__Z_args, // the arguments
  0, //arguments count
  Reference_methods_enqueue__Z_exceptions, // the declared exceptions
  Reference_MetainfoWrapper::Reference_method_enqueue__Z_dispatch, // invoke this method
  ::acdk::lang::dmi::ClazzMethodInfo::DefaultDispatchThrowableFunc, // dispatch throwing exceptions
  0 // cached method signature hash
};

::acdk::lang::dmi::ClazzMethodArgInfo* Reference_methods_get__LRObject__args[] = 
{
  0
};

::acdk::lang::dmi::ClazzInfo* Reference_methods_get__LRObject__exceptions[] =
{
  0
};

::acdk::lang::dmi::ClazzMethodInfo Reference_method_get__LRObject_ = 
{
  ::acdk::lang::dmi::MiPublic | ::acdk::lang::dmi::MiMethodInfo | ::acdk::lang::dmi::MiMiVirtual | ::acdk::lang::dmi::MiMiOrgPoly,// class flags, like static, 
  0, //AttributesRes
  "get", // name of method
  -1, // hashCode
  "", // ns
  0, // _scopeParent
  0, // _nextSibling
  acdk::lang::Object::clazzInfo(), // return type
  "_2_get", // alternative name of method
  -1, // altlabelHashCode
  Reference_methods_get__LRObject__args, // the arguments
  0, //arguments count
  Reference_methods_get__LRObject__exceptions, // the declared exceptions
  Reference_MetainfoWrapper::Reference_method_get__LRObject__dispatch, // invoke this method
  ::acdk::lang::dmi::ClazzMethodInfo::DefaultDispatchThrowableFunc, // dispatch throwing exceptions
  0 // cached method signature hash
};

::acdk::lang::dmi::ClazzMethodArgInfo* Reference_methods_isDequeued__Z_args[] = 
{
  0
};

::acdk::lang::dmi::ClazzInfo* Reference_methods_isDequeued__Z_exceptions[] =
{
  0
};

::acdk::lang::dmi::ClazzMethodInfo Reference_method_isDequeued__Z = 
{
  ::acdk::lang::dmi::MiPublic | ::acdk::lang::dmi::MiMethodInfo | ::acdk::lang::dmi::MiMiOrgPoly,// class flags, like static, 
  0, //AttributesRes
  "isDequeued", // name of method
  -1, // hashCode
  "", // ns
  0, // _scopeParent
  0, // _nextSibling
  ::acdk::lang::dmi::ClazzInfo::getBoolClazz(), // return type
  "_5_isDequeued", // alternative name of method
  -1, // altlabelHashCode
  Reference_methods_isDequeued__Z_args, // the arguments
  0, //arguments count
  Reference_methods_isDequeued__Z_exceptions, // the declared exceptions
  Reference_MetainfoWrapper::Reference_method_isDequeued__Z_dispatch, // invoke this method
  ::acdk::lang::dmi::ClazzMethodInfo::DefaultDispatchThrowableFunc, // dispatch throwing exceptions
  0 // cached method signature hash
};

::acdk::lang::dmi::ClazzMethodArgInfo* Reference_methods_isEnqueued__Z_args[] = 
{
  0
};

::acdk::lang::dmi::ClazzInfo* Reference_methods_isEnqueued__Z_exceptions[] =
{
  0
};

::acdk::lang::dmi::ClazzMethodInfo Reference_method_isEnqueued__Z = 
{
  ::acdk::lang::dmi::MiPublic | ::acdk::lang::dmi::MiMethodInfo | ::acdk::lang::dmi::MiMiVirtual | ::acdk::lang::dmi::MiMiOrgPoly,// class flags, like static, 
  0, //AttributesRes
  "isEnqueued", // name of method
  -1, // hashCode
  "", // ns
  0, // _scopeParent
  0, // _nextSibling
  ::acdk::lang::dmi::ClazzInfo::getBoolClazz(), // return type
  "_4_isEnqueued", // alternative name of method
  -1, // altlabelHashCode
  Reference_methods_isEnqueued__Z_args, // the arguments
  0, //arguments count
  Reference_methods_isEnqueued__Z_exceptions, // the declared exceptions
  Reference_MetainfoWrapper::Reference_method_isEnqueued__Z_dispatch, // invoke this method
  ::acdk::lang::dmi::ClazzMethodInfo::DefaultDispatchThrowableFunc, // dispatch throwing exceptions
  0 // cached method signature hash
};

::acdk::lang::dmi::ClazzMethodInfo* _Reference_methods[] = 
{
  &Reference_method_GetClass__L_acdk_lang_RClass_,
  &Reference_method_Reference_INLRObject_INLRReferenceQueue__LRReference_,
  &Reference_method_Reference_INLRObject__LRReference_,
  &Reference_method_clear__V,
  &Reference_method_enqueue__Z,
  &Reference_method_get__LRObject_,
  &Reference_method_isDequeued__Z,
  &Reference_method_isEnqueued__Z,
  0
};


struct Reference_MetaInfoInitializer
{  Reference_MetaInfoInitializer()
  {
    ::acdk::lang::dmi::ClazzInfo* ci = Reference::clazzInfo();
    ci->fields =  _Reference_fields;
    ci->methods =  _Reference_methods;
    ci->_scopeParent = acdk_lang_ref_unitInfo.getMetaInfo();
    ci->registerClazzInfo(); // make sure clazzinfo is registered
    ci->_resolveMemberParents();
    ci->flags |= ::acdk::lang::dmi::MiResolved;
  }
};
Reference_MetaInfoInitializer Reference_MetaInfoInitializer_staticinstance__;


} // namespace acdk
} // namespace lang
} // namespace ref

namespace acdk { 
namespace lang { 
namespace ref { 

using namespace acdk::lang;

//static
::acdk::lang::RObject
ReferenceQueue_create_array(int length)
{
  return new ObjectArrayImpl<RReferenceQueue>(length);
}

//static
::acdk::lang::RObject
ReferenceQueue_create_array_array(int firstLength, int secondLength)
{
  return Nil;//not implemented yet
}
class ReferenceQueue_MetainfoWrapper 
{

public:
  static const ::acdk::lang::dmi::ClazzMethodInfo* 
  ReferenceQueue_method_GetClass__L_acdk_lang_RClass__dispatch(::acdk::lang::Object* This_, IN(::acdk::lang::RString) fname, ::acdk::lang::dmi::ScriptVar& ret, ::acdk::lang::dmi::ScriptVarArray& args, ::acdk::lang::dmi::DmiClient& dc, IN(::acdk::lang::RStringArray) namedArgs, int flags, const ::acdk::lang::dmi::ClazzInfo* clazzinfo, const ::acdk::lang::dmi::ClazzMethodInfo* methinf)
  {
    ret = (::acdk::lang::RObject)ReferenceQueue::GetClass();
    return methinf;
  }
  static const ::acdk::lang::dmi::ClazzMethodInfo* 
  ReferenceQueue_method_ReferenceQueue__LRReferenceQueue__dispatch(::acdk::lang::Object* This_, IN(::acdk::lang::RString) fname, ::acdk::lang::dmi::ScriptVar& ret, ::acdk::lang::dmi::ScriptVarArray& args, ::acdk::lang::dmi::DmiClient& dc, IN(::acdk::lang::RStringArray) namedArgs, int flags, const ::acdk::lang::dmi::ClazzInfo* clazzinfo, const ::acdk::lang::dmi::ClazzMethodInfo* methinf)
  {
    ret = (::acdk::lang::RObject)new ReferenceQueue();
    return methinf;
  }
  static const ::acdk::lang::dmi::ClazzMethodInfo* 
  ReferenceQueue_method__dequeue__LRReference__dispatch(::acdk::lang::Object* This_, IN(::acdk::lang::RString) fname, ::acdk::lang::dmi::ScriptVar& ret, ::acdk::lang::dmi::ScriptVarArray& args, ::acdk::lang::dmi::DmiClient& dc, IN(::acdk::lang::RStringArray) namedArgs, int flags, const ::acdk::lang::dmi::ClazzInfo* clazzinfo, const ::acdk::lang::dmi::ClazzMethodInfo* methinf)
  {
    ReferenceQueue* This = dmi_cast<ReferenceQueue>(This_);
    if (flags & ::acdk::lang::dmi::MiIvNoWeakBind)
        ret = (::acdk::lang::RObject)This->ReferenceQueue::_dequeue();
    else
        ret = (::acdk::lang::RObject)This->_dequeue();
    return methinf;
  }
  static const ::acdk::lang::dmi::ClazzMethodInfo* 
  ReferenceQueue_method_enqueue_INLRReference__V_dispatch(::acdk::lang::Object* This_, IN(::acdk::lang::RString) fname, ::acdk::lang::dmi::ScriptVar& ret, ::acdk::lang::dmi::ScriptVarArray& args, ::acdk::lang::dmi::DmiClient& dc, IN(::acdk::lang::RStringArray) namedArgs, int flags, const ::acdk::lang::dmi::ClazzInfo* clazzinfo, const ::acdk::lang::dmi::ClazzMethodInfo* methinf)
  {
    ReferenceQueue* This = dmi_cast<ReferenceQueue>(This_);
    if (flags & ::acdk::lang::dmi::MiIvNoWeakBind)
        This->ReferenceQueue::enqueue(::acdk::lang::dmi::castTo< RReference>(args[0], dc));
    else
        This->enqueue(::acdk::lang::dmi::castTo< RReference>(args[0], dc));
    return methinf;
  }
  static const ::acdk::lang::dmi::ClazzMethodInfo* 
  ReferenceQueue_method_poll__LRReference__dispatch(::acdk::lang::Object* This_, IN(::acdk::lang::RString) fname, ::acdk::lang::dmi::ScriptVar& ret, ::acdk::lang::dmi::ScriptVarArray& args, ::acdk::lang::dmi::DmiClient& dc, IN(::acdk::lang::RStringArray) namedArgs, int flags, const ::acdk::lang::dmi::ClazzInfo* clazzinfo, const ::acdk::lang::dmi::ClazzMethodInfo* methinf)
  {
    ReferenceQueue* This = dmi_cast<ReferenceQueue>(This_);
    if (flags & ::acdk::lang::dmi::MiIvNoWeakBind)
        ret = (::acdk::lang::RObject)This->ReferenceQueue::poll();
    else
        ret = (::acdk::lang::RObject)This->poll();
    return methinf;
  }
  static const ::acdk::lang::dmi::ClazzMethodInfo* 
  ReferenceQueue_method_remove_J_LRReference__dispatch(::acdk::lang::Object* This_, IN(::acdk::lang::RString) fname, ::acdk::lang::dmi::ScriptVar& ret, ::acdk::lang::dmi::ScriptVarArray& args, ::acdk::lang::dmi::DmiClient& dc, IN(::acdk::lang::RStringArray) namedArgs, int flags, const ::acdk::lang::dmi::ClazzInfo* clazzinfo, const ::acdk::lang::dmi::ClazzMethodInfo* methinf)
  {
    ReferenceQueue* This = dmi_cast<ReferenceQueue>(This_);
    if (flags & ::acdk::lang::dmi::MiIvNoWeakBind)
        ret = (::acdk::lang::RObject)This->ReferenceQueue::remove(::acdk::lang::dmi::castTo< jlong>(args[0], dc));
    else
        ret = (::acdk::lang::RObject)This->remove(::acdk::lang::dmi::castTo< jlong>(args[0], dc));
    return methinf;
  }
  static const ::acdk::lang::dmi::ClazzMethodInfo* 
  ReferenceQueue_method_remove__LRReference__dispatch(::acdk::lang::Object* This_, IN(::acdk::lang::RString) fname, ::acdk::lang::dmi::ScriptVar& ret, ::acdk::lang::dmi::ScriptVarArray& args, ::acdk::lang::dmi::DmiClient& dc, IN(::acdk::lang::RStringArray) namedArgs, int flags, const ::acdk::lang::dmi::ClazzInfo* clazzinfo, const ::acdk::lang::dmi::ClazzMethodInfo* methinf)
  {
    ReferenceQueue* This = dmi_cast<ReferenceQueue>(This_);
    if (flags & ::acdk::lang::dmi::MiIvNoWeakBind)
        ret = (::acdk::lang::RObject)This->ReferenceQueue::remove();
    else
        ret = (::acdk::lang::RObject)This->remove();
    return methinf;
  }
  static const ::acdk::lang::dmi::ClazzFieldInfo*
  ReferenceQueue_fields__first_accessor(::acdk::lang::Object* This_, IN(::acdk::lang::RString) fname, ::acdk::lang::dmi::ScriptVar& var, ::acdk::lang::dmi::DmiClient& dc, int flags, const ::acdk::lang::dmi::ClazzInfo* clazzinfo, const ::acdk::lang::dmi::ClazzFieldInfo* fieldinf)
  {
    ReferenceQueue* This = dmi_cast<ReferenceQueue>(This_);
    if (flags & ::acdk::lang::dmi::MiReadOnly)
     var = ::acdk::lang::getScriptVarOf(This->_first, flags);
    else
      This->_first = ::acdk::lang::dmi::castTo< RReference>(var, dc);
    return fieldinf;
  }
};

::acdk::lang::dmi::ClazzFieldInfo ReferenceQueue_fields__first = 
{
  ::acdk::lang::dmi::MiProtected | ::acdk::lang::dmi::MiFieldInfo,
  0, //AttributesRes
  "_first", // name
   -1, // hashCode
   "", // ns
  0, // _scopeParent
  0, // _nextSibling
  RReference::clazzInfo(),
  ReferenceQueue_MetainfoWrapper::ReferenceQueue_fields__first_accessor, // read/write access to this fields
  (void*)0 // address of field
};

::acdk::lang::dmi::ClazzFieldInfo* _ReferenceQueue_fields[] = 
{
  &ReferenceQueue_fields__first,
  0
};

::acdk::lang::dmi::ClazzMethodArgInfo* ReferenceQueue_methods_GetClass__L_acdk_lang_RClass__args[] = 
{
  0
};

::acdk::lang::dmi::ClazzInfo* ReferenceQueue_methods_GetClass__L_acdk_lang_RClass__exceptions[] =
{
  0
};

::acdk::lang::dmi::ClazzMethodInfo ReferenceQueue_method_GetClass__L_acdk_lang_RClass_ = 
{
  ::acdk::lang::dmi::MiPublic | ::acdk::lang::dmi::MiStatic | ::acdk::lang::dmi::MiMethodInfo,// class flags, like static, 
  0, //AttributesRes
  "GetClass", // name of method
  -1, // hashCode
  "", // ns
  0, // _scopeParent
  0, // _nextSibling
  ::acdk::lang::RClass::clazzInfo(), // return type
  "_6_GetClass", // alternative name of method
  -1, // altlabelHashCode
  ReferenceQueue_methods_GetClass__L_acdk_lang_RClass__args, // the arguments
  0, //arguments count
  ReferenceQueue_methods_GetClass__L_acdk_lang_RClass__exceptions, // the declared exceptions
  ReferenceQueue_MetainfoWrapper::ReferenceQueue_method_GetClass__L_acdk_lang_RClass__dispatch, // invoke this method
  ::acdk::lang::dmi::ClazzMethodInfo::DefaultDispatchThrowableFunc, // dispatch throwing exceptions
  0 // cached method signature hash
};

::acdk::lang::dmi::ClazzMethodArgInfo* ReferenceQueue_methods_ReferenceQueue__LRReferenceQueue__args[] = 
{
  0
};

::acdk::lang::dmi::ClazzInfo* ReferenceQueue_methods_ReferenceQueue__LRReferenceQueue__exceptions[] =
{
  0
};

::acdk::lang::dmi::ClazzMethodInfo ReferenceQueue_method_ReferenceQueue__LRReferenceQueue_ = 
{
  ::acdk::lang::dmi::MiPublic | ::acdk::lang::dmi::MiMethodInfo | ::acdk::lang::dmi::MiMiConstructor | ::acdk::lang::dmi::MiMiOrgPoly,// class flags, like static, 
  0, //AttributesRes
  "ReferenceQueue", // name of method
  -1, // hashCode
  "", // ns
  0, // _scopeParent
  0, // _nextSibling
  ReferenceQueue::clazzInfo(), // return type
  "_0_ReferenceQueue", // alternative name of method
  -1, // altlabelHashCode
  ReferenceQueue_methods_ReferenceQueue__LRReferenceQueue__args, // the arguments
  0, //arguments count
  ReferenceQueue_methods_ReferenceQueue__LRReferenceQueue__exceptions, // the declared exceptions
  ReferenceQueue_MetainfoWrapper::ReferenceQueue_method_ReferenceQueue__LRReferenceQueue__dispatch, // invoke this method
  ::acdk::lang::dmi::ClazzMethodInfo::DefaultDispatchThrowableFunc, // dispatch throwing exceptions
  0 // cached method signature hash
};

::acdk::lang::dmi::ClazzMethodArgInfo* ReferenceQueue_methods__dequeue__LRReference__args[] = 
{
  0
};

::acdk::lang::dmi::ClazzInfo* ReferenceQueue_methods__dequeue__LRReference__exceptions[] =
{
  0
};

::acdk::lang::dmi::ClazzMethodInfo ReferenceQueue_method__dequeue__LRReference_ = 
{
  ::acdk::lang::dmi::MiProtected | ::acdk::lang::dmi::MiMethodInfo | ::acdk::lang::dmi::MiMiOrgPoly,// class flags, like static, 
  0, //AttributesRes
  "_dequeue", // name of method
  -1, // hashCode
  "", // ns
  0, // _scopeParent
  0, // _nextSibling
  RReference::clazzInfo(), // return type
  "_5__dequeue", // alternative name of method
  -1, // altlabelHashCode
  ReferenceQueue_methods__dequeue__LRReference__args, // the arguments
  0, //arguments count
  ReferenceQueue_methods__dequeue__LRReference__exceptions, // the declared exceptions
  ReferenceQueue_MetainfoWrapper::ReferenceQueue_method__dequeue__LRReference__dispatch, // invoke this method
  ::acdk::lang::dmi::ClazzMethodInfo::DefaultDispatchThrowableFunc, // dispatch throwing exceptions
  0 // cached method signature hash
};

::acdk::lang::dmi::ClazzMethodArgInfo ReferenceQueue_methods_enqueue_INLRReference__V_arg_ref = 
{
  ::acdk::lang::dmi::MiMethodArgInfo | ::acdk::lang::dmi::MiAiIn, 
  0, //AttributesRes
  "ref", // name of arg
  -1, // hashCode
  "", // ns
  0, // _scopeParent
  0, // _nextSibling
  RReference::clazzInfo() // type or arg
};

::acdk::lang::dmi::ClazzMethodArgInfo* ReferenceQueue_methods_enqueue_INLRReference__V_args[] = 
{
  &ReferenceQueue_methods_enqueue_INLRReference__V_arg_ref,
  0
};

::acdk::lang::dmi::ClazzInfo* ReferenceQueue_methods_enqueue_INLRReference__V_exceptions[] =
{
  0
};

::acdk::lang::dmi::ClazzMethodInfo ReferenceQueue_method_enqueue_INLRReference__V = 
{
  ::acdk::lang::dmi::MiPublic | ::acdk::lang::dmi::MiMethodInfo | ::acdk::lang::dmi::MiMiOrgPoly,// class flags, like static, 
  0, //AttributesRes
  "enqueue", // name of method
  -1, // hashCode
  "", // ns
  0, // _scopeParent
  0, // _nextSibling
  ::acdk::lang::dmi::ClazzInfo::getVoidClazz(), // return type
  "_4_enqueue", // alternative name of method
  -1, // altlabelHashCode
  ReferenceQueue_methods_enqueue_INLRReference__V_args, // the arguments
  0, //arguments count
  ReferenceQueue_methods_enqueue_INLRReference__V_exceptions, // the declared exceptions
  ReferenceQueue_MetainfoWrapper::ReferenceQueue_method_enqueue_INLRReference__V_dispatch, // invoke this method
  ::acdk::lang::dmi::ClazzMethodInfo::DefaultDispatchThrowableFunc, // dispatch throwing exceptions
  0 // cached method signature hash
};

::acdk::lang::dmi::ClazzMethodArgInfo* ReferenceQueue_methods_poll__LRReference__args[] = 
{
  0
};

::acdk::lang::dmi::ClazzInfo* ReferenceQueue_methods_poll__LRReference__exceptions[] =
{
  0
};

::acdk::lang::dmi::ClazzMethodInfo ReferenceQueue_method_poll__LRReference_ = 
{
  ::acdk::lang::dmi::MiPublic | ::acdk::lang::dmi::MiMethodInfo | ::acdk::lang::dmi::MiMiOrgPoly,// class flags, like static, 
  0, //AttributesRes
  "poll", // name of method
  -1, // hashCode
  "", // ns
  0, // _scopeParent
  0, // _nextSibling
  RReference::clazzInfo(), // return type
  "_1_poll", // alternative name of method
  -1, // altlabelHashCode
  ReferenceQueue_methods_poll__LRReference__args, // the arguments
  0, //arguments count
  ReferenceQueue_methods_poll__LRReference__exceptions, // the declared exceptions
  ReferenceQueue_MetainfoWrapper::ReferenceQueue_method_poll__LRReference__dispatch, // invoke this method
  ::acdk::lang::dmi::ClazzMethodInfo::DefaultDispatchThrowableFunc, // dispatch throwing exceptions
  0 // cached method signature hash
};

::acdk::lang::dmi::ClazzMethodArgInfo ReferenceQueue_methods_remove_J_LRReference__arg_timeout = 
{
  ::acdk::lang::dmi::MiMethodArgInfo | ::acdk::lang::dmi::MiAiHasDefaultInit, 
  0, //AttributesRes
  "timeout", // name of arg
  -1, // hashCode
  "", // ns
  0, // _scopeParent
  0, // _nextSibling
  ::acdk::lang::dmi::ClazzInfo::getLongClazz() // type or arg
};

::acdk::lang::dmi::ClazzMethodArgInfo* ReferenceQueue_methods_remove_J_LRReference__args[] = 
{
  &ReferenceQueue_methods_remove_J_LRReference__arg_timeout,
  0
};

::acdk::lang::dmi::ClazzInfo* ReferenceQueue_methods_remove_J_LRReference__exceptions[] =
{
  0
};

::acdk::lang::dmi::ClazzMethodInfo ReferenceQueue_method_remove_J_LRReference_ = 
{
  ::acdk::lang::dmi::MiPublic | ::acdk::lang::dmi::MiMethodInfo | ::acdk::lang::dmi::MiMiOrgPoly,// class flags, like static, 
  0, //AttributesRes
  "remove", // name of method
  -1, // hashCode
  "", // ns
  0, // _scopeParent
  0, // _nextSibling
  RReference::clazzInfo(), // return type
  "_2_remove", // alternative name of method
  -1, // altlabelHashCode
  ReferenceQueue_methods_remove_J_LRReference__args, // the arguments
  0, //arguments count
  ReferenceQueue_methods_remove_J_LRReference__exceptions, // the declared exceptions
  ReferenceQueue_MetainfoWrapper::ReferenceQueue_method_remove_J_LRReference__dispatch, // invoke this method
  ::acdk::lang::dmi::ClazzMethodInfo::DefaultDispatchThrowableFunc, // dispatch throwing exceptions
  0 // cached method signature hash
};

::acdk::lang::dmi::ClazzMethodArgInfo* ReferenceQueue_methods_remove__LRReference__args[] = 
{
  0
};

::acdk::lang::dmi::ClazzInfo* ReferenceQueue_methods_remove__LRReference__exceptions[] =
{
  0
};

::acdk::lang::dmi::ClazzMethodInfo ReferenceQueue_method_remove__LRReference_ = 
{
  ::acdk::lang::dmi::MiPublic | ::acdk::lang::dmi::MiMethodInfo,// class flags, like static, 
  0, //AttributesRes
  "remove", // name of method
  -1, // hashCode
  "", // ns
  0, // _scopeParent
  0, // _nextSibling
  RReference::clazzInfo(), // return type
  "_3_remove", // alternative name of method
  -1, // altlabelHashCode
  ReferenceQueue_methods_remove__LRReference__args, // the arguments
  0, //arguments count
  ReferenceQueue_methods_remove__LRReference__exceptions, // the declared exceptions
  ReferenceQueue_MetainfoWrapper::ReferenceQueue_method_remove__LRReference__dispatch, // invoke this method
  ::acdk::lang::dmi::ClazzMethodInfo::DefaultDispatchThrowableFunc, // dispatch throwing exceptions
  0 // cached method signature hash
};

::acdk::lang::dmi::ClazzMethodInfo* _ReferenceQueue_methods[] = 
{
  &ReferenceQueue_method_GetClass__L_acdk_lang_RClass_,
  &ReferenceQueue_method_ReferenceQueue__LRReferenceQueue_,
  &ReferenceQueue_method__dequeue__LRReference_,
  &ReferenceQueue_method_enqueue_INLRReference__V,
  &ReferenceQueue_method_poll__LRReference_,
  &ReferenceQueue_method_remove_J_LRReference_,
  &ReferenceQueue_method_remove__LRReference_,
  0
};


struct ReferenceQueue_MetaInfoInitializer
{  ReferenceQueue_MetaInfoInitializer()
  {
    ::acdk::lang::dmi::ClazzInfo* ci = ReferenceQueue::clazzInfo();
    ci->fields =  _ReferenceQueue_fields;
    ci->methods =  _ReferenceQueue_methods;
    ci->_scopeParent = acdk_lang_ref_unitInfo.getMetaInfo();
    ci->registerClazzInfo(); // make sure clazzinfo is registered
    ci->_resolveMemberParents();
    ci->flags |= ::acdk::lang::dmi::MiResolved;
  }
};
ReferenceQueue_MetaInfoInitializer ReferenceQueue_MetaInfoInitializer_staticinstance__;


} // namespace acdk
} // namespace lang
} // namespace ref

namespace acdk { 
namespace lang { 
namespace ref { 

using namespace acdk::lang;

//static
::acdk::lang::RObject
SoftReference_create_array(int length)
{
  return new ObjectArrayImpl<RSoftReference>(length);
}

//static
::acdk::lang::RObject
SoftReference_create_array_array(int firstLength, int secondLength)
{
  return Nil;//not implemented yet
}
class SoftReference_MetainfoWrapper 
{

public:
  static const ::acdk::lang::dmi::ClazzMethodInfo* 
  SoftReference_method_GetClass__L_acdk_lang_RClass__dispatch(::acdk::lang::Object* This_, IN(::acdk::lang::RString) fname, ::acdk::lang::dmi::ScriptVar& ret, ::acdk::lang::dmi::ScriptVarArray& args, ::acdk::lang::dmi::DmiClient& dc, IN(::acdk::lang::RStringArray) namedArgs, int flags, const ::acdk::lang::dmi::ClazzInfo* clazzinfo, const ::acdk::lang::dmi::ClazzMethodInfo* methinf)
  {
    ret = (::acdk::lang::RObject)SoftReference::GetClass();
    return methinf;
  }
  static const ::acdk::lang::dmi::ClazzMethodInfo* 
  SoftReference_method_SoftReference_INLRObject_INLRReferenceQueue__LRSoftReference__dispatch(::acdk::lang::Object* This_, IN(::acdk::lang::RString) fname, ::acdk::lang::dmi::ScriptVar& ret, ::acdk::lang::dmi::ScriptVarArray& args, ::acdk::lang::dmi::DmiClient& dc, IN(::acdk::lang::RStringArray) namedArgs, int flags, const ::acdk::lang::dmi::ClazzInfo* clazzinfo, const ::acdk::lang::dmi::ClazzMethodInfo* methinf)
  {
    ret = (::acdk::lang::RObject)new SoftReference(::acdk::lang::dmi::castTo< acdk::lang::Object>(args[0], dc), ::acdk::lang::dmi::castTo< RReferenceQueue>(args[1], dc));
    return methinf;
  }
  static const ::acdk::lang::dmi::ClazzMethodInfo* 
  SoftReference_method_SoftReference_INLRObject__LRSoftReference__dispatch(::acdk::lang::Object* This_, IN(::acdk::lang::RString) fname, ::acdk::lang::dmi::ScriptVar& ret, ::acdk::lang::dmi::ScriptVarArray& args, ::acdk::lang::dmi::DmiClient& dc, IN(::acdk::lang::RStringArray) namedArgs, int flags, const ::acdk::lang::dmi::ClazzInfo* clazzinfo, const ::acdk::lang::dmi::ClazzMethodInfo* methinf)
  {
    ret = (::acdk::lang::RObject)new SoftReference(::acdk::lang::dmi::castTo< acdk::lang::Object>(args[0], dc));
    return methinf;
  }
};

::acdk::lang::dmi::ClazzFieldInfo* _SoftReference_fields[] = 
{
  0
};

::acdk::lang::dmi::ClazzMethodArgInfo* SoftReference_methods_GetClass__L_acdk_lang_RClass__args[] = 
{
  0
};

::acdk::lang::dmi::ClazzInfo* SoftReference_methods_GetClass__L_acdk_lang_RClass__exceptions[] =
{
  0
};

::acdk::lang::dmi::ClazzMethodInfo SoftReference_method_GetClass__L_acdk_lang_RClass_ = 
{
  ::acdk::lang::dmi::MiPublic | ::acdk::lang::dmi::MiStatic | ::acdk::lang::dmi::MiMethodInfo,// class flags, like static, 
  0, //AttributesRes
  "GetClass", // name of method
  -1, // hashCode
  "", // ns
  0, // _scopeParent
  0, // _nextSibling
  ::acdk::lang::RClass::clazzInfo(), // return type
  "_2_GetClass", // alternative name of method
  -1, // altlabelHashCode
  SoftReference_methods_GetClass__L_acdk_lang_RClass__args, // the arguments
  0, //arguments count
  SoftReference_methods_GetClass__L_acdk_lang_RClass__exceptions, // the declared exceptions
  SoftReference_MetainfoWrapper::SoftReference_method_GetClass__L_acdk_lang_RClass__dispatch, // invoke this method
  ::acdk::lang::dmi::ClazzMethodInfo::DefaultDispatchThrowableFunc, // dispatch throwing exceptions
  0 // cached method signature hash
};

::acdk::lang::dmi::ClazzMethodArgInfo SoftReference_methods_SoftReference_INLRObject_INLRReferenceQueue__LRSoftReference__arg_ref = 
{
  ::acdk::lang::dmi::MiMethodArgInfo | ::acdk::lang::dmi::MiAiIn, 
  0, //AttributesRes
  "ref", // name of arg
  -1, // hashCode
  "", // ns
  0, // _scopeParent
  0, // _nextSibling
  acdk::lang::Object::clazzInfo() // type or arg
};

::acdk::lang::dmi::ClazzMethodArgInfo SoftReference_methods_SoftReference_INLRObject_INLRReferenceQueue__LRSoftReference__arg_queue = 
{
  ::acdk::lang::dmi::MiMethodArgInfo | ::acdk::lang::dmi::MiAiIn | ::acdk::lang::dmi::MiAiHasDefaultInit, 
  0, //AttributesRes
  "queue", // name of arg
  -1, // hashCode
  "", // ns
  0, // _scopeParent
  0, // _nextSibling
  RReferenceQueue::clazzInfo() // type or arg
};

::acdk::lang::dmi::ClazzMethodArgInfo* SoftReference_methods_SoftReference_INLRObject_INLRReferenceQueue__LRSoftReference__args[] = 
{
  &SoftReference_methods_SoftReference_INLRObject_INLRReferenceQueue__LRSoftReference__arg_ref,
  &SoftReference_methods_SoftReference_INLRObject_INLRReferenceQueue__LRSoftReference__arg_queue,
  0
};

::acdk::lang::dmi::ClazzInfo* SoftReference_methods_SoftReference_INLRObject_INLRReferenceQueue__LRSoftReference__exceptions[] =
{
  0
};

::acdk::lang::dmi::ClazzMethodInfo SoftReference_method_SoftReference_INLRObject_INLRReferenceQueue__LRSoftReference_ = 
{
  ::acdk::lang::dmi::MiPublic | ::acdk::lang::dmi::MiMethodInfo | ::acdk::lang::dmi::MiMiConstructor | ::acdk::lang::dmi::MiMiOrgPoly,// class flags, like static, 
  0, //AttributesRes
  "SoftReference", // name of method
  -1, // hashCode
  "", // ns
  0, // _scopeParent
  0, // _nextSibling
  SoftReference::clazzInfo(), // return type
  "_0_SoftReference", // alternative name of method
  -1, // altlabelHashCode
  SoftReference_methods_SoftReference_INLRObject_INLRReferenceQueue__LRSoftReference__args, // the arguments
  0, //arguments count
  SoftReference_methods_SoftReference_INLRObject_INLRReferenceQueue__LRSoftReference__exceptions, // the declared exceptions
  SoftReference_MetainfoWrapper::SoftReference_method_SoftReference_INLRObject_INLRReferenceQueue__LRSoftReference__dispatch, // invoke this method
  ::acdk::lang::dmi::ClazzMethodInfo::DefaultDispatchThrowableFunc, // dispatch throwing exceptions
  0 // cached method signature hash
};

::acdk::lang::dmi::ClazzMethodArgInfo SoftReference_methods_SoftReference_INLRObject__LRSoftReference__arg_ref = 
{
  ::acdk::lang::dmi::MiMethodArgInfo | ::acdk::lang::dmi::MiAiIn, 
  0, //AttributesRes
  "ref", // name of arg
  -1, // hashCode
  "", // ns
  0, // _scopeParent
  0, // _nextSibling
  acdk::lang::Object::clazzInfo() // type or arg
};

::acdk::lang::dmi::ClazzMethodArgInfo* SoftReference_methods_SoftReference_INLRObject__LRSoftReference__args[] = 
{
  &SoftReference_methods_SoftReference_INLRObject__LRSoftReference__arg_ref,
  0
};

::acdk::lang::dmi::ClazzInfo* SoftReference_methods_SoftReference_INLRObject__LRSoftReference__exceptions[] =
{
  0
};

::acdk::lang::dmi::ClazzMethodInfo SoftReference_method_SoftReference_INLRObject__LRSoftReference_ = 
{
  ::acdk::lang::dmi::MiPublic | ::acdk::lang::dmi::MiMethodInfo | ::acdk::lang::dmi::MiMiConstructor,// class flags, like static, 
  0, //AttributesRes
  "SoftReference", // name of method
  -1, // hashCode
  "", // ns
  0, // _scopeParent
  0, // _nextSibling
  SoftReference::clazzInfo(), // return type
  "_1_SoftReference", // alternative name of method
  -1, // altlabelHashCode
  SoftReference_methods_SoftReference_INLRObject__LRSoftReference__args, // the arguments
  0, //arguments count
  SoftReference_methods_SoftReference_INLRObject__LRSoftReference__exceptions, // the declared exceptions
  SoftReference_MetainfoWrapper::SoftReference_method_SoftReference_INLRObject__LRSoftReference__dispatch, // invoke this method
  ::acdk::lang::dmi::ClazzMethodInfo::DefaultDispatchThrowableFunc, // dispatch throwing exceptions
  0 // cached method signature hash
};

::acdk::lang::dmi::ClazzMethodInfo* _SoftReference_methods[] = 
{
  &SoftReference_method_GetClass__L_acdk_lang_RClass_,
  &SoftReference_method_SoftReference_INLRObject_INLRReferenceQueue__LRSoftReference_,
  &SoftReference_method_SoftReference_INLRObject__LRSoftReference_,
  0
};


struct SoftReference_MetaInfoInitializer
{  SoftReference_MetaInfoInitializer()
  {
    ::acdk::lang::dmi::ClazzInfo* ci = SoftReference::clazzInfo();
    ci->fields =  _SoftReference_fields;
    ci->methods =  _SoftReference_methods;
    ci->_scopeParent = acdk_lang_ref_unitInfo.getMetaInfo();
    ci->registerClazzInfo(); // make sure clazzinfo is registered
    ci->_resolveMemberParents();
    ci->flags |= ::acdk::lang::dmi::MiResolved;
  }
};
SoftReference_MetaInfoInitializer SoftReference_MetaInfoInitializer_staticinstance__;


} // namespace acdk
} // namespace lang
} // namespace ref

namespace acdk { 
namespace lang { 
namespace ref { 

using namespace acdk::lang;

//static
::acdk::lang::RObject
WeakReference_create_array(int length)
{
  return new ObjectArrayImpl<RWeakReference>(length);
}

//static
::acdk::lang::RObject
WeakReference_create_array_array(int firstLength, int secondLength)
{
  return Nil;//not implemented yet
}
class WeakReference_MetainfoWrapper 
{

public:
  static const ::acdk::lang::dmi::ClazzMethodInfo* 
  WeakReference_method_GetClass__L_acdk_lang_RClass__dispatch(::acdk::lang::Object* This_, IN(::acdk::lang::RString) fname, ::acdk::lang::dmi::ScriptVar& ret, ::acdk::lang::dmi::ScriptVarArray& args, ::acdk::lang::dmi::DmiClient& dc, IN(::acdk::lang::RStringArray) namedArgs, int flags, const ::acdk::lang::dmi::ClazzInfo* clazzinfo, const ::acdk::lang::dmi::ClazzMethodInfo* methinf)
  {
    ret = (::acdk::lang::RObject)WeakReference::GetClass();
    return methinf;
  }
  static const ::acdk::lang::dmi::ClazzMethodInfo* 
  WeakReference_method_WeakReference_INLRObject_INLRReferenceQueue__LRWeakReference__dispatch(::acdk::lang::Object* This_, IN(::acdk::lang::RString) fname, ::acdk::lang::dmi::ScriptVar& ret, ::acdk::lang::dmi::ScriptVarArray& args, ::acdk::lang::dmi::DmiClient& dc, IN(::acdk::lang::RStringArray) namedArgs, int flags, const ::acdk::lang::dmi::ClazzInfo* clazzinfo, const ::acdk::lang::dmi::ClazzMethodInfo* methinf)
  {
    ret = (::acdk::lang::RObject)new WeakReference(::acdk::lang::dmi::castTo< acdk::lang::Object>(args[0], dc), ::acdk::lang::dmi::castTo< RReferenceQueue>(args[1], dc));
    return methinf;
  }
  static const ::acdk::lang::dmi::ClazzMethodInfo* 
  WeakReference_method_WeakReference_INLRObject__LRWeakReference__dispatch(::acdk::lang::Object* This_, IN(::acdk::lang::RString) fname, ::acdk::lang::dmi::ScriptVar& ret, ::acdk::lang::dmi::ScriptVarArray& args, ::acdk::lang::dmi::DmiClient& dc, IN(::acdk::lang::RStringArray) namedArgs, int flags, const ::acdk::lang::dmi::ClazzInfo* clazzinfo, const ::acdk::lang::dmi::ClazzMethodInfo* methinf)
  {
    ret = (::acdk::lang::RObject)new WeakReference(::acdk::lang::dmi::castTo< acdk::lang::Object>(args[0], dc));
    return methinf;
  }
  static const ::acdk::lang::dmi::ClazzMethodInfo* 
  WeakReference_method_get__LRObject__dispatch(::acdk::lang::Object* This_, IN(::acdk::lang::RString) fname, ::acdk::lang::dmi::ScriptVar& ret, ::acdk::lang::dmi::ScriptVarArray& args, ::acdk::lang::dmi::DmiClient& dc, IN(::acdk::lang::RStringArray) namedArgs, int flags, const ::acdk::lang::dmi::ClazzInfo* clazzinfo, const ::acdk::lang::dmi::ClazzMethodInfo* methinf)
  {
    WeakReference* This = dmi_cast<WeakReference>(This_);
    if (flags & ::acdk::lang::dmi::MiIvNoWeakBind)
        ret = (::acdk::lang::RObject)This->WeakReference::get();
    else
        ret = (::acdk::lang::RObject)This->get();
    return methinf;
  }
};

::acdk::lang::dmi::ClazzFieldInfo* _WeakReference_fields[] = 
{
  0
};

::acdk::lang::dmi::ClazzMethodArgInfo* WeakReference_methods_GetClass__L_acdk_lang_RClass__args[] = 
{
  0
};

::acdk::lang::dmi::ClazzInfo* WeakReference_methods_GetClass__L_acdk_lang_RClass__exceptions[] =
{
  0
};

::acdk::lang::dmi::ClazzMethodInfo WeakReference_method_GetClass__L_acdk_lang_RClass_ = 
{
  ::acdk::lang::dmi::MiPublic | ::acdk::lang::dmi::MiStatic | ::acdk::lang::dmi::MiMethodInfo,// class flags, like static, 
  0, //AttributesRes
  "GetClass", // name of method
  -1, // hashCode
  "", // ns
  0, // _scopeParent
  0, // _nextSibling
  ::acdk::lang::RClass::clazzInfo(), // return type
  "_3_GetClass", // alternative name of method
  -1, // altlabelHashCode
  WeakReference_methods_GetClass__L_acdk_lang_RClass__args, // the arguments
  0, //arguments count
  WeakReference_methods_GetClass__L_acdk_lang_RClass__exceptions, // the declared exceptions
  WeakReference_MetainfoWrapper::WeakReference_method_GetClass__L_acdk_lang_RClass__dispatch, // invoke this method
  ::acdk::lang::dmi::ClazzMethodInfo::DefaultDispatchThrowableFunc, // dispatch throwing exceptions
  0 // cached method signature hash
};

::acdk::lang::dmi::ClazzMethodArgInfo WeakReference_methods_WeakReference_INLRObject_INLRReferenceQueue__LRWeakReference__arg_ref = 
{
  ::acdk::lang::dmi::MiMethodArgInfo | ::acdk::lang::dmi::MiAiIn, 
  0, //AttributesRes
  "ref", // name of arg
  -1, // hashCode
  "", // ns
  0, // _scopeParent
  0, // _nextSibling
  acdk::lang::Object::clazzInfo() // type or arg
};

::acdk::lang::dmi::ClazzMethodArgInfo WeakReference_methods_WeakReference_INLRObject_INLRReferenceQueue__LRWeakReference__arg_queue = 
{
  ::acdk::lang::dmi::MiMethodArgInfo | ::acdk::lang::dmi::MiAiIn | ::acdk::lang::dmi::MiAiHasDefaultInit, 
  0, //AttributesRes
  "queue", // name of arg
  -1, // hashCode
  "", // ns
  0, // _scopeParent
  0, // _nextSibling
  RReferenceQueue::clazzInfo() // type or arg
};

::acdk::lang::dmi::ClazzMethodArgInfo* WeakReference_methods_WeakReference_INLRObject_INLRReferenceQueue__LRWeakReference__args[] = 
{
  &WeakReference_methods_WeakReference_INLRObject_INLRReferenceQueue__LRWeakReference__arg_ref,
  &WeakReference_methods_WeakReference_INLRObject_INLRReferenceQueue__LRWeakReference__arg_queue,
  0
};

::acdk::lang::dmi::ClazzInfo* WeakReference_methods_WeakReference_INLRObject_INLRReferenceQueue__LRWeakReference__exceptions[] =
{
  0
};

::acdk::lang::dmi::ClazzMethodInfo WeakReference_method_WeakReference_INLRObject_INLRReferenceQueue__LRWeakReference_ = 
{
  ::acdk::lang::dmi::MiPublic | ::acdk::lang::dmi::MiMethodInfo | ::acdk::lang::dmi::MiMiConstructor | ::acdk::lang::dmi::MiMiOrgPoly,// class flags, like static, 
  0, //AttributesRes
  "WeakReference", // name of method
  -1, // hashCode
  "", // ns
  0, // _scopeParent
  0, // _nextSibling
  WeakReference::clazzInfo(), // return type
  "_0_WeakReference", // alternative name of method
  -1, // altlabelHashCode
  WeakReference_methods_WeakReference_INLRObject_INLRReferenceQueue__LRWeakReference__args, // the arguments
  0, //arguments count
  WeakReference_methods_WeakReference_INLRObject_INLRReferenceQueue__LRWeakReference__exceptions, // the declared exceptions
  WeakReference_MetainfoWrapper::WeakReference_method_WeakReference_INLRObject_INLRReferenceQueue__LRWeakReference__dispatch, // invoke this method
  ::acdk::lang::dmi::ClazzMethodInfo::DefaultDispatchThrowableFunc, // dispatch throwing exceptions
  0 // cached method signature hash
};

::acdk::lang::dmi::ClazzMethodArgInfo WeakReference_methods_WeakReference_INLRObject__LRWeakReference__arg_ref = 
{
  ::acdk::lang::dmi::MiMethodArgInfo | ::acdk::lang::dmi::MiAiIn, 
  0, //AttributesRes
  "ref", // name of arg
  -1, // hashCode
  "", // ns
  0, // _scopeParent
  0, // _nextSibling
  acdk::lang::Object::clazzInfo() // type or arg
};

::acdk::lang::dmi::ClazzMethodArgInfo* WeakReference_methods_WeakReference_INLRObject__LRWeakReference__args[] = 
{
  &WeakReference_methods_WeakReference_INLRObject__LRWeakReference__arg_ref,
  0
};

::acdk::lang::dmi::ClazzInfo* WeakReference_methods_WeakReference_INLRObject__LRWeakReference__exceptions[] =
{
  0
};

::acdk::lang::dmi::ClazzMethodInfo WeakReference_method_WeakReference_INLRObject__LRWeakReference_ = 
{
  ::acdk::lang::dmi::MiPublic | ::acdk::lang::dmi::MiMethodInfo | ::acdk::lang::dmi::MiMiConstructor,// class flags, like static, 
  0, //AttributesRes
  "WeakReference", // name of method
  -1, // hashCode
  "", // ns
  0, // _scopeParent
  0, // _nextSibling
  WeakReference::clazzInfo(), // return type
  "_1_WeakReference", // alternative name of method
  -1, // altlabelHashCode
  WeakReference_methods_WeakReference_INLRObject__LRWeakReference__args, // the arguments
  0, //arguments count
  WeakReference_methods_WeakReference_INLRObject__LRWeakReference__exceptions, // the declared exceptions
  WeakReference_MetainfoWrapper::WeakReference_method_WeakReference_INLRObject__LRWeakReference__dispatch, // invoke this method
  ::acdk::lang::dmi::ClazzMethodInfo::DefaultDispatchThrowableFunc, // dispatch throwing exceptions
  0 // cached method signature hash
};

::acdk::lang::dmi::ClazzMethodArgInfo* WeakReference_methods_get__LRObject__args[] = 
{
  0
};

::acdk::lang::dmi::ClazzInfo* WeakReference_methods_get__LRObject__exceptions[] =
{
  0
};

::acdk::lang::dmi::ClazzMethodInfo WeakReference_method_get__LRObject_ = 
{
  ::acdk::lang::dmi::MiPublic | ::acdk::lang::dmi::MiMethodInfo | ::acdk::lang::dmi::MiMiVirtual | ::acdk::lang::dmi::MiMiOrgPoly,// class flags, like static, 
  0, //AttributesRes
  "get", // name of method
  -1, // hashCode
  "", // ns
  0, // _scopeParent
  0, // _nextSibling
  acdk::lang::Object::clazzInfo(), // return type
  "_2_get", // alternative name of method
  -1, // altlabelHashCode
  WeakReference_methods_get__LRObject__args, // the arguments
  0, //arguments count
  WeakReference_methods_get__LRObject__exceptions, // the declared exceptions
  WeakReference_MetainfoWrapper::WeakReference_method_get__LRObject__dispatch, // invoke this method
  ::acdk::lang::dmi::ClazzMethodInfo::DefaultDispatchThrowableFunc, // dispatch throwing exceptions
  0 // cached method signature hash
};

::acdk::lang::dmi::ClazzMethodInfo* _WeakReference_methods[] = 
{
  &WeakReference_method_GetClass__L_acdk_lang_RClass_,
  &WeakReference_method_WeakReference_INLRObject_INLRReferenceQueue__LRWeakReference_,
  &WeakReference_method_WeakReference_INLRObject__LRWeakReference_,
  &WeakReference_method_get__LRObject_,
  0
};


struct WeakReference_MetaInfoInitializer
{  WeakReference_MetaInfoInitializer()
  {
    ::acdk::lang::dmi::ClazzInfo* ci = WeakReference::clazzInfo();
    ci->fields =  _WeakReference_fields;
    ci->methods =  _WeakReference_methods;
    ci->_scopeParent = acdk_lang_ref_unitInfo.getMetaInfo();
    ci->registerClazzInfo(); // make sure clazzinfo is registered
    ci->_resolveMemberParents();
    ci->flags |= ::acdk::lang::dmi::MiResolved;
  }
};
WeakReference_MetaInfoInitializer WeakReference_MetaInfoInitializer_staticinstance__;


} // namespace acdk
} // namespace lang
} // namespace ref

#if defined(ACDK_OS_WIN32)
// force to create an import lib on windows platforms
void __declspec(dllexport) ref_dummyExportFunc() {}
#endif
/FONT>