Clazz
Class jq_Class

java.lang.Object
Clazz.jq_Type
Clazz.jq_Reference
Clazz.jq_Class
- All Implemented Interfaces:
- Compil3r.Quad.AndersenInterface.AndersenClass, Compil3r.Quad.AndersenInterface.AndersenReference, Compil3r.Quad.AndersenInterface.AndersenType, jq_ClassFileConstants
- public final class jq_Class
- extends jq_Reference
- implements jq_ClassFileConstants, Compil3r.Quad.AndersenInterface.AndersenClass
jq_Class
- Version:
- $Id: jq_Class.java,v 1.66 2003/08/03 12:26:00 joewhaley Exp $
| Fields inherited from interface Clazz.jq_ClassFileConstants |
ACC_ABSTRACT, ACC_FINAL, ACC_INTERFACE, ACC_NATIVE, ACC_PRIVATE, ACC_PROTECTED, ACC_PUBLIC, ACC_STATIC, ACC_STRICT, ACC_SUPER, ACC_SYNCHRONIZED, ACC_TRANSIENT, ACC_VOLATILE, CONSTANT_Class, CONSTANT_Double, CONSTANT_FieldRef, CONSTANT_Float, CONSTANT_Integer, CONSTANT_InterfaceMethodRef, CONSTANT_Long, CONSTANT_MethodRef, CONSTANT_NameAndType, CONSTANT_ResolvedClass, CONSTANT_ResolvedIFieldRef, CONSTANT_ResolvedIMethodRef, CONSTANT_ResolvedSFieldRef, CONSTANT_ResolvedSMethodRef, CONSTANT_String, CONSTANT_Utf8, CONSUME_STACK, ILLEGAL_OPCODE, ILLEGAL_TYPE, jbc_AALOAD, jbc_AASTORE, jbc_ACONST_NULL, jbc_ALOAD, jbc_ALOAD_0, jbc_ALOAD_1, jbc_ALOAD_2, jbc_ALOAD_3, jbc_ANEWARRAY, jbc_ARETURN, jbc_ARRAYLENGTH, jbc_ASTORE, jbc_ASTORE_0, jbc_ASTORE_1, jbc_ASTORE_2, jbc_ASTORE_3, jbc_ATHROW, jbc_BALOAD, jbc_BASTORE, jbc_BIPUSH, jbc_BREAKPOINT, jbc_CALOAD, jbc_CASTORE, jbc_CHECKCAST, jbc_D2F, jbc_D2I, jbc_D2L, jbc_DADD, jbc_DALOAD, jbc_DASTORE, jbc_DCMPG, jbc_DCMPL, jbc_DCONST_0, jbc_DCONST_1, jbc_DDIV, jbc_DLOAD, jbc_DLOAD_0, jbc_DLOAD_1, jbc_DLOAD_2, jbc_DLOAD_3, jbc_DMUL, jbc_DNEG, jbc_DREM, jbc_DRETURN, jbc_DSTORE, jbc_DSTORE_0, jbc_DSTORE_1, jbc_DSTORE_2, jbc_DSTORE_3, jbc_DSUB, jbc_DUP, jbc_DUP_X1, jbc_DUP_X2, jbc_DUP2, jbc_DUP2_X1, jbc_DUP2_X2, jbc_F2D, jbc_F2I, jbc_F2L, jbc_FADD, jbc_FALOAD, jbc_FASTORE, jbc_FCMPG, jbc_FCMPL, jbc_FCONST_0, jbc_FCONST_1, jbc_FCONST_2, jbc_FDIV, jbc_FLOAD, jbc_FLOAD_0, jbc_FLOAD_1, jbc_FLOAD_2, jbc_FLOAD_3, jbc_FMUL, jbc_FNEG, jbc_FREM, jbc_FRETURN, jbc_FSTORE, jbc_FSTORE_0, jbc_FSTORE_1, jbc_FSTORE_2, jbc_FSTORE_3, jbc_FSUB, jbc_GETFIELD, jbc_GETSTATIC, jbc_GOTO, jbc_GOTO_W, jbc_I2B, jbc_I2C, jbc_I2D, jbc_I2F, jbc_I2L, jbc_I2S, jbc_IADD, jbc_IALOAD, jbc_IAND, jbc_IASTORE, jbc_ICONST_0, jbc_ICONST_1, jbc_ICONST_2, jbc_ICONST_3, jbc_ICONST_4, jbc_ICONST_5, jbc_ICONST_M1, jbc_IDIV, jbc_IF_ACMPEQ, jbc_IF_ACMPNE, jbc_IF_ICMPEQ, jbc_IF_ICMPGE, jbc_IF_ICMPGT, jbc_IF_ICMPLE, jbc_IF_ICMPLT, jbc_IF_ICMPNE, jbc_IFEQ, jbc_IFGE, jbc_IFGT, jbc_IFLE, jbc_IFLT, jbc_IFNE, jbc_IFNONNULL, jbc_IFNULL, jbc_IINC, jbc_ILOAD, jbc_ILOAD_0, jbc_ILOAD_1, jbc_ILOAD_2, jbc_ILOAD_3, jbc_IMUL, jbc_INEG, jbc_INSTANCEOF, jbc_INT2BYTE, jbc_INT2CHAR, jbc_INT2SHORT, jbc_INVOKEINTERFACE, jbc_INVOKENONVIRTUAL, jbc_INVOKESPECIAL, jbc_INVOKESTATIC, jbc_INVOKEVIRTUAL, jbc_IOR, jbc_IREM, jbc_IRETURN, jbc_ISHL, jbc_ISHR, jbc_ISTORE, jbc_ISTORE_0, jbc_ISTORE_1, jbc_ISTORE_2, jbc_ISTORE_3, jbc_ISUB, jbc_IUSHR, jbc_IXOR, jbc_JSR, jbc_JSR_W, jbc_L2D, jbc_L2F, jbc_L2I, jbc_LADD, jbc_LALOAD, jbc_LAND, jbc_LASTORE, jbc_LCMP, jbc_LCONST_0, jbc_LCONST_1, jbc_LDC, jbc_LDC_W, jbc_LDC2_W, jbc_LDIV, jbc_LLOAD, jbc_LLOAD_0, jbc_LLOAD_1, jbc_LLOAD_2, jbc_LLOAD_3, jbc_LMUL, jbc_LNEG, jbc_LOOKUPSWITCH, jbc_LOR, jbc_LREM, jbc_LRETURN, jbc_LSHL, jbc_LSHR, jbc_LSTORE, jbc_LSTORE_0, jbc_LSTORE_1, jbc_LSTORE_2, jbc_LSTORE_3, jbc_LSUB, jbc_LUSHR, jbc_LXOR, jbc_MONITORENTER, jbc_MONITOREXIT, jbc_MULTIANEWARRAY, jbc_NEW, jbc_NEWARRAY, jbc_NOP, jbc_POP, jbc_POP2, jbc_PUTFIELD, jbc_PUTSTATIC, jbc_RET, jbc_RETURN, jbc_SALOAD, jbc_SASTORE, jbc_SIPUSH, jbc_SWAP, jbc_TABLESWITCH, jbc_WIDE, NO_OF_OPERANDS, OPCODE_NAMES, PRODUCE_STACK, RESERVED, STATE_CLSINITERROR, STATE_CLSINITIALIZED, STATE_CLSINITIALIZING, STATE_CLSINITRUNNING, STATE_COMPILED, STATE_COMPILING, STATE_LOADED, STATE_LOADERROR, STATE_LOADING1, STATE_LOADING2, STATE_LOADING3, STATE_PREPARED, STATE_PREPARING, STATE_SFINITIALIZED, STATE_SFINITIALIZING, STATE_UNLOADED, STATE_VERIFIED, STATE_VERIFYING, T_BOOLEAN, T_BYTE, T_CHAR, T_DOUBLE, T_FLOAT, T_INT, T_LONG, T_SHORT, TC_ARRAY, TC_BOOLEAN, TC_BYTE, TC_CHAR, TC_CLASS, TC_CLASSEND, TC_DOUBLE, TC_FLOAT, TC_INT, TC_LONG, TC_PARAM, TC_PARAMEND, TC_SHORT, TC_VOID, TYPE_OF_OPERANDS, UNDEFINED, UNPREDICTABLE |
|
Method Summary |
void |
accept(jq_TypeVisitor tv)
|
private void |
addDeclaredMember(jq_NameAndDesc nd,
jq_Member m)
|
private void |
addSubclass(jq_Class subclass)
|
private void |
addSubinterface(jq_Class subinterface)
|
Compil3r.Quad.AndersenInterface.AndersenClassInitializer |
and_getClassInitializer()
|
private static jq_Class.Delegate |
attemptDelegate(java.lang.String s)
|
static java.lang.String |
className(UTF.Utf8 desc)
|
void |
cls_initialize()
|
void |
compile()
|
(package private) jq_InstanceField |
createInstanceField(jq_NameAndDesc nd)
|
(package private) jq_InstanceMethod |
createInstanceMethod(jq_NameAndDesc nd)
|
(package private) jq_StaticField |
createStaticField(jq_NameAndDesc nd)
|
(package private) jq_StaticMethod |
createStaticMethod(jq_NameAndDesc nd)
|
boolean |
doesConstantPoolContain(java.lang.Object o)
|
void |
dump(java.io.DataOutput out)
|
private static jq_Member |
findByNameAndDesc(jq_Member[] array,
jq_NameAndDesc nd)
|
jq_InstanceMethod |
generateInstanceMethodStub(jq_NameAndDesc nd,
jq_StaticMethod m,
char access_flags,
char method_idx)
|
jq_StaticMethod |
generateStaticMethodStub(jq_NameAndDesc nd,
jq_StaticMethod m,
char access_flags,
char classfield_idx,
char method_idx)
|
char |
getAccessFlags()
|
byte[] |
getAttribute(java.lang.String name)
|
byte[] |
getAttribute(UTF.Utf8 name)
|
java.util.Iterator |
getAttributes()
|
jq_ClassInitializer |
getClassInitializer()
|
jq_ConstantPool |
getCP()
|
java.lang.Object |
getCP(char index)
|
java.lang.Double |
getCPasDouble(char index)
|
java.lang.Float |
getCPasFloat(char index)
|
jq_InstanceField |
getCPasInstanceField(char index)
|
jq_InstanceMethod |
getCPasInstanceMethod(char index)
|
java.lang.Integer |
getCPasInt(char index)
|
java.lang.Long |
getCPasLong(char index)
|
jq_Member |
getCPasMember(char index)
|
jq_StaticField |
getCPasStaticField(char index)
|
jq_StaticMethod |
getCPasStaticMethod(char index)
|
java.lang.String |
getCPasString(char index)
|
jq_Type |
getCPasType(char index)
|
UTF.Utf8 |
getCPasUtf8(char index)
|
int |
getCPCount()
|
byte |
getCPtag(char index)
|
jq_InstanceField |
getDeclaredInstanceField(jq_NameAndDesc nd)
|
jq_InstanceField[] |
getDeclaredInstanceFields()
|
jq_InstanceMethod |
getDeclaredInstanceMethod(jq_NameAndDesc nd)
|
jq_InstanceMethod[] |
getDeclaredInstanceMethods()
|
jq_Class |
getDeclaredInterface(UTF.Utf8 desc)
|
jq_Class[] |
getDeclaredInterfaces()
|
jq_Member |
getDeclaredMember(jq_NameAndDesc nd)
|
jq_Member |
getDeclaredMember(java.lang.String name,
java.lang.String desc)
|
jq_StaticField |
getDeclaredStaticField(jq_NameAndDesc nd)
|
jq_StaticField[] |
getDeclaredStaticFields()
|
jq_StaticMethod |
getDeclaredStaticMethod(jq_NameAndDesc nd)
|
jq_StaticMethod[] |
getDeclaredStaticMethods()
|
int |
getDepth()
|
jq_Reference |
getDirectPrimarySupertype()
|
jq_Initializer |
getInitializer(jq_NameAndDesc nd)
|
jq_Initializer |
getInitializer(UTF.Utf8 desc)
|
jq_Class[] |
getInnerClasses()
|
jq_InstanceField |
getInstanceField(jq_NameAndDesc nd)
|
jq_InstanceField[] |
getInstanceFields()
|
jq_InstanceMethod |
getInstanceMethod(jq_NameAndDesc nd)
|
int |
getInstanceSize()
|
jq_Class |
getInterface(UTF.Utf8 desc)
|
jq_Class[] |
getInterfaces()
|
static jq_InstanceMethod |
getInvokespecialTarget(jq_Class clazz,
jq_InstanceMethod method)
|
java.lang.String |
getJDKDesc()
|
java.lang.String |
getJDKName()
|
int |
getMajorVersion()
|
java.util.Collection |
getMembers()
|
int |
getMinorVersion()
|
java.lang.String |
getName()
|
int |
getNumberOfStaticFields()
|
int |
getNumberOfStaticMethods()
|
jq_InstanceField |
getOrCreateInstanceField(jq_NameAndDesc nd)
|
jq_InstanceField |
getOrCreateInstanceField(java.lang.String name,
java.lang.String desc)
|
jq_InstanceMethod |
getOrCreateInstanceMethod(jq_NameAndDesc nd)
|
jq_InstanceMethod |
getOrCreateInstanceMethod(java.lang.String name,
java.lang.String desc)
|
jq_StaticField |
getOrCreateStaticField(jq_NameAndDesc nd)
|
jq_StaticField |
getOrCreateStaticField(java.lang.String name,
java.lang.String desc)
|
jq_StaticMethod |
getOrCreateStaticMethod(jq_NameAndDesc nd)
|
jq_StaticMethod |
getOrCreateStaticMethod(java.lang.String name,
java.lang.String desc)
|
int[] |
getReferenceOffsets()
|
UTF.Utf8 |
getSourceFile()
|
int[] |
getStaticData()
|
jq_StaticField |
getStaticField(jq_NameAndDesc nd)
|
private int |
getStaticFields_helper(jq_StaticField[] sfs,
int current)
|
jq_StaticField[] |
getStaticFields()
|
jq_StaticMethod |
getStaticMethod(jq_NameAndDesc nd)
|
private int |
getStaticMethods_helper(jq_StaticMethod[] sfs,
int current)
|
jq_StaticMethod[] |
getStaticMethods()
|
jq_Class[] |
getSubClasses()
|
jq_Class[] |
getSubInterfaces()
|
jq_Class |
getSuperclass()
|
jq_InstanceMethod |
getVirtualMethod(jq_NameAndDesc nd)
|
jq_InstanceMethod[] |
getVirtualMethods()
|
int |
hashCode()
Get a value that represents this Object, as uniquely as
possible within the confines of an int. |
boolean |
implementsInterface(jq_Class k)
|
private void |
invokeclinit()
|
boolean |
isAbstract()
|
boolean |
isAddressType()
|
boolean |
isArrayType()
|
boolean |
isClassType()
INTERFACE |
boolean |
isDeprecated()
|
boolean |
isFinal()
|
boolean |
isInClassLib()
|
boolean |
isInSamePackage(jq_Class that)
|
boolean |
isInterface()
|
boolean |
isPublic()
|
boolean |
isSpecial()
|
boolean |
isSynthetic()
|
void |
load()
Loads the binary data for this class. |
void |
load(java.io.DataInput in)
|
void |
merge_old(jq_Class that)
|
void |
merge(jq_Class that)
|
boolean |
needsDynamicLink(jq_Method method)
|
static jq_Class |
newClass(java.lang.ClassLoader classLoader,
UTF.Utf8 desc)
|
java.lang.Object |
newInstance()
|
void |
prepare()
|
(package private) void |
readAttributes(java.io.DataInput in,
java.util.Map attribMap)
|
jq_ConstantPool.ConstantPoolRebuilder |
rebuildConstantPool(boolean addCode)
|
void |
remakeAttributes(jq_ConstantPool.ConstantPoolRebuilder cpr)
|
void |
removeAttribute(java.lang.String s)
|
void |
removeAttribute(UTF.Utf8 u)
|
private void |
removeSubclass(jq_Class subclass)
|
private void |
removeSubinterface(jq_Class subinterface)
|
private void |
replaceMethodIn(jq_Class old)
|
private void |
rewriteMethod(jq_ConstantPool.ConstantPoolRebuilder cp,
Compil3r.BytecodeAnalysis.Bytecodes.InstructionList il)
|
private void |
rewriteMethodForReplace(jq_ConstantPool.ConstantPoolRebuilder cp,
Compil3r.BytecodeAnalysis.Bytecodes.InstructionList il)
|
void |
setCP(jq_ConstantPool cp)
|
void |
setDeclaredInstanceFields(jq_InstanceField[] dif)
|
void |
setDeclaredInstanceMethods(jq_InstanceMethod[] dim)
|
void |
setDeclaredStaticFields(jq_StaticField[] dsf)
|
void |
setDeclaredStaticMethods(jq_StaticMethod[] dsm)
|
void |
setStaticData(jq_StaticField sf,
Memory.Address data)
|
void |
setStaticData(jq_StaticField sf,
double data)
|
void |
setStaticData(jq_StaticField sf,
float data)
|
void |
setStaticData(jq_StaticField sf,
int data)
|
void |
setStaticData(jq_StaticField sf,
long data)
|
void |
setStaticData(jq_StaticField sf,
java.lang.Object data)
|
void |
sf_initialize()
|
java.lang.String |
shortName()
|
void |
verify()
|
| Methods inherited from class Clazz.jq_Reference |
chkState, getClassLoader, getReferenceSize, getState, getTypeOf, getVTable, isClsInitialized, isClsInitRunning, isCompiled, isInstance, isIntLike, isLoaded, isPrepared, isPrimitiveType, isSFInitialized, isVerified |
TRACE
public static boolean TRACE
WARN_STALE_CLASS_FILES
public static boolean WARN_STALE_CLASS_FILES
REPLACE_CLASS
public static boolean REPLACE_CLASS
TRACE_REPLACE_CLASS
public static boolean TRACE_REPLACE_CLASS
classToReplace
public static java.util.List classToReplace
DETERMINISTIC
public static final boolean DETERMINISTIC
- See Also:
- Constant Field Values
members
private java.util.Map members
minor_version
private char minor_version
major_version
private char major_version
access_flags
private char access_flags
super_class
private jq_Class super_class
subclasses
private jq_Class[] subclasses
subinterfaces
private jq_Class[] subinterfaces
declared_interfaces
private jq_Class[] declared_interfaces
interfaces
private jq_Class[] interfaces
static_fields
private jq_StaticField[] static_fields
static_methods
private jq_StaticMethod[] static_methods
declared_instance_fields
private jq_InstanceField[] declared_instance_fields
declared_instance_methods
private jq_InstanceMethod[] declared_instance_methods
attributes
private java.util.Map attributes
const_pool
private jq_ConstantPool const_pool
static_data_size
private int static_data_size
instance_size
private int instance_size
instance_fields
private jq_InstanceField[] instance_fields
reference_offsets
private int[] reference_offsets
virtual_methods
private jq_InstanceMethod[] virtual_methods
static_data
private int[] static_data
dont_align
private boolean dont_align
NumOfIFieldsKept
public static int NumOfIFieldsKept
NumOfSFieldsKept
public static int NumOfSFieldsKept
NumOfIMethodsKept
public static int NumOfIMethodsKept
NumOfSMethodsKept
public static int NumOfSMethodsKept
NumOfIFieldsEliminated
public static int NumOfIFieldsEliminated
NumOfSFieldsEliminated
public static int NumOfSFieldsEliminated
NumOfIMethodsEliminated
public static int NumOfIMethodsEliminated
NumOfSMethodsEliminated
public static int NumOfSMethodsEliminated
_class
public static final jq_Class _class
_delegate
private static jq_Class.Delegate _delegate
jq_Class
private jq_Class(java.lang.ClassLoader class_loader,
UTF.Utf8 desc)
- Private constructor.
Use a ClassLoader to create a jq_Class instance.
isClassType
public final boolean isClassType()
- INTERFACE
- Specified by:
isClassType in class jq_Type
isArrayType
public final boolean isArrayType()
- Specified by:
isArrayType in interface Compil3r.Quad.AndersenInterface.AndersenType- Specified by:
isArrayType in class jq_Type
isAddressType
public final boolean isAddressType()
- Specified by:
isAddressType in class jq_Type
getName
public final java.lang.String getName()
- Specified by:
getName in class jq_Type
shortName
public final java.lang.String shortName()
- Specified by:
shortName in class jq_Type
isInSamePackage
public final boolean isInSamePackage(jq_Class that)
getJDKName
public final java.lang.String getJDKName()
- Specified by:
getJDKName in class jq_Reference
getJDKDesc
public final java.lang.String getJDKDesc()
- Specified by:
getJDKDesc in class jq_Type
needsDynamicLink
public final boolean needsDynamicLink(jq_Method method)
- Overrides:
needsDynamicLink in class jq_Type
getDeclaredMember
public jq_Member getDeclaredMember(jq_NameAndDesc nd)
getDeclaredMember
public jq_Member getDeclaredMember(java.lang.String name,
java.lang.String desc)
getMembers
public java.util.Collection getMembers()
addDeclaredMember
private void addDeclaredMember(jq_NameAndDesc nd,
jq_Member m)
accept
public void accept(jq_TypeVisitor tv)
- Overrides:
accept in class jq_Type
hashCode
public int hashCode()
- Description copied from class:
java.lang.Object
- Get a value that represents this Object, as uniquely as
possible within the confines of an int.
There are some requirements on this method which
subclasses must follow:
- Semantic equality implies identical hashcodes. In other
words, if
a.equals(b) is true, then
a.hashCode() == b.hashCode() must be as well.
However, the reverse is not necessarily true, and two
objects may have the same hashcode without being equal.
- It must be consistent. Whichever value o.hashCode()
returns on the first invocation must be the value
returned on all later invocations as long as the object
exists. Notice, however, that the result of hashCode may
change between separate executions of a Virtual Machine,
because it is not invoked on the same object.
Notice that since hashCode is used in
java.util.Hashtable and other hashing classes,
a poor implementation will degrade the performance of hashing
(so don't blindly implement it as returning a constant!). Also,
if calculating the hash is time-consuming, a class may consider
caching the results.
The default implementation returns
System.identityHashCode(this)
getMinorVersion
public final int getMinorVersion()
getMajorVersion
public final int getMajorVersion()
getAccessFlags
public final char getAccessFlags()
isPublic
public final boolean isPublic()
isFinal
public final boolean isFinal()
- Specified by:
isFinal in class jq_Type
isSpecial
public final boolean isSpecial()
isInterface
public final boolean isInterface()
isAbstract
public final boolean isAbstract()
getSuperclass
public final jq_Class getSuperclass()
getDepth
public final int getDepth()
- Specified by:
getDepth in class