001 /** 002 * Implements the CFML Function ArrayReverse 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.op.Caster; 011 import railo.runtime.type.Array; 012 import railo.runtime.type.ArrayImpl; 013 014 015 public final class ArrayReverse extends BIF { 016 017 private static final long serialVersionUID = 5418304787535992180L; 018 019 public static Array call(PageContext pc , Array array) throws ExpressionException { 020 Array rev=new ArrayImpl(array.getDimension()); 021 int len=array.size(); 022 for(int i=0;i<len;i++) { 023 try { 024 rev.setE(len-i,array.getE(i+1)); 025 } catch (PageException e) { 026 } 027 } 028 return rev; 029 } 030 031 @Override 032 public Object invoke(PageContext pc, Object[] args) throws PageException { 033 return call(pc,Caster.toArray(args[0])); 034 } 035 }