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/10/05 21:46:34 UTC
svn commit: r1394754 -
/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/memory/PropertyStates.java
Author: mduerig
Date: Fri Oct 5 19:46:34 2012
New Revision: 1394754
URL: http://svn.apache.org/viewvc?rev=1394754&view=rev
Log:
OAK-350: Unify PropertyState and CoreValue
- replace ValueBased property state implementations with the new PropertyState implementations
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/memory/PropertyStates.java
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/memory/PropertyStates.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/memory/PropertyStates.java?rev=1394754&r1=1394753&r2=1394754&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/memory/PropertyStates.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/memory/PropertyStates.java Fri Oct 5 19:46:34 2012
@@ -18,9 +18,6 @@
*/
package org.apache.jackrabbit.oak.plugins.memory;
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
import java.math.BigDecimal;
import java.util.List;
@@ -33,7 +30,18 @@ import org.apache.jackrabbit.oak.api.Cor
import org.apache.jackrabbit.oak.api.PropertyState;
import org.apache.jackrabbit.oak.api.Type;
-import static org.apache.jackrabbit.oak.api.Type.*;
+import static org.apache.jackrabbit.oak.api.Type.DATE;
+import static org.apache.jackrabbit.oak.api.Type.DATES;
+import static org.apache.jackrabbit.oak.api.Type.NAME;
+import static org.apache.jackrabbit.oak.api.Type.NAMES;
+import static org.apache.jackrabbit.oak.api.Type.PATH;
+import static org.apache.jackrabbit.oak.api.Type.PATHS;
+import static org.apache.jackrabbit.oak.api.Type.REFERENCE;
+import static org.apache.jackrabbit.oak.api.Type.REFERENCES;
+import static org.apache.jackrabbit.oak.api.Type.URI;
+import static org.apache.jackrabbit.oak.api.Type.URIS;
+import static org.apache.jackrabbit.oak.api.Type.WEAKREFERENCE;
+import static org.apache.jackrabbit.oak.api.Type.WEAKREFERENCES;
public final class PropertyStates {
private PropertyStates() {}
@@ -185,129 +193,58 @@ public final class PropertyStates {
}
public static PropertyState stringProperty(String name, Iterable<String> values) {
- List<CoreValue> cvs = Lists.newArrayList();
- for (String value : values) {
- cvs.add(new StringValue(value));
- }
- return new ValueBasedMultiPropertyState(name, cvs);
+ return new StringsPropertyState(name, Lists.newArrayList(values));
}
public static PropertyState binaryPropertyFromBlob(String name, Iterable<Blob> values) {
- List<CoreValue> cvs = Lists.newArrayList();
- for (Blob value : values) {
- cvs.add(new BinaryValue(toBytes(value)));
- }
- return new ValueBasedMultiPropertyState(name, cvs);
+ return new BinariesPropertyState(name, Lists.newArrayList(values));
}
public static PropertyState longProperty(String name, Iterable<Long> values) {
- List<CoreValue> cvs = Lists.newArrayList();
- for (long value : values) {
- cvs.add(new LongValue(value));
- }
- return new ValueBasedMultiPropertyState(name, cvs);
+ return new LongsPropertyState(name, Lists.newArrayList(values));
}
public static PropertyState doubleProperty(String name, Iterable<Double> values) {
- List<CoreValue> cvs = Lists.newArrayList();
- for (double value : values) {
- cvs.add(new DoubleValue(value));
- }
- return new ValueBasedMultiPropertyState(name, cvs);
+ return new DoublesPropertyState(name, Lists.newArrayList(values));
}
public static PropertyState dateProperty(String name, Iterable<String> values) {
- List<CoreValue> cvs = Lists.newArrayList();
- for (String value : values) {
- cvs.add(new GenericValue(PropertyType.DATE, value));
- }
- return new ValueBasedMultiPropertyState(name, cvs);
+ return new GenericsPropertyState(name, Lists.newArrayList(values), DATES);
}
public static PropertyState booleanProperty(String name, Iterable<Boolean> values) {
- List<CoreValue> cvs = Lists.newArrayList();
- for (boolean value : values) {
- cvs.add(value ? BooleanValue.TRUE : BooleanValue.FALSE);
- }
- return new ValueBasedMultiPropertyState(name, cvs);
+ return new BooleansPropertyState(name, Lists.newArrayList(values));
}
public static PropertyState nameProperty(String name, Iterable<String> values) {
- List<CoreValue> cvs = Lists.newArrayList();
- for (String value : values) {
- cvs.add(new GenericValue(PropertyType.NAME, value));
- }
- return new ValueBasedMultiPropertyState(name, cvs);
+ return new GenericsPropertyState(name, Lists.newArrayList(values), NAMES);
}
public static PropertyState pathProperty(String name, Iterable<String> values) {
- List<CoreValue> cvs = Lists.newArrayList();
- for (String value : values) {
- cvs.add(new GenericValue(PropertyType.PATH, value));
- }
- return new ValueBasedMultiPropertyState(name, cvs);
+ return new GenericsPropertyState(name, Lists.newArrayList(values), PATHS);
}
public static PropertyState referenceProperty(String name, Iterable<String> values) {
- List<CoreValue> cvs = Lists.newArrayList();
- for (String value : values) {
- cvs.add(new GenericValue(PropertyType.REFERENCE, value));
- }
- return new ValueBasedMultiPropertyState(name, cvs);
+ return new GenericsPropertyState(name, Lists.newArrayList(values), REFERENCES);
}
public static PropertyState weakreferenceProperty(String name, Iterable<String> values) {
- List<CoreValue> cvs = Lists.newArrayList();
- for (String value : values) {
- cvs.add(new GenericValue(PropertyType.WEAKREFERENCE, value));
- }
- return new ValueBasedMultiPropertyState(name, cvs);
+ return new GenericsPropertyState(name, Lists.newArrayList(values), WEAKREFERENCES);
}
public static PropertyState uriProperty(String name, Iterable<String> values) {
- List<CoreValue> cvs = Lists.newArrayList();
- for (String value : values) {
- cvs.add(new GenericValue(PropertyType.URI, value));
- }
- return new ValueBasedMultiPropertyState(name, cvs);
+ return new GenericsPropertyState(name, Lists.newArrayList(values), URIS);
}
public static PropertyState decimalProperty(String name, Iterable<BigDecimal> values) {
- List<CoreValue> cvs = Lists.newArrayList();
- for (BigDecimal value : values) {
- cvs.add(new DecimalValue(value));
- }
- return new ValueBasedMultiPropertyState(name, cvs);
+ return new DecimalsPropertyState(name, Lists.newArrayList(values));
}
public static PropertyState binaryPropertyFromArray(String name, Iterable<byte[]> values) {
- List<CoreValue> cvs = Lists.newArrayList();
- for (byte[] value : values) {
- cvs.add(new BinaryValue(value));
- }
- return new ValueBasedMultiPropertyState(name, cvs);
- }
-
- private static byte[] toBytes(Blob blob) {
- try {
- InputStream is = blob.getNewStream();
- try {
- ByteArrayOutputStream buffer = new ByteArrayOutputStream();
- byte[] b = new byte[4096];
- int n = is.read(b);
- while (n != -1) {
- buffer.write(b, 0, n);
- n = is.read(b);
- }
- return buffer.toByteArray();
- }
- finally {
- is.close();
- }
- }
- catch (IOException e) {
- // TODO
- return null;
+ List<Blob> blobs = Lists.newArrayList();
+ for (byte[] data : values) {
+ blobs.add(new ArrayBasedBlob(data));
}
+ return new BinariesPropertyState(name, blobs);
}
}