/*================================================================================
  code generated by: java2cpp
  author: Zoran Angelov, mailto://baldzar@gmail.com
  class: android.content.pm.Signature
================================================================================*/


#ifndef J2CPP_INCLUDE_IMPLEMENTATION

#ifndef J2CPP_ANDROID_CONTENT_PM_SIGNATURE_HPP_DECL
#define J2CPP_ANDROID_CONTENT_PM_SIGNATURE_HPP_DECL


namespace j2cpp { namespace java { namespace lang { class Object; } } }
namespace j2cpp { namespace java { namespace lang { class String; } } }
namespace j2cpp { namespace android { namespace os { class Parcel; } } }
namespace j2cpp { namespace android { namespace os { class Parcelable; } } }
namespace j2cpp { namespace android { namespace os { namespace Parcelable_ { class Creator; } } } }


#include <android/os/Parcel.hpp>
#include <android/os/Parcelable.hpp>
#include <java/lang/Object.hpp>
#include <java/lang/String.hpp>


namespace j2cpp {

namespace android { namespace content { namespace pm {

	class Signature;
	class Signature
		: public object<Signature>
	{
	public:

		J2CPP_DECLARE_CLASS

		J2CPP_DECLARE_METHOD(0)
		J2CPP_DECLARE_METHOD(1)
		J2CPP_DECLARE_METHOD(2)
		J2CPP_DECLARE_METHOD(3)
		J2CPP_DECLARE_METHOD(4)
		J2CPP_DECLARE_METHOD(5)
		J2CPP_DECLARE_METHOD(6)
		J2CPP_DECLARE_METHOD(7)
		J2CPP_DECLARE_METHOD(8)
		J2CPP_DECLARE_METHOD(9)
		J2CPP_DECLARE_METHOD(10)
		J2CPP_DECLARE_FIELD(0)

		explicit Signature(jobject jobj)
		: object<Signature>(jobj)
		{
		}

		operator local_ref<java::lang::Object>() const;
		operator local_ref<android::os::Parcelable>() const;


		Signature(local_ref< array<jbyte,1> > const&);
		Signature(local_ref< java::lang::String > const&);
		local_ref< array<jchar,1> > toChars();
		local_ref< array<jchar,1> > toChars(local_ref< array<jchar,1> >  const&, local_ref< array<jint,1> >  const&);
		local_ref< java::lang::String > toCharsString();
		local_ref< array<jbyte,1> > toByteArray();
		jboolean equals(local_ref< java::lang::Object >  const&);
		jint hashCode();
		jint describeContents();
		void writeToParcel(local_ref< android::os::Parcel >  const&, jint);

		static static_field< J2CPP_CLASS_NAME, J2CPP_FIELD_NAME(0), J2CPP_FIELD_SIGNATURE(0), local_ref< android::os::Parcelable_::Creator > > CREATOR;
	}; //class Signature

} //namespace pm
} //namespace content
} //namespace android

} //namespace j2cpp

#endif //J2CPP_ANDROID_CONTENT_PM_SIGNATURE_HPP_DECL

#else //J2CPP_INCLUDE_IMPLEMENTATION

#ifndef J2CPP_ANDROID_CONTENT_PM_SIGNATURE_HPP_IMPL
#define J2CPP_ANDROID_CONTENT_PM_SIGNATURE_HPP_IMPL

namespace j2cpp {



android::content::pm::Signature::operator local_ref<java::lang::Object>() const
{
	return local_ref<java::lang::Object>(get_jobject());
}

android::content::pm::Signature::operator local_ref<android::os::Parcelable>() const
{
	return local_ref<android::os::Parcelable>(get_jobject());
}


android::content::pm::Signature::Signature(local_ref< array<jbyte,1> > const &a0)
: object<android::content::pm::Signature>(
	call_new_object<
		android::content::pm::Signature::J2CPP_CLASS_NAME,
		android::content::pm::Signature::J2CPP_METHOD_NAME(0),
		android::content::pm::Signature::J2CPP_METHOD_SIGNATURE(0)
	>(a0)
)
{
}



android::content::pm::Signature::Signature(local_ref< java::lang::String > const &a0)
: object<android::content::pm::Signature>(
	call_new_object<
		android::content::pm::Signature::J2CPP_CLASS_NAME,
		android::content::pm::Signature::J2CPP_METHOD_NAME(1),
		android::content::pm::Signature::J2CPP_METHOD_SIGNATURE(1)
	>(a0)
)
{
}


local_ref< array<jchar,1> > android::content::pm::Signature::toChars()
{
	return call_method<
		android::content::pm::Signature::J2CPP_CLASS_NAME,
		android::content::pm::Signature::J2CPP_METHOD_NAME(2),
		android::content::pm::Signature::J2CPP_METHOD_SIGNATURE(2), 
		local_ref< array<jchar,1> >
	>(get_jobject());
}

local_ref< array<jchar,1> > android::content::pm::Signature::toChars(local_ref< array<jchar,1> > const &a0, local_ref< array<jint,1> > const &a1)
{
	return call_method<
		android::content::pm::Signature::J2CPP_CLASS_NAME,
		android::content::pm::Signature::J2CPP_METHOD_NAME(3),
		android::content::pm::Signature::J2CPP_METHOD_SIGNATURE(3), 
		local_ref< array<jchar,1> >
	>(get_jobject(), a0, a1);
}

local_ref< java::lang::String > android::content::pm::Signature::toCharsString()
{
	return call_method<
		android::content::pm::Signature::J2CPP_CLASS_NAME,
		android::content::pm::Signature::J2CPP_METHOD_NAME(4),
		android::content::pm::Signature::J2CPP_METHOD_SIGNATURE(4), 
		local_ref< java::lang::String >
	>(get_jobject());
}

local_ref< array<jbyte,1> > android::content::pm::Signature::toByteArray()
{
	return call_method<
		android::content::pm::Signature::J2CPP_CLASS_NAME,
		android::content::pm::Signature::J2CPP_METHOD_NAME(5),
		android::content::pm::Signature::J2CPP_METHOD_SIGNATURE(5), 
		local_ref< array<jbyte,1> >
	>(get_jobject());
}

jboolean android::content::pm::Signature::equals(local_ref< java::lang::Object > const &a0)
{
	return call_method<
		android::content::pm::Signature::J2CPP_CLASS_NAME,
		android::content::pm::Signature::J2CPP_METHOD_NAME(6),
		android::content::pm::Signature::J2CPP_METHOD_SIGNATURE(6), 
		jboolean
	>(get_jobject(), a0);
}

jint android::content::pm::Signature::hashCode()
{
	return call_method<
		android::content::pm::Signature::J2CPP_CLASS_NAME,
		android::content::pm::Signature::J2CPP_METHOD_NAME(7),
		android::content::pm::Signature::J2CPP_METHOD_SIGNATURE(7), 
		jint
	>(get_jobject());
}

jint android::content::pm::Signature::describeContents()
{
	return call_method<
		android::content::pm::Signature::J2CPP_CLASS_NAME,
		android::content::pm::Signature::J2CPP_METHOD_NAME(8),
		android::content::pm::Signature::J2CPP_METHOD_SIGNATURE(8), 
		jint
	>(get_jobject());
}

void android::content::pm::Signature::writeToParcel(local_ref< android::os::Parcel > const &a0, jint a1)
{
	return call_method<
		android::content::pm::Signature::J2CPP_CLASS_NAME,
		android::content::pm::Signature::J2CPP_METHOD_NAME(9),
		android::content::pm::Signature::J2CPP_METHOD_SIGNATURE(9), 
		void
	>(get_jobject(), a0, a1);
}



static_field<
	android::content::pm::Signature::J2CPP_CLASS_NAME,
	android::content::pm::Signature::J2CPP_FIELD_NAME(0),
	android::content::pm::Signature::J2CPP_FIELD_SIGNATURE(0),
	local_ref< android::os::Parcelable_::Creator >
> android::content::pm::Signature::CREATOR;


J2CPP_DEFINE_CLASS(android::content::pm::Signature,"android/content/pm/Signature")
J2CPP_DEFINE_METHOD(android::content::pm::Signature,0,"<init>","([B)V")
J2CPP_DEFINE_METHOD(android::content::pm::Signature,1,"<init>","(Ljava/lang/String;)V")
J2CPP_DEFINE_METHOD(android::content::pm::Signature,2,"toChars","()[C")
J2CPP_DEFINE_METHOD(android::content::pm::Signature,3,"toChars","([C[I)[C")
J2CPP_DEFINE_METHOD(android::content::pm::Signature,4,"toCharsString","()Ljava/lang/String;")
J2CPP_DEFINE_METHOD(android::content::pm::Signature,5,"toByteArray","()[B")
J2CPP_DEFINE_METHOD(android::content::pm::Signature,6,"equals","(Ljava/lang/Object;)Z")
J2CPP_DEFINE_METHOD(android::content::pm::Signature,7,"hashCode","()I")
J2CPP_DEFINE_METHOD(android::content::pm::Signature,8,"describeContents","()I")
J2CPP_DEFINE_METHOD(android::content::pm::Signature,9,"writeToParcel","(Landroid/os/Parcel;I)V")
J2CPP_DEFINE_METHOD(android::content::pm::Signature,10,"<clinit>","()V")
J2CPP_DEFINE_FIELD(android::content::pm::Signature,0,"CREATOR","Landroid/os/Parcelable$Creator;")

} //namespace j2cpp

#endif //J2CPP_ANDROID_CONTENT_PM_SIGNATURE_HPP_IMPL

#endif //J2CPP_INCLUDE_IMPLEMENTATION
