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/10 15:26:11 UTC
svn commit: r1311712 - in /jackrabbit/oak/trunk:
oak-core/src/main/java/org/apache/jackrabbit/oak/kernel/
oak-core/src/test/java/org/apache/jackrabbit/oak/kernel/
oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/
oak-mk/src/main/java/org/apache/jack...
Author: angela
Date: Tue Apr 10 13:26:11 2012
New Revision: 1311712
URL: http://svn.apache.org/viewvc?rev=1311712&view=rev
Log:
OAK-55 : Provide reasonable way to set property on NodeStateEditor
Modified:
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/KernelNodeStateEditorFuzzTest.java
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/kernel/KernelNodeStateEditorTest.java
jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/NodeImpl.java
jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/PropertyImpl.java
jackrabbit/oak/trunk/oak-mk/src/main/java/org/apache/jackrabbit/mk/model/NodeStateEditor.java
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=1311712&r1=1311711&r2=1311712&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 Tue Apr 10 13:26:11 2012
@@ -22,6 +22,9 @@ import org.apache.jackrabbit.mk.api.Micr
import org.apache.jackrabbit.mk.model.NodeState;
import org.apache.jackrabbit.mk.model.NodeStateEditor;
import org.apache.jackrabbit.mk.model.PropertyState;
+import org.apache.jackrabbit.mk.model.Scalar;
+
+import java.util.List;
import static org.apache.jackrabbit.mk.util.PathUtils.elements;
import static org.apache.jackrabbit.mk.util.PathUtils.getName;
@@ -90,10 +93,19 @@ public class KernelNodeStateEditor imple
}
@Override
- public void setProperty(PropertyState state) {
- transientState.setProperty(state);
- jsop.append("^\"").append(path(state.getName())).append("\":")
- .append(state.getEncodedValue());
+ public void setProperty(String name, Scalar value) {
+ PropertyState propertyState = new KernelPropertyState(name, value);
+ transientState.setProperty(propertyState);
+ jsop.append("^\"").append(path(propertyState.getName())).append("\":")
+ .append(propertyState.getEncodedValue());
+ }
+
+ @Override
+ public void setProperty(String name, List<Scalar> values) {
+ PropertyState propertyState = new KernelPropertyState(name, values);
+ transientState.setProperty(propertyState);
+ jsop.append("^\"").append(path(propertyState.getName())).append("\":")
+ .append(propertyState.getEncodedValue());
}
@Override
Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/kernel/KernelNodeStateEditorFuzzTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/kernel/KernelNodeStateEditorFuzzTest.java?rev=1311712&r1=1311711&r2=1311712&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/kernel/KernelNodeStateEditorFuzzTest.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/kernel/KernelNodeStateEditorFuzzTest.java Tue Apr 10 13:26:11 2012
@@ -218,11 +218,13 @@ public class KernelNodeStateEditorFuzzTe
static class SetProperty extends Operation {
private final String parentPath;
- private KernelPropertyState propertyState;
+ private String propertyName;
+ private Scalar propertyValue;
SetProperty(String parentPath, String name, Scalar value) {
this.parentPath = parentPath;
- this.propertyState = new KernelPropertyState(name, value);
+ this.propertyName = name;
+ this.propertyValue = value;
}
@Override
@@ -230,13 +232,13 @@ public class KernelNodeStateEditorFuzzTe
for (String element : PathUtils.elements(parentPath)) {
editor = editor.edit(element);
}
- editor.setProperty(propertyState);
+ editor.setProperty(propertyName, propertyValue);
}
@Override
public String toString() {
- return '^' + PathUtils.concat(parentPath, propertyState.getName()) + ':'
- + propertyState.getEncodedValue();
+ return '^' + PathUtils.concat(parentPath, propertyName) + ':'
+ + propertyValue;
}
}
Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/kernel/KernelNodeStateEditorTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/kernel/KernelNodeStateEditorTest.java?rev=1311712&r1=1311711&r2=1311712&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/kernel/KernelNodeStateEditorTest.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/kernel/KernelNodeStateEditorTest.java Tue Apr 10 13:26:11 2012
@@ -155,7 +155,7 @@ public class KernelNodeStateEditorTest {
assertFalse(transientState.hasProperty("new"));
Scalar value = ScalarImpl.stringScalar("value");
- editor.setProperty(new KernelPropertyState("new", value));
+ editor.setProperty("new", value);
PropertyState property = transientState.getProperty("new");
assertNotNull(property);
assertEquals("new", property.getName());
@@ -275,16 +275,16 @@ public class KernelNodeStateEditorTest {
assertEquals(3, transientState.getPropertyCount());
Scalar value = ScalarImpl.stringScalar("foo");
- editor.setProperty(new KernelPropertyState("a", value));
+ editor.setProperty("a", value);
assertEquals(3, transientState.getPropertyCount());
editor.removeProperty("a");
assertEquals(2, transientState.getPropertyCount());
- editor.setProperty(new KernelPropertyState("x", value));
+ editor.setProperty("x", value);
assertEquals(3, transientState.getPropertyCount());
- editor.setProperty(new KernelPropertyState("a", value));
+ editor.setProperty("a", value);
assertEquals(4, transientState.getPropertyCount());
}
Modified: jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/NodeImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/NodeImpl.java?rev=1311712&r1=1311711&r2=1311712&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/NodeImpl.java (original)
+++ jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/NodeImpl.java Tue Apr 10 13:26:11 2012
@@ -224,7 +224,7 @@ public class NodeImpl extends ItemImpl i
public Property setProperty(String name, Value value, int type) throws RepositoryException {
checkStatus();
- editor.setProperty(new KernelPropertyState(name, ValueConverter.toScalar(value)));
+ editor.setProperty(name, ValueConverter.toScalar(value));
return getProperty(name);
}
@@ -246,7 +246,7 @@ public class NodeImpl extends ItemImpl i
public Property setProperty(String name, Value[] values, int type) throws RepositoryException {
checkStatus();
- editor.setProperty(new KernelPropertyState(name, ValueConverter.toScalar(values)));
+ editor.setProperty(name, ValueConverter.toScalar(values));
return getProperty(name);
}
@@ -418,8 +418,7 @@ public class NodeImpl extends ItemImpl i
Property property = getPropertyOrNull(relPath);
if (property == null) {
throw new PathNotFoundException(relPath);
- }
- else {
+ } else {
return property;
}
}
@@ -595,8 +594,7 @@ public class NodeImpl extends ItemImpl i
public void setPrimaryType(String nodeTypeName) throws RepositoryException {
checkStatus();
- editor.setProperty(new KernelPropertyState(
- JcrConstants.JCR_PRIMARYTYPE, ScalarImpl.stringScalar(nodeTypeName)));
+ editor.setProperty(JcrConstants.JCR_PRIMARYTYPE, ScalarImpl.stringScalar(nodeTypeName));
}
@Override
@@ -821,6 +819,11 @@ public class NodeImpl extends ItemImpl i
}
+ //-----------------------------------------------------< implementation >---
+ public NodeStateEditor getEditor() {
+ return editor;
+ }
+
//------------------------------------------------------------< private >---
/**
* Shortcut to retrieve the version manager from the workspace associated
Modified: jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/PropertyImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/PropertyImpl.java?rev=1311712&r1=1311711&r2=1311712&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/PropertyImpl.java (original)
+++ jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/PropertyImpl.java Tue Apr 10 13:26:11 2012
@@ -22,7 +22,6 @@ import org.apache.jackrabbit.mk.util.Pat
import org.apache.jackrabbit.oak.jcr.util.LogUtil;
import org.apache.jackrabbit.oak.jcr.util.ValueConverter;
import org.apache.jackrabbit.oak.kernel.KernelNodeStateEditor;
-import org.apache.jackrabbit.oak.kernel.KernelPropertyState;
import org.apache.jackrabbit.oak.kernel.TransientNodeState;
import org.apache.jackrabbit.value.ValueHelper;
import org.slf4j.Logger;
@@ -563,10 +562,8 @@ public class PropertyImpl extends ItemIm
if (value == null) {
remove();
- }
- else {
- parentEditor.setProperty(new KernelPropertyState(
- propertyState.getName(), ValueConverter.toScalar(value)));
+ } else {
+ parentEditor.setProperty(propertyState.getName(), ValueConverter.toScalar(value));
}
}
@@ -584,10 +581,8 @@ public class PropertyImpl extends ItemIm
if (values == null) {
remove();
- }
- else {
- parentEditor.setProperty(new KernelPropertyState(
- propertyState.getName(), ValueConverter.toScalar(values)));
+ } else {
+ parentEditor.setProperty(propertyState.getName(), ValueConverter.toScalar(values));
}
}
Modified: jackrabbit/oak/trunk/oak-mk/src/main/java/org/apache/jackrabbit/mk/model/NodeStateEditor.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-mk/src/main/java/org/apache/jackrabbit/mk/model/NodeStateEditor.java?rev=1311712&r1=1311711&r2=1311712&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-mk/src/main/java/org/apache/jackrabbit/mk/model/NodeStateEditor.java (original)
+++ jackrabbit/oak/trunk/oak-mk/src/main/java/org/apache/jackrabbit/mk/model/NodeStateEditor.java Tue Apr 10 13:26:11 2012
@@ -18,6 +18,8 @@
*/
package org.apache.jackrabbit.mk.model;
+import java.util.List;
+
/**
* An editor for modifying existing and creating new
* {@link NodeState node states}.
@@ -39,10 +41,20 @@ public interface NodeStateEditor {
void removeNode(String name);
/**
- * Set a property on this node state
- * @param state property state to set
+ * Set a single valued property state on this node state.
+ *
+ * @param name The name of this property
+ * @param value The value of this property
+ */
+ void setProperty(String name, Scalar value);
+
+ /**
+ * Set a multivalued valued property state on this node state.
+ *
+ * @param name The name of this property
+ * @param values The value of this property
*/
- void setProperty(PropertyState state);
+ void setProperty(String name, List<Scalar> values);
/**
* Remove a property from this node state