jellyj.classfile.javaclass
Class JavaClass


public class JavaClass
implements Constants

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.

Author:
JellyJ Design Group

Field Summary
 (package private) static booleandebug
           
 (package private) static charsep
           

Constructor Summary
JavaClass(int class_name_index, int superclass_name_index, 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.

Method Summary
 voidaccept(Visitor v)
          Called by objects that are traversing the nodes of the tree implicitely defined by the contents of a Java class.
 (package private) final static voidDebug(String str)
           
 voiddump(File file)
          Dump class to a file, this should create a valid .class file.
 voiddump(String file_name)
          Dump class to a file, this should create a valid .class file.
 voiddump(DataOutputStream file)
          Dump Java class to output stream in binary format.
 final intgetAccessFlags()
           
 final Attribute[]getAttributes()
           
 final StringgetClassName()
           
 final intgetClassNameIndex()
           
 final ConstantPoolgetConstantPool()
           
 final Field[]getFields()
           
 final StringgetFileName()
           
 final String[]getInterfaceNames()
           
 final int[]getInterfaces()
           
 final intgetMajor()
           
 final Method[]getMethods()
           
 final intgetMinor()
           
 final StringgetSourceFileName()
           
 final StringgetSuperclassName()
           
 final intgetSuperclassNameIndex()
           
 static voidinitJavaClass()
          Initialize the package.
 final voidsetAccessFlags(int access_flags)
           
 final voidsetAttributes(Attribute[] attributes)
           
 final voidsetClassName(String class_name)
           
 final voidsetClassNameIndex(int class_name_index)
           
 final voidsetConstantPool(ConstantPool constant_pool)
           
 final voidsetFields(Field[] fields)
           
 final voidsetFileName(String file_name)
           
 final voidsetInterfaceNames(String[] interface_names)
           
 final voidsetInterfaces(int[] interfaces)
           
 final voidsetMajor(int major)
           
 final voidsetMethods(Method[] methods)
           
 final voidsetMinor(int minor)
           
 final voidsetSourceFileName(String source_file_name)
           
 final voidsetSuperclassName(String superclass_name)
           
 final voidsetSuperclassNameIndex(int superclass_name_index)
           
 StringtoString()
           

Field Detail

debug

static boolean debug

sep

static char sep
Constructor Detail

JavaClass

public JavaClass(int class_name_index, int superclass_name_index, 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 name
superclass_name - Superclass name
file_name - File name
major - Major compiler version
minor - Minor compiler version
access_flags - Access rights defined by bit flags
constant_pool - Array of constants
interfaces - Implemented interfaces
fields - Class fields
methods - Class methods
attributes - Class attributes
Method Detail

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

Debug

final static void Debug(String str)

dump

public void dump(File file)
throws java.io.IOException
Dump class to a file, this should create a valid .class file.
Parameters:
file - Output file
throw IOException

dump

public void dump(String file_name)
throws java.io.IOException
Dump class to a file, this should create a valid .class file.
Parameters:
file_name - Output file name
throw IOException

dump

public void dump(DataOutputStream file)
throws java.io.IOException
Dump Java class to output stream in binary format.
Parameters:
file - Output stream
throw IOException

getAccessFlags

public final int getAccessFlags()
Returns: Access rights of class.

getAttributes

public final Attribute[] getAttributes()
Returns: Attributes of the class.

getClassName

public final String getClassName()
Returns: Class name.

getClassNameIndex

public final int getClassNameIndex()
Returns: Class name index.

getConstantPool

public final ConstantPool getConstantPool()
Returns: Constant pool.

getFields

public final Field[] getFields()
Returns: Fields, i.e. variables of the class.

getFileName

public final String getFileName()
Returns: File name.

getInterfaceNames

public final String[] getInterfaceNames()
Returns: Names of implemented interfaces.

getInterfaces

public final int[] getInterfaces()
Returns: Implemented interfaces.

getMajor

public final int getMajor()
Returns: Major number of compiler version.

getMethods

public final Method[] getMethods()
Returns: Methods of the class.

getMinor

public final int getMinor()
Returns: Minor number of compiler version.

getSourceFileName

public final String getSourceFileName()
Returns: File name of source.

getSuperclassName

public final String getSuperclassName()
Returns: Superclass name.

getSuperclassNameIndex

public final int getSuperclassNameIndex()
Returns: Class name index.

initJavaClass

public static void initJavaClass()
Initialize the package.

setAccessFlags

public final void setAccessFlags(int access_flags)
Parameters:
access_flags.

setAttributes

public final void setAttributes(Attribute[] attributes)
Parameters:
attributes.

setClassName

public final void setClassName(String class_name)
Parameters:
class_name.

setClassNameIndex

public final void setClassNameIndex(int class_name_index)
Parameters:
class_name_index.

setConstantPool

public final void setConstantPool(ConstantPool constant_pool)
Parameters:
constant_pool.

setFields

public final void setFields(Field[] fields)
Parameters:
fields.

setFileName

public final void setFileName(String file_name)
Parameters:
file_name.

setInterfaceNames

public final void setInterfaceNames(String[] interface_names)
Parameters:
interface_names.

setInterfaces

public final void setInterfaces(int[] interfaces)
Parameters:
interfaces.

setMajor

public final void setMajor(int major)
Parameters:
major.

setMethods

public final void setMethods(Method[] methods)
Parameters:
methods.

setMinor

public final void setMinor(int minor)
Parameters:
minor.

setSourceFileName

public final void setSourceFileName(String source_file_name)
Parameters:
source_file_name.

setSuperclassName

public final void setSuperclassName(String superclass_name)
Parameters:
superclass_name.

setSuperclassNameIndex

public final void setSuperclassNameIndex(int superclass_name_index)
Parameters:
superclass_name_index.

toString

public String toString()
Returns: String representing class contents.

Association Links

to Class java.lang.String

to Class java.lang.String

to Class java.lang.String

to Class java.lang.String

to Class jellyj.classfile.javaclass.ConstantPool

to Class java.lang.String

to Class jellyj.classfile.javaclass.Field

to Class jellyj.classfile.javaclass.Method

to Class jellyj.classfile.javaclass.Attribute