mirror of
https://github.com/geometer/FBReaderJ.git
synced 2025-10-06 03:50:19 +02:00
JavaType class
This commit is contained in:
parent
a384a82a86
commit
1a3419e95b
3 changed files with 34 additions and 13 deletions
|
@ -23,6 +23,12 @@
|
|||
|
||||
static const std::string JNI_LOGGER_CLASS = "JniLog";
|
||||
|
||||
JavaType::JavaType() {
|
||||
}
|
||||
|
||||
JavaType::~JavaType() {
|
||||
}
|
||||
|
||||
JavaClass::JavaClass(JNIEnv *env, const std::string &name) : myName(name), myEnv(env) {
|
||||
jclass ref = env->FindClass(name.c_str());
|
||||
myClass = (jclass)env->NewGlobalRef(ref);
|
||||
|
@ -33,6 +39,10 @@ JavaClass::~JavaClass() {
|
|||
myEnv->DeleteGlobalRef(myClass);
|
||||
}
|
||||
|
||||
std::string JavaClass::code() const {
|
||||
return "L" + myName + ";";
|
||||
}
|
||||
|
||||
Member::Member(const JavaClass &cls) : myClass(cls) {
|
||||
//ZLLogger::Instance().registerClass(JNI_LOGGER_CLASS);
|
||||
}
|
||||
|
@ -52,8 +62,8 @@ jobject Constructor::call(...) {
|
|||
return obj;
|
||||
}
|
||||
|
||||
Field::Field(const JavaClass &cls, const std::string &name, const std::string &type) : Member(cls), myName(name) {
|
||||
myId = env().GetFieldID(jClass(), name.c_str(), type.c_str());
|
||||
Field::Field(const JavaClass &cls, const std::string &name, const JavaType &type) : Member(cls), myName(name) {
|
||||
myId = env().GetFieldID(jClass(), name.c_str(), type.code().c_str());
|
||||
}
|
||||
|
||||
Field::~Field() {
|
||||
|
@ -73,7 +83,7 @@ StaticMethod::StaticMethod(const JavaClass &cls, const std::string &name, const
|
|||
StaticMethod::~StaticMethod() {
|
||||
}
|
||||
|
||||
ObjectField::ObjectField(const JavaClass &cls, const std::string &name, const std::string &type) : Field(cls, name, "L" + type + ";") {
|
||||
ObjectField::ObjectField(const JavaClass &cls, const std::string &name, const JavaClass &type) : Field(cls, name, type) {
|
||||
}
|
||||
|
||||
jobject ObjectField::value(jobject obj) const {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue