Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

Clazz
Class jq_Class  view jq_Class download jq_Class.java

java.lang.Object
  extended byClazz.jq_Type
      extended byClazz.jq_Reference
          extended byClazz.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 $

Nested Class Summary
(package private) static interface jq_Class.Delegate
           
 
Nested classes inherited from class Clazz.jq_Reference
jq_Reference.jq_NullType
 
Field Summary
static jq_Class _class
           
private static jq_Class.Delegate _delegate
           
private  char access_flags
           
private  java.util.Map attributes
           
static java.util.List classToReplace
           
private  jq_ConstantPool const_pool
           
private  jq_InstanceField[] declared_instance_fields
           
private  jq_InstanceMethod[] declared_instance_methods
           
private  jq_Class[] declared_interfaces
           
static boolean DETERMINISTIC
           
private  boolean dont_align
           
private  jq_InstanceField[] instance_fields
           
private  int instance_size
           
private  jq_Class[] interfaces
           
private  char major_version
           
private  java.util.Map members
           
private  char minor_version
           
static int NumOfIFieldsEliminated
           
static int NumOfIFieldsKept
           
static int NumOfIMethodsEliminated
           
static int NumOfIMethodsKept
           
static int NumOfSFieldsEliminated
           
static int NumOfSFieldsKept
           
static int NumOfSMethodsEliminated
           
static int NumOfSMethodsKept
           
private  int[] reference_offsets
           
static boolean REPLACE_CLASS
           
private  int[] static_data
           
private  int static_data_size
           
private  jq_StaticField[] static_fields
           
private  jq_StaticMethod[] static_methods
           
private  jq_Class[] subclasses
           
private  jq_Class[] subinterfaces
           
private  jq_Class super_class
           
static boolean TRACE
           
static boolean TRACE_REPLACE_CLASS
           
private  jq_InstanceMethod[] virtual_methods
           
static boolean WARN_STALE_CLASS_FILES
           
 
Fields inherited from class Clazz.jq_Reference
_state, _vtable, class_loader, state, vtable
 
Fields inherited from class Clazz.jq_Type
desc, display, DISPLAY_SIZE, offset, s_s_array, s_s_array_length, USE_CLASS_OBJECT_FIELD
 
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
 
Constructor Summary
private jq_Class(java.lang.ClassLoader class_loader, UTF.Utf8 desc)
          Private constructor.
 
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
 
Methods inherited from class Clazz.jq_Type
convertPrimitive, getArrayTypeForElementType, getDesc, getJavaLangClassObject, isBootType, isReferenceType, isSubtypeOf, parseType, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

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
Constructor Detail

jq_Class

private jq_Class(java.lang.ClassLoader class_loader,
                 UTF.Utf8 desc)
Private constructor. Use a ClassLoader to create a jq_Class instance.

Method Detail

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 jq_Type

getDirectPrimarySupertype

public final jq_Reference getDirectPrimarySupertype()
Specified by:
getDirectPrimarySupertype in class jq_Reference

getDeclaredInterfaces

public final jq_Class[] getDeclaredInterfaces()

getDeclaredInterface

public final jq_Class getDeclaredInterface(UTF.Utf8 desc)

getDeclaredInstanceFields

public final jq_InstanceField[] getDeclaredInstanceFields()

getDeclaredInstanceField

public final jq_InstanceField getDeclaredInstanceField(jq_NameAndDesc nd)

setDeclaredInstanceFields

public final void setDeclaredInstanceFields(jq_InstanceField[] dif)

getDeclaredStaticFields

public final jq_StaticField[] getDeclaredStaticFields()

getDeclaredStaticField

public final jq_StaticField getDeclaredStaticField(jq_NameAndDesc nd)

setDeclaredStaticFields

public final void setDeclaredStaticFields(jq_StaticField[] dsf)

getStaticField

public final jq_StaticField getStaticField(jq_NameAndDesc nd)

getNumberOfStaticFields

public final int getNumberOfStaticFields()

getStaticFields_helper

private int getStaticFields_helper(jq_StaticField[] sfs,
                                   int current)

getStaticFields

public final jq_StaticField[] getStaticFields()

getDeclaredInstanceMethods

public final jq_InstanceMethod[] getDeclaredInstanceMethods()

getDeclaredInstanceMethod

public final jq_InstanceMethod getDeclaredInstanceMethod(jq_NameAndDesc nd)

setDeclaredInstanceMethods

public final void setDeclaredInstanceMethods(jq_InstanceMethod[] dim)

getDeclaredStaticMethods

public final jq_StaticMethod[] getDeclaredStaticMethods()

getDeclaredStaticMethod

public final jq_StaticMethod getDeclaredStaticMethod(jq_NameAndDesc nd)

setDeclaredStaticMethods

public final void setDeclaredStaticMethods(jq_StaticMethod[] dsm)

getStaticMethod

public final jq_StaticMethod getStaticMethod(jq_NameAndDesc nd)

getNumberOfStaticMethods

public final int getNumberOfStaticMethods()

getStaticMethods_helper

private int getStaticMethods_helper(jq_StaticMethod[] sfs,
                                    int current)

getStaticMethods

public final jq_StaticMethod[] getStaticMethods()

getInstanceMethod

public final jq_InstanceMethod getInstanceMethod(jq_NameAndDesc nd)

getInitializer

public final jq_Initializer getInitializer(UTF.Utf8 desc)

getInitializer

public final jq_Initializer getInitializer(jq_NameAndDesc nd)

getClassInitializer

public final jq_ClassInitializer getClassInitializer()

and_getClassInitializer

public final Compil3r.Quad.AndersenInterface.AndersenClassInitializer and_getClassInitializer()
Specified by:
and_getClassInitializer in interface Compil3r.Quad.AndersenInterface.AndersenClass

getCP

public final jq_ConstantPool getCP()

setCP

public final void setCP(jq_ConstantPool cp)

getCP

public final java.lang.Object getCP(char index)

getCPCount

public final int getCPCount()

getCPtag

public final byte getCPtag(char index)

getCPasInt

public final java.lang.Integer getCPasInt(char index)

getCPasFloat

public final java.lang.Float getCPasFloat(char index)

getCPasLong

public final java.lang.Long getCPasLong(char index)

getCPasDouble

public final java.lang.Double getCPasDouble(char index)

getCPasString

public final java.lang.String getCPasString(char index)

getCPasUtf8

public final UTF.Utf8 getCPasUtf8(char index)

getCPasType

public final jq_Type getCPasType(char index)

getCPasMember

public final jq_Member getCPasMember(char index)

getOrCreateStaticField

public jq_StaticField getOrCreateStaticField(java.lang.String name,
                                             java.lang.String desc)

getOrCreateStaticField

public jq_StaticField getOrCreateStaticField(jq_NameAndDesc nd)

createStaticField

jq_StaticField createStaticField(jq_NameAndDesc nd)

getCPasStaticField

public final jq_StaticField getCPasStaticField(char index)

getOrCreateInstanceField

public jq_InstanceField getOrCreateInstanceField(java.lang.String name,
                                                 java.lang.String desc)

getOrCreateInstanceField

public jq_InstanceField getOrCreateInstanceField(jq_NameAndDesc nd)

createInstanceField

jq_InstanceField createInstanceField(jq_NameAndDesc nd)

getCPasInstanceField

public final jq_InstanceField getCPasInstanceField(char index)

getOrCreateStaticMethod

public jq_StaticMethod getOrCreateStaticMethod(java.lang.String name,
                                               java.lang.String desc)

getOrCreateStaticMethod

public jq_StaticMethod getOrCreateStaticMethod(jq_NameAndDesc nd)

createStaticMethod

jq_StaticMethod createStaticMethod(jq_NameAndDesc nd)

getCPasStaticMethod

public final jq_StaticMethod getCPasStaticMethod(char index)

getOrCreateInstanceMethod

public jq_InstanceMethod getOrCreateInstanceMethod(java.lang.String name,
                                                   java.lang.String desc)

getOrCreateInstanceMethod

public jq_InstanceMethod getOrCreateInstanceMethod(jq_NameAndDesc nd)

createInstanceMethod

jq_InstanceMethod createInstanceMethod(jq_NameAndDesc nd)

getCPasInstanceMethod

public final jq_InstanceMethod getCPasInstanceMethod(char index)

getAttribute

public final byte[] getAttribute(UTF.Utf8 name)

getAttribute

public final byte[] getAttribute(java.lang.String name)

getAttributes

public final java.util.Iterator getAttributes()

getSourceFile

public final UTF.Utf8 getSourceFile()

isSynthetic

public final boolean isSynthetic()

isDeprecated

public final boolean isDeprecated()

removeAttribute

public final void removeAttribute(java.lang.String s)

removeAttribute

public final void removeAttribute(UTF.Utf8 u)

getInnerClasses

public final jq_Class[] getInnerClasses()

getSubClasses

public final jq_Class[] getSubClasses()

getSubInterfaces

public final jq_Class[] getSubInterfaces()

getInterfaces

public final jq_Class[] getInterfaces()
Specified by:
getInterfaces in class jq_Reference

getInterface

public final jq_Class getInterface(UTF.Utf8 desc)
Specified by:
getInterface in class jq_Reference

implementsInterface

public final boolean implementsInterface(jq_Class k)
Specified by:
implementsInterface in class jq_Reference

getInstanceFields

public final jq_InstanceField[] getInstanceFields()

getReferenceOffsets

public final int[] getReferenceOffsets()

getInstanceField

public final jq_InstanceField getInstanceField(jq_NameAndDesc nd)

getVirtualMethods

public final jq_InstanceMethod[] getVirtualMethods()

getVirtualMethod

public final jq_InstanceMethod getVirtualMethod(jq_NameAndDesc nd)
Specified by:
getVirtualMethod in class jq_Reference

getInstanceSize

public final int getInstanceSize()

getStaticData

public final int[] getStaticData()

setStaticData

public final void setStaticData(jq_StaticField sf,
                                int data)

setStaticData

public final void setStaticData(jq_StaticField sf,
                                long data)

setStaticData

public final void setStaticData(jq_StaticField sf,
                                float data)

setStaticData

public final void setStaticData(jq_StaticField sf,
                                double data)

setStaticData

public final void setStaticData(jq_StaticField sf,
                                java.lang.Object data)

setStaticData

public final void setStaticData(jq_StaticField sf,
                                Memory.Address data)

newInstance

public final java.lang.Object newInstance()

findByNameAndDesc

private static jq_Member findByNameAndDesc(jq_Member[] array,
                                           jq_NameAndDesc nd)

newClass

public static jq_Class newClass(java.lang.ClassLoader classLoader,
                                UTF.Utf8 desc)

load

public void load()
          throws java.lang.ClassFormatError,
                 java.lang.UnsupportedClassVersionError,
                 java.lang.ClassCircularityError,
                 java.lang.NoClassDefFoundError
Loads the binary data for this class. See Jvm spec 2.17.2. Throws: ClassFormatError if the binary data is malformed in some way UnsupportedClassVersionError if the binary data is of an unsupported version ClassCircularityError if it would be its own superclass or superinterface NoClassDefFoundError if the class definition cannot be found

Specified by:
load in interface Compil3r.Quad.AndersenInterface.AndersenClass
Specified by:
load in class jq_Type

load

public void load(java.io.DataInput in)
          throws java.lang.ClassFormatError,
                 java.lang.UnsupportedClassVersionError,
                 java.lang.ClassCircularityError

replaceMethodIn

private void replaceMethodIn(jq_Class old)

isInClassLib

public boolean isInClassLib()

doesConstantPoolContain

public boolean doesConstantPoolContain(java.lang.Object o)

generateStaticMethodStub

public jq_StaticMethod generateStaticMethodStub(jq_NameAndDesc nd,
                                                jq_StaticMethod m,
                                                char access_flags,
                                                char classfield_idx,
                                                char method_idx)

generateInstanceMethodStub

public jq_InstanceMethod generateInstanceMethodStub(jq_NameAndDesc nd,
                                                    jq_StaticMethod m,
                                                    char access_flags,
                                                    char method_idx)

merge

public void merge(jq_Class that)

remakeAttributes

public void remakeAttributes(jq_ConstantPool.ConstantPoolRebuilder cpr)

rewriteMethod

private void rewriteMethod(jq_ConstantPool.ConstantPoolRebuilder cp,
                           Compil3r.BytecodeAnalysis.Bytecodes.InstructionList il)

rewriteMethodForReplace

private void rewriteMethodForReplace(jq_ConstantPool.ConstantPoolRebuilder cp,
                                     Compil3r.BytecodeAnalysis.Bytecodes.InstructionList il)

merge_old

public void merge_old(jq_Class that)

verify

public void verify()
Specified by:
verify in interface Compil3r.Quad.AndersenInterface.AndersenClass
Specified by:
verify in class jq_Type

prepare

public void prepare()
Specified by:
prepare in interface Compil3r.Quad.AndersenInterface.AndersenClass
Specified by:
prepare in class jq_Type

sf_initialize

public void sf_initialize()
Specified by:
sf_initialize in class jq_Type

compile

public void compile()
Specified by:
compile in class jq_Type

cls_initialize

public void cls_initialize()
                    throws java.lang.ExceptionInInitializerError,
                           java.lang.NoClassDefFoundError
Specified by:
cls_initialize in class jq_Type

invokeclinit

private void invokeclinit()
                   throws java.lang.ExceptionInInitializerError

readAttributes

void readAttributes(java.io.DataInput in,
                    java.util.Map attribMap)
              throws java.io.IOException

className

public static java.lang.String className(UTF.Utf8 desc)

addSubclass

private void addSubclass(jq_Class subclass)

addSubinterface

private void addSubinterface(jq_Class subinterface)

removeSubclass

private void removeSubclass(jq_Class subclass)

removeSubinterface

private void removeSubinterface(jq_Class subinterface)

getInvokespecialTarget

public static jq_InstanceMethod getInvokespecialTarget(jq_Class clazz,
                                                       jq_InstanceMethod method)
                                                throws java.lang.AbstractMethodError

rebuildConstantPool

public jq_ConstantPool.ConstantPoolRebuilder rebuildConstantPool(boolean addCode)

dump

public void dump(java.io.DataOutput out)
          throws java.io.IOException

attemptDelegate

private static jq_Class.Delegate attemptDelegate(java.lang.String s)