railo.transformer.bytecode.statement.udf
Class Function

java.lang.Object
  extended by railo.transformer.bytecode.statement.StatementBase
      extended by railo.transformer.bytecode.statement.StatementBaseNoFinal
          extended by railo.transformer.bytecode.statement.udf.Function
All Implemented Interfaces:
org.objectweb.asm.Opcodes, Statement, HasBody, IFunction
Direct Known Subclasses:
Closure, FunctionImpl

public abstract class Function
extends StatementBaseNoFinal
implements org.objectweb.asm.Opcodes, IFunction, HasBody


Field Summary
 
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.IFunction
ARRAY_INDEX, PAGE_TYPE_COMPONENT, PAGE_TYPE_INTERFACE, PAGE_TYPE_REGULAR, VALUE_INDEX
 
Constructor Summary
Function(Page page, Expression name, Expression returnType, Expression returnFormat, Expression output, Expression bufferOutput, int access, Expression displayName, Expression description, Expression hint, Expression secureJson, Expression verifyClient, Expression localMode, long cachedWithin, boolean _abstract, boolean _final, Body body, Position start, Position end)
           
Function(Page page, String name, int access, String returnType, Body body, Position start, Position end)
           
 
Method Summary
 void _writeOut(BytecodeContext bc)
          write out the stament to the adater
abstract  void _writeOut(BytecodeContext bc, int pageType)
           
 void addArgument(Expression name, Expression type, Expression required, Expression defaultValue, ExprBoolean passByReference, Expression displayName, Expression hint, Map meta)
           
 void addArgument(String name, String type, boolean required, Expression defaultValue)
           
 void addAttribute(Attribute attr)
           
 void createUDF(BytecodeContext bc, int index, boolean closure)
           
 void createUDFProperties(BytecodeContext bc, int index, boolean closure)
           
 List<Argument> getArguments()
           
 Body getBody()
           
 void loadUDFProperties(BytecodeContext bc, int valueIndex, int arrayIndex, boolean closure)
           
 void setHint(String hint)
           
 void setMetaData(Map<String,Attribute> metadata)
           
static ExprInt toLocalMode(Expression expr, ExprInt defaultValue)
           
 void writeOut(BytecodeContext bc, int type)
           
 
Methods inherited from class railo.transformer.bytecode.statement.StatementBaseNoFinal
getFlowControlFinal
 
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
 

Constructor Detail

Function

public Function(Page page,
                String name,
                int access,
                String returnType,
                Body body,
                Position start,
                Position end)

Function

public Function(Page page,
                Expression name,
                Expression returnType,
                Expression returnFormat,
                Expression output,
                Expression bufferOutput,
                int access,
                Expression displayName,
                Expression description,
                Expression hint,
                Expression secureJson,
                Expression verifyClient,
                Expression localMode,
                long cachedWithin,
                boolean _abstract,
                boolean _final,
                Body body,
                Position start,
                Position end)
Method Detail

toLocalMode

public static ExprInt toLocalMode(Expression expr,
                                  ExprInt defaultValue)

writeOut

public final void writeOut(BytecodeContext bc,
                           int type)
                    throws BytecodeException
Specified by:
writeOut in interface IFunction
Throws:
BytecodeException
See Also:
IFunction.writeOut(railo.transformer.bytecode.BytecodeContext, int)

_writeOut

public final 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:
StatementBase._writeOut(railo.transformer.bytecode.BytecodeContext)

_writeOut

public abstract void _writeOut(BytecodeContext bc,
                               int pageType)
                        throws BytecodeException
Throws:
BytecodeException

loadUDFProperties

public final void loadUDFProperties(BytecodeContext bc,
                                    int valueIndex,
                                    int arrayIndex,
                                    boolean closure)
                             throws BytecodeException
Throws:
BytecodeException

createUDFProperties

public final void createUDFProperties(BytecodeContext bc,
                                      int index,
                                      boolean closure)
                               throws BytecodeException
Throws:
BytecodeException

createUDF

public final void createUDF(BytecodeContext bc,
                            int index,
                            boolean closure)
                     throws BytecodeException
Throws:
BytecodeException

addArgument

public final void addArgument(String name,
                              String type,
                              boolean required,
                              Expression defaultValue)

addArgument

public final void addArgument(Expression name,
                              Expression type,
                              Expression required,
                              Expression defaultValue,
                              ExprBoolean passByReference,
                              Expression displayName,
                              Expression hint,
                              Map meta)

getArguments

public final List<Argument> getArguments()
Returns:
the arguments

getBody

public final Body getBody()
Specified by:
getBody in interface HasBody
Returns:
the body

setMetaData

public final void setMetaData(Map<String,Attribute> metadata)

setHint

public final void setHint(String hint)

addAttribute

public final void addAttribute(Attribute attr)
                        throws TemplateException
Throws:
TemplateException


Copyright © 2012 Railo