String trimmedPath = path.substring(absolute ? 1 : 0,
path.charAt(path.length() - 1) == delimChar ? path.length() - 1 : path.length());
this.path = trimmedPath.split(delimStr);
+ for (int i = 0; i < this.path.length; i++) {
+ this.path[i] = Text.unescapeIllegalJcrChars(this.path[i]);
+ }
this.hashCode = this.path[this.path.length - 1].hashCode();
}
return sb.toString();
}
+ public String toJcrPath() {
+ if (path == null)
+ return "/";
+ StringBuilder sb = new StringBuilder();
+ if (isAbsolute())
+ sb.append('/');
+ for (int i = 0; i < path.length; i++) {
+ if (i != 0)
+ sb.append('/');
+ sb.append(Text.escapeIllegalJcrChars(path[i]));
+ }
+ return sb.toString();
+ }
+
@Override
public Path getFileName() {
if (path == null)
public Node getNode() throws RepositoryException {
if (!isAbsolute())// TODO default dir
throw new JcrFsException("Cannot get node from relative path");
- String pathStr = toString();
+ String pathStr = toJcrPath();
Session session = fs.getSession();
// TODO synchronize on the session ?
if (!session.itemExists(pathStr))