Class CodeBlock

  • All Implemented Interfaces:
    org.objectweb.asm.Opcodes

    public class CodeBlock
    extends java.lang.Object
    implements org.objectweb.asm.Opcodes
    • Field Detail

      • instructionList

        private final org.objectweb.asm.tree.InsnList instructionList
      • tryCatchBlockList

        private final java.util.List<org.objectweb.asm.tree.TryCatchBlockNode> tryCatchBlockList
      • localVariableList

        private final java.util.List<org.objectweb.asm.tree.LocalVariableNode> localVariableList
      • arity

        private int arity
      • returns

        private boolean returns
    • Constructor Detail

      • CodeBlock

        public CodeBlock()
      • CodeBlock

        public CodeBlock​(CodeBlock block)
      • CodeBlock

        public CodeBlock​(int arity)
    • Method Detail

      • newCodeBlock

        public static CodeBlock newCodeBlock()
      • newCodeBlock

        public static CodeBlock newCodeBlock​(int arity)
      • aloadMany

        public CodeBlock aloadMany​(int... indices)
        Short-hand for specifying a set of aloads
        Parameters:
        indices - list of aloads you want
      • aload

        public CodeBlock aload​(int index)
      • iload

        public CodeBlock iload​(int index)
      • lload

        public CodeBlock lload​(int index)
      • fload

        public CodeBlock fload​(int index)
      • dload

        public CodeBlock dload​(int index)
      • astore

        public CodeBlock astore​(int index)
      • istore

        public CodeBlock istore​(int index)
      • lstore

        public CodeBlock lstore​(int index)
      • fstore

        public CodeBlock fstore​(int index)
      • dstore

        public CodeBlock dstore​(int index)
      • ldc

        public CodeBlock ldc​(java.lang.Object value)
      • bipush

        public CodeBlock bipush​(int byteValue)
      • sipush

        public CodeBlock sipush​(int shortValue)
      • pushInt

        public CodeBlock pushInt​(int value)
      • pushBoolean

        public CodeBlock pushBoolean​(boolean bool)
      • invokestatic

        public CodeBlock invokestatic​(java.lang.String className,
                                      java.lang.String methodName,
                                      java.lang.String methodDesc)
      • invokespecial

        public CodeBlock invokespecial​(java.lang.String className,
                                       java.lang.String methodName,
                                       java.lang.String methodDesc)
      • invokevirtual

        public CodeBlock invokevirtual​(java.lang.String className,
                                       java.lang.String methodName,
                                       java.lang.String methodDesc)
      • invokeinterface

        public CodeBlock invokeinterface​(java.lang.String className,
                                         java.lang.String methodName,
                                         java.lang.String methodDesc)
      • invokedynamic

        public CodeBlock invokedynamic​(java.lang.String name,
                                       java.lang.String descriptor,
                                       org.objectweb.asm.Handle bootstrapMethod,
                                       java.lang.Object... bootstrapArguments)
      • newobj

        public CodeBlock newobj​(java.lang.String desc)
      • getstatic

        public CodeBlock getstatic​(java.lang.String className,
                                   java.lang.String fieldName,
                                   java.lang.String fieldDesc)
      • putstatic

        public CodeBlock putstatic​(java.lang.String className,
                                   java.lang.String fieldName,
                                   java.lang.String fieldDesc)
      • getfield

        public CodeBlock getfield​(java.lang.String className,
                                  java.lang.String fieldName,
                                  java.lang.String fieldDesc)
      • putfield

        public CodeBlock putfield​(java.lang.String className,
                                  java.lang.String fieldName,
                                  java.lang.String fieldDesc)
      • anewarray

        public CodeBlock anewarray​(java.lang.String arrayDesc)
      • multianewarray

        public CodeBlock multianewarray​(java.lang.String arrayDesc,
                                        int dims)
      • newarray

        public CodeBlock newarray​(int size)
      • aconst_null

        public CodeBlock aconst_null()
      • label

        public CodeBlock label​(org.objectweb.asm.tree.LabelNode labelNode)
      • barraystore

        public CodeBlock barraystore()
      • trycatch

        public CodeBlock trycatch​(org.objectweb.asm.tree.LabelNode scopeStart,
                                  org.objectweb.asm.tree.LabelNode scopeEnd,
                                  org.objectweb.asm.tree.LabelNode handler,
                                  java.lang.String exceptionType)
      • trycatch

        public CodeBlock trycatch​(java.lang.String exceptionType,
                                  java.lang.Runnable body,
                                  java.lang.Runnable catchBody)
      • go_to

        public CodeBlock go_to​(org.objectweb.asm.tree.LabelNode label)
      • lookupswitch

        public CodeBlock lookupswitch​(org.objectweb.asm.tree.LabelNode defaultHandler,
                                      int[] keys,
                                      org.objectweb.asm.tree.LabelNode[] handlers)
      • instance_of

        public CodeBlock instance_of​(java.lang.String typeDesc)
      • ifeq

        public CodeBlock ifeq​(org.objectweb.asm.tree.LabelNode jumpLabel)
      • iffalse

        public CodeBlock iffalse​(org.objectweb.asm.tree.LabelNode jumpLabel)
      • ifne

        public CodeBlock ifne​(org.objectweb.asm.tree.LabelNode jumpLabel)
      • iftrue

        public CodeBlock iftrue​(org.objectweb.asm.tree.LabelNode jumpLabel)
      • if_acmpne

        public CodeBlock if_acmpne​(org.objectweb.asm.tree.LabelNode jumpLabel)
      • if_acmpeq

        public CodeBlock if_acmpeq​(org.objectweb.asm.tree.LabelNode jumpLabel)
      • if_icmple

        public CodeBlock if_icmple​(org.objectweb.asm.tree.LabelNode jumpLabel)
      • if_icmpgt

        public CodeBlock if_icmpgt​(org.objectweb.asm.tree.LabelNode jumpLabel)
      • if_icmplt

        public CodeBlock if_icmplt​(org.objectweb.asm.tree.LabelNode jumpLabel)
      • if_icmpne

        public CodeBlock if_icmpne​(org.objectweb.asm.tree.LabelNode jumpLabel)
      • if_icmpeq

        public CodeBlock if_icmpeq​(org.objectweb.asm.tree.LabelNode jumpLabel)
      • if_icmpge

        public CodeBlock if_icmpge​(org.objectweb.asm.tree.LabelNode jumpLabel)
      • checkcast

        public CodeBlock checkcast​(java.lang.String typeDesc)
      • line

        public CodeBlock line​(int line,
                              org.objectweb.asm.tree.LabelNode label)
      • ifnonnull

        public CodeBlock ifnonnull​(org.objectweb.asm.tree.LabelNode jumpLabel)
      • ifnull

        public CodeBlock ifnull​(org.objectweb.asm.tree.LabelNode jumpLabel)
      • iflt

        public CodeBlock iflt​(org.objectweb.asm.tree.LabelNode jumpLabel)
      • ifle

        public CodeBlock ifle​(org.objectweb.asm.tree.LabelNode jumpLabel)
      • ifgt

        public CodeBlock ifgt​(org.objectweb.asm.tree.LabelNode jumpLabel)
      • ifge

        public CodeBlock ifge​(org.objectweb.asm.tree.LabelNode jumpLabel)
      • arraylength

        public CodeBlock arraylength()
      • iinc

        public CodeBlock iinc​(int varIndex,
                              int increment)
      • monitorenter

        public CodeBlock monitorenter()
      • monitorexit

        public CodeBlock monitorexit()
      • jsr

        public CodeBlock jsr​(org.objectweb.asm.tree.LabelNode branch)
      • visitInsn

        public CodeBlock visitInsn​(int opcode)
      • visitIntInsn

        public CodeBlock visitIntInsn​(int opcode,
                                      int operand)
      • visitInsnNode

        public CodeBlock visitInsnNode​(int opcode,
                                       int operand)
      • visitTypeInsn

        public CodeBlock visitTypeInsn​(int opcode,
                                       java.lang.String desc)
      • visitFieldInsn

        public CodeBlock visitFieldInsn​(int opcode,
                                        java.lang.String className,
                                        java.lang.String fieldName,
                                        java.lang.String fieldDesc)
      • visitMethodInsn

        public CodeBlock visitMethodInsn​(int opcode,
                                         java.lang.String className,
                                         java.lang.String methodName,
                                         java.lang.String methodDesc)
      • visitInvokeDynamicInsn

        public CodeBlock visitInvokeDynamicInsn​(java.lang.String name,
                                                java.lang.String desc,
                                                org.objectweb.asm.Handle bootstrapMethod,
                                                java.lang.Object... bootstrapArguments)
      • visitJumpInsn

        public CodeBlock visitJumpInsn​(int opcode,
                                       org.objectweb.asm.tree.LabelNode node)
      • visitLabel

        public CodeBlock visitLabel​(org.objectweb.asm.Label label)
      • visitLdcInsn

        public CodeBlock visitLdcInsn​(java.lang.Object value)
      • visitIincInsn

        public CodeBlock visitIincInsn​(int varIndex,
                                       int increment)
      • visitTableSwitchInsn

        public CodeBlock visitTableSwitchInsn​(int min,
                                              int max,
                                              org.objectweb.asm.tree.LabelNode defaultHandler,
                                              org.objectweb.asm.tree.LabelNode[] handlers)
      • visitLookupSwitchInsn

        public CodeBlock visitLookupSwitchInsn​(org.objectweb.asm.tree.LabelNode defaultHandler,
                                               int[] keys,
                                               org.objectweb.asm.tree.LabelNode[] handlers)
      • visitMultiANewArrayInsn

        public CodeBlock visitMultiANewArrayInsn​(java.lang.String desc,
                                                 int dims)
      • visitTryCatchBlock

        public CodeBlock visitTryCatchBlock​(org.objectweb.asm.tree.LabelNode scopeStart,
                                            org.objectweb.asm.tree.LabelNode scopeEnd,
                                            org.objectweb.asm.tree.LabelNode handler,
                                            java.lang.String exceptionType)
      • visitLocalVariable

        public CodeBlock visitLocalVariable​(java.lang.String varName,
                                            java.lang.String varDesc,
                                            java.lang.String signature,
                                            org.objectweb.asm.tree.LabelNode scopeStart,
                                            org.objectweb.asm.tree.LabelNode scopeEnd,
                                            int varIndex)
      • visitLineNumber

        public CodeBlock visitLineNumber​(int lineNumber,
                                         org.objectweb.asm.tree.LabelNode start)
      • tableswitch

        public CodeBlock tableswitch​(int min,
                                     int max,
                                     org.objectweb.asm.tree.LabelNode defaultLabel,
                                     org.objectweb.asm.tree.LabelNode[] cases)
      • visitFrame

        public CodeBlock visitFrame​(int opcode,
                                    int nrLocals,
                                    java.lang.Object[] localTypes,
                                    int nrStackElements,
                                    java.lang.Object[] stackElements)
      • getInstructionList

        public org.objectweb.asm.tree.InsnList getInstructionList()
      • getTryCatchBlockList

        public java.util.List<org.objectweb.asm.tree.TryCatchBlockNode> getTryCatchBlockList()
      • getLocalVariableList

        public java.util.List<org.objectweb.asm.tree.LocalVariableNode> getLocalVariableList()
      • frame_same

        public CodeBlock frame_same​(java.lang.Object... stackArguments)
        adds a compressed frame to the stack
        Parameters:
        stackArguments - the argument types on the stack, represented as "class path names" e.g java/lang/RuntimeException
      • addAll

        public CodeBlock addAll​(org.objectweb.asm.tree.InsnList insnList)
      • arity

        public int arity()
      • returns

        public boolean returns()