001 /** 002 * Implements the Cold Fusion Function listgetat 003 */ 004 package railo.runtime.functions.list; 005 006 import railo.runtime.PageContext; 007 import railo.runtime.exp.FunctionException; 008 import railo.runtime.exp.PageException; 009 import railo.runtime.ext.function.Function; 010 import railo.runtime.type.List; 011 012 public final class ListGetAt implements Function { 013 014 private static final long serialVersionUID = -8227074223983816122L; 015 016 public static String call(PageContext pc , String list, double posNumber) throws PageException { 017 return call(pc,list,posNumber,",",false); 018 } 019 020 public static String call(PageContext pc , String list, double posNumber, String delimeter) throws PageException { 021 return call(pc,list,posNumber,delimeter,false); 022 } 023 024 public static String call(PageContext pc , String list, double posNumber, String delimeter, boolean includeEmptyFields) throws PageException { 025 int pos=(int) posNumber; 026 String rtn = List.getAt(list,delimeter,pos-1,!includeEmptyFields); 027 if(rtn==null) throw new FunctionException(pc,"listGetAt",2,"posNumber","invalid string list index ["+pos+"]"); 028 return rtn; 029 } 030 }