org.objectweb.asm
public class ClassWriter extends Object implements ClassVisitor
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.
| Constructor Summary | |
|---|---|
| ClassWriter(boolean computeMaxs)
Constructs a new ClassWriter object.
| |
| ClassWriter(boolean computeMaxs, boolean skipUnknownAttributes)
Constructs a new ClassWriter object.
| |
| Method Summary | |
|---|---|
| int | newClass(String value)
Adds a class reference to the constant pool of the class being build. |
| int | newConst(Object cst)
Adds a number or string constant to the constant pool of the class being
build. |
| int | newConstDouble(double d) |
| int | newConstFloat(float f) |
| int | newConstInt(int i) |
| int | newConstLong(long l) |
| int | newField(String owner, String name, String desc)
Adds a field reference to the constant pool of the class being build. |
| int | newMethod(String owner, String name, String desc, boolean itf)
Adds a method reference to the constant pool of the class being build. |
| int | newNameType(String name, String desc)
Adds a name and type to the constant pool of the class being build. |
| int | newUTF8(String value)
Adds an UTF8 string to the constant pool of the class being build. |
| byte[] | toByteArray()
Returns the bytecode of the class that was build with this class writer.
|
| void | visit(int version, int access, String name, String superName, String[] interfaces, String sourceFile) |
| void | visitAttribute(Attribute attr) |
| void | visitEnd() |
| void | visitField(int access, String name, String desc, Object value, Attribute attrs) |
| void | visitInnerClass(String name, String outerName, String innerName, int access) |
| CodeVisitor | visitMethod(int access, String name, String desc, String[] exceptions, Attribute attrs) |
ClassWriter object.
Parameters: computeMaxs true if the maximum stack size and the maximum
number of local variables must be automatically computed. If this flag
is true, then the arguments of the visitMaxs method of the
CodeVisitor returned by the visitMethod method
will be ignored, and computed automatically from the signature and
the bytecode of each method.
ClassWriter object.
Parameters: computeMaxs true if the maximum stack size and the maximum
number of local variables must be automatically computed. If this flag
is true, then the arguments of the visitMaxs method of the
CodeVisitor returned by the visitMethod method
will be ignored, and computed automatically from the signature and
the bytecode of each method. skipUnknownAttributes true to silently ignore unknown
attributes, or false to throw an exception if an unknown
attribute is found.
Parameters: value the internal name of the class.
Returns: the index of a new or already existing class reference item.
Parameters: cst the value of the constant to be added to the constant pool. This
parameter must be an java.lang.Integer Integer, a java.lang.Float Float, a java.lang.Long Long, a java.lang.Double Double or a String String.
Returns: the index of a new or already existing constant item with the given value.
Parameters: owner the internal name of the field's owner class. name the field's name. desc the field's descriptor.
Returns: the index of a new or already existing field reference item.
Parameters: 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.
Returns: the index of a new or already existing method reference item.
Parameters: name a name. desc a type descriptor.
Returns: the index of a new or already existing name and type item.
Parameters: value the String value.
Returns: the index of a new or already existing UTF8 item.
Returns: the bytecode of the class that was build with this class writer.