using System;
using System.Collections.Generic;
using Android.Runtime;
using Java.Interop;

namespace Com.Handheld.Uhfr {

	// Metadata.xml XPath class reference: path="/api/package[@name='com.handheld.uhfr']/class[@name='CusParamFilter']"
	[global::Android.Runtime.Register ("com/handheld/uhfr/CusParamFilter", DoNotGenerateAcw=true)]
	public partial class CusParamFilter : global::Java.Lang.Object {
		static readonly JniPeerMembers _members = new XAPeerMembers ("com/handheld/uhfr/CusParamFilter", typeof (CusParamFilter));

		internal static IntPtr class_ref {
			get { return _members.JniPeerType.PeerReference.Handle; }
		}

		[global::System.Diagnostics.DebuggerBrowsable (global::System.Diagnostics.DebuggerBrowsableState.Never)]
		[global::System.ComponentModel.EditorBrowsable (global::System.ComponentModel.EditorBrowsableState.Never)]
		public override global::Java.Interop.JniPeerMembers JniPeerMembers {
			get { return _members; }
		}

		[global::System.Diagnostics.DebuggerBrowsable (global::System.Diagnostics.DebuggerBrowsableState.Never)]
		[global::System.ComponentModel.EditorBrowsable (global::System.ComponentModel.EditorBrowsableState.Never)]
		protected override IntPtr ThresholdClass {
			get { return _members.JniPeerType.PeerReference.Handle; }
		}

		[global::System.Diagnostics.DebuggerBrowsable (global::System.Diagnostics.DebuggerBrowsableState.Never)]
		[global::System.ComponentModel.EditorBrowsable (global::System.ComponentModel.EditorBrowsableState.Never)]
		protected override global::System.Type ThresholdType {
			get { return _members.ManagedPeerType; }
		}

		protected CusParamFilter (IntPtr javaReference, JniHandleOwnership transfer) : base (javaReference, transfer)
		{
		}

		static Delegate cb_isMatching;
#pragma warning disable 0169
		static Delegate GetIsMatchingHandler ()
		{
			if (cb_isMatching == null)
				cb_isMatching = JNINativeWrapper.CreateDelegate ((_JniMarshal_PP_Z) n_IsMatching);
			return cb_isMatching;
		}

		static bool n_IsMatching (IntPtr jnienv, IntPtr native__this)
		{
			var __this = global::Java.Lang.Object.GetObject<global::Com.Handheld.Uhfr.CusParamFilter> (jnienv, native__this, JniHandleOwnership.DoNotTransfer);
			return __this.Matching;
		}
#pragma warning restore 0169

		static Delegate cb_setMatching_Z;
#pragma warning disable 0169
		static Delegate GetSetMatching_ZHandler ()
		{
			if (cb_setMatching_Z == null)
				cb_setMatching_Z = JNINativeWrapper.CreateDelegate ((_JniMarshal_PPZ_V) n_SetMatching_Z);
			return cb_setMatching_Z;
		}

		static void n_SetMatching_Z (IntPtr jnienv, IntPtr native__this, bool matching)
		{
			var __this = global::Java.Lang.Object.GetObject<global::Com.Handheld.Uhfr.CusParamFilter> (jnienv, native__this, JniHandleOwnership.DoNotTransfer);
			__this.Matching = matching;
		}
#pragma warning restore 0169

		public virtual unsafe bool Matching {
			// Metadata.xml XPath method reference: path="/api/package[@name='com.handheld.uhfr']/class[@name='CusParamFilter']/method[@name='isMatching' and count(parameter)=0]"
			[Register ("isMatching", "()Z", "GetIsMatchingHandler")]
			get {
				const string __id = "isMatching.()Z";
				try {
					var __rm = _members.InstanceMethods.InvokeVirtualBooleanMethod (__id, this, null);
					return __rm;
				} finally {
				}
			}
			// Metadata.xml XPath method reference: path="/api/package[@name='com.handheld.uhfr']/class[@name='CusParamFilter']/method[@name='setMatching' and count(parameter)=1 and parameter[1][@type='boolean']]"
			[Register ("setMatching", "(Z)V", "GetSetMatching_ZHandler")]
			set {
				const string __id = "setMatching.(Z)V";
				try {
					JniArgumentValue* __args = stackalloc JniArgumentValue [1];
					__args [0] = new JniArgumentValue (value);
					_members.InstanceMethods.InvokeVirtualVoidMethod (__id, this, __args);
				} finally {
				}
			}
		}

	}
}
