static IntPtr n_Policy_Lcom_baidu_mapapi_search_route_DrivingRoutePlanOption_DrivingPolicy_(IntPtr jnienv, IntPtr native__this, IntPtr native_p0)
        {
            global::Com.Baidu.Mapapi.Search.Route.DrivingRoutePlanOption __this           = global::Java.Lang.Object.GetObject <global::Com.Baidu.Mapapi.Search.Route.DrivingRoutePlanOption> (jnienv, native__this, JniHandleOwnership.DoNotTransfer);
            global::Com.Baidu.Mapapi.Search.Route.DrivingRoutePlanOption.DrivingPolicy p0 = global::Java.Lang.Object.GetObject <global::Com.Baidu.Mapapi.Search.Route.DrivingRoutePlanOption.DrivingPolicy> (native_p0, JniHandleOwnership.DoNotTransfer);
            IntPtr __ret = JNIEnv.ToLocalJniHandle(__this.Policy(p0));

            return(__ret);
        }
        public virtual unsafe global::Com.Baidu.Mapapi.Search.Route.DrivingRoutePlanOption Policy(global::Com.Baidu.Mapapi.Search.Route.DrivingRoutePlanOption.DrivingPolicy p0)
        {
            if (id_policy_Lcom_baidu_mapapi_search_route_DrivingRoutePlanOption_DrivingPolicy_ == IntPtr.Zero)
            {
                id_policy_Lcom_baidu_mapapi_search_route_DrivingRoutePlanOption_DrivingPolicy_ = JNIEnv.GetMethodID(class_ref, "policy", "(Lcom/baidu/mapapi/search/route/DrivingRoutePlanOption$DrivingPolicy;)Lcom/baidu/mapapi/search/route/DrivingRoutePlanOption;");
            }
            try {
                JValue *__args = stackalloc JValue [1];
                __args [0] = new JValue(p0);

                global::Com.Baidu.Mapapi.Search.Route.DrivingRoutePlanOption __ret;
                if (GetType() == ThresholdType)
                {
                    __ret = global::Java.Lang.Object.GetObject <global::Com.Baidu.Mapapi.Search.Route.DrivingRoutePlanOption> (JNIEnv.CallObjectMethod(Handle, id_policy_Lcom_baidu_mapapi_search_route_DrivingRoutePlanOption_DrivingPolicy_, __args), JniHandleOwnership.TransferLocalRef);
                }
                else
                {
                    __ret = global::Java.Lang.Object.GetObject <global::Com.Baidu.Mapapi.Search.Route.DrivingRoutePlanOption> (JNIEnv.CallNonvirtualObjectMethod(Handle, ThresholdClass, JNIEnv.GetMethodID(ThresholdClass, "policy", "(Lcom/baidu/mapapi/search/route/DrivingRoutePlanOption$DrivingPolicy;)Lcom/baidu/mapapi/search/route/DrivingRoutePlanOption;"), __args), JniHandleOwnership.TransferLocalRef);
                }
                return(__ret);
            } finally {
            }
        }
            public static unsafe global::Com.Baidu.Mapapi.Search.Route.DrivingRoutePlanOption.DrivingPolicy 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/baidu/mapapi/search/route/DrivingRoutePlanOption$DrivingPolicy;");
                }
                IntPtr native_p0 = JNIEnv.NewString(p0);

                try {
                    JValue *__args = stackalloc JValue [1];
                    __args [0] = new JValue(native_p0);
                    global::Com.Baidu.Mapapi.Search.Route.DrivingRoutePlanOption.DrivingPolicy __ret = global::Java.Lang.Object.GetObject <global::Com.Baidu.Mapapi.Search.Route.DrivingRoutePlanOption.DrivingPolicy> (JNIEnv.CallStaticObjectMethod(class_ref, id_valueOf_Ljava_lang_String_, __args), JniHandleOwnership.TransferLocalRef);
                    return(__ret);
                } finally {
                    JNIEnv.DeleteLocalRef(native_p0);
                }
            }