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