* Removed all Id tags.
[cacao.git] / src / native / vm / cldc1.1 / java_lang_Class.c
index 492fbd24fb85aecb69549320ab94090f2ee31e00..686109ac0a8146d8ab07e941bba3a6107de17771 100644 (file)
@@ -22,8 +22,6 @@
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
    02110-1301, USA.
 
-   $Id: java_lang_VMRuntime.c 5900 2006-11-04 17:30:44Z michi $
-
 */
 
 
 #include "vm/types.h"
 
 #include "native/jni.h"
+#include "native/llni.h"
 #include "native/native.h"
 
-#include "native/include/java_lang_String.h" /* required by java_lang_Class.h */
-#include "native/include/java_lang_Class.h"
+#include "native/include/java_lang_String.h"             /* required by j.l.C */
 #include "native/include/java_lang_Object.h"
 
+#include "native/include/java_lang_Class.h"
+
 #include "native/vm/java_lang_Class.h"
 
 
+/* native methods implemented by this file ************************************/
+static JNINativeMethod methods[] = {
+       { "forName",          "(Ljava/lang/String;)Ljava/lang/Class;",(void *) (ptrint) &Java_java_lang_Class_forName          },
+       { "newInstance",      "()Ljava/lang/Object;",                 (void *) (ptrint) &Java_java_lang_Class_newInstance      },
+       { "isInstance",       "(Ljava/lang/Object;)Z",                (void *) (ptrint) &Java_java_lang_Class_isInstance       },
+       { "isAssignableFrom", "(Ljava/lang/Class;)Z",                 (void *) (ptrint) &Java_java_lang_Class_isAssignableFrom },
+       { "isInterface",      "()Z",                                  (void *) (ptrint) &_Jv_java_lang_Class_isInterface       },
+       { "isArray",          "()Z",                                  (void *) (ptrint) &_Jv_java_lang_Class_isArray           },
+       { "getName",          "()Ljava/lang/String;",                 (void *) (ptrint) &Java_java_lang_Class_getName          },
+};
+
+/* _Jv_java_lang_Class_init ****************************************************
+   Register native functions.
+*******************************************************************************/
+void _Jv_java_lang_Class_init(void)
+{
+       utf *u;
+       u = utf_new_char("java/lang/Class");
+       native_method_register(u, methods, NATIVE_METHODS_COUNT);
+}
+
+
 /*
  * Class:     java/lang/Class
  * Method:    forName
@@ -58,10 +86,10 @@ JNIEXPORT java_lang_Class* JNICALL Java_java_lang_Class_forName(JNIEnv *env, jcl
  */
 JNIEXPORT java_lang_Object* JNICALL Java_java_lang_Class_newInstance(JNIEnv *env, java_lang_Class* this)
 {
-       classinfo         *c;
-       java_objectheader *o;
+       classinfo     *c;
+       java_handle_t *o;
 
-       c = (classinfo *) this;
+       c = LLNI_classinfo_unwrap(this);
 
        o = native_new_and_init(c);
 
@@ -69,6 +97,28 @@ JNIEXPORT java_lang_Object* JNICALL Java_java_lang_Class_newInstance(JNIEnv *env
 }
 
 
+/*
+ * Class:     java/lang/Class
+ * Method:    isInstance
+ * Signature: (Ljava/lang/Object;)Z
+ */
+JNIEXPORT s4 JNICALL Java_java_lang_Class_isInstance(JNIEnv *env, java_lang_Class *this, java_lang_Object *obj)
+{
+       return _Jv_java_lang_Class_isInstance(this, obj);
+}
+
+
+/*
+ * Class:     java/lang/Class
+ * Method:    isAssignableFrom
+ * Signature: (Ljava/lang/Class;)Z
+ */
+JNIEXPORT s4 JNICALL Java_java_lang_Class_isAssignableFrom(JNIEnv *env, java_lang_Class *this, java_lang_Class *cls)
+{
+       return _Jv_java_lang_Class_isAssignableFrom(this, cls);
+}
+
+
 /*
  * Class:     java/lang/Class
  * Method:    getName