001 /** 002 * Implements the CFML Function arrayToStruct 003 */ 004 package railo.runtime.functions.arrays; 005 006 import railo.runtime.PageContext; 007 import railo.runtime.exp.PageException; 008 import railo.runtime.functions.BIF; 009 import railo.runtime.op.Caster; 010 import railo.runtime.type.Array; 011 import railo.runtime.type.KeyImpl; 012 import railo.runtime.type.Struct; 013 import railo.runtime.type.StructImpl; 014 015 public final class ArrayToStruct extends BIF { 016 017 private static final long serialVersionUID = 2050803318757965798L; 018 019 public static Struct call(PageContext pc , Array arr) throws PageException { 020 Struct sct=new StructImpl(); 021 int[] keys=arr.intKeys(); 022 for(int i=0;i<keys.length;i++) { 023 int key=keys[i]; 024 sct.set(KeyImpl.toKey(key+""),arr.getE(key)); 025 } 026 027 return sct; 028 } 029 030 @Override 031 public Object invoke(PageContext pc, Object[] args) throws PageException { 032 return call(pc,Caster.toArray(args[0])); 033 } 034 }