You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by an...@apache.org on 2009/05/28 18:43:32 UTC
svn commit: r779657 - in /jackrabbit/trunk/jackrabbit-spi-commons/src:
main/java/org/apache/jackrabbit/spi/commons/value/ValueFormat.java
test/java/org/apache/jackrabbit/spi/commons/value/ValueFormatTest.java
Author: angela
Date: Thu May 28 16:43:32 2009
New Revision: 779657
URL: http://svn.apache.org/viewvc?rev=779657&view=rev
Log:
JCR-1609 new Property Types
update ValueFormat and add trivial tests for new property types.
add TODO for binary conversion that still uses the deprecated getStream method
Modified:
jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/value/ValueFormat.java
jackrabbit/trunk/jackrabbit-spi-commons/src/test/java/org/apache/jackrabbit/spi/commons/value/ValueFormatTest.java
Modified: jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/value/ValueFormat.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/value/ValueFormat.java?rev=779657&r1=779656&r2=779657&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/value/ValueFormat.java (original)
+++ jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/value/ValueFormat.java Thu May 28 16:43:32 2009
@@ -50,6 +50,7 @@
} else if (jcrValue instanceof QValueValue) {
return ((QValueValue)jcrValue).getQValue();
} else if (jcrValue.getType() == PropertyType.BINARY) {
+ // TODO: jsr 283 binary property conversion
try {
return factory.create(jcrValue.getStream());
} catch (IOException e) {
@@ -61,6 +62,8 @@
return factory.create(jcrValue.getDouble());
} else if (jcrValue.getType() == PropertyType.LONG) {
return factory.create(jcrValue.getLong());
+ } else if (jcrValue.getType() == PropertyType.DECIMAL) {
+ return factory.create(jcrValue.getDecimal());
} else {
return getQValue(jcrValue.getString(), jcrValue.getType(), resolver, factory);
}
@@ -107,8 +110,11 @@
case PropertyType.BOOLEAN:
case PropertyType.DOUBLE:
case PropertyType.LONG:
+ case PropertyType.DECIMAL:
case PropertyType.DATE:
case PropertyType.REFERENCE:
+ case PropertyType.WEAKREFERENCE:
+ case PropertyType.URI:
qValue = factory.create(jcrValue, propertyType);
break;
case PropertyType.BINARY:
@@ -146,6 +152,8 @@
switch (propertyType) {
case PropertyType.STRING:
case PropertyType.REFERENCE:
+ case PropertyType.WEAKREFERENCE:
+ case PropertyType.URI:
jcrValue = factory.createValue(qualifiedValue.getString(), propertyType);
break;
case PropertyType.PATH:
@@ -160,6 +168,7 @@
jcrValue = factory.createValue(qualifiedValue.getBoolean());
break;
case PropertyType.BINARY:
+ // TODO: jsr 283 binary handling
jcrValue = factory.createValue(qualifiedValue.getStream());
break;
case PropertyType.DATE:
@@ -171,6 +180,9 @@
case PropertyType.LONG:
jcrValue = factory.createValue(qualifiedValue.getLong());
break;
+ case PropertyType.DECIMAL:
+ jcrValue = factory.createValue(qualifiedValue.getDecimal());
+ break;
default:
throw new RepositoryException("illegal internal value type");
}
Modified: jackrabbit/trunk/jackrabbit-spi-commons/src/test/java/org/apache/jackrabbit/spi/commons/value/ValueFormatTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-spi-commons/src/test/java/org/apache/jackrabbit/spi/commons/value/ValueFormatTest.java?rev=779657&r1=779656&r2=779657&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-spi-commons/src/test/java/org/apache/jackrabbit/spi/commons/value/ValueFormatTest.java (original)
+++ jackrabbit/trunk/jackrabbit-spi-commons/src/test/java/org/apache/jackrabbit/spi/commons/value/ValueFormatTest.java Thu May 28 16:43:32 2009
@@ -36,8 +36,12 @@
import javax.jcr.RepositoryException;
import javax.jcr.PropertyType;
import javax.jcr.ValueFactory;
+import javax.jcr.Value;
import java.util.List;
import java.util.ArrayList;
+import java.math.BigDecimal;
+import java.net.URI;
+import java.net.URISyntaxException;
/**
* <code>ValueFormatTest</code>...
@@ -90,4 +94,35 @@
}
}
+ public void testDecimal() throws RepositoryException {
+ BigDecimal bd = new BigDecimal(Double.MIN_VALUE);
+
+ Value v = vFactory.createValue(bd);
+ QValue qv = qvFactory.create(bd);
+
+ assertEquals(v, ValueFormat.getJCRValue(qv, resolver, vFactory));
+ assertEquals(qv, ValueFormat.getQValue(v, resolver, qvFactory));
+ }
+
+ public void testURI() throws RepositoryException, URISyntaxException {
+ URI uri = new URI("http://jackrabbit.apache.org");
+
+ Value v = vFactory.createValue("http://jackrabbit.apache.org", PropertyType.URI);
+ QValue qv = qvFactory.create(uri);
+
+ assertEquals(v, ValueFormat.getJCRValue(qv, resolver, vFactory));
+ assertEquals(qv, ValueFormat.getQValue(v, resolver, qvFactory));
+ assertEquals(qv, ValueFormat.getQValue("http://jackrabbit.apache.org", PropertyType.URI, resolver, qvFactory));
+ }
+
+ public void testWeakReferences() throws RepositoryException {
+ String reference = UUID.randomUUID().toString();
+
+ Value v = vFactory.createValue(reference, PropertyType.WEAKREFERENCE);
+ QValue qv = qvFactory.create(reference, PropertyType.WEAKREFERENCE);
+
+ assertEquals(v, ValueFormat.getJCRValue(qv, resolver, vFactory));
+ assertEquals(qv, ValueFormat.getQValue(v, resolver, qvFactory));
+ assertEquals(qv, ValueFormat.getQValue(reference, PropertyType.WEAKREFERENCE, resolver, qvFactory));
+ }
}
\ No newline at end of file