You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by an...@apache.org on 2012/04/26 14:49:27 UTC

svn commit: r1330817 - in /jackrabbit/oak/trunk/oak-core/src: main/java/org/apache/jackrabbit/oak/namepath/Paths.java test/java/org/apache/jackrabbit/oak/namepath/PathsTest.java

Author: angela
Date: Thu Apr 26 12:49:27 2012
New Revision: 1330817

URL: http://svn.apache.org/viewvc?rev=1330817&view=rev
Log:
OAK-61 : Implement JCR path handling

- remove unused methods on Paths.java

Modified:
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/namepath/Paths.java
    jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/namepath/PathsTest.java

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/namepath/Paths.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/namepath/Paths.java?rev=1330817&r1=1330816&r2=1330817&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/namepath/Paths.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/namepath/Paths.java Thu Apr 26 12:49:27 2012
@@ -109,85 +109,6 @@ public final class Paths {
         return PathUtils.getDepth(path);
     }
 
-    /**
-     * Get the prefix of an element. Undefined if {@code element} is
-     * not an {@code ELEMENT}.
-     * @param element
-     * @return  the {@code PREFIX} of {@code element} or {@code null} if none
-     */
-    public static String getPrefixFromElement(String element) {
-        int pos = element.indexOf(':');
-        if (pos == -1) {
-            return null;
-        }
-        else {
-            return element.substring(0, pos);
-        }
-    }
-
-    /**
-     * Get the name of an element. Undefined if {@code element} is
-     * not an {@code ELEMENT}.
-     * @param element
-     * @return  the {@code NAME} of {@code element}
-     */
-    public static String getNameFromElement(String element) {
-        int pos = element.indexOf(':');
-        if (pos == -1) {
-            return element;
-        }
-        else {
-            return element.substring(pos + 1);
-        }
-    }
-
-    /**
-     * Determine whether {@code string} is a valid {@code ELEMENT}.
-     * @param string
-     * @return  {@code true} iff {@code string} is a valid {@code ELEMENT}.
-     */
-    public static boolean isValidElement(String string) {
-        if (string.isEmpty()) {
-            return false;
-        }
-
-        int colons = 0;
-        int pos = -1;
-        for (int k = 0; k < string.length(); k++) {
-            if (string.charAt(k) == ':') {
-                colons += 1;
-                pos = k;
-            }
-            else if (string.charAt(k) == '/') {
-                return false;
-            }
-        }
-
-        return colons <= 1 && (pos != 0 && pos != string.length() - 1);
-    }
-
-    /**
-     * Determine whether {@code string} is a valid {@code PATH}.
-     * @param string
-     * @return  {@code true} iff {@code string} is a valid {@code PATH}.
-     */
-    public static boolean isValidPath(String string) {
-        if (string.isEmpty()) {
-            return false;
-        }
-        if (string.length() > 1 && string.endsWith("/")) {
-            return false;
-        }
-
-        for (String part : split(string, '/')) {
-            if (!isValidElement(part)) {
-                return false;
-            }
-        }
-
-        return true;
-    }
-
     public static String toOakName(String name, final NameMapper mapper) {
         final StringBuilder element = new StringBuilder();
         
@@ -217,6 +138,9 @@ public final class Paths {
         }
 
         JcrPathParser.Listener listener = new JcrPathParser.Listener() {
+
+            // TODO: replace RuntimeException by something that oak-jcr can deal with (e.g. ValueFactory)
+
             @Override
             public void root() {
                 if (!elements.isEmpty()) {

Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/namepath/PathsTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/namepath/PathsTest.java?rev=1330817&r1=1330816&r2=1330817&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/namepath/PathsTest.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/namepath/PathsTest.java Thu Apr 26 12:49:27 2012
@@ -16,69 +16,41 @@
  */
 package org.apache.jackrabbit.oak.namepath;
 
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
+import org.junit.Test;
 
+import java.util.ArrayList;
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
+import java.util.UUID;
 
-import org.junit.Test;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.fail;
 
 public class PathsTest {
 
     private TestNameMapper mapper = new TestNameMapper();
 
     @Test
-    public void getPrefix() {
-        assertEquals(null, Paths.getPrefixFromElement("foo"));
-        assertEquals("foo", Paths.getPrefixFromElement("foo:bar"));
-    }
-
-    @Test
-    public void getName() {
-        assertEquals("foo", Paths.getNameFromElement("foo"));
-        assertEquals("bar", Paths.getNameFromElement("foo:bar"));
+    public void testValidIdentifierPath() {
+        String idPath = '[' + UUID.randomUUID().toString()+ ']';
+        Paths.toOakPath(idPath, mapper);
     }
 
     @Test
-    public void isValidElement() {
-        assertTrue(Paths.isValidElement("foo"));
-        assertTrue(Paths.isValidElement("foo:bar"));
-
-        assertFalse(Paths.isValidElement(""));
-        assertFalse(Paths.isValidElement(":"));
-        assertFalse(Paths.isValidElement("foo:"));
-        assertFalse(Paths.isValidElement("fo/o:"));
-        assertFalse(Paths.isValidElement(":bar"));
-    }
-
-    @Test
-    public void isValidAbsolutePath() {
-        assertTrue(Paths.isValidPath("/"));
-        assertTrue(Paths.isValidPath("/a/b/c"));
-        assertTrue(Paths.isValidPath("/p:a/q:b/r:c"));
-
-        assertFalse(Paths.isValidPath(""));
-        assertFalse(Paths.isValidPath("/a/b/c/"));
-        assertFalse(Paths.isValidPath("/p:a/:b/r:c"));
-        assertFalse(Paths.isValidPath("/p:a/q:/r:c"));
-        assertFalse(Paths.isValidPath("/p:a/:/r:c"));
-        assertFalse(Paths.isValidPath("/p:a//r:c"));
-        assertFalse(Paths.isValidPath("//"));
-    }
-
-    @Test
-    public void isValidRelativePath() {
-        assertTrue(Paths.isValidPath("a/b/c"));
-        assertTrue(Paths.isValidPath("p:a/q:b/r:c"));
-
-        assertFalse(Paths.isValidPath("a/b/c/"));
-        assertFalse(Paths.isValidPath("p:a/:b/r:c"));
-        assertFalse(Paths.isValidPath("p:a/q:/r:c"));
-        assertFalse(Paths.isValidPath("p:a/:/r:c"));
-        assertFalse(Paths.isValidPath("p:a//r:c"));
+    public void testInvalidIdentifierPath() {
+        List<String> invalid = new ArrayList();
+        invalid.add('[' + UUID.randomUUID().toString()+ "]abc");
+        invalid.add('[' + UUID.randomUUID().toString()+ "]/a/b/c");
+
+        for (String jcrPath : invalid) {
+            try {
+                Paths.toOakPath(jcrPath, mapper);
+                fail("Invalid identifier path");
+            } catch (Exception e) {
+                // success
+            }
+        }
     }
 
     @Test
@@ -102,15 +74,13 @@ public class PathsTest {
         assertEquals("jcr-foo:bar", Paths.toJcrPath("foo:bar", mapper));
 
         try {
-            Paths.toJcrPath("{http://www.jcp.org/jcr/nt/1.0}unstructured",
-                    mapper);
+            Paths.toJcrPath("{http://www.jcp.org/jcr/nt/1.0}unstructured", mapper);
             fail("expanded name should not be accepted");
         } catch (IllegalStateException expected) {
         }
 
         try {
-            Paths.toJcrPath("foobar/{http://www.jcp.org/jcr/1.0}content",
-                    mapper);
+            Paths.toJcrPath("foobar/{http://www.jcp.org/jcr/1.0}content", mapper);
             fail("expanded name should not be accepted");
         } catch (IllegalStateException expected) {
         }