static IntPtr n_Wrap_Lcom_mikepenz_fastadapter_IAdapter_(IntPtr jnienv, IntPtr native__this, IntPtr native_p0)
        {
            global::Com.Mikepenz.Fastadapter.AbstractAdapter __this = global::Java.Lang.Object.GetObject <global::Com.Mikepenz.Fastadapter.AbstractAdapter> (jnienv, native__this, JniHandleOwnership.DoNotTransfer);
            global::Com.Mikepenz.Fastadapter.IAdapter        p0     = (global::Com.Mikepenz.Fastadapter.IAdapter)global::Java.Lang.Object.GetObject <global::Com.Mikepenz.Fastadapter.IAdapter> (native_p0, JniHandleOwnership.DoNotTransfer);
            IntPtr __ret = JNIEnv.ToLocalJniHandle(__this.Wrap(p0));

            return(__ret);
        }
        public virtual unsafe global::Com.Mikepenz.Fastadapter.AbstractAdapter Wrap(global::Com.Mikepenz.Fastadapter.IAdapter p0)
        {
            if (id_wrap_Lcom_mikepenz_fastadapter_IAdapter_ == IntPtr.Zero)
            {
                id_wrap_Lcom_mikepenz_fastadapter_IAdapter_ = JNIEnv.GetMethodID(class_ref, "wrap", "(Lcom/mikepenz/fastadapter/IAdapter;)Lcom/mikepenz/fastadapter/AbstractAdapter;");
            }
            try {
                JValue *__args = stackalloc JValue [1];
                __args [0] = new JValue(p0);

                global::Com.Mikepenz.Fastadapter.AbstractAdapter __ret;
                if (GetType() == ThresholdType)
                {
                    __ret = global::Java.Lang.Object.GetObject <global::Com.Mikepenz.Fastadapter.AbstractAdapter> (JNIEnv.CallObjectMethod(((global::Java.Lang.Object) this).Handle, id_wrap_Lcom_mikepenz_fastadapter_IAdapter_, __args), JniHandleOwnership.TransferLocalRef);
                }
                else
                {
                    __ret = global::Java.Lang.Object.GetObject <global::Com.Mikepenz.Fastadapter.AbstractAdapter> (JNIEnv.CallNonvirtualObjectMethod(((global::Java.Lang.Object) this).Handle, ThresholdClass, JNIEnv.GetMethodID(ThresholdClass, "wrap", "(Lcom/mikepenz/fastadapter/IAdapter;)Lcom/mikepenz/fastadapter/AbstractAdapter;"), __args), JniHandleOwnership.TransferLocalRef);
                }
                return(__ret);
            } finally {
            }
        }