Package javassist.bytecode
Class ClassFileWriter.MethodWriter
- java.lang.Object
-
- javassist.bytecode.ClassFileWriter.MethodWriter
-
- Enclosing class:
- ClassFileWriter
public static final class ClassFileWriter.MethodWriter extends Object
Method.
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidadd(int b)Appends an 8bit value of bytecode.voidadd16(int b)Appends a 16bit value of bytecode.voidadd32(int b)Appends a 32bit value of bytecode.voidaddCatch(int startPc, int endPc, int handlerPc, int catchType)Appends anexception_tableentry to theCode_attribute.voidaddInvoke(int opcode, String targetClass, String methodName, String descriptor)Appends a invokevirtual, inovkespecial, or invokestatic bytecode.voidbegin(int accessFlags, int name, int descriptor, int[] exceptions, ClassFileWriter.AttributeWriter aw)Starts adding a new method.voidbegin(int accessFlags, String name, String descriptor, String[] exceptions, ClassFileWriter.AttributeWriter aw)Starts Adding a new method.voidcodeEnd(int maxStack, int maxLocals)Ends appending bytecode.voidend(StackMapTable.Writer smap, ClassFileWriter.AttributeWriter aw)Ends adding a new method.intsize()Returns the length of the bytecode that has been added so far.
-
-
-
Method Detail
-
begin
public void begin(int accessFlags, String name, String descriptor, String[] exceptions, ClassFileWriter.AttributeWriter aw)Starts Adding a new method.- Parameters:
accessFlags- access flags.name- the method name.descriptor- the method signature.exceptions- throws clause. It may be null. The class names must be the JVM-internal representations likejava/lang/Exception.aw- attributes to theMethod_info.
-
begin
public void begin(int accessFlags, int name, int descriptor, int[] exceptions, ClassFileWriter.AttributeWriter aw)Starts adding a new method.- Parameters:
accessFlags- access flags.name- the method name. an index indicating itsCONSTANT_Utf8_info.descriptor- the field type. an index indicating itsCONSTANT_Utf8_info.exceptions- throws clause. indexes indicatingCONSTANT_Class_infos. It may be null.aw- attributes to theMethod_info.
-
add
public void add(int b)
Appends an 8bit value of bytecode.- See Also:
Opcode
-
add16
public void add16(int b)
Appends a 16bit value of bytecode.
-
add32
public void add32(int b)
Appends a 32bit value of bytecode.
-
addInvoke
public void addInvoke(int opcode, String targetClass, String methodName, String descriptor)Appends a invokevirtual, inovkespecial, or invokestatic bytecode.- See Also:
Opcode
-
codeEnd
public void codeEnd(int maxStack, int maxLocals)Ends appending bytecode.
-
addCatch
public void addCatch(int startPc, int endPc, int handlerPc, int catchType)Appends anexception_tableentry to theCode_attribute. This method is available only after thecodeEndmethod is called.- Parameters:
catchType- an index indicating aCONSTANT_Class_info.
-
end
public void end(StackMapTable.Writer smap, ClassFileWriter.AttributeWriter aw)
Ends adding a new method. Theaddmethod must be called before theendmethod is called.- Parameters:
smap- a stack map table. may be null.aw- attributes to theCode_attribute. may be null.
-
size
public int size()
Returns the length of the bytecode that has been added so far.- Returns:
- the length in bytes.
- Since:
- 3.19
-
-