private boolean isStream = false;
private boolean isSource = false;
private boolean isTarget = false;
- private String filter;
+ private String directoryFilter;
+ private String fileFilter;
private String userName;
private String password;
private String rootPath;
private EventListenerList statusListenerList;
private int percent;
private IDirectoryLister lister;
+ private boolean showDirectories;
public StoreUri() {
super();
return delivery;
}
- public String getFilter() {
- return filter;
+ public String getDirectoryFilter() {
+ return directoryFilter;
+ }
+
+ public String getFileFilter() {
+ return fileFilter;
}
public IDirectoryLister getLister() throws Exception {
return userName;
}
+ public boolean isShowDirectories() {
+ return showDirectories;
+ }
+
public boolean isSource() {
return isSource;
}
this.delivery = delivery;
}
- public void setFilter(String filter) {
- this.filter = filter;
+ public void setDirectoryFilter(String directoryFilter) {
+ this.directoryFilter = directoryFilter;
+ }
+
+ public void setFileFilter(String fileFilter) {
+ this.fileFilter = fileFilter;
}
public void setPassword(String password) {
this.rootPath = rootPath;
}
+ public void setShowDirectories(boolean showDirectories) {
+ this.showDirectories = showDirectories;
+ }
+
public void setSource(boolean isSource) {
this.isSource = isSource;
}
import java.io.FileFilter;\r
\r
public class DirectoryFileFilter implements FileFilter {\r
- private String params = null;\r
- private boolean forDirectories = false; \r
- \r
- DirectoryFileFilter(String params, boolean forDirectories) {\r
- this.params = params;\r
+ private String filters = null;\r
+ private boolean forDirectories = false;\r
+\r
+ DirectoryFileFilter(String filters, boolean forDirectories) {\r
+ this.filters = filters;\r
this.forDirectories = forDirectories;\r
}\r
- \r
+\r
+ @Override\r
public boolean accept(File file) {\r
- boolean ret = false; \r
+ boolean ret = false;\r
String name = file.getName();\r
- \r
- if (forDirectories) \r
+\r
+ if (forDirectories)\r
ret = file.isDirectory();\r
else\r
ret = file.isFile();\r
- \r
+\r
if (ret == false)\r
return ret;\r
- \r
- if (params == null || params.trim().length() == 0)\r
- return ret;\r
- \r
- if (params.startsWith("*")) {\r
- ret &= name.endsWith(params.replace("*", ""));\r
- return ret;\r
- }\r
- \r
- if (params.endsWith("*")) {\r
- ret &= name.startsWith(params.replace("*", ""));\r
+\r
+ if (filters == null || filters.trim().length() == 0)\r
return ret;\r
+\r
+ if (!filters.contains("*")) {\r
+ ret &= name.toLowerCase().contains(filters.toLowerCase());\r
+ } else {\r
+ if (filters.startsWith("*")) {\r
+ ret &= name.toLowerCase().endsWith(filters.toLowerCase().replace("*", ""));\r
+ return ret;\r
+ }\r
+ if (filters.endsWith("*")) {\r
+ ret &= name.toLowerCase().startsWith(filters.toLowerCase().replace("*", ""));\r
+ return ret;\r
+ }\r
}\r
\r
- if (params.contains("*")) {\r
- String[] p = params.split("\\*");\r
- if (p.length == 2)\r
- ret &= name.startsWith(p[0]) && name.endsWith(p[1]);\r
- } else \r
- ret &= file.getName().equals(params);\r
return ret;\r
}\r
}\r
List<RemoteFile> result = new ArrayList<RemoteFile>();\r
String path = storeUri.toString(true);\r
File dir = new File(path);\r
- File[] dirs = dir.listFiles(new DirectoryFileFilter(storeUri.getFilter(), true));\r
- File[] files = dir.listFiles(new DirectoryFileFilter(storeUri.getFilter(), false));\r
+ File[] dirs = {};\r
+ if (storeUri.isShowDirectories())\r
+ dirs = dir.listFiles(new DirectoryFileFilter(storeUri.getDirectoryFilter(), true));\r
+\r
+ File[] files = dir.listFiles(new DirectoryFileFilter(storeUri.getFileFilter(), false));\r
\r
Arrays.sort(dirs, new Comparator<File>() {\r
@Override\r
result.setModify(new Timestamp(file.lastModified()));\r
result.setIsFolder(file.isDirectory());\r
result.setSize(file.length());\r
- \r
+\r
try {\r
Path tempFile = file.toPath();\r
BasicFileAttributes attr;\r
// TODO Auto-generated catch block\r
e.printStackTrace();\r
}\r
- \r
+\r
return result;\r
}\r
}\r
StoreUri store = new StoreUri();
store.setProtocol(RemoteStoreProtocol.LOCAL);
store.setUri(DirectoryUtils.normalize(System.getProperty(TEMPLATEROOT), File.separator));
- store.setFilter("*.xml");
+ store.setFileFilter("*.xml");
String templateRoot = store.toString(true);
logger.info("Template root is: " + templateRoot);
List<RemoteFile> files = store.getRemoteFiles();