001    package railo.runtime.functions.file;
002    
003    import railo.commons.io.res.Resource;
004    import railo.commons.io.res.util.ResourceAndResourceNameFilter;
005    import railo.commons.io.res.util.ResourceUtil;
006    import railo.commons.io.res.util.UDFFilter;
007    import railo.commons.lang.StringUtil;
008    import railo.runtime.PageContext;
009    import railo.runtime.exp.PageException;
010    import railo.runtime.tag.Directory;
011    
012    public class DirectoryList {
013            
014            public static Object call(PageContext pc , String path) throws PageException {
015                    return call(pc, path, false, null, null, null);
016            }
017            
018            public static Object call(PageContext pc , String path,boolean recurse) throws PageException {
019                    return call(pc, path, recurse, null, null, null);
020            }
021            
022            public static Object call(PageContext pc , String path,boolean recurse,String strListInfo) throws PageException {
023                    return call(pc, path, recurse, strListInfo, null, null);
024            }
025            
026            public static Object call(PageContext pc , String path,boolean recurse,String strListInfo,Object oFilter) throws PageException {
027                    return call(pc, path, recurse, strListInfo, oFilter, null);
028            }
029            
030            public static Object call(PageContext pc , String path,boolean recurse,String strListInfo,Object oFilter, String sort) throws PageException {
031                    Resource dir=ResourceUtil.toResourceNotExisting(pc, path,pc.getConfig().allowRealPath());
032                    ResourceAndResourceNameFilter filter = UDFFilter.createResourceAndResourceNameFilter(oFilter);
033                    
034                    int listInfo=Directory.LIST_INFO_ARRAY_PATH;
035                    if(!StringUtil.isEmpty(strListInfo,true)){
036                            strListInfo=strListInfo.trim().toLowerCase();
037                            if("name".equalsIgnoreCase(strListInfo)){
038                                    listInfo=Directory.LIST_INFO_ARRAY_NAME;
039                            }
040                            else if("query".equalsIgnoreCase(strListInfo)){
041                                    listInfo=Directory.LIST_INFO_QUERY_ALL;
042                            }
043                    }
044                    
045                    return Directory.actionList(pc, dir, null, Directory.TYPE_ALL, filter, filter, listInfo, recurse, sort);
046    
047                    
048                    //public static Object actionList(PageContext pageContext,Resource directory, String serverPassword, int type,ResourceFilter filter,ResourceAndResourceNameFilter nameFilter, 
049                    //              int listInfo,boolean recurse,String sort) throws PageException {
050                
051            }
052    }