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 static unsafe global::Com.Algorithmia.Algo.Algorithm.AlgorithmOutputType ValueOf(string p0)
            {
                if (id_valueOf_Ljava_lang_String_ == IntPtr.Zero)
                {
                    id_valueOf_Ljava_lang_String_ = JNIEnv.GetStaticMethodID(class_ref, "valueOf", "(Ljava/lang/String;)Lcom/algorithmia/algo/Algorithm$AlgorithmOutputType;");
                }
                IntPtr native_p0 = JNIEnv.NewString(p0);

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