static IntPtr n_ToJson_Ljava_lang_Object_(IntPtr jnienv, IntPtr native__this, IntPtr native_p0)
        {
            global::Com.Spotify.Protocol.Mappers.IJsonMapper __this = global::Java.Lang.Object.GetObject <global::Com.Spotify.Protocol.Mappers.IJsonMapper> (jnienv, native__this, JniHandleOwnership.DoNotTransfer);
            global::Java.Lang.Object p0 = global::Java.Lang.Object.GetObject <global::Java.Lang.Object> (native_p0, JniHandleOwnership.DoNotTransfer);
            IntPtr __ret = JNIEnv.NewString(__this.ToJson(p0));

            return(__ret);
        }
        static IntPtr n_ToJsonArray_Ljava_lang_String_(IntPtr jnienv, IntPtr native__this, IntPtr native_p0)
        {
            global::Com.Spotify.Protocol.Mappers.IJsonMapper __this = global::Java.Lang.Object.GetObject <global::Com.Spotify.Protocol.Mappers.IJsonMapper> (jnienv, native__this, JniHandleOwnership.DoNotTransfer);
            string p0    = JNIEnv.GetString(native_p0, JniHandleOwnership.DoNotTransfer);
            IntPtr __ret = JNIEnv.ToLocalJniHandle(__this.ToJsonArray(p0));

            return(__ret);
        }
            static IntPtr n_SetJsonMapper_Lcom_spotify_protocol_mappers_JsonMapper_(IntPtr jnienv, IntPtr native__this, IntPtr native_mapper)
            {
                global::Com.Spotify.Android.Appremote.Api.ConnectionParams.Builder __this = global::Java.Lang.Object.GetObject <global::Com.Spotify.Android.Appremote.Api.ConnectionParams.Builder> (jnienv, native__this, JniHandleOwnership.DoNotTransfer);
                global::Com.Spotify.Protocol.Mappers.IJsonMapper mapper = (global::Com.Spotify.Protocol.Mappers.IJsonMapper)global::Java.Lang.Object.GetObject <global::Com.Spotify.Protocol.Mappers.IJsonMapper> (native_mapper, JniHandleOwnership.DoNotTransfer);
                IntPtr __ret = JNIEnv.ToLocalJniHandle(__this.SetJsonMapper(mapper));

                return(__ret);
            }
        public unsafe AppProtocolCommunicator(global::Com.Spotify.Protocol.Client.ConnectionDetails connectionDetails, global::Com.Spotify.Protocol.Mappers.IJsonMapper mapper, global::Com.Spotify.Protocol.Client.IAppProtocolIo protocolIo)
            : base(IntPtr.Zero, JniHandleOwnership.DoNotTransfer)
        {
            const string __id = "(Lcom/spotify/protocol/client/ConnectionDetails;Lcom/spotify/protocol/mappers/JsonMapper;Lcom/spotify/protocol/client/AppProtocolIo;)V";

            if (((global::Java.Lang.Object) this).Handle != IntPtr.Zero)
            {
                return;
            }

            try {
                JniArgumentValue *__args = stackalloc JniArgumentValue [3];
                __args [0] = new JniArgumentValue((connectionDetails == null) ? IntPtr.Zero : ((global::Java.Lang.Object)connectionDetails).Handle);
                __args [1] = new JniArgumentValue((mapper == null) ? IntPtr.Zero : ((global::Java.Lang.Object)mapper).Handle);
                __args [2] = new JniArgumentValue((protocolIo == null) ? IntPtr.Zero : ((global::Java.Lang.Object)protocolIo).Handle);
                var __r = _members.InstanceMethods.StartCreateInstance(__id, ((object)this).GetType(), __args);
                SetHandle(__r.Handle, JniHandleOwnership.TransferLocalRef);
                _members.InstanceMethods.FinishCreateInstance(__id, this, __args);
            } finally {
            }
        }
            public virtual unsafe global::Com.Spotify.Android.Appremote.Api.ConnectionParams.Builder SetJsonMapper(global::Com.Spotify.Protocol.Mappers.IJsonMapper mapper)
            {
                const string __id = "setJsonMapper.(Lcom/spotify/protocol/mappers/JsonMapper;)Lcom/spotify/android/appremote/api/ConnectionParams$Builder;";

                try {
                    JniArgumentValue *__args = stackalloc JniArgumentValue [1];
                    __args [0] = new JniArgumentValue((mapper == null) ? IntPtr.Zero : ((global::Java.Lang.Object)mapper).Handle);
                    var __rm = _members.InstanceMethods.InvokeVirtualObjectMethod(__id, this, __args);
                    return(global::Java.Lang.Object.GetObject <global::Com.Spotify.Android.Appremote.Api.ConnectionParams.Builder> (__rm.Handle, JniHandleOwnership.TransferLocalRef));
                } finally {
                }
            }