Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
02110-1301, USA.
- $Id: java_lang_VMClass.c 7246 2007-01-29 18:49:05Z twisti $
+ $Id: java_lang_VMClass.c 7912 2007-05-18 13:12:09Z twisti $
*/
#include "vm/types.h"
#include "native/jni.h"
+#include "native/native.h"
+
#include "native/include/java_lang_Class.h"
#include "native/include/java_lang_ClassLoader.h"
#include "native/include/java_lang_Object.h"
#include "native/include/java_lang_Throwable.h"
-#include "native/include/java_lang_VMClass.h"
#include "native/include/java_lang_reflect_Constructor.h"
#include "native/include/java_lang_reflect_Method.h"
+#include "native/include/java_lang_VMClass.h"
+
#include "native/vm/java_lang_Class.h"
+/* native methods implemented by this file ************************************/
+
+static JNINativeMethod methods[] = {
+ { "isInstance", "(Ljava/lang/Class;Ljava/lang/Object;)Z", (void *) (ptrint) &Java_java_lang_VMClass_isInstance },
+ { "isAssignableFrom", "(Ljava/lang/Class;Ljava/lang/Class;)Z", (void *) (ptrint) &Java_java_lang_VMClass_isAssignableFrom },
+ { "isInterface", "(Ljava/lang/Class;)Z", (void *) (ptrint) &Java_java_lang_VMClass_isInterface },
+ { "isPrimitive", "(Ljava/lang/Class;)Z", (void *) (ptrint) &Java_java_lang_VMClass_isPrimitive },
+ { "getName", "(Ljava/lang/Class;)Ljava/lang/String;", (void *) (ptrint) &Java_java_lang_VMClass_getName },
+ { "getSuperclass", "(Ljava/lang/Class;)Ljava/lang/Class;", (void *) (ptrint) &Java_java_lang_VMClass_getSuperclass },
+ { "getInterfaces", "(Ljava/lang/Class;)[Ljava/lang/Class;", (void *) (ptrint) &Java_java_lang_VMClass_getInterfaces },
+ { "getComponentType", "(Ljava/lang/Class;)Ljava/lang/Class;", (void *) (ptrint) &Java_java_lang_VMClass_getComponentType },
+ { "getModifiers", "(Ljava/lang/Class;Z)I", (void *) (ptrint) &Java_java_lang_VMClass_getModifiers },
+ { "getDeclaringClass", "(Ljava/lang/Class;)Ljava/lang/Class;", (void *) (ptrint) &Java_java_lang_VMClass_getDeclaringClass },
+ { "getDeclaredClasses", "(Ljava/lang/Class;Z)[Ljava/lang/Class;", (void *) (ptrint) &Java_java_lang_VMClass_getDeclaredClasses },
+ { "getDeclaredFields", "(Ljava/lang/Class;Z)[Ljava/lang/reflect/Field;", (void *) (ptrint) &Java_java_lang_VMClass_getDeclaredFields },
+ { "getDeclaredMethods", "(Ljava/lang/Class;Z)[Ljava/lang/reflect/Method;", (void *) (ptrint) &Java_java_lang_VMClass_getDeclaredMethods },
+ { "getDeclaredConstructors", "(Ljava/lang/Class;Z)[Ljava/lang/reflect/Constructor;", (void *) (ptrint) &Java_java_lang_VMClass_getDeclaredConstructors },
+ { "getClassLoader", "(Ljava/lang/Class;)Ljava/lang/ClassLoader;", (void *) (ptrint) &Java_java_lang_VMClass_getClassLoader },
+ { "forName", "(Ljava/lang/String;ZLjava/lang/ClassLoader;)Ljava/lang/Class;", (void *) (ptrint) &Java_java_lang_VMClass_forName },
+ { "isArray", "(Ljava/lang/Class;)Z", (void *) (ptrint) &Java_java_lang_VMClass_isArray },
+ { "throwException", "(Ljava/lang/Throwable;)V", (void *) (ptrint) &Java_java_lang_VMClass_throwException },
+#if 0
+ { "getDeclaredAnnotations", "(Ljava/lang/Class;)[Ljava/lang/annotation/Annotation;", (void *) (ptrint) &Java_java_lang_VMClass_getDeclaredAnnotations },
+#endif
+ { "getEnclosingClass", "(Ljava/lang/Class;)Ljava/lang/Class;", (void *) (ptrint) &Java_java_lang_VMClass_getEnclosingClass },
+ { "getEnclosingConstructor", "(Ljava/lang/Class;)Ljava/lang/reflect/Constructor;", (void *) (ptrint) &Java_java_lang_VMClass_getEnclosingConstructor },
+ { "getEnclosingMethod", "(Ljava/lang/Class;)Ljava/lang/reflect/Method;", (void *) (ptrint) &Java_java_lang_VMClass_getEnclosingMethod },
+ { "getClassSignature", "(Ljava/lang/Class;)Ljava/lang/String;", (void *) (ptrint) &Java_java_lang_VMClass_getClassSignature },
+#if 0
+ { "isAnonymousClass", "(Ljava/lang/Class;)Z", (void *) (ptrint) &Java_java_lang_VMClass_isAnonymousClass },
+ { "isLocalClass", "(Ljava/lang/Class;)Z", (void *) (ptrint) &Java_java_lang_VMClass_isLocalClass },
+ { "isMemberClass", "(Ljava/lang/Class;)Z", (void *) (ptrint) &Java_java_lang_VMClass_isMemberClass },
+#endif
+};
+
+
+/* _Jv_java_lang_VMClass_init **************************************************
+
+ Register native functions.
+
+*******************************************************************************/
+
+void _Jv_java_lang_VMClass_init(void)
+{
+ utf *u;
+
+ u = utf_new_char("java/lang/VMClass");
+
+ native_method_register(u, methods, NATIVE_METHODS_COUNT);
+}
+
+
/*
* Class: java/lang/VMClass
* Method: isInstance
- * Signature: (Ljava/lang/Object;)Z
+ * Signature: (Ljava/lang/Class;Ljava/lang/Object;)Z
*/
JNIEXPORT s4 JNICALL Java_java_lang_VMClass_isInstance(JNIEnv *env, jclass clazz, java_lang_Class *klass, java_lang_Object *o)
{
/*
* Class: java/lang/VMClass
* Method: isAssignableFrom
- * Signature: (Ljava/lang/Class;)Z
+ * Signature: (Ljava/lang/Class;Ljava/lang/Class;)Z
*/
JNIEXPORT s4 JNICALL Java_java_lang_VMClass_isAssignableFrom(JNIEnv *env, jclass clazz, java_lang_Class *klass, java_lang_Class *c)
{
/*
* Class: java/lang/VMClass
* Method: isInterface
- * Signature: ()Z
+ * Signature: (Ljava/lang/Class;)Z
*/
JNIEXPORT s4 JNICALL Java_java_lang_VMClass_isInterface(JNIEnv *env, jclass clazz, java_lang_Class *klass)
{
/*
* Class: java/lang/VMClass
* Method: isPrimitive
- * Signature: ()Z
+ * Signature: (Ljava/lang/Class;)Z
*/
JNIEXPORT s4 JNICALL Java_java_lang_VMClass_isPrimitive(JNIEnv *env, jclass clazz, java_lang_Class *klass)
{
/*
* Class: java/lang/VMClass
* Method: getName
- * Signature: ()Ljava/lang/String;
+ * Signature: (Ljava/lang/Class;)Ljava/lang/String;
*/
JNIEXPORT java_lang_String* JNICALL Java_java_lang_VMClass_getName(JNIEnv *env, jclass clazz, java_lang_Class *klass)
{
/*
* Class: java/lang/VMClass
* Method: getSuperclass
- * Signature: ()Ljava/lang/Class;
+ * Signature: (Ljava/lang/Class;)Ljava/lang/Class;
*/
JNIEXPORT java_lang_Class* JNICALL Java_java_lang_VMClass_getSuperclass(JNIEnv *env, jclass clazz, java_lang_Class *klass)
{
/*
* Class: java/lang/VMClass
* Method: getInterfaces
- * Signature: ()[Ljava/lang/Class;
+ * Signature: (Ljava/lang/Class;)[Ljava/lang/Class;
*/
JNIEXPORT java_objectarray* JNICALL Java_java_lang_VMClass_getInterfaces(JNIEnv *env, jclass clazz, java_lang_Class *klass)
{
/*
* Class: java/lang/VMClass
* Method: getComponentType
- * Signature: ()Ljava/lang/Class;
+ * Signature: (Ljava/lang/Class;)Ljava/lang/Class;
*/
JNIEXPORT java_lang_Class* JNICALL Java_java_lang_VMClass_getComponentType(JNIEnv *env, jclass clazz, java_lang_Class *klass)
{
/*
* Class: java/lang/VMClass
* Method: getModifiers
- * Signature: (Z)I
+ * Signature: (Ljava/lang/Class;Z)I
*/
JNIEXPORT s4 JNICALL Java_java_lang_VMClass_getModifiers(JNIEnv *env, jclass clazz, java_lang_Class *klass, s4 ignoreInnerClassesAttrib)
{
/*
* Class: java/lang/VMClass
* Method: getDeclaringClass
- * Signature: ()Ljava/lang/Class;
+ * Signature: (Ljava/lang/Class;)Ljava/lang/Class;
*/
JNIEXPORT java_lang_Class* JNICALL Java_java_lang_VMClass_getDeclaringClass(JNIEnv *env, jclass clazz, java_lang_Class *klass)
{
/*
* Class: java/lang/VMClass
* Method: getDeclaredClasses
- * Signature: (Z)[Ljava/lang/Class;
+ * Signature: (Ljava/lang/Class;Z)[Ljava/lang/Class;
*/
JNIEXPORT java_objectarray* JNICALL Java_java_lang_VMClass_getDeclaredClasses(JNIEnv *env, jclass clazz, java_lang_Class *klass, s4 publicOnly)
{
/*
* Class: java/lang/VMClass
* Method: getDeclaredFields
- * Signature: (Z)[Ljava/lang/reflect/Field;
+ * Signature: (Ljava/lang/Class;Z)[Ljava/lang/reflect/Field;
*/
JNIEXPORT java_objectarray* JNICALL Java_java_lang_VMClass_getDeclaredFields(JNIEnv *env, jclass clazz, java_lang_Class *klass, s4 publicOnly)
{
/*
* Class: java/lang/VMClass
* Method: getDeclaredMethods
- * Signature: (Z)[Ljava/lang/reflect/Method;
+ * Signature: (Ljava/lang/Class;Z)[Ljava/lang/reflect/Method;
*/
JNIEXPORT java_objectarray* JNICALL Java_java_lang_VMClass_getDeclaredMethods(JNIEnv *env, jclass clazz, java_lang_Class *klass, s4 publicOnly)
{
/*
* Class: java/lang/VMClass
* Method: getDeclaredConstructors
- * Signature: (Z)[Ljava/lang/reflect/Constructor;
+ * Signature: (Ljava/lang/Class;Z)[Ljava/lang/reflect/Constructor;
*/
JNIEXPORT java_objectarray* JNICALL Java_java_lang_VMClass_getDeclaredConstructors(JNIEnv *env, jclass clazz, java_lang_Class *klass, s4 publicOnly)
{
/*
* Class: java/lang/VMClass
* Method: getClassLoader
- * Signature: ()Ljava/lang/ClassLoader;
+ * Signature: (Ljava/lang/Class;)Ljava/lang/ClassLoader;
*/
JNIEXPORT java_lang_ClassLoader* JNICALL Java_java_lang_VMClass_getClassLoader(JNIEnv *env, jclass clazz, java_lang_Class *klass)
{
/*
* Class: java/lang/VMClass
* Method: isArray
- * Signature: ()Z
+ * Signature: (Ljava/lang/Class;)Z
*/
JNIEXPORT s4 JNICALL Java_java_lang_VMClass_isArray(JNIEnv *env, jclass clazz, java_lang_Class *klass)
{