001 /** 002 * Implements the CFML Function array 003 */ 004 package railo.runtime.functions.arrays; 005 006 import railo.runtime.PageContext; 007 import railo.runtime.exp.ExpressionException; 008 import railo.runtime.exp.PageException; 009 import railo.runtime.functions.BIF; 010 import railo.runtime.type.Array; 011 import railo.runtime.type.ArrayImpl; 012 import railo.runtime.type.FunctionValue; 013 014 /** 015 * implementation of the Function array 016 */ 017 public class Array_ extends BIF { 018 019 private static final long serialVersionUID = 4974431571073577001L; 020 021 /** 022 * @param pc 023 * @param objArr 024 * @return 025 * @throws ExpressionException 026 */ 027 public static Array call(PageContext pc , Object[] objArr) { 028 for(int i=0;i<objArr.length;i++) { 029 if(objArr[i] instanceof FunctionValue)objArr[i]=((FunctionValue)objArr[i]).getValue(); 030 } 031 return new ArrayImpl(objArr); 032 } 033 034 @Override 035 public Object invoke(PageContext pc, Object[] args) throws PageException { 036 return call(pc,(Object[])args[0]); 037 } 038 }