de.fub.bytecode.classfile
Class JavaClass
java.lang.Object
|
+--de.fub.bytecode.classfile.AccessFlags
|
+--de.fub.bytecode.classfile.JavaClass
- All Implemented Interfaces:
- java.lang.Cloneable, Constants
- public class JavaClass
- extends AccessFlags
- implements Constants, java.lang.Cloneable
Represents a Java class, i.e., the data structures, constant pool,
fields, methods and commands contained in a Java .class file.
See JVM
specification for details.
- Version:
- $Id: JavaClass.java,v 1.16 2000/08/10 08:36:17 dahm Exp $
- Author:
- M. Dahm
Field Summary |
static byte |
FILE
|
static byte |
HEAP
|
static byte |
ZIP
|
Fields inherited from interface de.fub.bytecode.Constants |
AALOAD, AASTORE, ACC_ABSTRACT, ACC_FINAL, ACC_INTERFACE, ACC_NATIVE, ACC_PRIVATE, ACC_PROTECTED, ACC_PUBLIC, ACC_STATIC, ACC_SUPER, ACC_SYNCHRONIZED, ACC_TRANSIENT, ACC_VOLATILE, ACCESS_NAMES, ACONST_NULL, ALOAD, ALOAD_0, ALOAD_1, ALOAD_2, ALOAD_3, ANEWARRAY, ANEWARRAY_QUICK, ARETURN, ARRAYLENGTH, ASTORE, ASTORE_0, ASTORE_1, ASTORE_2, ASTORE_3, ATHROW, ATTR_CODE, ATTR_CONSTANT_VALUE, ATTR_DEPRECATED, ATTR_EXCEPTIONS, ATTR_INNER_CLASSES, ATTR_LINE_NUMBER_TABLE, ATTR_LOCAL_VARIABLE_TABLE, ATTR_PMG, ATTR_SIGNATURE, ATTR_SOURCE_FILE, ATTR_SYNTHETIC, ATTR_UNKNOWN, ATTRIBUTE_NAMES, BALOAD, BASTORE, BIPUSH, BREAKPOINT, CALOAD, CASTORE, CHECKCAST, CHECKCAST_QUICK, CONSTANT_Class, CONSTANT_Double, CONSTANT_Fieldref, CONSTANT_Float, CONSTANT_Integer, CONSTANT_InterfaceMethodref, CONSTANT_Long, CONSTANT_Methodref, CONSTANT_NameAndType, CONSTANT_NAMES, CONSTANT_String, CONSTANT_Utf8, CONSUME_STACK, D2F, D2I, D2L, DADD, DALOAD, DASTORE, DCMPG, DCMPL, DCONST_0, DCONST_1, DDIV, DLOAD, DLOAD_0, DLOAD_1, DLOAD_2, DLOAD_3, DMUL, DNEG, DREM, DRETURN, DSTORE, DSTORE_0, DSTORE_1, DSTORE_2, DSTORE_3, DSUB, DUP, DUP_X1, DUP_X2, DUP2, DUP2_X1, DUP2_X2, F2D, F2I, F2L, FADD, FALOAD, FASTORE, FCMPG, FCMPL, FCONST_0, FCONST_1, FCONST_2, FDIV, FLOAD, FLOAD_0, FLOAD_1, FLOAD_2, FLOAD_3, FMUL, FNEG, FREM, FRETURN, FSTORE, FSTORE_0, FSTORE_1, FSTORE_2, FSTORE_3, FSUB, GETFIELD, GETFIELD_QUICK, GETFIELD_QUICK_W, GETFIELD2_QUICK, GETSTATIC, GETSTATIC_QUICK, GETSTATIC2_QUICK, GOTO, GOTO_W, I2B, I2C, I2D, I2F, I2L, I2S, IADD, IALOAD, IAND, IASTORE, ICONST_0, ICONST_1, ICONST_2, ICONST_3, ICONST_4, ICONST_5, ICONST_M1, IDIV, IF_ACMPEQ, IF_ACMPNE, IF_ICMPEQ, IF_ICMPGE, IF_ICMPGT, IF_ICMPLE, IF_ICMPLT, IF_ICMPNE, IFEQ, IFGE, IFGT, IFLE, IFLT, IFNE, IFNONNULL, IFNULL, IINC, ILLEGAL_OPCODE, ILLEGAL_TYPE, ILOAD, ILOAD_0, ILOAD_1, ILOAD_2, ILOAD_3, IMPDEP1, IMPDEP2, IMUL, INEG, INSTANCEOF, INSTANCEOF_QUICK, INT2BYTE, INT2CHAR, INT2SHORT, INVOKEINTERFACE, INVOKEINTERFACE_QUICK, INVOKENONVIRTUAL, INVOKENONVIRTUAL_QUICK, INVOKESPECIAL, INVOKESTATIC, INVOKESTATIC_QUICK, INVOKESUPER_QUICK, INVOKEVIRTUAL, INVOKEVIRTUAL_QUICK, INVOKEVIRTUAL_QUICK_W, INVOKEVIRTUALOBJECT_QUICK, IOR, IREM, IRETURN, ISHL, ISHR, ISTORE, ISTORE_0, ISTORE_1, ISTORE_2, ISTORE_3, ISUB, IUSHR, IXOR, JSR, JSR_W, KNOWN_ATTRIBUTES, L2D, L2F, L2I, LADD, LALOAD, LAND, LASTORE, LCMP, LCONST_0, LCONST_1, LDC, LDC_QUICK, LDC_W, LDC_W_QUICK, LDC2_W, LDC2_W_QUICK, LDIV, LLOAD, LLOAD_0, LLOAD_1, LLOAD_2, LLOAD_3, LMUL, LNEG, LOOKUPSWITCH, LOR, LREM, LRETURN, LSHL, LSHR, LSTORE, LSTORE_0, LSTORE_1, LSTORE_2, LSTORE_3, LSUB, LUSHR, LXOR, MAJOR, MAJOR_1_1, MAJOR_1_2, MAX_ACC_FLAG, MAX_BYTE, MAX_SHORT, MINOR, MINOR_1_1, MINOR_1_2, MONITORENTER, MONITOREXIT, MULTIANEWARRAY, MULTIANEWARRAY_QUICK, NEW, NEW_QUICK, NEWARRAY, NO_OF_OPERANDS, NOP, OPCODE_NAMES, POP, POP2, PRODUCE_STACK, PUSH, PUTFIELD, PUTFIELD_QUICK, PUTFIELD_QUICK_W, PUTFIELD2_QUICK, PUTSTATIC, PUTSTATIC_QUICK, PUTSTATIC2_QUICK, RESERVED, RET, RETURN, SALOAD, SASTORE, SHORT_TYPE_NAMES, SIPUSH, SWAP, SWITCH, T_ARRAY, T_BOOLEAN, T_BYTE, T_CHAR, T_DOUBLE, T_FLOAT, T_INT, T_LONG, T_OBJECT, T_REFERENCE, T_SHORT, T_UNKNOWN, T_VOID, TABLESWITCH, TYPE_NAMES, TYPE_OF_OPERANDS, UNDEFINED, UNPREDICTABLE, WIDE |
Constructor Summary |
JavaClass(int class_name_index,
int superclass_name_index,
java.lang.String file_name,
int major,
int minor,
int access_flags,
ConstantPool constant_pool,
int[] interfaces,
Field[] fields,
Method[] methods,
Attribute[] attributes)
Constructor gets all contents as arguments. |
JavaClass(int class_name_index,
int superclass_name_index,
java.lang.String file_name,
int major,
int minor,
int access_flags,
ConstantPool constant_pool,
int[] interfaces,
Field[] fields,
Method[] methods,
Attribute[] attributes,
byte source)
Constructor gets all contents as arguments. |
Methods inherited from class de.fub.bytecode.classfile.AccessFlags |
getAccessFlags, isAbstract, isAbstract, isFinal, isFinal, isInterface, isInterface, isNative, isNative, isPrivate, isPrivate, isProtected, isProtected, isPublic, isPublic, isStatic, isStatic, isSynchronized, isSynchronized, isTransient, isTransient, isVolatile, isVolatile, setAccessFlags |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
HEAP
public static final byte HEAP
FILE
public static final byte FILE
ZIP
public static final byte ZIP
JavaClass
public JavaClass(int class_name_index,
int superclass_name_index,
java.lang.String file_name,
int major,
int minor,
int access_flags,
ConstantPool constant_pool,
int[] interfaces,
Field[] fields,
Method[] methods,
Attribute[] attributes,
byte source)
- Constructor gets all contents as arguments.
- Parameters:
class_name
- Class namesuperclass_name
- Superclass namefile_name
- File namemajor
- Major compiler versionminor
- Minor compiler versionaccess_flags
- Access rights defined by bit flagsconstant_pool
- Array of constantsinterfaces
- Implemented interfacesfields
- Class fieldsmethods
- Class methodsattributes
- Class attributessource
- Read from file or generated in memory?
JavaClass
public JavaClass(int class_name_index,
int superclass_name_index,
java.lang.String file_name,
int major,
int minor,
int access_flags,
ConstantPool constant_pool,
int[] interfaces,
Field[] fields,
Method[] methods,
Attribute[] attributes)
- Constructor gets all contents as arguments.
- Parameters:
class_name
- Class namesuperclass_name
- Superclass namefile_name
- File namemajor
- Major compiler versionminor
- Minor compiler versionaccess_flags
- Access rights defined by bit flagsconstant_pool
- Array of constantsinterfaces
- Implemented interfacesfields
- Class fieldsmethods
- Class methodsattributes
- Class attributes
accept
public void accept(Visitor v)
- Called by objects that are traversing the nodes of the tree implicitely
defined by the contents of a Java class. I.e., the hierarchy of methods,
fields, attributes, etc. spawns a tree of objects.
- Parameters:
v
- Visitor object
dump
public void dump(java.io.File file)
throws java.io.IOException
- Dump class to a file.
- Parameters:
file
- Output file
dump
public void dump(java.lang.String file_name)
throws java.io.IOException
- Dump class to a file named file_name.
- Parameters:
file_name
- Output file name- Throws:
java.io.IOException
-
getBytes
public byte[] getBytes()
- Returns:
- class in binary format
dump
public void dump(java.io.OutputStream file)
throws java.io.IOException
- Dump Java class to output stream in binary format.
- Parameters:
file
- Output stream- Throws:
java.io.IOException
-
dump
public void dump(java.io.DataOutputStream file)
throws java.io.IOException
- Dump Java class to output stream in binary format.
- Parameters:
file
- Output stream- Throws:
java.io.IOException
-
getAttributes
public Attribute[] getAttributes()
- Returns:
- Attributes of the class.
getClassName
public java.lang.String getClassName()
- Returns:
- Class name.
getPackageName
public java.lang.String getPackageName()
- Returns:
- Package name.
getClassNameIndex
public int getClassNameIndex()
- Returns:
- Class name index.
getConstantPool
public ConstantPool getConstantPool()
- Returns:
- Constant pool.
getFields
public Field[] getFields()
- Returns:
- Fields, i.e., variables of the class.
getFileName
public java.lang.String getFileName()
- Returns:
- File name.
getInterfaceNames
public java.lang.String[] getInterfaceNames()
- Returns:
- Names of implemented interfaces.
getInterfaces
public int[] getInterfaces()
- Returns:
- Implemented interfaces.
getMajor
public int getMajor()
- Returns:
- Major number of compiler version.
getMethods
public Method[] getMethods()
- Returns:
- Methods of the class.
getMinor
public int getMinor()
- Returns:
- Minor number of compiler version.
getSourceFileName
public java.lang.String getSourceFileName()
- Returns:
- File name of source.
getSuperclassName
public java.lang.String getSuperclassName()
- Returns:
- Superclass name.
getSuperclassNameIndex
public int getSuperclassNameIndex()
- Returns:
- Class name index.
setAttributes
public void setAttributes(Attribute[] attributes)
- Parameters:
attributes.
-
setClassName
public void setClassName(java.lang.String class_name)
- Parameters:
class_name.
-
setClassNameIndex
public void setClassNameIndex(int class_name_index)
- Parameters:
class_name_index.
-
setConstantPool
public void setConstantPool(ConstantPool constant_pool)
- Parameters:
constant_pool.
-
setFields
public void setFields(Field[] fields)
- Parameters:
fields.
-
setFileName
public void setFileName(java.lang.String file_name)
- Parameters:
file_name.
-
setInterfaceNames
public void setInterfaceNames(java.lang.String[] interface_names)
- Parameters:
interface_names.
-
setInterfaces
public void setInterfaces(int[] interfaces)
- Parameters:
interfaces.
-
setMajor
public void setMajor(int major)
- Parameters:
major.
-
setMethods
public void setMethods(Method[] methods)
- Parameters:
methods.
-
setMinor
public void setMinor(int minor)
- Parameters:
minor.
-
setSourceFileName
public void setSourceFileName(java.lang.String source_file_name)
- Parameters:
source_file_name.
-
setSuperclassName
public void setSuperclassName(java.lang.String superclass_name)
- Parameters:
superclass_name.
-
setSuperclassNameIndex
public void setSuperclassNameIndex(int superclass_name_index)
- Parameters:
superclass_name_index.
-
toString
public java.lang.String toString()
- Overrides:
toString
in class java.lang.Object
- Returns:
- String representing class contents.
copy
public JavaClass copy()
- Returns:
- deep copy of this class
instanceOf
public final boolean instanceOf(JavaClass super_class)
isSuper
public final boolean isSuper()
isClass
public final boolean isClass()
getSource
public final byte getSource()
- Returns:
- returns either HEAP (generated), FILE, or ZIP