diff options
Diffstat (limited to 'src/androidextras/jni/qandroidjniobject.cpp')
-rw-r--r-- | src/androidextras/jni/qandroidjniobject.cpp | 306 |
1 files changed, 267 insertions, 39 deletions
diff --git a/src/androidextras/jni/qandroidjniobject.cpp b/src/androidextras/jni/qandroidjniobject.cpp index ff1d563..587d508 100644 --- a/src/androidextras/jni/qandroidjniobject.cpp +++ b/src/androidextras/jni/qandroidjniobject.cpp @@ -148,14 +148,19 @@ QT_BEGIN_NAMESPACE \li Signature \row \li jobject - \li {1, 3} L\e<fully-qualified-name>; + \li Ljava/lang/Object; \row \li jclass + \li Ljava/lang/Class; \row \li jstring + \li Ljava/lang/String; + \row + \li jthrowable + \li Ljava/lang/Throwable; \row \li jobjectArray - \li [L\e<fully-qualified-name>; + \li [Ljava/lang/Object; \row \li jarray \li [\e<type> @@ -225,6 +230,9 @@ QT_BEGIN_NAMESPACE \row \li void \li V + \row + \li \e{Custom type} + \li L\e<fully-qualified-name>; \endtable For more information about JNI see: \l http://docs.oracle.com/javase/7/docs/technotes/guides/jni/spec/jniTOC.html @@ -909,12 +917,30 @@ jdouble QAndroidJniObject::callMethod<jdouble>(const char *methodName) const } template <> +QAndroidJniObject QAndroidJniObject::callObjectMethod<jobject>(const char *methodName) const +{ + return d->callObjectMethod(methodName, "()Ljava/lang/Object;"); +} + +template <> +QAndroidJniObject QAndroidJniObject::callObjectMethod<jclass>(const char *methodName) const +{ + return d->callObjectMethod(methodName, "()Ljava/lang/Class;"); +} + +template <> QAndroidJniObject QAndroidJniObject::callObjectMethod<jstring>(const char *methodName) const { return d->callObjectMethod(methodName, "()Ljava/lang/String;"); } template <> +QAndroidJniObject QAndroidJniObject::callObjectMethod<jobjectArray>(const char *methodName) const +{ + return d->callObjectMethod(methodName, "()[Ljava/lang/Object;"); +} + +template <> QAndroidJniObject QAndroidJniObject::callObjectMethod<jbooleanArray>(const char *methodName) const { return d->callObjectMethod(methodName, "()[Z"); @@ -963,6 +989,12 @@ QAndroidJniObject QAndroidJniObject::callObjectMethod<jdoubleArray>(const char * } template <> +QAndroidJniObject QAndroidJniObject::callObjectMethod<jthrowable>(const char *methodName) const +{ + return d->callObjectMethod(methodName, "()Ljava/lang/Throwable;"); +} + +template <> void QAndroidJniObject::callStaticMethod<void>(const char *className, const char *methodName, const char *sig, @@ -1331,6 +1363,34 @@ jdouble QAndroidJniObject::callStaticMethod<jdouble>(jclass clazz, const char *m } template <> +QAndroidJniObject QAndroidJniObject::callStaticObjectMethod<jobject>(const char *className, + const char *methodName) +{ + return callStaticObjectMethod(className, methodName, "()Ljava/lang/Object;"); +} + +template <> +QAndroidJniObject QAndroidJniObject::callStaticObjectMethod<jobject>(jclass clazz, + const char *methodName) +{ + return callStaticObjectMethod(clazz, methodName, "()Ljava/lang/Object;"); +} + +template <> +QAndroidJniObject QAndroidJniObject::callStaticObjectMethod<jclass>(const char *className, + const char *methodName) +{ + return callStaticObjectMethod(className, methodName, "()Ljava/lang/Class;"); +} + +template <> +QAndroidJniObject QAndroidJniObject::callStaticObjectMethod<jclass>(jclass clazz, + const char *methodName) +{ + return callStaticObjectMethod(clazz, methodName, "()Ljava/lang/Class;"); +} + +template <> QAndroidJniObject QAndroidJniObject::callStaticObjectMethod<jstring>(const char *className, const char *methodName) { @@ -1345,6 +1405,20 @@ QAndroidJniObject QAndroidJniObject::callStaticObjectMethod<jstring>(jclass claz } template <> +QAndroidJniObject QAndroidJniObject::callStaticObjectMethod<jobjectArray>(const char *className, + const char *methodName) +{ + return callStaticObjectMethod(className, methodName, "()[Ljava/lang/Object;"); +} + +template <> +QAndroidJniObject QAndroidJniObject::callStaticObjectMethod<jobjectArray>(jclass clazz, + const char *methodName) +{ + return callStaticObjectMethod(clazz, methodName, "()[Ljava/lang/Object;"); +} + +template <> QAndroidJniObject QAndroidJniObject::callStaticObjectMethod<jbooleanArray>(const char *className, const char *methodName) { @@ -1457,6 +1531,20 @@ QAndroidJniObject QAndroidJniObject::callStaticObjectMethod<jdoubleArray>(jclass } template <> +QAndroidJniObject QAndroidJniObject::callStaticObjectMethod<jthrowable>(const char *className, + const char *methodName) +{ + return callStaticObjectMethod(className, methodName, "()Ljava/lang/Throwable;"); +} + +template <> +QAndroidJniObject QAndroidJniObject::callStaticObjectMethod<jthrowable>(jclass clazz, + const char *methodName) +{ + return callStaticObjectMethod(clazz, methodName, "()Ljava/lang/Throwable;"); +} + +template <> jboolean QAndroidJniObject::getField<jboolean>(const char *fieldName) const { return d->getField<jboolean>(fieldName); @@ -1516,6 +1604,18 @@ QAndroidJniObject QAndroidJniObject::getObjectField<jobject>(const char *fieldNa } template <> +QAndroidJniObject QAndroidJniObject::getObjectField<jobject>(const char *fieldName) const +{ + return d->getObjectField(fieldName, "Ljava/lang/Object;"); +} + +template <> +QAndroidJniObject QAndroidJniObject::getObjectField<jclass>(const char *fieldName) const +{ + return d->getObjectField(fieldName, "Ljava/lang/Class;"); +} + +template <> QAndroidJniObject QAndroidJniObject::getObjectField<jbooleanArray>(const char *fieldName) const { return d->getObjectField(fieldName, "[Z"); @@ -1570,6 +1670,12 @@ QAndroidJniObject QAndroidJniObject::getObjectField<jstring>(const char *fieldNa } template <> +QAndroidJniObject QAndroidJniObject::getObjectField<jthrowable>(const char *fieldName) const +{ + return d->getObjectField(fieldName, "Ljava/lang/Throwable;"); +} + +template <> QAndroidJniObject QAndroidJniObject::getObjectField<jobjectArray>(const char *fieldName, const char *sig) const { @@ -1625,6 +1731,42 @@ void QAndroidJniObject::setField<jdouble>(const char *fieldName, jdouble value) } template <> +void QAndroidJniObject::setField<jobject>(const char *fieldName, + const char *sig, + jobject value) +{ + d->setField<jobject>(fieldName, sig, value); +} + +template <> +void QAndroidJniObject::setField<jobjectArray>(const char *fieldName, + const char *sig, + jobjectArray value) +{ + d->setField<jobjectArray>(fieldName, sig, value); +} + +template <> +void QAndroidJniObject::setField<jobject>(const char *fieldName, + jobject value) +{ + setField<jobject>(fieldName, "Ljava/lang/Object;", value); +} + +template <> +void QAndroidJniObject::setField<jclass>(const char *fieldName, + jclass value) +{ + setField<jobject>(fieldName, "Ljava/lang/Class;", value); +} + +template <> +void QAndroidJniObject::setField<jstring>(const char *fieldName, jstring value) +{ + d->setField<jstring>(fieldName, value); +} + +template <> void QAndroidJniObject::setField<jbooleanArray>(const char *fieldName, jbooleanArray value) { d->setField<jbooleanArray>(fieldName, value); @@ -1673,25 +1815,9 @@ void QAndroidJniObject::setField<jdoubleArray>(const char *fieldName, jdoubleArr } template <> -void QAndroidJniObject::setField<jstring>(const char *fieldName, jstring value) +void QAndroidJniObject::setField<jthrowable>(const char *fieldName, jthrowable value) { - d->setField<jstring>(fieldName, value); -} - -template <> -void QAndroidJniObject::setField<jobject>(const char *fieldName, - const char *sig, - jobject value) -{ - d->setField<jobject>(fieldName, sig, value); -} - -template <> -void QAndroidJniObject::setField<jobjectArray>(const char *fieldName, - const char *sig, - jobjectArray value) -{ - d->setField<jobjectArray>(fieldName, sig, value); + d->setField<jobject>(fieldName, "Ljava/lang/Throwable;", value); } template <> @@ -1790,6 +1916,14 @@ jdouble QAndroidJniObject::getStaticField<jdouble>(const char *className, const return QJNIObjectPrivate::getStaticField<jdouble>(className, fieldName); } +template <> +QAndroidJniObject QAndroidJniObject::getStaticObjectField<jobject>(jclass clazz, + const char *fieldName, + const char *sig) +{ + return QJNIObjectPrivate::getStaticObjectField(clazz, fieldName, sig); +} + QAndroidJniObject QAndroidJniObject::getStaticObjectField(jclass clazz, const char *fieldName, const char *sig) @@ -1797,23 +1931,66 @@ QAndroidJniObject QAndroidJniObject::getStaticObjectField(jclass clazz, return QJNIObjectPrivate::getStaticObjectField(clazz, fieldName, sig); } +QAndroidJniObject QAndroidJniObject::getStaticObjectField(const char *className, + const char *fieldName, + const char *sig) +{ + return QJNIObjectPrivate::getStaticObjectField(className, fieldName, sig); +} + template <> -QAndroidJniObject QAndroidJniObject::getStaticObjectField<jobject>(jclass clazz, +QAndroidJniObject QAndroidJniObject::getStaticObjectField<jobject>(const char *className, const char *fieldName, const char *sig) { + return QJNIObjectPrivate::getStaticObjectField(className, fieldName, sig); +} + +template <> +QAndroidJniObject QAndroidJniObject::getStaticObjectField<jobjectArray>(jclass clazz, + const char *fieldName, + const char *sig) +{ return QJNIObjectPrivate::getStaticObjectField(clazz, fieldName, sig); } template <> -QAndroidJniObject QAndroidJniObject::getStaticObjectField<jobject>(const char *className, - const char *fieldName, - const char *sig) +QAndroidJniObject QAndroidJniObject::getStaticObjectField<jobjectArray>(const char *className, + const char *fieldName, + const char *sig) { return QJNIObjectPrivate::getStaticObjectField(className, fieldName, sig); } template <> +QAndroidJniObject QAndroidJniObject::getStaticObjectField<jobject>(jclass clazz, + const char *fieldName) +{ + return QJNIObjectPrivate::getStaticObjectField(clazz, fieldName, "Ljava/lang/Object;"); +} + +template <> +QAndroidJniObject QAndroidJniObject::getStaticObjectField<jobject>(const char *className, + const char *fieldName) +{ + return QJNIObjectPrivate::getStaticObjectField(className, fieldName, "Ljava/lang/Object;"); +} + +template <> +QAndroidJniObject QAndroidJniObject::getStaticObjectField<jclass>(jclass clazz, + const char *fieldName) +{ + return QJNIObjectPrivate::getStaticObjectField(clazz, fieldName, "Ljava/lang/Class;"); +} + +template <> +QAndroidJniObject QAndroidJniObject::getStaticObjectField<jclass>(const char *className, + const char *fieldName) +{ + return QJNIObjectPrivate::getStaticObjectField(className, fieldName, "Ljava/lang/Class;"); +} + +template <> QAndroidJniObject QAndroidJniObject::getStaticObjectField<jstring>(jclass clazz, const char *fieldName) { @@ -1828,6 +2005,20 @@ QAndroidJniObject QAndroidJniObject::getStaticObjectField<jstring>(const char *c } template <> +QAndroidJniObject QAndroidJniObject::getStaticObjectField<jobjectArray>(jclass clazz, + const char *fieldName) +{ + return QJNIObjectPrivate::getStaticObjectField(clazz, fieldName, "[Ljava/lang/Object;"); +} + +template <> +QAndroidJniObject QAndroidJniObject::getStaticObjectField<jobjectArray>(const char *className, + const char *fieldName) +{ + return QJNIObjectPrivate::getStaticObjectField(className, fieldName, "[Ljava/lang/Object;"); +} + +template <> QAndroidJniObject QAndroidJniObject::getStaticObjectField<jbooleanArray>(jclass clazz, const char *fieldName) { @@ -1939,27 +2130,18 @@ QAndroidJniObject QAndroidJniObject::getStaticObjectField<jdoubleArray>(const ch return QJNIObjectPrivate::getStaticObjectField(className, fieldName, "[D"); } -QAndroidJniObject QAndroidJniObject::getStaticObjectField(const char *className, - const char *fieldName, - const char *sig) -{ - return QJNIObjectPrivate::getStaticObjectField(className, fieldName, sig); -} - template <> -QAndroidJniObject QAndroidJniObject::getStaticObjectField<jobjectArray>(jclass clazz, - const char *fieldName, - const char *sig) +QAndroidJniObject QAndroidJniObject::getStaticObjectField<jthrowable>(jclass clazz, + const char *fieldName) { - return QJNIObjectPrivate::getStaticObjectField(clazz, fieldName, sig); + return QJNIObjectPrivate::getStaticObjectField(clazz, fieldName, "Ljava/lang/Throwable;"); } template <> -QAndroidJniObject QAndroidJniObject::getStaticObjectField<jobjectArray>(const char *className, - const char *fieldName, - const char *sig) +QAndroidJniObject QAndroidJniObject::getStaticObjectField<jthrowable>(const char *className, + const char *fieldName) { - return QJNIObjectPrivate::getStaticObjectField(className, fieldName, sig); + return QJNIObjectPrivate::getStaticObjectField(className, fieldName, "Ljava/lang/Throwable;"); } template <> @@ -2091,6 +2273,20 @@ void QAndroidJniObject::setStaticField<jobject>(const char *className, } template <> +void QAndroidJniObject::setStaticField<jclass>(const char *className, + const char *fieldName, + jclass value) +{ + QJNIObjectPrivate::setStaticField<jobject>(className, fieldName, "Ljava/lang/Class;", value); +} + +template <> +void QAndroidJniObject::setStaticField<jclass>(jclass clazz, const char *fieldName, jclass value) +{ + QJNIObjectPrivate::setStaticField<jobject>(clazz, fieldName, "Ljava/lang/Class;", value); +} + +template <> void QAndroidJniObject::setStaticField<jstring>(const char *className, const char *fieldName, jstring value) @@ -2105,6 +2301,22 @@ void QAndroidJniObject::setStaticField<jstring>(jclass clazz, const char *fieldN } template <> +void QAndroidJniObject::setStaticField<jobjectArray>(const char *className, + const char *fieldName, + jobjectArray value) +{ + QJNIObjectPrivate::setStaticField<jobject>(className, fieldName, "[Ljava/lang/Object;", value); +} + +template <> +void QAndroidJniObject::setStaticField<jobjectArray>(jclass clazz, + const char *fieldName, + jobjectArray value) +{ + QJNIObjectPrivate::setStaticField<jobject>(clazz, fieldName, "[Ljava/lang/Object;", value); +} + +template <> void QAndroidJniObject::setStaticField<jbooleanArray>(const char *className, const char *fieldName, jbooleanArray value) @@ -2232,6 +2444,22 @@ void QAndroidJniObject::setStaticField<jdoubleArray>(jclass clazz, QJNIObjectPrivate::setStaticField<jobject>(clazz, fieldName, "[D", value); } +template <> +void QAndroidJniObject::setStaticField<jthrowable>(const char *className, + const char *fieldName, + jthrowable value) +{ + QJNIObjectPrivate::setStaticField<jobject>(className, fieldName, "Ljava/lang/Throwable;", value); +} + +template <> +void QAndroidJniObject::setStaticField<jthrowable>(jclass clazz, + const char *fieldName, + jthrowable value) +{ + QJNIObjectPrivate::setStaticField<jobject>(clazz, fieldName, "Ljava/lang/Throwable;", value); +} + QAndroidJniObject QAndroidJniObject::fromString(const QString &string) { return QJNIObjectPrivate::fromString(string); |