001    /**
002     * Implements the Cold Fusion Function listsort
003     */
004    package railo.runtime.functions.list;
005    
006    
007    import railo.runtime.PageContext;
008    import railo.runtime.exp.PageException;
009    import railo.runtime.ext.function.Function;
010    import railo.runtime.type.List;
011    
012    public final class ListSort implements Function {
013            
014            private static final long serialVersionUID = -1153055612742304078L;
015            
016            public static String call(PageContext pc , String list, String sortType) throws PageException {
017                    return call(pc,list,sortType,"asc",",",false);
018            }
019            public static String call(PageContext pc , String list, String sortType, String sortOrder) throws PageException {
020                    return call(pc,list,sortType,sortOrder,",",false);
021            }
022            public static String call(PageContext pc , String list, String sortType, String sortOrder, String delimiter) throws PageException {
023                    return call(pc,list,sortType,sortOrder,delimiter,false);
024            }
025            public static String call(PageContext pc , String list, String sortType, String sortOrder, String delimiter , boolean includeEmptyFields) throws PageException {
026                    if(includeEmptyFields) return List.sort(list,sortType, sortOrder,delimiter);
027                    return List.sortIgnoreEmpty(List.trim(list,delimiter),sortType, sortOrder,delimiter);
028            }
029    }