## org.apache.bcel.generic
Class ClassGen

    java.lang.Object
      |
      +--org.apache.bcel.classfile.AccessFlags
            |
            +--org.apache.bcel.generic.ClassGen

All Implemented Interfaces:
  java.lang.Cloneable, java.io.Serializable

public class ClassGen
extends AccessFlags
implements java.lang.Cloneable

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

Version:
  $Id: ClassGen.java,v 1.3 2002/03/04 13:36:57 mdahm Exp $
Author:
  M. Dahm
See Also:
  `JavaClass`, Serialized Form

Field Summary

Fields inherited from class org.apache.bcel.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)` Convenience constructor to set up some important values initially.
`ClassGen(java.lang.String class_name, java.lang.String super_class_name, java.lang.String file_name, int access_flags, java.lang.String[] interfaces, ConstantPoolGen cp)` Convenience constructor to set up some important values initially.

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(java.lang.String name)` Add an interface to this class, i.e., this class has to implement it.
`void` `addMethod(Method m)` Add a method to this class.
`void` `addObserver(ClassObserver o)` Add observer for this object.
`java.lang.Object` `clone()`
`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()`
`java.lang.String[]` `getInterfaceNames()`
`int[]` `getInterfaces()`
`JavaClass` `getJavaClass()`
`int` `getMajor()`
`Method` `getMethodAt(int pos)`
`Method[]` `getMethods()`
`int` `getMinor()`
`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(java.lang.String name)` Remove an interface from this class.
`void` `removeMethod(Method m)` Remove a method from this class.
`void` `removeObserver(ClassObserver o)` Remove observer for this object.
`void` `replaceField(Field old, Field new_)` Replace given field with new one.
`void` `replaceMethod(Method old, Method new_)` Replace given method with new one.
`void` `setClassName(java.lang.String name)`
`void` `setClassNameIndex(int class_name_index)`
`void` `setConstantPool(ConstantPoolGen constant_pool)`
`void` `setMajor(int major)` Set major version number of class file, default value is 45 (JDK 1.1)
`void` `setMethodAt(Method method, int pos)`
`void` `setMethods(Method[] methods)`
`void` `setMinor(int minor)` Set minor version number of class file, default value is 3 (JDK 1.1)
`void` `setSuperclassName(java.lang.String name)`
`void` `setSuperclassNameIndex(int superclass_name_index)`
`void` `update()` Call notify() method on all observers.

Methods inherited from class org.apache.bcel.classfile.AccessFlags
`getAccessFlags, getModifiers, isAbstract, isAbstract, isFinal, isFinal, isInterface, isInterface, isNative, isNative, isPrivate, isPrivate, isProtected, isProtected, isPublic, isPublic, isStatic, isStatic, isStrictfp, isStrictfp, isSynchronized, isSynchronized, isTransient, isTransient, isVolatile, isVolatile, setAccessFlags, setModifiers`

Methods inherited from class java.lang.Object
`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,
                    ConstantPoolGen cp)

  Convenience constructor to set up some important values initially.

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
  `cp` - constant pool to use

### 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)

  Convenience constructor to set up some important values initially.

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 name)

  Add an interface to this class, i.e., this class has to implement it.

  Parameters:
    `name` - interface to implement (fully qualified class name)

### removeInterface

    public void removeInterface(java.lang.String name)

  Remove an interface from this class.

  Parameters:
    `name` - interface to remove (fully qualified name)

### getMajor

    public int getMajor()

  Returns:
    major version number of class file

### setMajor

    public void setMajor(int major)

  Set major version number of class file, default value is 45 (JDK 1.1)

  Parameters:
    `major` - major version number

### setMinor

    public void setMinor(int minor)

  Set minor version number of class file, default value is 3 (JDK 1.1)

  Parameters:
    `minor` - minor version number

### getMinor

    public int getMinor()

  Returns:
    minor version number of class file

### 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().

### 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)

  Returns:
    field object with given name, or null

### containsMethod

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

  Returns:
    method object with given name and signature, or null

### 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

### replaceMethod

    public void replaceMethod(Method old,
                              Method new_)

  Replace given method with new one. If the old one does not exist add the new_ method to the class anyway.

### replaceField

    public void replaceField(Field old,
                             Field new_)

  Replace given field with new one. If the old one does not exist add the new_ field to the class anyway.

### 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()

### setClassName

    public void setClassName(java.lang.String name)

### setSuperclassName

    public void setSuperclassName(java.lang.String name)

### getMethods

    public Method[] getMethods()

### setMethods

    public void setMethods(Method[] methods)

### setMethodAt

    public void setMethodAt(Method method,
                            int pos)

### getMethodAt

    public Method getMethodAt(int pos)

### getInterfaceNames

    public java.lang.String[] getInterfaceNames()

### 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()

### addObserver

    public void addObserver(ClassObserver o)

  Add observer for this object.

### removeObserver

    public void removeObserver(ClassObserver o)

  Remove observer for this object.

### update

    public void update()

  Call notify() method on all observers. This method is not called automatically whenever the state has changed, but has to be called by the user after he has finished editing the object.

### clone

    public java.lang.Object clone()

  Overrides:
    `clone` in class `java.lang.Object`

Copyright © 2002-2003 Apache Software Foundation. All Rights Reserved.