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/05/24 14:46:24 UTC
svn commit: r1342233 - in /jackrabbit/oak/trunk:
oak-core/src/main/java/org/apache/jackrabbit/oak/api/
oak-core/src/main/java/org/apache/jackrabbit/oak/kernel/
oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/
Author: mduerig
Date: Thu May 24 12:46:24 2012
New Revision: 1342233
URL: http://svn.apache.org/viewvc?rev=1342233&view=rev
Log:
OAK-37: Use nullability annotation to enforce/document API contract
- add nullability annotations to PropertyState
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/api/PropertyState.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/kernel/KernelNodeStoreBranch.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/kernel/PropertyStateImpl.java
jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/PropertyDelegate.java
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/api/PropertyState.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/api/PropertyState.java?rev=1342233&r1=1342232&r2=1342233&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/api/PropertyState.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/api/PropertyState.java Thu May 24 12:46:24 2012
@@ -46,15 +46,19 @@ public interface PropertyState {
boolean isArray();
/**
- * @return the single value of this property or {@code null} if this is a multi
- * valued property.
+ * Value of this property.
+ * @return the single value of this property.
+ * @throws IllegalStateException if {@code isArray()} is {@code true}.
*/
+ @Nonnull
CoreValue getValue();
/**
- * @return an iterable of the values of this multi valued property or
- * {@code null} if this is not a multi valued property.
+ * Values of this property.
+ * @return an iterable of the values of this multi valued property.
+ * @throws IllegalStateException if {@code isArray()} is {@code false}.
*/
+ @Nonnull
Iterable<CoreValue> getValues();
}
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/kernel/KernelNodeStoreBranch.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/kernel/KernelNodeStoreBranch.java?rev=1342233&r1=1342232&r2=1342233&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/kernel/KernelNodeStoreBranch.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/kernel/KernelNodeStoreBranch.java Thu May 24 12:46:24 2012
@@ -214,10 +214,7 @@ class KernelNodeStoreBranch implements N
jsop.append('{');
String comma = "";
for (PropertyState property : nodeState.getProperties()) {
- String value = property.isArray()
- ? CoreValueMapper.toJsonArray(property.getValues())
- : CoreValueMapper.toJsonValue(property.getValue());
-
+ String value = toJson(property);
jsop.append(comma);
comma = ",";
jsop.append('"').append(property.getName()).append("\":").append(value);
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/kernel/PropertyStateImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/kernel/PropertyStateImpl.java?rev=1342233&r1=1342232&r2=1342233&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/kernel/PropertyStateImpl.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/kernel/PropertyStateImpl.java Thu May 24 12:46:24 2012
@@ -59,11 +59,17 @@ public class PropertyStateImpl implement
@Override
public CoreValue getValue() {
+ if (value == null) {
+ throw new IllegalStateException("Not a single valued property");
+ }
return value;
}
@Override
public Iterable<CoreValue> getValues() {
+ if (values == null) {
+ throw new IllegalStateException("Not a multi valued property");
+ }
return values;
}
Modified: jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/PropertyDelegate.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/PropertyDelegate.java?rev=1342233&r1=1342232&r2=1342233&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/PropertyDelegate.java (original)
+++ jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/PropertyDelegate.java Thu May 24 12:46:24 2012
@@ -100,7 +100,8 @@ public class PropertyDelegate extends It
* @return value or {@code null} if multi values
*/
public CoreValue getValue() {
- return getPropertyState().getValue();
+ PropertyState state = getPropertyState();
+ return state.isArray() ? null : state.getValue();
}
/**
@@ -108,7 +109,8 @@ public class PropertyDelegate extends It
* @return value or {@code null} if single valued
*/
public Iterable<CoreValue> getValues() {
- return getPropertyState().getValues();
+ PropertyState state = getPropertyState();
+ return state == null ? null : state.getValues();
}
/**