sun.tools.javap
Class ClassData

java.lang.Object
  extended by sun.tools.javap.ClassData
All Implemented Interfaces:
RuntimeConstants

public class ClassData
extends java.lang.Object
implements RuntimeConstants

Central data repository of the Java Disassembler. Stores all the information in java class file.


Field Summary
private  int access
           
private  int attributes_count
           
private  AttrData[] attrs
           
private  java.lang.String classname
           
private  java.lang.Object[] cpool
           
private  int cpool_count
           
private  FieldData[] fields
           
private  int fields_count
           
(package private) static java.lang.String hexString
           
static char[] hexTable
           
private  java.util.Hashtable<java.lang.Object,java.lang.Integer> indexHashAscii
           
private  InnerClassData[] innerClasses
           
private  int[] interfaces
           
private  int interfaces_count
           
private  int magic
           
private  int major_version
           
private  MethodData[] methods
           
private  int methods_count
           
private  int minor_version
           
private  java.lang.String pkgPrefix
           
private  int pkgPrefixLen
           
private  int source_cpx
           
private  int super_class
           
private  java.lang.String superclassname
           
private  byte[] tags
           
private  int this_class
           
 
Fields inherited from interface sun.tools.javap.RuntimeConstants
ACC_ABSTRACT, ACC_EXPLICIT, ACC_FINAL, ACC_INTERFACE, ACC_NATIVE, ACC_PRIVATE, ACC_PROTECTED, ACC_PUBLIC, ACC_STATIC, ACC_STRICT, ACC_SUPER, ACC_SYNCHRONIZED, ACC_SYNTHETIC, ACC_TRANSIENT, ACC_VOLATILE, CONSTANT_CLASS, CONSTANT_DOUBLE, CONSTANT_FIELD, CONSTANT_FLOAT, CONSTANT_INTEGER, CONSTANT_INTERFACEMETHOD, CONSTANT_LONG, CONSTANT_METHOD, CONSTANT_NAMEANDTYPE, CONSTANT_STRING, CONSTANT_UNICODE, CONSTANT_UTF8, FULL_FRAME, ITEM_Bogus, ITEM_Double, ITEM_Float, ITEM_InitObject, ITEM_Integer, ITEM_Long, ITEM_NewObject, ITEM_Null, ITEM_Object, JAVA_MAGIC, JAVA_MINOR_VERSION, JAVA_VERSION, opc_aaload, opc_aastore, opc_aconst_null, opc_aload, opc_aload_0, opc_aload_1, opc_aload_2, opc_aload_3, opc_aload_w, opc_anewarray, opc_areturn, opc_arraylength, opc_astore, opc_astore_0, opc_astore_1, opc_astore_2, opc_astore_3, opc_astore_w, opc_athrow, opc_baload, opc_bastore, opc_bipush, opc_bytecode, opc_caload, opc_castore, opc_catch, opc_checkcast, opc_d2f, opc_d2i, opc_d2l, opc_dadd, opc_daload, opc_dastore, opc_dcmpg, opc_dcmpl, opc_dconst_0, opc_dconst_1, opc_ddiv, opc_dead, opc_dload, opc_dload_0, opc_dload_1, opc_dload_2, opc_dload_3, opc_dload_w, opc_dmul, opc_dneg, opc_drem, opc_dreturn, opc_dstore, opc_dstore_0, opc_dstore_1, opc_dstore_2, opc_dstore_3, opc_dstore_w, opc_dsub, opc_dup, opc_dup_x1, opc_dup_x2, opc_dup2, opc_dup2_x1, opc_dup2_x2, opc_endtry, opc_endvar, opc_f2d, opc_f2i, opc_f2l, opc_fadd, opc_faload, opc_fastore, opc_fcmpg, opc_fcmpl, opc_fconst_0, opc_fconst_1, opc_fconst_2, opc_fdiv, opc_fload, opc_fload_0, opc_fload_1, opc_fload_2, opc_fload_3, opc_fload_w, opc_fmul, opc_fneg, opc_frem, opc_freturn, opc_fstore, opc_fstore_0, opc_fstore_1, opc_fstore_2, opc_fstore_3, opc_fstore_w, opc_fsub, opc_getfield, opc_getstatic, opc_goto, opc_goto_w, opc_i2b, opc_i2c, opc_i2d, opc_i2f, opc_i2l, opc_i2s, opc_iadd, opc_iaload, opc_iand, opc_iastore, opc_iconst_0, opc_iconst_1, opc_iconst_2, opc_iconst_3, opc_iconst_4, opc_iconst_5, opc_iconst_m1, opc_idiv, opc_if_acmpeq, opc_if_acmpne, opc_if_icmpeq, opc_if_icmpge, opc_if_icmpgt, opc_if_icmple, opc_if_icmplt, opc_if_icmpne, opc_ifeq, opc_ifge, opc_ifgt, opc_ifle, opc_iflt, opc_ifne, opc_ifnonnull, opc_ifnull, opc_iinc, opc_iinc_w, opc_iload, opc_iload_0, opc_iload_1, opc_iload_2, opc_iload_3, opc_iload_w, opc_imul, opc_ineg, opc_instanceof, opc_int2byte, opc_int2char, opc_int2short, opc_invokeinterface, opc_invokenonvirtual, opc_invokespecial, opc_invokestatic, opc_invokevirtual, opc_ior, opc_irem, opc_ireturn, opc_ishl, opc_ishr, opc_istore, opc_istore_0, opc_istore_1, opc_istore_2, opc_istore_3, opc_istore_w, opc_isub, opc_iushr, opc_ixor, opc_jsr, opc_jsr_w, opc_l2d, opc_l2f, opc_l2i, opc_label, opc_ladd, opc_laload, opc_land, opc_lastore, opc_lcmp, opc_lconst_0, opc_lconst_1, opc_ldc, opc_ldc_w, opc_ldc2_w, opc_ldiv, opc_lload, opc_lload_0, opc_lload_1, opc_lload_2, opc_lload_3, opc_lload_w, opc_lmul, opc_lneg, opc_localsmap, opc_lookupswitch, opc_lor, opc_lrem, opc_lreturn, opc_lshl, opc_lshr, opc_lstore, opc_lstore_0, opc_lstore_1, opc_lstore_2, opc_lstore_3, opc_lstore_w, opc_lsub, opc_lushr, opc_lxor, opc_monitorenter, opc_monitorexit, opc_multianewarray, opc_new, opc_newarray, opc_nonpriv, opc_nop, opc_pop, opc_pop2, opc_priv, opc_putfield, opc_putstatic, opc_ret, opc_ret_w, opc_return, opc_saload, opc_sastore, opc_sipush, opc_stackmap, opc_swap, opc_tableswitch, opc_try, opc_var, opc_wide, opcLengthsTab, opcNamesTab, SAME_FRAME_BOUND, SAME_FRAME_EXTENDED, SAME_LOCALS_1_STACK_ITEM_BOUND, SAME_LOCALS_1_STACK_ITEM_EXTENDED, SIG_ARRAY, SIG_BOOLEAN, SIG_BYTE, SIG_CHAR, SIG_CLASS, SIG_DOUBLE, SIG_ENDCLASS, SIG_ENDMETHOD, SIG_FLOAT, SIG_INT, SIG_LONG, SIG_METHOD, SIG_PACKAGE, SIG_SHORT, SIG_VOID, SIGC_ARRAY, SIGC_BOOLEAN, SIGC_BYTE, SIGC_CHAR, SIGC_CLASS, SIGC_DOUBLE, SIGC_ENDCLASS, SIGC_ENDMETHOD, SIGC_FLOAT, SIGC_INT, SIGC_LONG, SIGC_METHOD, SIGC_PACKAGE, SIGC_SHORT, SIGC_VOID, T_BOOLEAN, T_BYTE, T_CHAR, T_CLASS, T_DOUBLE, T_FLOAT, T_INT, T_LONG, T_SHORT
 
Constructor Summary
ClassData(java.io.InputStream infile)
          Read classfile to disassemble.
 
Method Summary
 void error(java.lang.String msg)
           
 java.lang.String[] getAccess()
          Returns the access of this class or interface.
 AttrData[] getAttributes()
          Returns list of attributes.
 java.lang.String getClassName()
          Returns the name of this class.
 java.lang.String getClassName(int cpx)
          Returns the name of class at perticular index.
 int getCpoolCount()
          Returns total constant pool entry count.
 CPX2 getCpoolEntry(int cpx)
          Returns constant pool entry at that index.
 java.lang.Object getCpoolEntryobj(int cpx)
           
 FieldData[] getFields()
          Returns list of field info.
 InnerClassData[] getInnerClasses()
          Returns list of innerclasses.
 int getMajor_version()
          Returns major version of class file.
 MethodData[] getMethods()
          Returns list of method info.
 int getMinor_version()
          Returns minor version of class file.
 java.lang.String getName(int cpx)
           
 java.lang.String getPkgName()
          Returns package name.
 java.lang.String getShortClassName(int cpx)
          Returns unqualified class name.
 java.lang.String getSourceName()
          Returns source file name.
 java.lang.String getString(int n)
          get a string
 java.lang.String getStringValue(int cpoolx)
          Returns string at prticular constant pool index.
 java.lang.String getSuperClassName()
          Returns super class name.
 java.lang.String[] getSuperInterfaces()
          Returns list of super interfaces.
 byte getTag(int n)
          get the type of constant given an index
 int getthis_cpx()
          Returns index of this class.
 boolean isClass()
          Returns true if it is a class
 boolean isInterface()
          Returns true if it is a interface.
 boolean isPublic()
          Returns true if this member is public, false otherwise.
 boolean isSuperSet()
          Returns true if superbit is set.
 java.lang.String javaName(java.lang.String name)
          Returns resolved java type name.
 void read(java.io.DataInputStream in)
          Reads and stores class file information.
(package private)  void readCP(java.io.DataInputStream in)
          Reads and stores constant pool info.
protected  void readFields(java.io.DataInputStream in)
          Reads and strores field info.
protected  void readMethods(java.io.DataInputStream in)
          Reads and strores Method info.
 java.lang.String StringTag(int cpx)
           
 java.lang.String StringValue(int cpx)
          Returns string at that index.
 java.lang.String TagString(int tag)
           
(package private) static java.lang.String toHex(int val)
           
(package private) static java.lang.String toHex(long val)
           
(package private) static java.lang.String toHex(long val, int width)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

magic

private int magic

minor_version

private int minor_version

major_version

private int major_version

cpool_count

private int cpool_count

cpool

private java.lang.Object[] cpool

access

private int access

this_class

private int this_class

super_class

private int super_class

interfaces_count

private int interfaces_count

interfaces

private int[] interfaces

fields_count

private int fields_count

fields

private FieldData[] fields

methods_count

private int methods_count

methods

private MethodData[] methods

innerClasses

private InnerClassData[] innerClasses

attributes_count

private int attributes_count

attrs

private AttrData[] attrs

classname

private java.lang.String classname

superclassname

private java.lang.String superclassname

source_cpx

private int source_cpx

tags

private byte[] tags

indexHashAscii

private java.util.Hashtable<java.lang.Object,java.lang.Integer> indexHashAscii

pkgPrefix

private java.lang.String pkgPrefix

pkgPrefixLen

private int pkgPrefixLen

hexString

static final java.lang.String hexString
See Also:
Constant Field Values

hexTable

public static char[] hexTable
Constructor Detail

ClassData

public ClassData(java.io.InputStream infile)
Read classfile to disassemble.

Method Detail

read

public void read(java.io.DataInputStream in)
          throws java.io.IOException
Reads and stores class file information.

Throws:
java.io.IOException

readCP

void readCP(java.io.DataInputStream in)
      throws java.io.IOException
Reads and stores constant pool info.

Throws:
java.io.IOException

readFields

protected void readFields(java.io.DataInputStream in)
                   throws java.io.IOException
Reads and strores field info.

Throws:
java.io.IOException

readMethods

protected void readMethods(java.io.DataInputStream in)
                    throws java.io.IOException
Reads and strores Method info.

Throws:
java.io.IOException

getString

public java.lang.String getString(int n)
get a string


getTag

public byte getTag(int n)
get the type of constant given an index


toHex

static java.lang.String toHex(long val,
                              int width)

toHex

static java.lang.String toHex(long val)

toHex

static java.lang.String toHex(int val)

error

public void error(java.lang.String msg)

getClassName

public java.lang.String getClassName()
Returns the name of this class.


getClassName

public java.lang.String getClassName(int cpx)
Returns the name of class at perticular index.


isClass

public boolean isClass()
Returns true if it is a class


isInterface

public boolean isInterface()
Returns true if it is a interface.


isPublic

public boolean isPublic()
Returns true if this member is public, false otherwise.


getAccess

public java.lang.String[] getAccess()
Returns the access of this class or interface.


getInnerClasses

public InnerClassData[] getInnerClasses()
Returns list of innerclasses.


getAttributes

public AttrData[] getAttributes()
Returns list of attributes.


isSuperSet

public boolean isSuperSet()
Returns true if superbit is set.


getSuperClassName

public java.lang.String getSuperClassName()
Returns super class name.


getSuperInterfaces

public java.lang.String[] getSuperInterfaces()
Returns list of super interfaces.


getStringValue

public java.lang.String getStringValue(int cpoolx)
Returns string at prticular constant pool index.


getFields

public FieldData[] getFields()
Returns list of field info.


getMethods

public MethodData[] getMethods()
Returns list of method info.


getCpoolEntry

public CPX2 getCpoolEntry(int cpx)
Returns constant pool entry at that index.


getCpoolEntryobj

public java.lang.Object getCpoolEntryobj(int cpx)

getthis_cpx

public int getthis_cpx()
Returns index of this class.


TagString

public java.lang.String TagString(int tag)

StringValue

public java.lang.String StringValue(int cpx)
Returns string at that index.


javaName

public java.lang.String javaName(java.lang.String name)
Returns resolved java type name.


getName

public java.lang.String getName(int cpx)

getShortClassName

public java.lang.String getShortClassName(int cpx)
Returns unqualified class name.


getSourceName

public java.lang.String getSourceName()
Returns source file name.


getPkgName

public java.lang.String getPkgName()
Returns package name.


getCpoolCount

public int getCpoolCount()
Returns total constant pool entry count.


StringTag

public java.lang.String StringTag(int cpx)

getMinor_version

public int getMinor_version()
Returns minor version of class file.


getMajor_version

public int getMajor_version()
Returns major version of class file.