railo.transformer.bytecode.statement
Class TryCatchFinally

java.lang.Object
  extended by railo.transformer.bytecode.statement.StatementBase
      extended by railo.transformer.bytecode.statement.TryCatchFinally
All Implemented Interfaces:
org.objectweb.asm.Opcodes, Statement, FlowControl, FlowControlRetry, HasBodies

public final class TryCatchFinally
extends StatementBase
implements org.objectweb.asm.Opcodes, HasBodies, FlowControlRetry

produce try-catch-finally


Field Summary
static org.objectweb.asm.commons.Method IS_ABORT
           
 
Fields inherited from interface org.objectweb.asm.Opcodes
AALOAD, AASTORE, ACC_ABSTRACT, ACC_ANNOTATION, ACC_BRIDGE, ACC_DEPRECATED, ACC_ENUM, ACC_FINAL, ACC_INTERFACE, ACC_NATIVE, ACC_PRIVATE, ACC_PROTECTED, ACC_PUBLIC, ACC_STATIC, ACC_STRICT, ACC_SUPER, ACC_SYNCHRONIZED, ACC_SYNTHETIC, ACC_TRANSIENT, ACC_VARARGS, ACC_VOLATILE, ACONST_NULL, ALOAD, ANEWARRAY, ARETURN, ARRAYLENGTH, ASM4, ASTORE, ATHROW, BALOAD, BASTORE, BIPUSH, CALOAD, CASTORE, CHECKCAST, D2F, D2I, D2L, DADD, DALOAD, DASTORE, DCMPG, DCMPL, DCONST_0, DCONST_1, DDIV, DLOAD, DMUL, DNEG, DOUBLE, DREM, DRETURN, DSTORE, DSUB, DUP, DUP_X1, DUP_X2, DUP2, DUP2_X1, DUP2_X2, F_APPEND, F_CHOP, F_FULL, F_NEW, F_SAME, F_SAME1, F2D, F2I, F2L, FADD, FALOAD, FASTORE, FCMPG, FCMPL, FCONST_0, FCONST_1, FCONST_2, FDIV, FLOAD, FLOAT, FMUL, FNEG, FREM, FRETURN, FSTORE, FSUB, GETFIELD, GETSTATIC, GOTO, H_GETFIELD, H_GETSTATIC, H_INVOKEINTERFACE, H_INVOKESPECIAL, H_INVOKESTATIC, H_INVOKEVIRTUAL, H_NEWINVOKESPECIAL, H_PUTFIELD, H_PUTSTATIC, I2B, I2C, I2D, I2F, I2L, I2S, IADD, IALOAD, IAND, IASTORE, ICONST_0, ICONST_1, ICONST_2, ICONST_3, ICONST_4, ICONST_5, ICONST_M1, IDIV, IF_ACMPEQ, IF_ACMPNE, IF_ICMPEQ, IF_ICMPGE, IF_ICMPGT, IF_ICMPLE, IF_ICMPLT, IF_ICMPNE, IFEQ, IFGE, IFGT, IFLE, IFLT, IFNE, IFNONNULL, IFNULL, IINC, ILOAD, IMUL, INEG, INSTANCEOF, INTEGER, INVOKEDYNAMIC, INVOKEINTERFACE, INVOKESPECIAL, INVOKESTATIC, INVOKEVIRTUAL, IOR, IREM, IRETURN, ISHL, ISHR, ISTORE, ISUB, IUSHR, IXOR, JSR, L2D, L2F, L2I, LADD, LALOAD, LAND, LASTORE, LCMP, LCONST_0, LCONST_1, LDC, LDIV, LLOAD, LMUL, LNEG, LONG, LOOKUPSWITCH, LOR, LREM, LRETURN, LSHL, LSHR, LSTORE, LSUB, LUSHR, LXOR, MONITORENTER, MONITOREXIT, MULTIANEWARRAY, NEW, NEWARRAY, NOP, NULL, POP, POP2, PUTFIELD, PUTSTATIC, RET, RETURN, SALOAD, SASTORE, SIPUSH, SWAP, T_BOOLEAN, T_BYTE, T_CHAR, T_DOUBLE, T_FLOAT, T_INT, T_LONG, T_SHORT, TABLESWITCH, TOP, UNINITIALIZED_THIS, V1_1, V1_2, V1_3, V1_4, V1_5, V1_6, V1_7
 
Fields inherited from interface railo.transformer.bytecode.statement.FlowControl
BREAK, CONTINUE, RETRY
 
Constructor Summary
TryCatchFinally(Body body, Position start, Position end)
          Constructor of the class
 
Method Summary
 void _writeOut(BytecodeContext bc)
          write out the stament to the adater
 void addCatch(Expression type, Expression name, Body b, Position line)
           
 void addCatch(ExprString type, VariableRef name, Body body, Position line)
           
 Body[] getBodies()
           
 FlowControlFinal getFlowControlFinal()
           
 String getLabel()
           
 org.objectweb.asm.Label getRetryLabel()
           
 void setFinally(Body body, Position finallyLine)
          sets finally body
 
Methods inherited from class railo.transformer.bytecode.statement.StatementBase
getDescendantCount, getEnd, getParent, getStart, hasFlowController, setEnd, setHasFlowController, setParent, setStart, writeOut
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

IS_ABORT

public static final org.objectweb.asm.commons.Method IS_ABORT
Constructor Detail

TryCatchFinally

public TryCatchFinally(Body body,
                       Position start,
                       Position end)
Constructor of the class

Parameters:
body -
line -
Method Detail

setFinally

public void setFinally(Body body,
                       Position finallyLine)
sets finally body

Parameters:
body -

_writeOut

public void _writeOut(BytecodeContext bc)
               throws BytecodeException
Description copied from class: StatementBase
write out the stament to the adater

Specified by:
_writeOut in class StatementBase
Throws:
BytecodeException
See Also:
railo.transformer.bytecode.statement.StatementBase#_writeOut(org.objectweb.asm.commons.GeneratorAdapter)

addCatch

public void addCatch(ExprString type,
                     VariableRef name,
                     Body body,
                     Position line)
Parameters:
type -
name -
body -
line -

addCatch

public void addCatch(Expression type,
                     Expression name,
                     Body b,
                     Position line)
              throws BytecodeException
Parameters:
type -
name -
b -
line -
Throws:
BytecodeException

getBodies

public Body[] getBodies()
Specified by:
getBodies in interface HasBodies
See Also:
HasBodies.getBodies()

getFlowControlFinal

public FlowControlFinal getFlowControlFinal()
Specified by:
getFlowControlFinal in interface Statement
Returns:
return the label where the finally block of this tags starts, IF there is a finally block, otherwise return null;

getRetryLabel

public org.objectweb.asm.Label getRetryLabel()
Specified by:
getRetryLabel in interface FlowControlRetry

getLabel

public String getLabel()
Specified by:
getLabel in interface FlowControl


Copyright © 2012 Railo