Author: rhauch
Date: 2008-08-07 12:17:48 -0400 (Thu, 07 Aug 2008)
New Revision: 400
Modified:
trunk/dna-spi/src/main/java/org/jboss/dna/spi/graph/ValueFactory.java
trunk/dna-spi/src/main/java/org/jboss/dna/spi/graph/impl/AbstractValueFactory.java
trunk/dna-spi/src/main/java/org/jboss/dna/spi/graph/impl/BooleanValueFactory.java
trunk/dna-spi/src/main/java/org/jboss/dna/spi/graph/impl/DecimalValueFactory.java
trunk/dna-spi/src/main/java/org/jboss/dna/spi/graph/impl/DoubleValueFactory.java
trunk/dna-spi/src/main/java/org/jboss/dna/spi/graph/impl/InMemoryBinaryValueFactory.java
trunk/dna-spi/src/main/java/org/jboss/dna/spi/graph/impl/JodaDateTimeValueFactory.java
trunk/dna-spi/src/main/java/org/jboss/dna/spi/graph/impl/LongValueFactory.java
trunk/dna-spi/src/main/java/org/jboss/dna/spi/graph/impl/NameValueFactory.java
trunk/dna-spi/src/main/java/org/jboss/dna/spi/graph/impl/ObjectValueFactory.java
trunk/dna-spi/src/main/java/org/jboss/dna/spi/graph/impl/PathValueFactory.java
trunk/dna-spi/src/main/java/org/jboss/dna/spi/graph/impl/StringValueFactory.java
trunk/dna-spi/src/main/java/org/jboss/dna/spi/graph/impl/UriValueFactory.java
trunk/dna-spi/src/main/java/org/jboss/dna/spi/graph/impl/UuidReferenceValueFactory.java
trunk/dna-spi/src/main/java/org/jboss/dna/spi/graph/impl/UuidValueFactory.java
trunk/dna-spi/src/test/java/org/jboss/dna/spi/graph/impl/AbstractValueFactoryTest.java
trunk/dna-spi/src/test/java/org/jboss/dna/spi/graph/impl/BooleanValueFactoryTest.java
trunk/dna-spi/src/test/java/org/jboss/dna/spi/graph/impl/DecimalValueFactoryTest.java
trunk/dna-spi/src/test/java/org/jboss/dna/spi/graph/impl/DoubleValueFactoryTest.java
trunk/dna-spi/src/test/java/org/jboss/dna/spi/graph/impl/InMemoryBinaryValueFactoryTest.java
trunk/dna-spi/src/test/java/org/jboss/dna/spi/graph/impl/JodaDateTimeValueFactoryTest.java
trunk/dna-spi/src/test/java/org/jboss/dna/spi/graph/impl/LongValueFactoryTest.java
trunk/dna-spi/src/test/java/org/jboss/dna/spi/graph/impl/NameValueFactoryTest.java
trunk/dna-spi/src/test/java/org/jboss/dna/spi/graph/impl/PathValueFactoryTest.java
trunk/dna-spi/src/test/java/org/jboss/dna/spi/graph/impl/UuidValueFactoryTest.java
Log:
DNA-196 - Add methods to ValueFactory that takes Iterator<?> and returns
Iterator<T>
http://jira.jboss.com/jira/browse/DNA-196
Added a single "create(Iterator<?> values):Iterator<T>" to the
ValueFactory interface, and added implementation methods to all concrete classes. The
AbstractValueFactory class defines a ConvertingIterator<T> that wraps an
Iterator<?> and simply calls "create(Object):T" on the value factory that
is using it. Thus, this method is actually quite efficient, since the only cost is the
wrapped iterator instance.
Modified: trunk/dna-spi/src/main/java/org/jboss/dna/spi/graph/ValueFactory.java
===================================================================
--- trunk/dna-spi/src/main/java/org/jboss/dna/spi/graph/ValueFactory.java 2008-08-07
15:42:07 UTC (rev 399)
+++ trunk/dna-spi/src/main/java/org/jboss/dna/spi/graph/ValueFactory.java 2008-08-07
16:17:48 UTC (rev 400)
@@ -28,6 +28,7 @@
import java.net.URI;
import java.util.Calendar;
import java.util.Date;
+import java.util.Iterator;
import java.util.UUID;
import org.jboss.dna.common.text.TextDecoder;
import org.jboss.dna.common.text.TextEncoder;
@@ -397,4 +398,14 @@
*/
T[] create( Object[] values ) throws IoException;
+ /**
+ * Create an iterator over the values (of an unknown type). The factory converts any
values as required. Note that this method
+ * will not consider {@link #create(InputStream, int)}, {@link #create(Reader, int)}
and {@link #create(String, TextDecoder)}.
+ *
+ * @param values the values
+ * @return the iterator of type <code>T</code> over the values, or null
if the supplied parameter is null
+ * @throws IoException If an unexpected problem occurs during the conversion.
+ */
+ Iterator<T> create( Iterator<?> values ) throws IoException;
+
}
Modified:
trunk/dna-spi/src/main/java/org/jboss/dna/spi/graph/impl/AbstractValueFactory.java
===================================================================
---
trunk/dna-spi/src/main/java/org/jboss/dna/spi/graph/impl/AbstractValueFactory.java 2008-08-07
15:42:07 UTC (rev 399)
+++
trunk/dna-spi/src/main/java/org/jboss/dna/spi/graph/impl/AbstractValueFactory.java 2008-08-07
16:17:48 UTC (rev 400)
@@ -27,6 +27,7 @@
import java.net.URI;
import java.util.Calendar;
import java.util.Date;
+import java.util.Iterator;
import java.util.UUID;
import net.jcip.annotations.Immutable;
import org.jboss.dna.common.text.TextDecoder;
@@ -344,4 +345,44 @@
return result;
}
+ protected static class ConvertingIterator<ValueType> implements
Iterator<ValueType> {
+ private final Iterator<?> delegate;
+ private final ValueFactory<ValueType> factory;
+
+ protected ConvertingIterator( Iterator<?> delegate,
+ ValueFactory<ValueType> factory ) {
+ assert delegate != null;
+ assert factory != null;
+ this.delegate = delegate;
+ this.factory = factory;
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see java.util.Iterator#hasNext()
+ */
+ public boolean hasNext() {
+ return this.delegate.hasNext();
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see java.util.Iterator#next()
+ */
+ public ValueType next() {
+ return factory.create(this.delegate.next());
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see java.util.Iterator#remove()
+ */
+ public void remove() {
+ this.delegate.remove();
+ }
+ }
+
}
Modified:
trunk/dna-spi/src/main/java/org/jboss/dna/spi/graph/impl/BooleanValueFactory.java
===================================================================
---
trunk/dna-spi/src/main/java/org/jboss/dna/spi/graph/impl/BooleanValueFactory.java 2008-08-07
15:42:07 UTC (rev 399)
+++
trunk/dna-spi/src/main/java/org/jboss/dna/spi/graph/impl/BooleanValueFactory.java 2008-08-07
16:17:48 UTC (rev 400)
@@ -27,6 +27,7 @@
import java.net.URI;
import java.util.Calendar;
import java.util.Date;
+import java.util.Iterator;
import java.util.UUID;
import net.jcip.annotations.Immutable;
import org.jboss.dna.common.text.TextDecoder;
@@ -214,7 +215,16 @@
/**
* {@inheritDoc}
+ *
+ * @see org.jboss.dna.spi.graph.ValueFactory#create(java.util.Iterator)
*/
+ public Iterator<Boolean> create( Iterator<?> values ) throws IoException
{
+ return new ConvertingIterator<Boolean>(values, this);
+ }
+
+ /**
+ * {@inheritDoc}
+ */
@Override
protected Boolean[] createEmptyArray( int length ) {
return new Boolean[length];
Modified:
trunk/dna-spi/src/main/java/org/jboss/dna/spi/graph/impl/DecimalValueFactory.java
===================================================================
---
trunk/dna-spi/src/main/java/org/jboss/dna/spi/graph/impl/DecimalValueFactory.java 2008-08-07
15:42:07 UTC (rev 399)
+++
trunk/dna-spi/src/main/java/org/jboss/dna/spi/graph/impl/DecimalValueFactory.java 2008-08-07
16:17:48 UTC (rev 400)
@@ -27,6 +27,7 @@
import java.net.URI;
import java.util.Calendar;
import java.util.Date;
+import java.util.Iterator;
import java.util.UUID;
import net.jcip.annotations.Immutable;
import org.jboss.dna.common.text.TextDecoder;
@@ -210,7 +211,16 @@
/**
* {@inheritDoc}
+ *
+ * @see org.jboss.dna.spi.graph.ValueFactory#create(java.util.Iterator)
*/
+ public Iterator<BigDecimal> create( Iterator<?> values ) throws
IoException {
+ return new ConvertingIterator<BigDecimal>(values, this);
+ }
+
+ /**
+ * {@inheritDoc}
+ */
@Override
protected BigDecimal[] createEmptyArray( int length ) {
return new BigDecimal[length];
Modified:
trunk/dna-spi/src/main/java/org/jboss/dna/spi/graph/impl/DoubleValueFactory.java
===================================================================
---
trunk/dna-spi/src/main/java/org/jboss/dna/spi/graph/impl/DoubleValueFactory.java 2008-08-07
15:42:07 UTC (rev 399)
+++
trunk/dna-spi/src/main/java/org/jboss/dna/spi/graph/impl/DoubleValueFactory.java 2008-08-07
16:17:48 UTC (rev 400)
@@ -27,6 +27,7 @@
import java.net.URI;
import java.util.Calendar;
import java.util.Date;
+import java.util.Iterator;
import java.util.UUID;
import net.jcip.annotations.Immutable;
import org.jboss.dna.common.text.TextDecoder;
@@ -217,7 +218,16 @@
/**
* {@inheritDoc}
+ *
+ * @see org.jboss.dna.spi.graph.ValueFactory#create(java.util.Iterator)
*/
+ public Iterator<Double> create( Iterator<?> values ) throws IoException
{
+ return new ConvertingIterator<Double>(values, this);
+ }
+
+ /**
+ * {@inheritDoc}
+ */
@Override
protected Double[] createEmptyArray( int length ) {
return new Double[length];
Modified:
trunk/dna-spi/src/main/java/org/jboss/dna/spi/graph/impl/InMemoryBinaryValueFactory.java
===================================================================
---
trunk/dna-spi/src/main/java/org/jboss/dna/spi/graph/impl/InMemoryBinaryValueFactory.java 2008-08-07
15:42:07 UTC (rev 399)
+++
trunk/dna-spi/src/main/java/org/jboss/dna/spi/graph/impl/InMemoryBinaryValueFactory.java 2008-08-07
16:17:48 UTC (rev 400)
@@ -29,6 +29,7 @@
import java.net.URI;
import java.util.Calendar;
import java.util.Date;
+import java.util.Iterator;
import java.util.UUID;
import net.jcip.annotations.Immutable;
import org.jboss.dna.common.text.TextDecoder;
@@ -227,7 +228,16 @@
/**
* {@inheritDoc}
+ *
+ * @see org.jboss.dna.spi.graph.ValueFactory#create(java.util.Iterator)
*/
+ public Iterator<Binary> create( Iterator<?> values ) throws IoException
{
+ return new ConvertingIterator<Binary>(values, this);
+ }
+
+ /**
+ * {@inheritDoc}
+ */
@Override
protected Binary[] createEmptyArray( int length ) {
return new Binary[length];
Modified:
trunk/dna-spi/src/main/java/org/jboss/dna/spi/graph/impl/JodaDateTimeValueFactory.java
===================================================================
---
trunk/dna-spi/src/main/java/org/jboss/dna/spi/graph/impl/JodaDateTimeValueFactory.java 2008-08-07
15:42:07 UTC (rev 399)
+++
trunk/dna-spi/src/main/java/org/jboss/dna/spi/graph/impl/JodaDateTimeValueFactory.java 2008-08-07
16:17:48 UTC (rev 400)
@@ -27,6 +27,7 @@
import java.net.URI;
import java.util.Calendar;
import java.util.Date;
+import java.util.Iterator;
import java.util.UUID;
import net.jcip.annotations.Immutable;
import org.jboss.dna.common.text.TextDecoder;
@@ -286,7 +287,16 @@
/**
* {@inheritDoc}
+ *
+ * @see org.jboss.dna.spi.graph.ValueFactory#create(java.util.Iterator)
*/
+ public Iterator<DateTime> create( Iterator<?> values ) throws IoException
{
+ return new ConvertingIterator<DateTime>(values, this);
+ }
+
+ /**
+ * {@inheritDoc}
+ */
@Override
protected DateTime[] createEmptyArray( int length ) {
return new DateTime[length];
Modified: trunk/dna-spi/src/main/java/org/jboss/dna/spi/graph/impl/LongValueFactory.java
===================================================================
---
trunk/dna-spi/src/main/java/org/jboss/dna/spi/graph/impl/LongValueFactory.java 2008-08-07
15:42:07 UTC (rev 399)
+++
trunk/dna-spi/src/main/java/org/jboss/dna/spi/graph/impl/LongValueFactory.java 2008-08-07
16:17:48 UTC (rev 400)
@@ -27,6 +27,7 @@
import java.net.URI;
import java.util.Calendar;
import java.util.Date;
+import java.util.Iterator;
import java.util.UUID;
import net.jcip.annotations.Immutable;
import org.jboss.dna.common.text.TextDecoder;
@@ -211,7 +212,16 @@
/**
* {@inheritDoc}
+ *
+ * @see org.jboss.dna.spi.graph.ValueFactory#create(java.util.Iterator)
*/
+ public Iterator<Long> create( Iterator<?> values ) throws IoException {
+ return new ConvertingIterator<Long>(values, this);
+ }
+
+ /**
+ * {@inheritDoc}
+ */
@Override
protected Long[] createEmptyArray( int length ) {
return new Long[length];
Modified: trunk/dna-spi/src/main/java/org/jboss/dna/spi/graph/impl/NameValueFactory.java
===================================================================
---
trunk/dna-spi/src/main/java/org/jboss/dna/spi/graph/impl/NameValueFactory.java 2008-08-07
15:42:07 UTC (rev 399)
+++
trunk/dna-spi/src/main/java/org/jboss/dna/spi/graph/impl/NameValueFactory.java 2008-08-07
16:17:48 UTC (rev 400)
@@ -27,6 +27,7 @@
import java.net.URI;
import java.util.Calendar;
import java.util.Date;
+import java.util.Iterator;
import java.util.UUID;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@@ -301,6 +302,15 @@
}
/**
+ * {@inheritDoc}
+ *
+ * @see org.jboss.dna.spi.graph.ValueFactory#create(java.util.Iterator)
+ */
+ public Iterator<Name> create( Iterator<?> values ) throws IoException {
+ return new ConvertingIterator<Name>(values, this);
+ }
+
+ /**
* <p>
* {@inheritDoc}
* </p>
Modified:
trunk/dna-spi/src/main/java/org/jboss/dna/spi/graph/impl/ObjectValueFactory.java
===================================================================
---
trunk/dna-spi/src/main/java/org/jboss/dna/spi/graph/impl/ObjectValueFactory.java 2008-08-07
15:42:07 UTC (rev 399)
+++
trunk/dna-spi/src/main/java/org/jboss/dna/spi/graph/impl/ObjectValueFactory.java 2008-08-07
16:17:48 UTC (rev 400)
@@ -27,11 +27,13 @@
import java.net.URI;
import java.util.Calendar;
import java.util.Date;
+import java.util.Iterator;
import java.util.UUID;
import net.jcip.annotations.Immutable;
import org.jboss.dna.common.text.TextDecoder;
import org.jboss.dna.common.util.ArgCheck;
import org.jboss.dna.spi.graph.Binary;
+import org.jboss.dna.spi.graph.IoException;
import org.jboss.dna.spi.graph.Name;
import org.jboss.dna.spi.graph.Path;
import org.jboss.dna.spi.graph.PropertyType;
@@ -197,7 +199,16 @@
/**
* {@inheritDoc}
+ *
+ * @see org.jboss.dna.spi.graph.ValueFactory#create(java.util.Iterator)
*/
+ public Iterator<Object> create( Iterator<?> values ) throws IoException
{
+ return new ConvertingIterator<Object>(values, this);
+ }
+
+ /**
+ * {@inheritDoc}
+ */
@Override
protected Object[] createEmptyArray( int length ) {
return new Object[length];
Modified: trunk/dna-spi/src/main/java/org/jboss/dna/spi/graph/impl/PathValueFactory.java
===================================================================
---
trunk/dna-spi/src/main/java/org/jboss/dna/spi/graph/impl/PathValueFactory.java 2008-08-07
15:42:07 UTC (rev 399)
+++
trunk/dna-spi/src/main/java/org/jboss/dna/spi/graph/impl/PathValueFactory.java 2008-08-07
16:17:48 UTC (rev 400)
@@ -28,6 +28,7 @@
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
+import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import java.util.UUID;
@@ -599,7 +600,16 @@
/**
* {@inheritDoc}
+ *
+ * @see org.jboss.dna.spi.graph.ValueFactory#create(java.util.Iterator)
*/
+ public Iterator<Path> create( Iterator<?> values ) throws IoException {
+ return new ConvertingIterator<Path>(values, this);
+ }
+
+ /**
+ * {@inheritDoc}
+ */
@Override
protected Path[] createEmptyArray( int length ) {
return new Path[length];
Modified:
trunk/dna-spi/src/main/java/org/jboss/dna/spi/graph/impl/StringValueFactory.java
===================================================================
---
trunk/dna-spi/src/main/java/org/jboss/dna/spi/graph/impl/StringValueFactory.java 2008-08-07
15:42:07 UTC (rev 399)
+++
trunk/dna-spi/src/main/java/org/jboss/dna/spi/graph/impl/StringValueFactory.java 2008-08-07
16:17:48 UTC (rev 400)
@@ -29,6 +29,7 @@
import java.net.URI;
import java.util.Calendar;
import java.util.Date;
+import java.util.Iterator;
import java.util.UUID;
import net.jcip.annotations.Immutable;
import org.jboss.dna.common.text.TextDecoder;
@@ -244,7 +245,16 @@
/**
* {@inheritDoc}
+ *
+ * @see org.jboss.dna.spi.graph.ValueFactory#create(java.util.Iterator)
*/
+ public Iterator<String> create( Iterator<?> values ) throws IoException
{
+ return new ConvertingIterator<String>(values, this);
+ }
+
+ /**
+ * {@inheritDoc}
+ */
@Override
protected String[] createEmptyArray( int length ) {
return new String[length];
Modified: trunk/dna-spi/src/main/java/org/jboss/dna/spi/graph/impl/UriValueFactory.java
===================================================================
---
trunk/dna-spi/src/main/java/org/jboss/dna/spi/graph/impl/UriValueFactory.java 2008-08-07
15:42:07 UTC (rev 399)
+++
trunk/dna-spi/src/main/java/org/jboss/dna/spi/graph/impl/UriValueFactory.java 2008-08-07
16:17:48 UTC (rev 400)
@@ -28,6 +28,7 @@
import java.net.URISyntaxException;
import java.util.Calendar;
import java.util.Date;
+import java.util.Iterator;
import java.util.UUID;
import net.jcip.annotations.Immutable;
import org.jboss.dna.common.text.TextDecoder;
@@ -229,7 +230,16 @@
/**
* {@inheritDoc}
+ *
+ * @see org.jboss.dna.spi.graph.ValueFactory#create(java.util.Iterator)
*/
+ public Iterator<URI> create( Iterator<?> values ) throws IoException {
+ return new ConvertingIterator<URI>(values, this);
+ }
+
+ /**
+ * {@inheritDoc}
+ */
@Override
protected URI[] createEmptyArray( int length ) {
return new URI[length];
Modified:
trunk/dna-spi/src/main/java/org/jboss/dna/spi/graph/impl/UuidReferenceValueFactory.java
===================================================================
---
trunk/dna-spi/src/main/java/org/jboss/dna/spi/graph/impl/UuidReferenceValueFactory.java 2008-08-07
15:42:07 UTC (rev 399)
+++
trunk/dna-spi/src/main/java/org/jboss/dna/spi/graph/impl/UuidReferenceValueFactory.java 2008-08-07
16:17:48 UTC (rev 400)
@@ -27,6 +27,7 @@
import java.net.URI;
import java.util.Calendar;
import java.util.Date;
+import java.util.Iterator;
import java.util.UUID;
import net.jcip.annotations.Immutable;
import org.jboss.dna.common.text.TextDecoder;
@@ -219,7 +220,16 @@
/**
* {@inheritDoc}
+ *
+ * @see org.jboss.dna.spi.graph.ValueFactory#create(java.util.Iterator)
*/
+ public Iterator<Reference> create( Iterator<?> values ) throws
IoException {
+ return new ConvertingIterator<Reference>(values, this);
+ }
+
+ /**
+ * {@inheritDoc}
+ */
@Override
protected Reference[] createEmptyArray( int length ) {
return new Reference[length];
Modified: trunk/dna-spi/src/main/java/org/jboss/dna/spi/graph/impl/UuidValueFactory.java
===================================================================
---
trunk/dna-spi/src/main/java/org/jboss/dna/spi/graph/impl/UuidValueFactory.java 2008-08-07
15:42:07 UTC (rev 399)
+++
trunk/dna-spi/src/main/java/org/jboss/dna/spi/graph/impl/UuidValueFactory.java 2008-08-07
16:17:48 UTC (rev 400)
@@ -27,6 +27,7 @@
import java.net.URI;
import java.util.Calendar;
import java.util.Date;
+import java.util.Iterator;
import java.util.UUID;
import net.jcip.annotations.Immutable;
import org.jboss.dna.common.text.TextDecoder;
@@ -235,7 +236,16 @@
/**
* {@inheritDoc}
+ *
+ * @see org.jboss.dna.spi.graph.ValueFactory#create(java.util.Iterator)
*/
+ public Iterator<UUID> create( Iterator<?> values ) throws IoException {
+ return new ConvertingIterator<UUID>(values, this);
+ }
+
+ /**
+ * {@inheritDoc}
+ */
@Override
protected UUID[] createEmptyArray( int length ) {
return new UUID[length];
Modified:
trunk/dna-spi/src/test/java/org/jboss/dna/spi/graph/impl/AbstractValueFactoryTest.java
===================================================================
---
trunk/dna-spi/src/test/java/org/jboss/dna/spi/graph/impl/AbstractValueFactoryTest.java 2008-08-07
15:42:07 UTC (rev 399)
+++
trunk/dna-spi/src/test/java/org/jboss/dna/spi/graph/impl/AbstractValueFactoryTest.java 2008-08-07
16:17:48 UTC (rev 400)
@@ -32,9 +32,11 @@
import java.net.URI;
import java.util.Calendar;
import java.util.Date;
+import java.util.Iterator;
import java.util.UUID;
import org.jboss.dna.common.text.NoOpEncoder;
import org.jboss.dna.common.text.TextDecoder;
+import org.jboss.dna.spi.graph.IoException;
import org.jboss.dna.spi.graph.Name;
import org.jboss.dna.spi.graph.Path;
import org.jboss.dna.spi.graph.PropertyType;
@@ -134,7 +136,16 @@
/**
* {@inheritDoc}
+ *
+ * @see org.jboss.dna.spi.graph.ValueFactory#create(java.util.Iterator)
*/
+ public Iterator<String> create( Iterator<?> values ) throws
IoException {
+ return new ConvertingIterator<String>(values, this);
+ }
+
+ /**
+ * {@inheritDoc}
+ */
@Override
protected String[] createEmptyArray( int length ) {
return new String[length];
Modified:
trunk/dna-spi/src/test/java/org/jboss/dna/spi/graph/impl/BooleanValueFactoryTest.java
===================================================================
---
trunk/dna-spi/src/test/java/org/jboss/dna/spi/graph/impl/BooleanValueFactoryTest.java 2008-08-07
15:42:07 UTC (rev 399)
+++
trunk/dna-spi/src/test/java/org/jboss/dna/spi/graph/impl/BooleanValueFactoryTest.java 2008-08-07
16:17:48 UTC (rev 400)
@@ -27,8 +27,11 @@
import java.io.ByteArrayInputStream;
import java.io.StringReader;
import java.net.URI;
+import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
+import java.util.Iterator;
+import java.util.List;
import org.jboss.dna.spi.graph.Name;
import org.jboss.dna.spi.graph.Path;
import org.jboss.dna.spi.graph.Reference;
@@ -164,4 +167,16 @@
assertThat(factory.create(new StringReader("FALSE")), is(false));
assertThat(factory.create(new StringReader("something else")),
is(false));
}
+
+ @Test
+ public void shouldCreateIteratorOverValuesWhenSuppliedIteratorOfUnknownObjects() {
+ List<String> values = new ArrayList<String>();
+ for (int i = 0; i != 10; ++i)
+ values.add((i % 2 == 0 ? "true" : "false"));
+ Iterator<Boolean> iter = factory.create(values.iterator());
+ Iterator<String> valueIter = values.iterator();
+ while (iter.hasNext()) {
+ assertThat(iter.next(), is(factory.create(valueIter.next())));
+ }
+ }
}
Modified:
trunk/dna-spi/src/test/java/org/jboss/dna/spi/graph/impl/DecimalValueFactoryTest.java
===================================================================
---
trunk/dna-spi/src/test/java/org/jboss/dna/spi/graph/impl/DecimalValueFactoryTest.java 2008-08-07
15:42:07 UTC (rev 399)
+++
trunk/dna-spi/src/test/java/org/jboss/dna/spi/graph/impl/DecimalValueFactoryTest.java 2008-08-07
16:17:48 UTC (rev 400)
@@ -28,8 +28,11 @@
import java.io.StringReader;
import java.math.BigDecimal;
import java.net.URI;
+import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
+import java.util.Iterator;
+import java.util.List;
import org.jboss.dna.spi.graph.Name;
import org.jboss.dna.spi.graph.Path;
import org.jboss.dna.spi.graph.Reference;
@@ -167,4 +170,16 @@
public void
shouldNotCreateDecimalFromReaderContainingStringWithContentsOtherThanDecimal() {
factory.create(new StringReader("something"));
}
+
+ @Test
+ public void shouldCreateIteratorOverValuesWhenSuppliedIteratorOfUnknownObjects() {
+ List<String> values = new ArrayList<String>();
+ for (int i = 0; i != 10; ++i)
+ values.add("" + i);
+ Iterator<BigDecimal> iter = factory.create(values.iterator());
+ Iterator<String> valueIter = values.iterator();
+ while (iter.hasNext()) {
+ assertThat(iter.next(), is(factory.create(valueIter.next())));
+ }
+ }
}
Modified:
trunk/dna-spi/src/test/java/org/jboss/dna/spi/graph/impl/DoubleValueFactoryTest.java
===================================================================
---
trunk/dna-spi/src/test/java/org/jboss/dna/spi/graph/impl/DoubleValueFactoryTest.java 2008-08-07
15:42:07 UTC (rev 399)
+++
trunk/dna-spi/src/test/java/org/jboss/dna/spi/graph/impl/DoubleValueFactoryTest.java 2008-08-07
16:17:48 UTC (rev 400)
@@ -28,8 +28,11 @@
import java.io.StringReader;
import java.math.BigDecimal;
import java.net.URI;
+import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
+import java.util.Iterator;
+import java.util.List;
import org.jboss.dna.spi.graph.Name;
import org.jboss.dna.spi.graph.Path;
import org.jboss.dna.spi.graph.Reference;
@@ -169,4 +172,16 @@
public void
shouldNotCreateDoubleFromReaderContainingStringWithContentsOtherThanDouble() throws
Exception {
factory.create(new
ByteArrayInputStream("something".getBytes("UTF-8")));
}
+
+ @Test
+ public void shouldCreateIteratorOverValuesWhenSuppliedIteratorOfUnknownObjects() {
+ List<String> values = new ArrayList<String>();
+ for (int i = 0; i != 10; ++i)
+ values.add("" + i);
+ Iterator<Double> iter = factory.create(values.iterator());
+ Iterator<String> valueIter = values.iterator();
+ while (iter.hasNext()) {
+ assertThat(iter.next(), is(factory.create(valueIter.next())));
+ }
+ }
}
Modified:
trunk/dna-spi/src/test/java/org/jboss/dna/spi/graph/impl/InMemoryBinaryValueFactoryTest.java
===================================================================
---
trunk/dna-spi/src/test/java/org/jboss/dna/spi/graph/impl/InMemoryBinaryValueFactoryTest.java 2008-08-07
15:42:07 UTC (rev 399)
+++
trunk/dna-spi/src/test/java/org/jboss/dna/spi/graph/impl/InMemoryBinaryValueFactoryTest.java 2008-08-07
16:17:48 UTC (rev 400)
@@ -21,6 +21,7 @@
*/
package org.jboss.dna.spi.graph.impl;
+import static org.hamcrest.core.Is.is;
import static org.jboss.dna.spi.graph.impl.BinaryContains.hasContent;
import static org.junit.Assert.assertThat;
import java.io.ByteArrayInputStream;
@@ -28,10 +29,14 @@
import java.io.UnsupportedEncodingException;
import java.math.BigDecimal;
import java.net.URI;
+import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
+import java.util.Iterator;
+import java.util.List;
import java.util.UUID;
import org.jboss.dna.common.text.TextEncoder;
+import org.jboss.dna.spi.graph.Binary;
import org.jboss.dna.spi.graph.Name;
import org.jboss.dna.spi.graph.Path;
import org.jboss.dna.spi.graph.Reference;
@@ -135,13 +140,15 @@
@Test
public void shouldCreateBinaryFromName() throws UnsupportedEncodingException {
Name value = nameFactory.create("jboss:localName");
- assertThat(factory.create(value), hasContent("{" +
encoder.encode("http://www.jboss.org") + "}" +
encoder.encode("localName")));
+ assertThat(factory.create(value), hasContent("{" +
encoder.encode("http://www.jboss.org") + "}"
+ +
encoder.encode("localName")));
}
@Test
public void shouldCreateBinaryFromPath() throws UnsupportedEncodingException {
Path value = pathFactory.create("/a/b/c/jboss:localName");
- assertThat(factory.create(value), hasContent("/{}a/{}b/{}c/{" +
encoder.encode("http://www.jboss.org") + "}" +
encoder.encode("localName")));
+ assertThat(factory.create(value), hasContent("/{}a/{}b/{}c/{" +
encoder.encode("http://www.jboss.org") + "}"
+ +
encoder.encode("localName")));
}
@Test
@@ -174,4 +181,16 @@
String value = "Some test string";
assertThat(factory.create(new StringReader(value)), hasContent(value));
}
+
+ @Test
+ public void shouldCreateIteratorOverValuesWhenSuppliedIteratorOfUnknownObjects() {
+ List<String> values = new ArrayList<String>();
+ for (int i = 0; i != 10; ++i)
+ values.add("some string" + i);
+ Iterator<Binary> iter = factory.create(values.iterator());
+ Iterator<String> valueIter = values.iterator();
+ while (iter.hasNext()) {
+ assertThat(iter.next(), is(factory.create(valueIter.next())));
+ }
+ }
}
Modified:
trunk/dna-spi/src/test/java/org/jboss/dna/spi/graph/impl/JodaDateTimeValueFactoryTest.java
===================================================================
---
trunk/dna-spi/src/test/java/org/jboss/dna/spi/graph/impl/JodaDateTimeValueFactoryTest.java 2008-08-07
15:42:07 UTC (rev 399)
+++
trunk/dna-spi/src/test/java/org/jboss/dna/spi/graph/impl/JodaDateTimeValueFactoryTest.java 2008-08-07
16:17:48 UTC (rev 400)
@@ -28,7 +28,10 @@
import java.io.StringReader;
import java.math.BigDecimal;
import java.net.URI;
+import java.util.ArrayList;
import java.util.Calendar;
+import java.util.Iterator;
+import java.util.List;
import org.jboss.dna.spi.graph.DateTime;
import org.jboss.dna.spi.graph.Name;
import org.jboss.dna.spi.graph.Path;
@@ -177,4 +180,17 @@
public void
shouldNotCreateDateFromReaderContainingStringWithContentThatIsNotWellFormedDate() throws
Exception {
factory.create(new
ByteArrayInputStream("something".getBytes("UTF-8")));
}
+
+ @Test
+ public void shouldCreateIteratorOverValuesWhenSuppliedIteratorOfUnknownObjects() {
+ List<String> values = new ArrayList<String>();
+ for (int i = 0; i != 10; ++i) {
+ values.add(new JodaDateTime(10000 + i).toString());
+ }
+ Iterator<DateTime> iter = factory.create(values.iterator());
+ Iterator<String> valueIter = values.iterator();
+ while (iter.hasNext()) {
+ assertThat(iter.next(), is(factory.create(valueIter.next())));
+ }
+ }
}
Modified:
trunk/dna-spi/src/test/java/org/jboss/dna/spi/graph/impl/LongValueFactoryTest.java
===================================================================
---
trunk/dna-spi/src/test/java/org/jboss/dna/spi/graph/impl/LongValueFactoryTest.java 2008-08-07
15:42:07 UTC (rev 399)
+++
trunk/dna-spi/src/test/java/org/jboss/dna/spi/graph/impl/LongValueFactoryTest.java 2008-08-07
16:17:48 UTC (rev 400)
@@ -28,8 +28,11 @@
import java.io.StringReader;
import java.math.BigDecimal;
import java.net.URI;
+import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
+import java.util.Iterator;
+import java.util.List;
import org.jboss.dna.spi.graph.Name;
import org.jboss.dna.spi.graph.Path;
import org.jboss.dna.spi.graph.Reference;
@@ -171,4 +174,16 @@
public void shouldNotCreateLongFromReaderContainingStringWithContentsOtherThanLong()
throws Exception {
factory.create(new
ByteArrayInputStream("something".getBytes("UTF-8")));
}
+
+ @Test
+ public void shouldCreateIteratorOverValuesWhenSuppliedIteratorOfUnknownObjects() {
+ List<String> values = new ArrayList<String>();
+ for (int i = 0; i != 10; ++i)
+ values.add(" " + i);
+ Iterator<Long> iter = factory.create(values.iterator());
+ Iterator<String> valueIter = values.iterator();
+ while (iter.hasNext()) {
+ assertThat(iter.next(), is(factory.create(valueIter.next())));
+ }
+ }
}
Modified:
trunk/dna-spi/src/test/java/org/jboss/dna/spi/graph/impl/NameValueFactoryTest.java
===================================================================
---
trunk/dna-spi/src/test/java/org/jboss/dna/spi/graph/impl/NameValueFactoryTest.java 2008-08-07
15:42:07 UTC (rev 399)
+++
trunk/dna-spi/src/test/java/org/jboss/dna/spi/graph/impl/NameValueFactoryTest.java 2008-08-07
16:17:48 UTC (rev 400)
@@ -23,6 +23,9 @@
import static org.hamcrest.core.Is.is;
import static org.junit.Assert.assertThat;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
import org.jboss.dna.common.text.TextDecoder;
import org.jboss.dna.common.text.TextEncoder;
import org.jboss.dna.spi.graph.Name;
@@ -120,4 +123,17 @@
public void shouldNotAllowEmptyLocalNameWithEncoder() {
factory.create("a", "", decoder);
}
+
+ @Test
+ public void shouldCreateIteratorOverValuesWhenSuppliedIteratorOfUnknownObjects() {
+ List<String> values = new ArrayList<String>();
+ for (int i = 0; i != 10; ++i) {
+ values.add("dna:something" + i);
+ }
+ Iterator<Name> iter = factory.create(values.iterator());
+ Iterator<String> valueIter = values.iterator();
+ while (iter.hasNext()) {
+ assertThat(iter.next(), is(factory.create(valueIter.next())));
+ }
+ }
}
Modified:
trunk/dna-spi/src/test/java/org/jboss/dna/spi/graph/impl/PathValueFactoryTest.java
===================================================================
---
trunk/dna-spi/src/test/java/org/jboss/dna/spi/graph/impl/PathValueFactoryTest.java 2008-08-07
15:42:07 UTC (rev 399)
+++
trunk/dna-spi/src/test/java/org/jboss/dna/spi/graph/impl/PathValueFactoryTest.java 2008-08-07
16:17:48 UTC (rev 400)
@@ -25,6 +25,7 @@
import static org.jboss.dna.spi.graph.impl.IsPathContaining.hasSegments;
import static org.junit.Assert.assertThat;
import java.util.ArrayList;
+import java.util.Iterator;
import java.util.List;
import org.jboss.dna.common.text.TextEncoder;
import org.jboss.dna.spi.graph.Name;
@@ -116,4 +117,17 @@
assertThat(path.compareTo(path2), is(0));
}
+ @Test
+ public void shouldCreateIteratorOverValuesWhenSuppliedIteratorOfUnknownObjects() {
+ List<String> values = new ArrayList<String>();
+ for (int i = 0; i != 10; ++i) {
+ values.add("/a/b/c/d/dna:e/dna:f" + i);
+ }
+ Iterator<Path> iter = factory.create(values.iterator());
+ Iterator<String> valueIter = values.iterator();
+ while (iter.hasNext()) {
+ assertThat(iter.next(), is(factory.create(valueIter.next())));
+ }
+ }
+
}
Modified:
trunk/dna-spi/src/test/java/org/jboss/dna/spi/graph/impl/UuidValueFactoryTest.java
===================================================================
---
trunk/dna-spi/src/test/java/org/jboss/dna/spi/graph/impl/UuidValueFactoryTest.java 2008-08-07
15:42:07 UTC (rev 399)
+++
trunk/dna-spi/src/test/java/org/jboss/dna/spi/graph/impl/UuidValueFactoryTest.java 2008-08-07
16:17:48 UTC (rev 400)
@@ -29,7 +29,10 @@
import java.io.ByteArrayInputStream;
import java.io.StringReader;
import java.net.URI;
+import java.util.ArrayList;
import java.util.Calendar;
+import java.util.Iterator;
+import java.util.List;
import java.util.UUID;
import org.jboss.dna.spi.graph.Name;
import org.jboss.dna.spi.graph.Path;
@@ -161,4 +164,17 @@
public void
shouldNotCreateUuuidFromReaderContainingStringWithContentsOtherThanUuuid() throws
Exception {
factory.create(new
ByteArrayInputStream("something".getBytes("UTF-8")));
}
+
+ @Test
+ public void shouldCreateIteratorOverValuesWhenSuppliedIteratorOfUnknownObjects() {
+ List<String> values = new ArrayList<String>();
+ for (int i = 0; i != 10; ++i) {
+ values.add(" " + UUID.randomUUID());
+ }
+ Iterator<UUID> iter = factory.create(values.iterator());
+ Iterator<String> valueIter = values.iterator();
+ while (iter.hasNext()) {
+ assertThat(iter.next(), is(factory.create(valueIter.next())));
+ }
+ }
}