joeq.Runtime
Class Reflection

java.lang.Object
  extended by joeq.Runtime.Reflection

public abstract class Reflection
extends java.lang.Object

Version:
$Id: Reflection.java,v 1.46 2005/04/29 07:38:59 joewhaley Exp $
Author:
John Whaley

Field Summary
static jq_Class _class
           
static jq_StaticField _obj_trav
           
static ObjectTraverser obj_trav
           
static boolean USE_DECLARED_FIELDS_CACHE
           
 
Constructor Summary
Reflection()
           
 
Method Summary
static int arraylength(java.lang.Object o)
           
static java.lang.Object arrayload_A(java.lang.Object[] o, int i)
           
static Address arrayload_R(Address[] o, int i)
           
static java.lang.Class[] getArgTypesFromDesc(Utf8 desc)
          Utility function to extract the argument types from a method descriptor.
static java.lang.Object getfield_A(java.lang.Object o, jq_InstanceField f)
           
static byte getfield_B(java.lang.Object o, jq_InstanceField f)
           
static char getfield_C(java.lang.Object o, jq_InstanceField f)
           
static double getfield_D(java.lang.Object o, jq_InstanceField f)
           
static float getfield_F(java.lang.Object o, jq_InstanceField f)
           
static int getfield_I(java.lang.Object o, jq_InstanceField f)
           
static long getfield_L(java.lang.Object o, jq_InstanceField f)
           
static Address getfield_P(java.lang.Object o, jq_InstanceField f)
           
static short getfield_S(java.lang.Object o, jq_InstanceField f)
           
static boolean getfield_Z(java.lang.Object o, jq_InstanceField f)
           
static java.lang.Object getfield(java.lang.Object o, jq_InstanceField f)
           
static java.lang.reflect.Constructor getJDKConstructor(java.lang.Class c, java.lang.Class[] args)
           
static java.lang.reflect.Field getJDKField(java.lang.Class c, java.lang.String name)
           
static java.lang.reflect.Member getJDKMember(jq_Member m)
           
static java.lang.reflect.Method getJDKMethod(java.lang.Class c, java.lang.String name, java.lang.Class[] args)
           
static java.lang.Class getJDKType(jq_Primitive c)
           
static java.lang.Class getJDKType(jq_Reference c)
           
static java.lang.Class getJDKType(jq_Type c)
           
static jq_Initializer getJQMember(java.lang.reflect.Constructor f)
           
static jq_Field getJQMember(java.lang.reflect.Field f)
           
static jq_Method getJQMember(java.lang.reflect.Method f)
           
static jq_Type getJQType(java.lang.Class c)
           
static java.lang.Object getstatic_A(jq_StaticField f)
           
static byte getstatic_B(jq_StaticField f)
           
static char getstatic_C(jq_StaticField f)
           
static double getstatic_D(jq_StaticField f)
           
static float getstatic_F(jq_StaticField f)
           
static int getstatic_I(jq_StaticField f)
           
static long getstatic_L(jq_StaticField f)
           
static Address getstatic_P(jq_StaticField f)
           
static short getstatic_S(jq_StaticField f)
           
static boolean getstatic_Z(jq_StaticField f)
           
static jq_Reference getTypeOf(java.lang.Object o)
           
static long invoke(jq_Method m, java.lang.Object dis, java.lang.Object[] args)
           
static Address invokeA(jq_Method m, java.lang.Object dis, java.lang.Object[] args)
           
static java.lang.Object invokeinstance_A(jq_InstanceMethod m, java.lang.Object dis)
           
static java.lang.Object invokeinstance_A(jq_InstanceMethod m, java.lang.Object dis, java.lang.Object arg1)
           
static void invokeinstance_V(jq_InstanceMethod m, java.lang.Object dis)
           
static void invokeinstance_V(jq_InstanceMethod m, java.lang.Object dis, java.lang.Object arg1)
           
static void invokeinstance_V(jq_InstanceMethod m, java.lang.Object dis, java.lang.Object arg1, int arg2, long arg3, int arg4)
           
static void invokeinstance_V(jq_InstanceMethod m, java.lang.Object dis, java.lang.Object arg1, java.lang.Object arg2)
           
static void invokeinstance_V(jq_InstanceMethod m, java.lang.Object dis, java.lang.Object arg1, java.lang.Object arg2, java.lang.Object arg3)
           
static void invokeinstance_V(jq_InstanceMethod m, java.lang.Object dis, java.lang.Object arg1, java.lang.Object arg2, java.lang.Object arg3, long arg4)
           
static boolean invokeinstance_Z(jq_InstanceMethod m, java.lang.Object dis, java.lang.Object arg1)
           
static java.lang.Object invokestatic_A(jq_StaticMethod m)
           
static int invokestatic_I(jq_StaticMethod m)
           
static long invokestatic_J(jq_StaticMethod m)
           
static void invokestatic_V(jq_StaticMethod m)
           
static void invokestatic_V(jq_StaticMethod m, java.lang.Object arg1)
           
static void putfield_A(java.lang.Object o, jq_InstanceField f, java.lang.Object v)
           
static void putfield_B(java.lang.Object o, jq_InstanceField f, byte v)
           
static void putfield_C(java.lang.Object o, jq_InstanceField f, char v)
           
static void putfield_D(java.lang.Object o, jq_InstanceField f, double v)
           
static void putfield_F(java.lang.Object o, jq_InstanceField f, float v)
           
static void putfield_I(java.lang.Object o, jq_InstanceField f, int v)
           
static void putfield_L(java.lang.Object o, jq_InstanceField f, long v)
           
static void putfield_P(java.lang.Object o, jq_InstanceField f, Address v)
           
static void putfield_S(java.lang.Object o, jq_InstanceField f, short v)
           
static void putfield_Z(java.lang.Object o, jq_InstanceField f, boolean v)
           
static void putstatic_A(jq_StaticField f, java.lang.Object v)
           
static void putstatic_B(jq_StaticField f, byte v)
           
static void putstatic_C(jq_StaticField f, char v)
           
static void putstatic_D(jq_StaticField f, double v)
           
static void putstatic_F(jq_StaticField f, float v)
           
static void putstatic_I(jq_StaticField f, int v)
           
static void putstatic_L(jq_StaticField f, long v)
           
static void putstatic_P(jq_StaticField f, Address v)
           
static void putstatic_S(jq_StaticField f, short v)
           
static void putstatic_Z(jq_StaticField f, boolean v)
           
static void registerNullStaticFields(java.util.Set s)
           
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

obj_trav

public static ObjectTraverser obj_trav

USE_DECLARED_FIELDS_CACHE

public static boolean USE_DECLARED_FIELDS_CACHE

_class

public static jq_Class _class

_obj_trav

public static jq_StaticField _obj_trav
Constructor Detail

Reflection

public Reflection()
Method Detail

getTypeOf

public static final jq_Reference getTypeOf(java.lang.Object o)

getJQType

public static final jq_Type getJQType(java.lang.Class c)

getJDKType

public static final java.lang.Class getJDKType(jq_Type c)

getJDKType

public static final java.lang.Class getJDKType(jq_Primitive c)

getJDKType

public static java.lang.Class getJDKType(jq_Reference c)

getJQMember

public static final jq_Field getJQMember(java.lang.reflect.Field f)

getJQMember

public static final jq_Method getJQMember(java.lang.reflect.Method f)

getJQMember

public static final jq_Initializer getJQMember(java.lang.reflect.Constructor f)

getJDKField

public static final java.lang.reflect.Field getJDKField(java.lang.Class c,
                                                        java.lang.String name)

getJDKMethod

public static final java.lang.reflect.Method getJDKMethod(java.lang.Class c,
                                                          java.lang.String name,
                                                          java.lang.Class[] args)

getJDKConstructor

public static final java.lang.reflect.Constructor getJDKConstructor(java.lang.Class c,
                                                                    java.lang.Class[] args)

getJDKMember

public static final java.lang.reflect.Member getJDKMember(jq_Member m)

getArgTypesFromDesc

public static java.lang.Class[] getArgTypesFromDesc(Utf8 desc)
Utility function to extract the argument types from a method descriptor.

Parameters:
desc -
Returns:
array of argument types

invokestatic_V

public static void invokestatic_V(jq_StaticMethod m)
                           throws java.lang.Throwable
Throws:
java.lang.Throwable

invokestatic_I

public static int invokestatic_I(jq_StaticMethod m)
                          throws java.lang.Throwable
Throws:
java.lang.Throwable

invokestatic_A

public static java.lang.Object invokestatic_A(jq_StaticMethod m)
                                       throws java.lang.Throwable
Throws:
java.lang.Throwable

invokestatic_J

public static long invokestatic_J(jq_StaticMethod m)
                           throws java.lang.Throwable
Throws:
java.lang.Throwable

invokestatic_V

public static void invokestatic_V(jq_StaticMethod m,
                                  java.lang.Object arg1)
                           throws java.lang.Throwable
Throws:
java.lang.Throwable

invokeinstance_V

public static void invokeinstance_V(jq_InstanceMethod m,
                                    java.lang.Object dis)
                             throws java.lang.Throwable
Throws:
java.lang.Throwable

invokeinstance_A

public static java.lang.Object invokeinstance_A(jq_InstanceMethod m,
                                                java.lang.Object dis)
                                         throws java.lang.Throwable
Throws:
java.lang.Throwable

invokeinstance_V

public static void invokeinstance_V(jq_InstanceMethod m,
                                    java.lang.Object dis,
                                    java.lang.Object arg1)
                             throws java.lang.Throwable
Throws:
java.lang.Throwable

invokeinstance_A

public static java.lang.Object invokeinstance_A(jq_InstanceMethod m,
                                                java.lang.Object dis,
                                                java.lang.Object arg1)
                                         throws java.lang.Throwable
Throws:
java.lang.Throwable

invokeinstance_Z

public static boolean invokeinstance_Z(jq_InstanceMethod m,
                                       java.lang.Object dis,
                                       java.lang.Object arg1)
                                throws java.lang.Throwable
Throws:
java.lang.Throwable

invokeinstance_V

public static void invokeinstance_V(jq_InstanceMethod m,
                                    java.lang.Object dis,
                                    java.lang.Object arg1,
                                    java.lang.Object arg2)
                             throws java.lang.Throwable
Throws:
java.lang.Throwable

invokeinstance_V

public static void invokeinstance_V(jq_InstanceMethod m,
                                    java.lang.Object dis,
                                    java.lang.Object arg1,
                                    java.lang.Object arg2,
                                    java.lang.Object arg3)
                             throws java.lang.Throwable
Throws:
java.lang.Throwable

invokeinstance_V

public static void invokeinstance_V(jq_InstanceMethod m,
                                    java.lang.Object dis,
                                    java.lang.Object arg1,
                                    java.lang.Object arg2,
                                    java.lang.Object arg3,
                                    long arg4)
                             throws java.lang.Throwable
Throws:
java.lang.Throwable

invokeinstance_V

public static void invokeinstance_V(jq_InstanceMethod m,
                                    java.lang.Object dis,
                                    java.lang.Object arg1,
                                    int arg2,
                                    long arg3,
                                    int arg4)
                             throws java.lang.Throwable
Throws:
java.lang.Throwable

invoke

public static long invoke(jq_Method m,
                          java.lang.Object dis,
                          java.lang.Object[] args)
                   throws java.lang.IllegalArgumentException,
                          java.lang.reflect.InvocationTargetException
Throws:
java.lang.IllegalArgumentException
java.lang.reflect.InvocationTargetException

invokeA

public static Address invokeA(jq_Method m,
                              java.lang.Object dis,
                              java.lang.Object[] args)
                       throws java.lang.IllegalArgumentException,
                              java.lang.reflect.InvocationTargetException
Throws:
java.lang.IllegalArgumentException
java.lang.reflect.InvocationTargetException

getfield_I

public static int getfield_I(java.lang.Object o,
                             jq_InstanceField f)

getfield_L

public static long getfield_L(java.lang.Object o,
                              jq_InstanceField f)

getfield_F

public static float getfield_F(java.lang.Object o,
                               jq_InstanceField f)

getfield_D

public static double getfield_D(java.lang.Object o,
                                jq_InstanceField f)

getfield_A

public static java.lang.Object getfield_A(java.lang.Object o,
                                          jq_InstanceField f)

getfield_P

public static Address getfield_P(java.lang.Object o,
                                 jq_InstanceField f)

getfield_B

public static byte getfield_B(java.lang.Object o,
                              jq_InstanceField f)

getfield_C

public static char getfield_C(java.lang.Object o,
                              jq_InstanceField f)

getfield_S

public static short getfield_S(java.lang.Object o,
                               jq_InstanceField f)

getfield_Z

public static boolean getfield_Z(java.lang.Object o,
                                 jq_InstanceField f)

getfield

public static java.lang.Object getfield(java.lang.Object o,
                                        jq_InstanceField f)

putfield_I

public static void putfield_I(java.lang.Object o,
                              jq_InstanceField f,
                              int v)

putfield_L

public static void putfield_L(java.lang.Object o,
                              jq_InstanceField f,
                              long v)

putfield_F

public static void putfield_F(java.lang.Object o,
                              jq_InstanceField f,
                              float v)

putfield_D

public static void putfield_D(java.lang.Object o,
                              jq_InstanceField f,
                              double v)

putfield_A

public static void putfield_A(java.lang.Object o,
                              jq_InstanceField f,
                              java.lang.Object v)

putfield_P

public static void putfield_P(java.lang.Object o,
                              jq_InstanceField f,
                              Address v)

putfield_B

public static void putfield_B(java.lang.Object o,
                              jq_InstanceField f,
                              byte v)

putfield_C

public static void putfield_C(java.lang.Object o,
                              jq_InstanceField f,
                              char v)

putfield_S

public static void putfield_S(java.lang.Object o,
                              jq_InstanceField f,
                              short v)

putfield_Z

public static void putfield_Z(java.lang.Object o,
                              jq_InstanceField f,
                              boolean v)

getstatic_I

public static int getstatic_I(jq_StaticField f)

getstatic_L

public static long getstatic_L(jq_StaticField f)

getstatic_F

public static float getstatic_F(jq_StaticField f)

getstatic_D

public static double getstatic_D(jq_StaticField f)

getstatic_A

public static java.lang.Object getstatic_A(jq_StaticField f)

getstatic_P

public static Address getstatic_P(jq_StaticField f)

getstatic_Z

public static boolean getstatic_Z(jq_StaticField f)

getstatic_B

public static byte getstatic_B(jq_StaticField f)

getstatic_S

public static short getstatic_S(jq_StaticField f)

getstatic_C

public static char getstatic_C(jq_StaticField f)

putstatic_I

public static void putstatic_I(jq_StaticField f,
                               int v)

putstatic_L

public static void putstatic_L(jq_StaticField f,
                               long v)

putstatic_F

public static void putstatic_F(jq_StaticField f,
                               float v)

putstatic_D

public static void putstatic_D(jq_StaticField f,
                               double v)

putstatic_A

public static void putstatic_A(jq_StaticField f,
                               java.lang.Object v)

putstatic_P

public static void putstatic_P(jq_StaticField f,
                               Address v)

putstatic_Z

public static void putstatic_Z(jq_StaticField f,
                               boolean v)

putstatic_B

public static void putstatic_B(jq_StaticField f,
                               byte v)

putstatic_S

public static void putstatic_S(jq_StaticField f,
                               short v)

putstatic_C

public static void putstatic_C(jq_StaticField f,
                               char v)

arraylength

public static int arraylength(java.lang.Object o)

arrayload_A

public static java.lang.Object arrayload_A(java.lang.Object[] o,
                                           int i)

arrayload_R

public static Address arrayload_R(Address[] o,
                                  int i)

registerNullStaticFields

public static void registerNullStaticFields(java.util.Set s)