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

namespace Com.Uhf.Api.Cls {

	// Metadata.xml XPath class reference: path="/api/package[@name='com.uhf.api.cls']/class[@name='BackReadOption']"
	[global::Android.Runtime.Register ("com/uhf/api/cls/BackReadOption", DoNotGenerateAcw=true)]
	public partial class BackReadOption : global::Java.Lang.Object {

		// Metadata.xml XPath field reference: path="/api/package[@name='com.uhf.api.cls']/class[@name='BackReadOption']/field[@name='FastReadDutyRation']"
		[Register ("FastReadDutyRation")]
		public char FastReadDutyRation {
			get {
				const string __id = "FastReadDutyRation.C";

				var __v = _members.InstanceFields.GetCharValue (__id, this);
				return __v;
			}
			set {
				const string __id = "FastReadDutyRation.C";

				try {
					_members.InstanceFields.SetValue (__id, this, value);
				} finally {
				}
			}
		}


		// Metadata.xml XPath field reference: path="/api/package[@name='com.uhf.api.cls']/class[@name='BackReadOption']/field[@name='GpiTrigger']"
		[Register ("GpiTrigger")]
		public global::Com.Uhf.Api.Cls.GPITrigger GpiTrigger {
			get {
				const string __id = "GpiTrigger.Lcom/uhf/api/cls/GPITrigger;";

				var __v = _members.InstanceFields.GetObjectValue (__id, this);
				return global::Java.Lang.Object.GetObject<global::Com.Uhf.Api.Cls.GPITrigger> (__v.Handle, JniHandleOwnership.TransferLocalRef);
			}
			set {
				const string __id = "GpiTrigger.Lcom/uhf/api/cls/GPITrigger;";

				IntPtr native_value = global::Android.Runtime.JNIEnv.ToLocalJniHandle (value);
				try {
					_members.InstanceFields.SetValue (__id, this, new JniObjectReference (native_value));
				} finally {
					global::Android.Runtime.JNIEnv.DeleteLocalRef (native_value);
				}
			}
		}


		// Metadata.xml XPath field reference: path="/api/package[@name='com.uhf.api.cls']/class[@name='BackReadOption']/field[@name='IsFastRead']"
		[Register ("IsFastRead")]
		public bool IsFastRead {
			get {
				const string __id = "IsFastRead.Z";

				var __v = _members.InstanceFields.GetBooleanValue (__id, this);
				return __v;
			}
			set {
				const string __id = "IsFastRead.Z";

				try {
					_members.InstanceFields.SetValue (__id, this, value);
				} finally {
				}
			}
		}


		// Metadata.xml XPath field reference: path="/api/package[@name='com.uhf.api.cls']/class[@name='BackReadOption']/field[@name='IsGPITrigger']"
		[Register ("IsGPITrigger")]
		public bool IsGPITrigger {
			get {
				const string __id = "IsGPITrigger.Z";

				var __v = _members.InstanceFields.GetBooleanValue (__id, this);
				return __v;
			}
			set {
				const string __id = "IsGPITrigger.Z";

				try {
					_members.InstanceFields.SetValue (__id, this, value);
				} finally {
				}
			}
		}


		// Metadata.xml XPath field reference: path="/api/package[@name='com.uhf.api.cls']/class[@name='BackReadOption']/field[@name='ReadDuration']"
		[Register ("ReadDuration")]
		public short ReadDuration {
			get {
				const string __id = "ReadDuration.S";

				var __v = _members.InstanceFields.GetInt16Value (__id, this);
				return __v;
			}
			set {
				const string __id = "ReadDuration.S";

				try {
					_members.InstanceFields.SetValue (__id, this, value);
				} finally {
				}
			}
		}


		// Metadata.xml XPath field reference: path="/api/package[@name='com.uhf.api.cls']/class[@name='BackReadOption']/field[@name='ReadInterval']"
		[Register ("ReadInterval")]
		public int ReadInterval {
			get {
				const string __id = "ReadInterval.I";

				var __v = _members.InstanceFields.GetInt32Value (__id, this);
				return __v;
			}
			set {
				const string __id = "ReadInterval.I";

				try {
					_members.InstanceFields.SetValue (__id, this, value);
				} finally {
				}
			}
		}


		// Metadata.xml XPath field reference: path="/api/package[@name='com.uhf.api.cls']/class[@name='BackReadOption']/field[@name='TMFlags']"
		[Register ("TMFlags")]
		public global::Com.Uhf.Api.Cls.TagMetaFlags TMFlags {
			get {
				const string __id = "TMFlags.Lcom/uhf/api/cls/TagMetaFlags;";

				var __v = _members.InstanceFields.GetObjectValue (__id, this);
				return global::Java.Lang.Object.GetObject<global::Com.Uhf.Api.Cls.TagMetaFlags> (__v.Handle, JniHandleOwnership.TransferLocalRef);
			}
			set {
				const string __id = "TMFlags.Lcom/uhf/api/cls/TagMetaFlags;";

				IntPtr native_value = global::Android.Runtime.JNIEnv.ToLocalJniHandle (value);
				try {
					_members.InstanceFields.SetValue (__id, this, new JniObjectReference (native_value));
				} finally {
					global::Android.Runtime.JNIEnv.DeleteLocalRef (native_value);
				}
			}
		}

		static readonly JniPeerMembers _members = new XAPeerMembers ("com/uhf/api/cls/BackReadOption", typeof (BackReadOption));

		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 BackReadOption (IntPtr javaReference, JniHandleOwnership transfer) : base (javaReference, transfer)
		{
		}

		// Metadata.xml XPath constructor reference: path="/api/package[@name='com.uhf.api.cls']/class[@name='BackReadOption']/constructor[@name='BackReadOption' and count(parameter)=0]"
		[Register (".ctor", "()V", "")]
		public unsafe BackReadOption () : base (IntPtr.Zero, JniHandleOwnership.DoNotTransfer)
		{
			const string __id = "()V";

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

			try {
				var __r = _members.InstanceMethods.StartCreateInstance (__id, ((object) this).GetType (), null);
				SetHandle (__r.Handle, JniHandleOwnership.TransferLocalRef);
				_members.InstanceMethods.FinishCreateInstance (__id, this, null);
			} finally {
			}
		}

	}
}
