public unsafe global::Com.Algorithmia.Algo.Algorithm SetOutputType(global::Com.Algorithmia.Algo.Algorithm.AlgorithmOutputType p0)
 {
     if (id_setOutputType_Lcom_algorithmia_algo_Algorithm_AlgorithmOutputType_ == IntPtr.Zero)
     {
         id_setOutputType_Lcom_algorithmia_algo_Algorithm_AlgorithmOutputType_ = JNIEnv.GetMethodID(class_ref, "setOutputType", "(Lcom/algorithmia/algo/Algorithm$AlgorithmOutputType;)Lcom/algorithmia/algo/Algorithm;");
     }
     try {
         JValue *__args = stackalloc JValue [1];
         __args [0] = new JValue(p0);
         global::Com.Algorithmia.Algo.Algorithm __ret = global::Java.Lang.Object.GetObject <global::Com.Algorithmia.Algo.Algorithm> (JNIEnv.CallObjectMethod(((global::Java.Lang.Object) this).Handle, id_setOutputType_Lcom_algorithmia_algo_Algorithm_AlgorithmOutputType_, __args), JniHandleOwnership.TransferLocalRef);
         return(__ret);
     } finally {
     }
 }
 public unsafe global::Com.Algorithmia.Algo.Algorithm SetTimeout(global::Java.Lang.Long p0, global::Java.Util.Concurrent.TimeUnit p1)
 {
     if (id_setTimeout_Ljava_lang_Long_Ljava_util_concurrent_TimeUnit_ == IntPtr.Zero)
     {
         id_setTimeout_Ljava_lang_Long_Ljava_util_concurrent_TimeUnit_ = JNIEnv.GetMethodID(class_ref, "setTimeout", "(Ljava/lang/Long;Ljava/util/concurrent/TimeUnit;)Lcom/algorithmia/algo/Algorithm;");
     }
     try {
         JValue *__args = stackalloc JValue [2];
         __args [0] = new JValue(p0);
         __args [1] = new JValue(p1);
         global::Com.Algorithmia.Algo.Algorithm __ret = global::Java.Lang.Object.GetObject <global::Com.Algorithmia.Algo.Algorithm> (JNIEnv.CallObjectMethod(((global::Java.Lang.Object) this).Handle, id_setTimeout_Ljava_lang_Long_Ljava_util_concurrent_TimeUnit_, __args), JniHandleOwnership.TransferLocalRef);
         return(__ret);
     } finally {
     }
 }
        public unsafe global::Com.Algorithmia.Algo.Algorithm SetOptions(global::System.Collections.Generic.IDictionary <string, string> p0)
        {
            if (id_setOptions_Ljava_util_Map_ == IntPtr.Zero)
            {
                id_setOptions_Ljava_util_Map_ = JNIEnv.GetMethodID(class_ref, "setOptions", "(Ljava/util/Map;)Lcom/algorithmia/algo/Algorithm;");
            }
            IntPtr native_p0 = global::Android.Runtime.JavaDictionary <string, string> .ToLocalJniHandle(p0);

            try {
                JValue *__args = stackalloc JValue [1];
                __args [0] = new JValue(native_p0);
                global::Com.Algorithmia.Algo.Algorithm __ret = global::Java.Lang.Object.GetObject <global::Com.Algorithmia.Algo.Algorithm> (JNIEnv.CallObjectMethod(((global::Java.Lang.Object) this).Handle, id_setOptions_Ljava_util_Map_, __args), JniHandleOwnership.TransferLocalRef);
                return(__ret);
            } finally {
                JNIEnv.DeleteLocalRef(native_p0);
            }
        }
        public unsafe global::Com.Algorithmia.Algo.Algorithm Algo(string p0)
        {
            if (id_algo_Ljava_lang_String_ == IntPtr.Zero)
            {
                id_algo_Ljava_lang_String_ = JNIEnv.GetMethodID(class_ref, "algo", "(Ljava/lang/String;)Lcom/algorithmia/algo/Algorithm;");
            }
            IntPtr native_p0 = JNIEnv.NewString(p0);

            try {
                JValue *__args = stackalloc JValue [1];
                __args [0] = new JValue(native_p0);
                global::Com.Algorithmia.Algo.Algorithm __ret = global::Java.Lang.Object.GetObject <global::Com.Algorithmia.Algo.Algorithm> (JNIEnv.CallObjectMethod(((global::Java.Lang.Object) this).Handle, id_algo_Ljava_lang_String_, __args), JniHandleOwnership.TransferLocalRef);
                return(__ret);
            } finally {
                JNIEnv.DeleteLocalRef(native_p0);
            }
        }