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    }