帆软报表设计器源代码。
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

56 lines
2.4 KiB

9 years ago
package com.fr.file;
import com.fr.base.FRContext;
import com.fr.file.filetree.FileNode;
public class FILEFactory {
public static final String MEM_PREFIX = "mem://";
public static final String FILE_PREFIX = "file://";
public static final String ENV_PREFIX = "env://";
public static final String WEBREPORT_PREFIX = "webreport://";
private FILEFactory() {
}
/*
* 根据path生成FILE
* path might start with env://, file:// or mem://
* 也有可能就是一个普通的路径d:/foo/bar
*/
public static FILE createFILE(String path) {
String envPath = FRContext.getCurrentEnv().getPath().replaceAll("/", "\\\\");
if (path == null) {
return null;
} else if (path.startsWith(MEM_PREFIX)) {
return new MemFILE(path.substring(MEM_PREFIX.length()));
} else if (path.startsWith(ENV_PREFIX)) {
return new FileNodeFILE(new FileNode(path.substring(ENV_PREFIX.length()), false));
} else if (path.startsWith(envPath)) {
return new FileNodeFILE(new FileNode(path.substring(envPath.length() + 1), false));
} else if (path.startsWith(WEBREPORT_PREFIX)) {
return new FileNodeFILE(new FileNode(path.substring(WEBREPORT_PREFIX.length()), false),
FRContext.getCurrentEnv().getWebReportPath());
} else if (path.startsWith(FILE_PREFIX)) {
return new FileFILE(new java.io.File(path.substring(FILE_PREFIX.length())));
} else {
return new FileFILE(new java.io.File(path));
}
}
public static FILE createFolder(String path) {
if (path == null) {
return null;
} else if (path.startsWith(MEM_PREFIX)) {
return new MemFILE(path.substring(MEM_PREFIX.length()));
} else if (path.startsWith(ENV_PREFIX)) {
return new FileNodeFILE(new FileNode(path.substring(ENV_PREFIX.length()), true));
} else if (path.startsWith(WEBREPORT_PREFIX)) {
return new FileNodeFILE(new FileNode(path.substring(WEBREPORT_PREFIX.length()), true),
FRContext.getCurrentEnv().getWebReportPath());
} else if (path.startsWith(FILE_PREFIX)) {
return new FileFILE(new java.io.File(path.substring(FILE_PREFIX.length())));
} else {
return new FileFILE(new java.io.File(path));
}
}
}