/*================================================================================
  code generated by: java2cpp
  author: <NAME>, mailto://<EMAIL>
  class: java.security.spec.RSAPrivateKeySpec
================================================================================*/


#ifndef J2CPP_INCLUDE_IMPLEMENTATION

#ifndef J2CPP_JAVA_SECURITY_SPEC_RSAPRIVATEKEYSPEC_HPP_DECL
#define J2CPP_JAVA_SECURITY_SPEC_RSAPRIVATEKEYSPEC_HPP_DECL


namespace j2cpp { namespace java { namespace lang { class Object; } } }
namespace j2cpp { namespace java { namespace math { class BigInteger; } } }
namespace j2cpp { namespace java { namespace security { namespace spec { class KeySpec; } } } }


#include <java/lang/Object.hpp>
#include <java/math/BigInteger.hpp>
#include <java/security/spec/KeySpec.hpp>


namespace j2cpp {

namespace java { namespace security { namespace spec {

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

		J2CPP_DECLARE_CLASS

		J2CPP_DECLARE_METHOD(0)
		J2CPP_DECLARE_METHOD(1)
		J2CPP_DECLARE_METHOD(2)

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

		operator local_ref<java::lang::Object>() const;
		operator local_ref<java::security::spec::KeySpec>() const;


		RSAPrivateKeySpec(local_ref< java::math::BigInteger > const&, local_ref< java::math::BigInteger > const&);
		local_ref< java::math::BigInteger > getModulus();
		local_ref< java::math::BigInteger > getPrivateExponent();
	}; //class RSAPrivateKeySpec

} //namespace spec
} //namespace security
} //namespace java

} //namespace j2cpp

#endif //J2CPP_JAVA_SECURITY_SPEC_RSAPRIVATEKEYSPEC_HPP_DECL

#else //J2CPP_INCLUDE_IMPLEMENTATION

#ifndef J2CPP_JAVA_SECURITY_SPEC_RSAPRIVATEKEYSPEC_HPP_IMPL
#define J2CPP_JAVA_SECURITY_SPEC_RSAPRIVATEKEYSPEC_HPP_IMPL

namespace j2cpp {



java::security::spec::RSAPrivateKeySpec::operator local_ref<java::lang::Object>() const
{
	return local_ref<java::lang::Object>(get_jobject());
}

java::security::spec::RSAPrivateKeySpec::operator local_ref<java::security::spec::KeySpec>() const
{
	return local_ref<java::security::spec::KeySpec>(get_jobject());
}


java::security::spec::RSAPrivateKeySpec::RSAPrivateKeySpec(local_ref< java::math::BigInteger > const &a0, local_ref< java::math::BigInteger > const &a1)
: object<java::security::spec::RSAPrivateKeySpec>(
	call_new_object<
		java::security::spec::RSAPrivateKeySpec::J2CPP_CLASS_NAME,
		java::security::spec::RSAPrivateKeySpec::J2CPP_METHOD_NAME(0),
		java::security::spec::RSAPrivateKeySpec::J2CPP_METHOD_SIGNATURE(0)
	>(a0, a1)
)
{
}


local_ref< java::math::BigInteger > java::security::spec::RSAPrivateKeySpec::getModulus()
{
	return call_method<
		java::security::spec::RSAPrivateKeySpec::J2CPP_CLASS_NAME,
		java::security::spec::RSAPrivateKeySpec::J2CPP_METHOD_NAME(1),
		java::security::spec::RSAPrivateKeySpec::J2CPP_METHOD_SIGNATURE(1), 
		local_ref< java::math::BigInteger >
	>(get_jobject());
}

local_ref< java::math::BigInteger > java::security::spec::RSAPrivateKeySpec::getPrivateExponent()
{
	return call_method<
		java::security::spec::RSAPrivateKeySpec::J2CPP_CLASS_NAME,
		java::security::spec::RSAPrivateKeySpec::J2CPP_METHOD_NAME(2),
		java::security::spec::RSAPrivateKeySpec::J2CPP_METHOD_SIGNATURE(2), 
		local_ref< java::math::BigInteger >
	>(get_jobject());
}


J2CPP_DEFINE_CLASS(java::security::spec::RSAPrivateKeySpec,"java/security/spec/RSAPrivateKeySpec")
J2CPP_DEFINE_METHOD(java::security::spec::RSAPrivateKeySpec,0,"<init>","(Ljava/math/BigInteger;Ljava/math/BigInteger;)V")
J2CPP_DEFINE_METHOD(java::security::spec::RSAPrivateKeySpec,1,"getModulus","()Ljava/math/BigInteger;")
J2CPP_DEFINE_METHOD(java::security::spec::RSAPrivateKeySpec,2,"getPrivateExponent","()Ljava/math/BigInteger;")

} //namespace j2cpp

#endif //J2CPP_JAVA_SECURITY_SPEC_RSAPRIVATEKEYSPEC_HPP_IMPL

#endif //J2CPP_INCLUDE_IMPLEMENTATION
