public class FsContentProvider implements ContentProvider {
final static String XMLNS_ = "xmlns:";
- private final String mountPath;
- private final Path rootPath;
-// private final boolean isRoot;
+ protected String mountPath;
+ protected Path rootPath;
private NavigableMap<String, String> prefixes = new TreeMap<>();
public FsContentProvider(String mountPath, Path rootPath) {
Objects.requireNonNull(mountPath);
Objects.requireNonNull(rootPath);
-
+
this.mountPath = mountPath;
this.rootPath = rootPath;
// FIXME make it more robust
initNamespaces();
}
-// @Deprecated
-// public FsContentProvider(String mountPath, Path rootPath, boolean isRoot) {
-// this.mountPath = mountPath;
-// this.rootPath = rootPath;
-//// this.isRoot = isRoot;
-//// initNamespaces();
-// }
+ protected FsContentProvider() {
+
+ }
- private void initNamespaces() {
+ protected void initNamespaces() {
try {
UserDefinedFileAttributeView udfav = Files.getFileAttributeView(rootPath,
UserDefinedFileAttributeView.class);
return mountPath;
}
- boolean isMountRoot(Path path) {
+ boolean isMountBase(Path path) {
try {
return Files.isSameFile(rootPath, path);
} catch (IOException e) {
}
@Override
- public ProvidedContent get(ProvidedSession session, String mountPath, String relativePath) {
+ public ProvidedContent get(ProvidedSession session, String relativePath) {
return new FsContent(session, this, rootPath.resolve(relativePath));
}
* NAMESPACE CONTEXT
*/
+ @Override
+ public boolean exists(ProvidedSession session, String relativePath) {
+ return Files.exists(rootPath.resolve(relativePath));
+ }
+
@Override
public String getNamespaceURI(String prefix) {
return NamespaceUtils.getNamespaceURI((p) -> prefixes.get(p), prefix);