Package org.jboss.classfilewriter.code
Class CodeAttribute
java.lang.Object
org.jboss.classfilewriter.attributes.Attribute
org.jboss.classfilewriter.code.CodeAttribute
- All Implemented Interfaces:
WritableEntry
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic interface
Interface that can be used to override the type merging process when merging stack frames -
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoid
aaload()
void
aastore()
void
void
aload
(int no) void
void
void
assertNotWideOnStack
(int position, String message) void
assertNotWideOnStack
(String message) void
assertTypeOnStack
(int position, StackEntryType type, String message) void
assertTypeOnStack
(StackEntryType type, String message) void
astore
(int no) void
athrow()
void
baload()
void
bastore()
void
bipush
(byte value) void
marks the end of a branch.void
caload()
void
castore()
void
void
Do not use Descriptor format (e.g.void
d2f()
void
d2i()
void
d2l()
void
dadd()
void
daload()
void
dastore()
void
dcmpg()
void
dcmpl()
void
dconst
(double value) Adds the appropriate dconst instruction.void
ddiv()
void
dload
(int no) void
dmul()
void
dneg()
void
drem()
void
dstore
(int no) void
dsub()
void
dup()
void
dup2()
void
dup2X1()
void
dup2X2()
void
dupX1()
void
dupX2()
void
exceptionBlockEnd
(ExceptionHandler handler) Mark the end of an exception handler block.exceptionBlockStart
(String exceptionType) Begin writing an exception handler block.void
exceptionHandlerStart
(ExceptionHandler handler) Marks the current code location as the exception handler and adds the handler to the exception handler table;void
f2d()
void
f2i()
void
f2l()
void
fadd()
void
faload()
void
fastore()
void
fcmpg()
void
fcmpl()
void
fconst
(float value) Adds the appropriate fconst instruction.void
fdiv()
void
fload
(int no) void
fmul()
void
fneg()
void
frem()
void
fstore
(int no) void
fsub()
void
void
void
void
writes a goto instruction.void
gotoInstruction
(CodeLocation location) writes a goto instruction.void
i2b()
void
i2c()
void
i2d()
void
i2f()
void
i2l()
void
i2s()
void
iadd()
void
iaload()
void
iand()
void
iastore()
void
iconst
(int value) Adds the appropriate iconst instruction.void
idiv()
ifAcmpeq()
void
ifAcmpeq
(CodeLocation location) ifAcmpne()
void
ifAcmpne
(CodeLocation location) ifeq()
void
ifEq
(CodeLocation location) ifge()
void
ifge
(CodeLocation location) ifgt()
void
ifgt
(CodeLocation location) ifIcmpeq()
void
ifIcmpeq
(CodeLocation location) ifIcmpge()
void
ifIcmpge
(CodeLocation location) ifIcmpgt()
void
ifIcmpgt
(CodeLocation location) ifIcmple()
void
ifIcmple
(CodeLocation location) ifIcmplt()
void
ifIcmplt
(CodeLocation location) ifIcmpne()
void
ifIcmpne
(CodeLocation location) ifle()
void
ifle
(CodeLocation location) iflt()
void
iflt
(CodeLocation location) ifne()
void
ifne
(CodeLocation location) void
ifnotnull
(CodeLocation location) ifnull()
Jump to the given location if the reference type on the top of the stack is null.void
ifnull
(CodeLocation location) Jump to the given location if the reference type on the top of the stack is nullvoid
iinc
(int local, int amount) void
iload
(int no) void
imul()
void
ineg()
void
instanceofInstruction
(String className) void
invokeinterface
(Method method) void
invokeinterface
(String className, String methodName, String descriptor) void
invokeinterface
(String className, String methodName, String returnType, String[] parameterTypes) void
invokespecial
(Constructor<?> constructor) void
invokespecial
(Method method) void
invokespecial
(String className, String methodName, String descriptor) void
invokespecial
(String className, String methodName, String returnType, String[] parameterTypes) void
invokestatic
(Method method) void
invokestatic
(String className, String methodName, String descriptor) void
invokestatic
(String className, String methodName, String returnType, String[] parameterTypes) void
invokevirtual
(Method method) void
invokevirtual
(String className, String methodName, String descriptor) void
invokevirtual
(String className, String methodName, String returnType, String[] parameterTypes) void
ior()
void
irem()
void
ishl()
void
ishr()
void
istore
(int no) void
isub()
void
iushr()
void
ixor()
void
l2d()
void
l2f()
void
l2i()
void
ladd()
void
laload()
void
land()
void
lastore()
void
lcmp()
void
lconst
(long value) Adds the appropriate lconst instruction.void
ldc
(float value) Adds an ldc instruction for floatvoid
ldc
(int value) Adds an ldc instruction for an int.void
Adds an ldc instruction for a Stringvoid
ldc2
(double value) Adds an ldc2_w instruction for doublevoid
ldc2
(long value) Adds an ldc2_w instruction for longvoid
ldiv()
void
lload
(int no) void
lmul()
void
lneg()
void
Generates the apprpriate load instruction for the given typevoid
Generates the apprpriate load instruction for the given typevoid
void
loads all parameters onto the stack.void
Loads a java.lang.Class for the given descriptor into the stack.void
lookupswitch
(LookupSwitchBuilder lookupSwitchBuilder) Adds a lookup switch statementvoid
lor()
void
lrem()
void
lshl()
void
lshr()
void
lstore
(int no) void
lsub()
void
lushr()
void
lxor()
mark()
Gets the location object for the current location in the bytecode.void
void
void
multianewarray
(String arrayType, int dimensions) void
arrayType must be aClass
object that represents a primitive typevoid
newInstruction
(Class<?> clazz) void
newInstruction
(String classname) void
nop()
void
pop()
void
pop2()
void
void
void
void
void
Adds the appropriate return instruction for the methods return type.void
saload()
void
sastore()
void
setStackFrameTypeResolver
(CodeAttribute.StackFrameTypeResolver stackFrameTypeResolver) void
setupFrame
(String... types) void
sipush
(short value) void
swap()
void
tableswitch
(TableSwitchBuilder builder) void
writeData
(ByteArrayDataOutputStream stream)
-
Field Details
-
NAME
- See Also:
-
-
Constructor Details
-
CodeAttribute
-
-
Method Details
-
getStackFrameTypeResolver
-
setStackFrameTypeResolver
-
writeData
- Specified by:
writeData
in classAttribute
- Throws:
IOException
-
aaload
public void aaload() -
aastore
public void aastore() -
aconstNull
public void aconstNull() -
aload
public void aload(int no) -
anewarray
-
arraylength
public void arraylength() -
astore
public void astore(int no) -
athrow
public void athrow() -
baload
public void baload() -
bastore
public void bastore() -
caload
public void caload() -
castore
public void castore() -
bipush
public void bipush(byte value) -
branchEnd
marks the end of a branch. The current stack frame is checked for compatibility with the stack frame at the branch start -
checkcast
Do not use Descriptor format (e.g. Ljava/lang/Object;), the correct form is just java/lang/Object or java.lang.Object -
checkcast
-
d2f
public void d2f() -
d2i
public void d2i() -
d2l
public void d2l() -
dadd
public void dadd() -
daload
public void daload() -
dastore
public void dastore() -
dcmpg
public void dcmpg() -
dcmpl
public void dcmpl() -
dconst
public void dconst(double value) Adds the appropriate dconst instruction. note, if the value is not 0 or 1 then ldc is used instead -
ddiv
public void ddiv() -
dload
public void dload(int no) -
dmul
public void dmul() -
dneg
public void dneg() -
drem
public void drem() -
dstore
public void dstore(int no) -
dsub
public void dsub() -
dup
public void dup() -
dupX1
public void dupX1() -
dupX2
public void dupX2() -
dup2
public void dup2() -
dup2X1
public void dup2X1() -
dup2X2
public void dup2X2() -
exceptionBlockStart
Begin writing an exception handler block. The handler is not actually persisted until exceptionHandler is called. -
exceptionBlockEnd
Mark the end of an exception handler block. The last instruction that was written will be the last instruction covered by the handler -
exceptionHandlerStart
Marks the current code location as the exception handler and adds the handler to the exception handler table; -
f2d
public void f2d() -
f2i
public void f2i() -
f2l
public void f2l() -
fadd
public void fadd() -
faload
public void faload() -
fastore
public void fastore() -
fcmpg
public void fcmpg() -
fcmpl
public void fcmpl() -
fconst
public void fconst(float value) Adds the appropriate fconst instruction. note, if the value is not 0, 1, 2 then ldc is used instead -
fdiv
public void fdiv() -
fload
public void fload(int no) -
fmul
public void fmul() -
fneg
public void fneg() -
frem
public void frem() -
fstore
public void fstore(int no) -
fsub
public void fsub() -
getfield
-
getfield
-
getstatic
-
getstatic
-
gotoInstruction
writes a goto instruction. TODO: implemented goto_w -
gotoInstruction
writes a goto instruction. TODO: implemented goto_w -
i2b
public void i2b() -
i2c
public void i2c() -
i2d
public void i2d() -
i2f
public void i2f() -
i2l
public void i2l() -
i2s
public void i2s() -
iadd
public void iadd() -
iaload
public void iaload() -
iand
public void iand() -
iastore
public void iastore() -
iconst
public void iconst(int value) Adds the appropriate iconst instruction. note, if the value is not in the range -1 to 5 ldc is written instead- Parameters:
value
-
-
idiv
public void idiv() -
ifAcmpeq
-
ifAcmpeq
-
ifAcmpne
-
ifAcmpne
-
ifIcmpeq
-
ifIcmpeq
-
ifIcmpne
-
ifIcmpne
-
ifIcmplt
-
ifIcmplt
-
ifIcmple
-
ifIcmple
-
ifIcmpgt
-
ifIcmpgt
-
ifIcmpge
-
ifIcmpge
-
ifEq
-
ifeq
-
ifne
-
ifne
-
iflt
-
iflt
-
ifle
-
ifle
-
ifgt
-
ifgt
-
ifge
-
ifge
-
ifnotnull
-
ifnotnull
-
ifnull
Jump to the given location if the reference type on the top of the stack is null -
ifnull
Jump to the given location if the reference type on the top of the stack is null. TheBranchEnd
returned from this method is used to set the end point to a future point in the bytecode stream -
iinc
public void iinc(int local, int amount) -
iload
public void iload(int no) -
imul
public void imul() -
ineg
public void ineg() -
instanceofInstruction
-
invokespecial
-
invokespecial
-
invokespecial
-
invokespecial
-
invokestatic
-
invokestatic
-
invokestatic
-
invokevirtual
-
invokevirtual
-
invokevirtual
-
invokeinterface
-
invokeinterface
-
invokeinterface
-
ior
public void ior() -
irem
public void irem() -
ishl
public void ishl() -
ishr
public void ishr() -
istore
public void istore(int no) -
isub
public void isub() -
iushr
public void iushr() -
ixor
public void ixor() -
l2d
public void l2d() -
l2f
public void l2f() -
l2i
public void l2i() -
ladd
public void ladd() -
laload
public void laload() -
land
public void land() -
lastore
public void lastore() -
lcmp
public void lcmp() -
lconst
public void lconst(long value) Adds the appropriate lconst instruction. note, if the value is not 0 or 1 then ldc is used instead -
ldc
public void ldc(int value) Adds an ldc instruction for an int.- Parameters:
value
- The value to load
-
ldc
public void ldc(float value) Adds an ldc instruction for float -
ldc
Adds an ldc instruction for a String To load a class literal using ldc use the @{link #loadType(String)} method. -
ldc2
public void ldc2(double value) Adds an ldc2_w instruction for double -
ldc2
public void ldc2(long value) Adds an ldc2_w instruction for long -
ldiv
public void ldiv() -
lload
public void lload(int no) -
lmul
public void lmul() -
lneg
public void lneg() -
load
Generates the apprpriate load instruction for the given type- Parameters:
type
- The type of variableno
- local variable number
-
load
Generates the apprpriate load instruction for the given type- Parameters:
descriptor
- The descriptor of the variableno
- local variable number
-
loadClass
-
loadType
Loads a java.lang.Class for the given descriptor into the stack. -
lookupswitch
Adds a lookup switch statement- Parameters:
lookupSwitchBuilder
-
-
lor
public void lor() -
lrem
public void lrem() -
lshl
public void lshl() -
lshr
public void lshr() -
lstore
public void lstore(int no) -
lsub
public void lsub() -
lushr
public void lushr() -
lxor
public void lxor() -
mark
Gets the location object for the current location in the bytecode. Jumps to this location will begin executing the next instruction that is written to the bytecode stream -
monitorenter
public void monitorenter() -
monitorexit
public void monitorexit() -
multianewarray
-
newInstruction
-
newInstruction
-
newarray
arrayType must be aClass
object that represents a primitive type -
nop
public void nop() -
pop
public void pop() -
pop2
public void pop2() -
putfield
-
putfield
-
putstatic
-
putstatic
-
returnInstruction
public void returnInstruction()Adds the appropriate return instruction for the methods return type. -
saload
public void saload() -
sastore
public void sastore() -
sipush
public void sipush(short value) -
swap
public void swap() -
tableswitch
-
loadMethodParameters
public void loadMethodParameters()loads all parameters onto the stack. If this method is non-static then the parameter at location 0 (i.e. this object) is not pushed. -
getStackFrames
-
setupFrame
-
getConstPool
-
assertTypeOnStack
-
assertTypeOnStack
-
assertNotWideOnStack
-
assertNotWideOnStack
-