001    /**
002     * Implements the Cold Fusion Function listtoarray
003     */
004    package railo.runtime.functions.list;
005    
006    import railo.runtime.PageContext;
007    import railo.runtime.ext.function.Function;
008    import railo.runtime.type.Array;
009    import railo.runtime.type.ArrayImpl;
010    import railo.runtime.type.List;
011    
012    public final class ListToArray implements Function {
013            
014            private static final long serialVersionUID = 5883854318455975404L;
015    
016            public static Array call(PageContext pc , String list) {
017                    if(list.length()==0) 
018                            return new ArrayImpl();
019                    return List.listToArrayRemoveEmpty(list,',');
020            }
021            public static Array call(PageContext pc , String list, String delimeter) {
022                    return call(pc, list,delimeter,false,false);
023            }
024            public static Array call(PageContext pc , String list, String delimeter,boolean includeEmptyFields) {
025                    return call(pc, list,delimeter,includeEmptyFields,false);
026            }
027            
028    
029            public static Array call(PageContext pc , String list, String delimeter,boolean includeEmptyFields,boolean multiCharacterDelimiter) {
030                    if(includeEmptyFields){
031                            if(list.length()==0) {
032                                    Array a=new ArrayImpl();
033                                    a.appendEL("");
034                                    return a;
035                            }
036                            return List.listToArray(list,delimeter,multiCharacterDelimiter);
037                    }
038                    if(list.length()==0) 
039                            return new ArrayImpl();
040                    
041                    return List.listToArrayRemoveEmpty(list,delimeter,multiCharacterDelimiter);
042            }
043    }