001    /**
002     * Implements the CFML Function listtoarray
003     */
004    package railo.runtime.functions.list;
005    
006    import railo.runtime.PageContext;
007    import railo.runtime.exp.PageException;
008    import railo.runtime.ext.function.Function;
009    import railo.runtime.type.Array;
010    import railo.runtime.type.util.ListUtil;
011    
012    public final class ListItemTrim implements Function {
013            
014            private static final long serialVersionUID = -2254266180423759499L;
015    
016            public static String call(PageContext pc , String list) throws PageException {
017                    return call(pc,list,",",false);
018            }
019            public static String call(PageContext pc , String list, String delimiter) throws PageException {
020                    return call(pc,list,delimiter,false);
021            }
022            
023            public static String call(PageContext pc , String list, String delimiter,boolean includeEmptyFields) throws PageException {
024                    if(list.length()==0) return "";
025                    Array arr = includeEmptyFields?ListUtil.listToArray(list,delimiter):ListUtil.listToArrayRemoveEmpty(list,delimiter);
026                    return ListUtil.arrayToList(ListUtil.trimItems(arr),delimiter); 
027            }
028    }