001    /**
002     * Implements the CFML Function listinsertat
003     */
004    package railo.runtime.functions.list;
005    
006    import railo.runtime.PageContext;
007    import railo.runtime.exp.ExpressionException;
008    import railo.runtime.exp.FunctionException;
009    import railo.runtime.ext.function.Function;
010    import railo.runtime.type.util.ListUtil;
011    
012    public final class ListInsertAt implements Function {
013            
014            private static final long serialVersionUID = 2796195727971683118L;
015    
016            public static String call(PageContext pc , String list, double posNumber, String value) throws ExpressionException {
017                    return call(pc,list,posNumber,value,",",false);
018            }
019            
020            public static String call(PageContext pc , String list, double posNumber, String value, String strDelimiter) throws ExpressionException {
021                    return call(pc,list,posNumber,value,strDelimiter,false);
022            }
023                    
024            public static String call(PageContext pc , String list, double posNumber, String value, String strDelimiter, boolean includeEmptyFields) throws ExpressionException {
025                    if(strDelimiter.length()==0)
026            throw new FunctionException(pc,"listInsertAt",4,"delimiter","invalid delimiter value, can't be a empty string"); 
027            
028            return ListUtil.listInsertAt(list,(int)posNumber,value,strDelimiter,!includeEmptyFields);
029            }
030    }