001 package railo.transformer.bytecode.statement.udf; 002 003 import railo.transformer.bytecode.Body; 004 import railo.transformer.bytecode.BytecodeContext; 005 import railo.transformer.bytecode.BytecodeException; 006 import railo.transformer.bytecode.Page; 007 import railo.transformer.bytecode.Position; 008 import railo.transformer.bytecode.expression.Expression; 009 010 public final class Closure extends Function { 011 012 public Closure(Page page,Expression name, Expression returnType, Expression returnFormat, Expression output,Expression bufferOutput, 013 int access, Expression displayName, Expression description,Expression hint, Expression secureJson, Expression verifyClient, 014 Expression localMode, 015 long cachedWithin, boolean _abstract, boolean _final, 016 Body body, Position start,Position end) { 017 super(page,name, returnType, returnFormat, output,bufferOutput, access, displayName,description, hint, secureJson, verifyClient, 018 localMode,cachedWithin,_abstract,_final,body, start, end); 019 020 } 021 022 023 public Closure(Page page, String name, int access, String returnType, Body body,Position start,Position end) { 024 super(page,name, access, returnType, body, start, end); 025 } 026 027 public final void _writeOut(BytecodeContext bc, int pageType) throws BytecodeException{ 028 //GeneratorAdapter adapter = bc.getAdapter(); 029 030 ////Page page = bc.getPage(); 031 ////if(page==null)page=ASMUtil.getAncestorPage(this); 032 //int index=page.addFunction(this); 033 034 /*if(pageType==PAGE_TYPE_INTERFACE) { 035 adapter.loadArg(0); 036 } 037 else if(pageType==PAGE_TYPE_COMPONENT) { 038 adapter.loadArg(1); 039 } 040 else { 041 adapter.loadArg(0); 042 adapter.invokeVirtual(Types.PAGE_CONTEXT, VARIABLE_SCOPE); 043 } 044 */ 045 createUDF(bc, valueIndex,true); 046 047 048 } 049 050 }