[dna-commits] DNA SVN: r400 - in trunk/dna-spi/src: main/java/org/jboss/dna/spi/graph/impl and 1 other directories.

dna-commits at lists.jboss.org dna-commits at lists.jboss.org
Thu Aug 7 12:17:48 EDT 2008


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())));
+        }
+    }
 }




More information about the dna-commits mailing list