de.fub.bytecode.generic
Class ClassGen

java.lang.Object
  |
  +--de.fub.bytecode.classfile.AccessFlags
        |
        +--de.fub.bytecode.generic.ClassGen

public class ClassGen
extends AccessFlags
implements Constants

Template class for building up a java class. May be initialized by an existing java class (file).

Version:
$Id: ClassGen.java,v 1.11 1999/08/13 08:18:25 dahm Exp $
Author:
M. Dahm
See Also:
JavaClass

Fields inherited from class de.fub.bytecode.classfile.AccessFlags
access_flags
 
Constructor Summary
ClassGen(JavaClass clazz)
          Initialize with existing class.
ClassGen(java.lang.String class_name, java.lang.String super_class_name, java.lang.String file_name, int access_flags, java.lang.String[] interfaces)
           
 
Method Summary
 void addAttribute(Attribute a)
          Add an attribute to this class.
 void addEmptyConstructor(int access_flags)
          Convenience method.
 void addField(Field f)
          Add a field to this class.
 void addInterface(int i)
          Add an interface to this class, i.e.
 void addInterface(java.lang.String i)
          Add an interface to this class, i.e.
 void addMethod(Method m)
          Add a method to this class.
 boolean containsField(Field f)
           
 Field containsField(java.lang.String name)
           
 Method containsMethod(java.lang.String name, java.lang.String signature)
           
 Attribute[] getAttributes()
           
 java.lang.String getClassName()
           
 int getClassNameIndex()
           
 ConstantPoolGen getConstantPool()
           
 Field[] getFields()
           
 java.lang.String getFileName()
           
 int[] getInterfaces()
           
 JavaClass getJavaClass()
           
 Method[] getMethods()
           
 java.lang.String getSuperclassName()
           
 int getSuperclassNameIndex()
           
 void removeAttribute(Attribute a)
          Remove an attribute from this class.
 void removeField(Field f)
          Remove a field to this class.
 void removeInterface(int i)
          Remove an interface from this class.
 void removeMethod(Method m)
          Remove a method from this class.
 void setClassNameIndex(int class_name_index)
           
 void setConstantPool(ConstantPoolGen constant_pool)
           
 void setMethods(Method[] methods)
           
 void setSuperclassNameIndex(int superclass_name_index)
           
 
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, toString, wait, wait, wait
 

Constructor Detail

ClassGen

public ClassGen(java.lang.String class_name,
                java.lang.String super_class_name,
                java.lang.String file_name,
                int access_flags,
                java.lang.String[] interfaces)
Parameters:
class_name - fully qualified class name
super_class_name - fully qualified superclass name
file_name - source file name
access_flags - access qualifiers
interfaces - implemented interfaces

ClassGen

public ClassGen(JavaClass clazz)
Initialize with existing class.
Parameters:
clazz - JavaClass object (e.g. read from file)
Method Detail

getJavaClass

public JavaClass getJavaClass()
Returns:
the (finally) built up Java class object.

addInterface

public void addInterface(java.lang.String i)
Add an interface to this class, i.e. this class has to implement it.
Parameters:
i - interface to implement (fully qualified class name)

addInterface

public void addInterface(int i)
Add an interface to this class, i.e. this class has to implement it.
Parameters:
i - interface to implement (must be index in constant pool pointing to a ConstantClass)

removeInterface

public void removeInterface(int i)
Remove an interface from this class.
Parameters:
i - interface to remove (index in constant pool)

addAttribute

public void addAttribute(Attribute a)
Add an attribute to this class.
Parameters:
a - attribute to add

addMethod

public void addMethod(Method m)
Add a method to this class.
Parameters:
m - method to add

addEmptyConstructor

public void addEmptyConstructor(int access_flags)
Convenience method. Add an empty constructor to this class that does nothing but calling super().
Parameters:
access - rights for constructor

addField

public void addField(Field f)
Add a field to this class.
Parameters:
f - field to add

containsField

public boolean containsField(Field f)

containsField

public Field containsField(java.lang.String name)

containsMethod

public Method containsMethod(java.lang.String name,
                             java.lang.String signature)

removeAttribute

public void removeAttribute(Attribute a)
Remove an attribute from this class.
Parameters:
a - attribute to remove

removeMethod

public void removeMethod(Method m)
Remove a method from this class.
Parameters:
m - method to remove

removeField

public void removeField(Field f)
Remove a field to this class.
Parameters:
f - field to remove

getClassName

public java.lang.String getClassName()

getSuperclassName

public java.lang.String getSuperclassName()

getFileName

public java.lang.String getFileName()

getMethods

public Method[] getMethods()

setMethods

public void setMethods(Method[] methods)

getInterfaces

public int[] getInterfaces()

getFields

public Field[] getFields()

getAttributes

public Attribute[] getAttributes()

getConstantPool

public ConstantPoolGen getConstantPool()

setConstantPool

public void setConstantPool(ConstantPoolGen constant_pool)

setClassNameIndex

public void setClassNameIndex(int class_name_index)

setSuperclassNameIndex

public void setSuperclassNameIndex(int superclass_name_index)

getSuperclassNameIndex

public int getSuperclassNameIndex()

getClassNameIndex

public int getClassNameIndex()