A
ClassVisitor
that generates Java class files. More
precisely this visitor generates a byte array conforming to the Java class
file format. It can be used alone, to generate a Java class "from scratch",
or with one or more
ClassReader
and adapter class
visitor to generate a modified class from one or more existing Java classes.
newClass
public int newClass(String value)
Adds a class reference to the constant pool of the class being build. Does
nothing if the constant pool already contains a similar item.
This
method is intended for Attribute
sub classes, and is normally not
needed by class generators or adapters.
value
- the internal name of the class.
- the index of a new or already existing class reference item.
newConst
public int newConst(Object cst)
Adds a number or string constant to the constant pool of the class being
build. Does nothing if the constant pool already contains a similar item.
This method is intended for Attribute
sub classes, and is
normally not needed by class generators or adapters.
cst
- the value of the constant to be added to the constant pool. This
parameter must be an Integer
, a Float
, a Long
, a Double
or a String
.
- the index of a new or already existing constant item with the given
value.
newConstDouble
public int newConstDouble(double d)
newConstFloat
public int newConstFloat(float f)
newConstInt
public int newConstInt(int i)
newConstLong
public int newConstLong(long l)
newField
public int newField(String owner,
String name,
String desc)
Adds a field reference to the constant pool of the class being build. Does
nothing if the constant pool already contains a similar item.
This
method is intended for Attribute
sub classes, and is normally not
needed by class generators or adapters.
owner
- the internal name of the field's owner class.name
- the field's name.desc
- the field's descriptor.
- the index of a new or already existing field reference item.
newMethod
public int newMethod(String owner,
String name,
String desc,
boolean itf)
Adds a method reference to the constant pool of the class being build. Does
nothing if the constant pool already contains a similar item.
This
method is intended for Attribute
sub classes, and is normally not
needed by class generators or adapters.
owner
- the internal name of the method's owner class.name
- the method's name.desc
- the method's descriptor.itf
- true if owner is an interface.
- the index of a new or already existing method reference item.
newNameType
public int newNameType(String name,
String desc)
Adds a name and type to the constant pool of the class being build. Does
nothing if the constant pool already contains a similar item.
This
method is intended for Attribute
sub classes, and is normally not
needed by class generators or adapters.
name
- a name.desc
- a type descriptor.
- the index of a new or already existing name and type item.
newUTF8
public int newUTF8(String value)
Adds an UTF8 string to the constant pool of the class being build. Does
nothing if the constant pool already contains a similar item.
This
method is intended for Attribute
sub classes, and is normally not
needed by class generators or adapters.
value
- the String value.
- the index of a new or already existing UTF8 item.
toByteArray
public byte[] toByteArray()
Returns the bytecode of the class that was build with this class writer.
- the bytecode of the class that was build with this class writer.
visit
public void visit(int version,
int access,
String name,
String superName,
String[] interfaces,
String sourceFile)
- visit in interface ClassVisitor
visitInnerClass
public void visitInnerClass(String name,
String outerName,
String innerName,
int access)
- visitInnerClass in interface ClassVisitor