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 md...@apache.org on 2012/04/13 19:13:15 UTC

svn commit: r1325846 - in /jackrabbit/oak/trunk/oak-core/src: main/java/org/apache/jackrabbit/oak/api/ main/java/org/apache/jackrabbit/oak/kernel/ test/java/org/apache/jackrabbit/oak/kernel/

Author: mduerig
Date: Fri Apr 13 17:13:14 2012
New Revision: 1325846

URL: http://svn.apache.org/viewvc?rev=1325846&view=rev
Log:
OAK-18: Define Oak API 
broaden contract of NodeStateEditor.edit to accept path instead of name

Modified:
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/api/NodeStateEditor.java
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/kernel/KernelNodeStateEditor.java
    jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/kernel/KernelNodeStateEditorFuzzIT.java

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/api/NodeStateEditor.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/api/NodeStateEditor.java?rev=1325846&r1=1325845&r2=1325846&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/api/NodeStateEditor.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/api/NodeStateEditor.java Fri Apr 13 17:13:14 2012
@@ -91,13 +91,15 @@ public interface NodeStateEditor {
     void copy(String sourcePath, String destPath);
 
     /**
-     * Edit the child node state with the given {@code name}.
-     * @param name name of the child node state to edit.
-     * @return editor for the child node state of the given name or
+     * Edit the child node state at the given {@code path}.
+     * The path must resolve to a node state located in the subtree
+     * below the transient state this editor is acting upon.
+     *
+     * @param path path of the child node state to edit.
+     * @return editor for the child node state at the given path or
      *         {@code null} if no such node state exists.
-     * TODO broaden to accept a path instead of a name
      */
-    NodeStateEditor edit(String name);
+    NodeStateEditor edit(String path);
 
     /**
      * Return the transient state which this editor is acting upon

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/kernel/KernelNodeStateEditor.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/kernel/KernelNodeStateEditor.java?rev=1325846&r1=1325845&r2=1325846&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/kernel/KernelNodeStateEditor.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/kernel/KernelNodeStateEditor.java Fri Apr 13 17:13:14 2012
@@ -156,11 +156,11 @@ public class KernelNodeStateEditor imple
     }
 
     @Override
-    public KernelNodeStateEditor edit(String name) {
-        TransientKernelNodeState childState = transientState.getChildNode(name);
-        return childState == null
+    public KernelNodeStateEditor edit(String path) {
+        TransientKernelNodeState state = getTransientState(path);
+        return state == null
             ? null
-            : childState.getEditor();
+            : state.getEditor();
     }
 
     @Override

Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/kernel/KernelNodeStateEditorFuzzIT.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/kernel/KernelNodeStateEditorFuzzIT.java?rev=1325846&r1=1325845&r2=1325846&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/kernel/KernelNodeStateEditorFuzzIT.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/kernel/KernelNodeStateEditorFuzzIT.java Fri Apr 13 17:13:14 2012
@@ -142,10 +142,7 @@ public class KernelNodeStateEditorFuzzIT
 
             @Override
             void apply(KernelNodeStateEditor editor) {
-                for (String element : PathUtils.elements(parentPath)) {
-                    editor = editor.edit(element);
-                }
-                editor.addNode(name);
+                editor.edit(parentPath).addNode(name);
             }
 
             @Override
@@ -163,10 +160,9 @@ public class KernelNodeStateEditorFuzzIT
 
             @Override
             void apply(KernelNodeStateEditor editor) {
-                for (String element : PathUtils.elements(PathUtils.getParentPath(path))) {
-                    editor = editor.edit(element);
-                }
-                editor.removeNode(PathUtils.getName(path));
+                String parentPath = PathUtils.getParentPath(path);
+                String name = PathUtils.getName(path);
+                editor.edit(parentPath).removeNode(name);
             }
 
             @Override
@@ -228,10 +224,7 @@ public class KernelNodeStateEditorFuzzIT
 
             @Override
             void apply(KernelNodeStateEditor editor) {
-                for (String element : PathUtils.elements(parentPath)) {
-                    editor = editor.edit(element);
-                }
-                editor.setProperty(propertyName, propertyValue);
+                editor.edit(parentPath).setProperty(propertyName, propertyValue);
             }
 
             @Override
@@ -252,10 +245,7 @@ public class KernelNodeStateEditorFuzzIT
 
             @Override
             void apply(KernelNodeStateEditor editor) {
-                for (String element : PathUtils.elements(parentPath)) {
-                    editor = editor.edit(element);
-                }
-                editor.removeProperty(name);
+                editor.edit(parentPath).removeProperty(name);
             }
 
             @Override