You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by md...@apache.org on 2011/06/15 14:54:56 UTC
svn commit: r1136016 - in /jackrabbit/sandbox/spi2microkernel/src:
main/java/org/apache/jackrabbit/spi2microkernel/util/Values.java
test/java/org/apache/jackrabbit/spi2microkernel/RepositoryTest.java
Author: mduerig
Date: Wed Jun 15 12:54:56 2011
New Revision: 1136016
URL: http://svn.apache.org/viewvc?rev=1136016&view=rev
Log:
spi2microkernel prototype (WIP)
value types: uri
Modified:
jackrabbit/sandbox/spi2microkernel/src/main/java/org/apache/jackrabbit/spi2microkernel/util/Values.java
jackrabbit/sandbox/spi2microkernel/src/test/java/org/apache/jackrabbit/spi2microkernel/RepositoryTest.java
Modified: jackrabbit/sandbox/spi2microkernel/src/main/java/org/apache/jackrabbit/spi2microkernel/util/Values.java
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/spi2microkernel/src/main/java/org/apache/jackrabbit/spi2microkernel/util/Values.java?rev=1136016&r1=1136015&r2=1136016&view=diff
==============================================================================
--- jackrabbit/sandbox/spi2microkernel/src/main/java/org/apache/jackrabbit/spi2microkernel/util/Values.java (original)
+++ jackrabbit/sandbox/spi2microkernel/src/main/java/org/apache/jackrabbit/spi2microkernel/util/Values.java Wed Jun 15 12:54:56 2011
@@ -122,6 +122,17 @@ public final class Values {
};
put(TYPES[PropertyType.DATE], valueFactory);
+ valueFactory = new ValueFactory() {
+ public QValue create(Object value) throws RepositoryException {
+ throw new RepositoryException("Invalid value " + value);
+ }
+
+ public QValue create(String value) throws RepositoryException {
+ return FACTORY.create(value, PropertyType.URI);
+ }
+ };
+ put(TYPES[PropertyType.URI], valueFactory);
+
// todo handle other value types
}};
@@ -172,18 +183,16 @@ public final class Values {
return value.getString();
case PropertyType.DECIMAL:
- return typeEncode(type, value.getString());
-
case PropertyType.DATE:
+ case PropertyType.URI:
return typeEncode(type, value.getString());
- // todo implement support for the other value types
+ // todo implement support for the other value types
case PropertyType.BINARY:
case PropertyType.NAME:
case PropertyType.PATH:
case PropertyType.REFERENCE:
case PropertyType.WEAKREFERENCE:
- case PropertyType.URI:
default:
throw new RepositoryException("Cannot handle value of type " +
PropertyType.nameFromValue(value.getType()));
Modified: jackrabbit/sandbox/spi2microkernel/src/test/java/org/apache/jackrabbit/spi2microkernel/RepositoryTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/spi2microkernel/src/test/java/org/apache/jackrabbit/spi2microkernel/RepositoryTest.java?rev=1136016&r1=1136015&r2=1136016&view=diff
==============================================================================
--- jackrabbit/sandbox/spi2microkernel/src/test/java/org/apache/jackrabbit/spi2microkernel/RepositoryTest.java (original)
+++ jackrabbit/sandbox/spi2microkernel/src/test/java/org/apache/jackrabbit/spi2microkernel/RepositoryTest.java Wed Jun 15 12:54:56 2011
@@ -415,6 +415,36 @@ public class RepositoryTest {
}
}
+ @Test
+ public void addURIProperty() throws RepositoryException {
+ Node parentNode = getNode(testPath);
+ addProperty(parentNode, "uri", getSession().getValueFactory().createValue("http://www.day.com/", PropertyType.URI));
+ }
+
+ @Test
+ public void addMultiValuedURI() throws RepositoryException {
+ Node parentNode = getNode(testPath);
+ Value[] values = new Value[2];
+ values[0] = getSession().getValueFactory().createValue("http://www.day.com", PropertyType.URI);
+ values[1] = getSession().getValueFactory().createValue("file://var/dam", PropertyType.URI);
+
+ parentNode.setProperty("multi date", values);
+ parentNode.getSession().save();
+
+ Session session2 = getRepository().login();
+ try {
+ Property property = session2.getProperty(testPath + "/multi date");
+ assertTrue(property.isMultiple());
+ Value[] values2 = property.getValues();
+ assertEquals(2, values.length);
+ assertEquals(values[0], values2[0]);
+ assertEquals(values[1], values2[1]);
+ }
+ finally {
+ session2.logout();
+ }
+ }
+
@Ignore // todo set element type
@Test
public void addEmptyMultiValuedProperty() throws RepositoryException {