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/03/26 12:48:18 UTC
svn commit: r1305303 - in /jackrabbit/oak/trunk:
oak-core/src/main/java/org/apache/jackrabbit/oak/kernel/
oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/
oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/state/
oak-jcr/src/main/java/org/apache/j...
Author: mduerig
Date: Mon Mar 26 10:48:18 2012
New Revision: 1305303
URL: http://svn.apache.org/viewvc?rev=1305303&view=rev
Log:
OAK-33: Values in oak-core
- add accessors returning Scalar to PropertyState
- avoid casting to implementation but use above accessors instead
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/kernel/KernelPropertyState.java
jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/PropertyImpl.java
jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/state/ChangeTree.java
jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/state/TransientNodeState.java
jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/util/ValueConverter.java
jackrabbit/oak/trunk/oak-mk/src/main/java/org/apache/jackrabbit/mk/model/PropertyState.java
jackrabbit/oak/trunk/oak-mk/src/main/java/org/apache/jackrabbit/mk/store/StoredNodeAsState.java
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/kernel/KernelPropertyState.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/kernel/KernelPropertyState.java?rev=1305303&r1=1305302&r2=1305303&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/kernel/KernelPropertyState.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/kernel/KernelPropertyState.java Mon Mar 26 10:48:18 2012
@@ -67,14 +67,17 @@ public class KernelPropertyState extends
}
}
+ @Override
public boolean isMultiValued() {
return value == null;
}
+ @Override
public Scalar getValue() {
return value;
}
+ @Override
public List<Scalar> getValues() {
return values;
}
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=1305303&r1=1305302&r2=1305303&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 Mon Mar 26 10:48:18 2012
@@ -21,7 +21,6 @@ import org.apache.jackrabbit.oak.jcr.sta
import org.apache.jackrabbit.oak.jcr.util.LogUtil;
import org.apache.jackrabbit.oak.jcr.util.Path;
import org.apache.jackrabbit.oak.jcr.util.ValueConverter;
-import org.apache.jackrabbit.oak.kernel.KernelPropertyState;
import org.apache.jackrabbit.value.ValueHelper;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -358,7 +357,7 @@ public class PropertyImpl extends ItemIm
throw new ValueFormatException(LogUtil.safeGetJCRPath(this) + " is multi-valued.");
}
- return ValueConverter.toValue(getValueFactory(), ((KernelPropertyState) state).getValue()); // fixme don't cast
+ return ValueConverter.toValue(getValueFactory(), state.getValue());
}
@Override
@@ -368,7 +367,7 @@ public class PropertyImpl extends ItemIm
throw new ValueFormatException(LogUtil.safeGetJCRPath(this) + " is not multi-valued.");
}
- return ValueConverter.toValues(getValueFactory(), ((KernelPropertyState) state).getValues()); // fixme don't cast
+ return ValueConverter.toValues(getValueFactory(), state.getValues());
}
/**
@@ -543,7 +542,7 @@ public class PropertyImpl extends ItemIm
*/
@Override
public boolean isMultiple() throws RepositoryException {
- return ((KernelPropertyState) state).isMultiValued(); // fixme don't cast
+ return state.isMultiValued();
}
//------------------------------------------------------------< private >---
Modified: jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/state/ChangeTree.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/state/ChangeTree.java?rev=1305303&r1=1305302&r2=1305303&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/state/ChangeTree.java (original)
+++ jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/state/ChangeTree.java Mon Mar 26 10:48:18 2012
@@ -262,7 +262,7 @@ public class ChangeTree {
new Predicate<PropertyState>() {
@Override
public boolean evaluate(PropertyState state) {
- return !((KernelPropertyState) state).getValue().equals(ScalarImpl.nullScalar()); // fixme don't cast
+ return !state.getValue().equals(ScalarImpl.nullScalar());
}
});
}
@@ -345,7 +345,7 @@ public class ChangeTree {
* @param name
*/
public void removeProperty(String name) {
- KernelPropertyState state = (KernelPropertyState) properties.get(name); // fixme don't cast
+ PropertyState state = properties.get(name);
if (state != null && !state.isMultiValued() && !state.getValue().equals(ScalarImpl.nullScalar())) {
// remove transiently added property
properties.remove(name);
Modified: jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/state/TransientNodeState.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/state/TransientNodeState.java?rev=1305303&r1=1305302&r2=1305303&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/state/TransientNodeState.java (original)
+++ jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/state/TransientNodeState.java Mon Mar 26 10:48:18 2012
@@ -264,7 +264,7 @@ public class TransientNodeState {
* @return {@code true} iff the property named {@code name} has been transiently added.
*/
public boolean isPropertyNew(String name) {
- KernelPropertyState state = (KernelPropertyState) getNodeDelta().getPropertyState(name); // fixme don't cast
+ PropertyState state = getNodeDelta().getPropertyState(name);
if (state == null) {
return false;
}
@@ -302,7 +302,7 @@ public class TransientNodeState {
}
private PropertyState getPropertyStateOrNull(String name) {
- KernelPropertyState state = (KernelPropertyState) getNodeDelta().getPropertyState(name); // fixme don't cast
+ PropertyState state = getNodeDelta().getPropertyState(name);
if (state == null) {
return getPersistedPropertyState(name);
}
Modified: jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/util/ValueConverter.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/util/ValueConverter.java?rev=1305303&r1=1305302&r2=1305303&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/util/ValueConverter.java (original)
+++ jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/util/ValueConverter.java Mon Mar 26 10:48:18 2012
@@ -28,6 +28,7 @@ import javax.jcr.UnsupportedRepositoryOp
import javax.jcr.Value;
import javax.jcr.ValueFactory;
import java.util.ArrayList;
+import java.util.Collection;
import java.util.List;
/**
@@ -93,7 +94,7 @@ public final class ValueConverter {
}
}
- public static Value[] toValues(ValueFactory valueFactory, List<Scalar> scalars)
+ public static Value[] toValues(ValueFactory valueFactory, Collection<Scalar> scalars)
throws UnsupportedRepositoryOperationException {
Value[] values = new Value[scalars.size()];
Modified: jackrabbit/oak/trunk/oak-mk/src/main/java/org/apache/jackrabbit/mk/model/PropertyState.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-mk/src/main/java/org/apache/jackrabbit/mk/model/PropertyState.java?rev=1305303&r1=1305302&r2=1305303&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-mk/src/main/java/org/apache/jackrabbit/mk/model/PropertyState.java (original)
+++ jackrabbit/oak/trunk/oak-mk/src/main/java/org/apache/jackrabbit/mk/model/PropertyState.java Mon Mar 26 10:48:18 2012
@@ -16,6 +16,8 @@
*/
package org.apache.jackrabbit.mk.model;
+import java.util.Collection;
+
/**
* Immutable property state. A property consists of a name and
* a JSON-encoded value.
@@ -41,4 +43,21 @@ public interface PropertyState {
*/
String getEncodedValue();
+ /**
+ * Determine whether this is a multi valued property
+ * @return {@code true} if and only if this is a multi valued property.
+ */
+ boolean isMultiValued();
+
+ /**
+ * @return the single value of this property or {@code null} if this is a multi
+ * valued property.
+ */
+ Scalar getValue();
+
+ /**
+ * @return an immutable collection of the values of this multi valued property or
+ * {@code null} if this is not a multi valued property.
+ */
+ Collection<Scalar> getValues();
}
Modified: jackrabbit/oak/trunk/oak-mk/src/main/java/org/apache/jackrabbit/mk/store/StoredNodeAsState.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-mk/src/main/java/org/apache/jackrabbit/mk/store/StoredNodeAsState.java?rev=1305303&r1=1305302&r2=1305303&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-mk/src/main/java/org/apache/jackrabbit/mk/store/StoredNodeAsState.java (original)
+++ jackrabbit/oak/trunk/oak-mk/src/main/java/org/apache/jackrabbit/mk/store/StoredNodeAsState.java Mon Mar 26 10:48:18 2012
@@ -16,10 +16,6 @@
*/
package org.apache.jackrabbit.mk.store;
-import java.util.Collections;
-import java.util.Iterator;
-import java.util.Map;
-
import org.apache.jackrabbit.mk.model.AbstractChildNodeEntry;
import org.apache.jackrabbit.mk.model.AbstractNodeState;
import org.apache.jackrabbit.mk.model.AbstractPropertyState;
@@ -28,8 +24,14 @@ import org.apache.jackrabbit.mk.model.Ch
import org.apache.jackrabbit.mk.model.Id;
import org.apache.jackrabbit.mk.model.NodeState;
import org.apache.jackrabbit.mk.model.PropertyState;
+import org.apache.jackrabbit.mk.model.Scalar;
import org.apache.jackrabbit.mk.model.StoredNode;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.Iterator;
+import java.util.Map;
+
class StoredNodeAsState extends AbstractNodeState {
private final StoredNode node;
@@ -66,6 +68,21 @@ class StoredNodeAsState extends Abstract
return value;
}
+ @Override
+ public boolean isMultiValued() {
+ return false; // todo implement isMultiValued
+ }
+
+ @Override
+ public Scalar getValue() {
+ return null; // todo implement getValue
+ }
+
+ @Override
+ public Collection<Scalar> getValues() {
+ return null; // todo implement getValues
+ }
+
}
@Override