[dna-commits] DNA SVN: r528 - 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
Wed Sep 17 16:11:01 EDT 2008


Author: jverhaeg at redhat.com
Date: 2008-09-17 16:11:01 -0400 (Wed, 17 Sep 2008)
New Revision: 528

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
Log:
DNA-226: Added method create(Iterable<?>) to ValueFactory and a corresponding impl to AbstractValueFactory.  I also added a create(Iterator<?>) impl in AbstractValueFactory that allowed me to remove the impls in each concrete class.

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-09-17 18:57:47 UTC (rev 527)
+++ trunk/dna-spi/src/main/java/org/jboss/dna/spi/graph/ValueFactory.java	2008-09-17 20:11:01 UTC (rev 528)
@@ -458,4 +458,29 @@
      */
     Iterator<T> create( Iterator<?> values ) throws ValueFormatException, IoException;
 
+    /**
+     * Create an iterable with the values (of an unknown type). The factory converts any values as required. Note that this method
+     * will not consider {@link #create(InputStream, long)}, {@link #create(Reader, long)} and
+     * {@link #create(String, TextDecoder)}.
+     * <p>
+     * This is useful to use when converting all the {@link Property#getValues() values} of a {@link Property}.
+     * </p>
+     * Example:
+     * 
+     * <pre>
+     *      Property property = ...
+     *      ExecutionContext executionContext = ...
+     *      ValueFactory&lt;String&gt; stringFactory = executionContext.getValueFactories().getStringFactory();
+     *      for (String token : stringFactory.create(property)) {
+     *          ...
+     *      }
+     * </pre>
+     * 
+     * @param valueIterable the values
+     * @return the iterator of type <code>T</code> over the values, or null if the supplied parameter is null
+     * @throws ValueFormatException if the conversion from an iterator of objects could not be performed
+     * @throws IoException If an unexpected problem occurs during the conversion.
+     * @see Property#getValues()
+     */
+    Iterable<T> create( Iterable<?> valueIterable ) throws ValueFormatException, 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-09-17 18:57:47 UTC (rev 527)
+++ trunk/dna-spi/src/main/java/org/jboss/dna/spi/graph/impl/AbstractValueFactory.java	2008-09-17 20:11:01 UTC (rev 528)
@@ -378,6 +378,29 @@
         return result;
     }
 
+    /**
+     * {@inheritDoc}
+     * 
+     * @see org.jboss.dna.spi.graph.ValueFactory#create(java.util.Iterator)
+     */
+    public Iterator<T> create( Iterator<?> values ) throws ValueFormatException, IoException {
+        return new ConvertingIterator<T>(values, this);
+    }
+
+    /**
+     * {@inheritDoc}
+     * 
+     * @see org.jboss.dna.spi.graph.ValueFactory#create(java.lang.Iterable)
+     */
+    public Iterable<T> create( final Iterable<?> valueIterable ) throws ValueFormatException, IoException {
+        return new Iterable<T>() {
+
+            public Iterator<T> iterator() {
+                return create(valueIterable.iterator());
+            }
+        };
+    }
+
     protected static class ConvertingIterator<ValueType> implements Iterator<ValueType> {
         private final Iterator<?> delegate;
         private final ValueFactory<ValueType> factory;

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-09-17 18:57:47 UTC (rev 527)
+++ trunk/dna-spi/src/main/java/org/jboss/dna/spi/graph/impl/BooleanValueFactory.java	2008-09-17 20:11:01 UTC (rev 528)
@@ -27,7 +27,6 @@
 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;
@@ -241,16 +240,7 @@
 
     /**
      * {@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-09-17 18:57:47 UTC (rev 527)
+++ trunk/dna-spi/src/main/java/org/jboss/dna/spi/graph/impl/DecimalValueFactory.java	2008-09-17 20:11:01 UTC (rev 528)
@@ -27,7 +27,6 @@
 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;
@@ -236,16 +235,7 @@
 
     /**
      * {@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-09-17 18:57:47 UTC (rev 527)
+++ trunk/dna-spi/src/main/java/org/jboss/dna/spi/graph/impl/DoubleValueFactory.java	2008-09-17 20:11:01 UTC (rev 528)
@@ -27,7 +27,6 @@
 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,16 +243,7 @@
 
     /**
      * {@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-09-17 18:57:47 UTC (rev 527)
+++ trunk/dna-spi/src/main/java/org/jboss/dna/spi/graph/impl/InMemoryBinaryValueFactory.java	2008-09-17 20:11:01 UTC (rev 528)
@@ -29,7 +29,6 @@
 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;
@@ -250,16 +249,7 @@
 
     /**
      * {@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-09-17 18:57:47 UTC (rev 527)
+++ trunk/dna-spi/src/main/java/org/jboss/dna/spi/graph/impl/JodaDateTimeValueFactory.java	2008-09-17 20:11:01 UTC (rev 528)
@@ -27,7 +27,6 @@
 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;
@@ -310,16 +309,7 @@
 
     /**
      * {@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-09-17 18:57:47 UTC (rev 527)
+++ trunk/dna-spi/src/main/java/org/jboss/dna/spi/graph/impl/LongValueFactory.java	2008-09-17 20:11:01 UTC (rev 528)
@@ -27,7 +27,6 @@
 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;
@@ -237,16 +236,7 @@
 
     /**
      * {@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-09-17 18:57:47 UTC (rev 527)
+++ trunk/dna-spi/src/main/java/org/jboss/dna/spi/graph/impl/NameValueFactory.java	2008-09-17 20:11:01 UTC (rev 528)
@@ -27,7 +27,6 @@
 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;
@@ -329,15 +328,6 @@
     }
 
     /**
-     * {@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-09-17 18:57:47 UTC (rev 527)
+++ trunk/dna-spi/src/main/java/org/jboss/dna/spi/graph/impl/ObjectValueFactory.java	2008-09-17 20:11:01 UTC (rev 528)
@@ -27,7 +27,6 @@
 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;
@@ -239,16 +238,7 @@
 
     /**
      * {@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-09-17 18:57:47 UTC (rev 527)
+++ trunk/dna-spi/src/main/java/org/jboss/dna/spi/graph/impl/PathValueFactory.java	2008-09-17 20:11:01 UTC (rev 528)
@@ -28,7 +28,6 @@
 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;
@@ -631,16 +630,7 @@
 
     /**
      * {@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-09-17 18:57:47 UTC (rev 527)
+++ trunk/dna-spi/src/main/java/org/jboss/dna/spi/graph/impl/StringValueFactory.java	2008-09-17 20:11:01 UTC (rev 528)
@@ -29,7 +29,6 @@
 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;
@@ -285,16 +284,7 @@
 
     /**
      * {@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-09-17 18:57:47 UTC (rev 527)
+++ trunk/dna-spi/src/main/java/org/jboss/dna/spi/graph/impl/UriValueFactory.java	2008-09-17 20:11:01 UTC (rev 528)
@@ -28,7 +28,6 @@
 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;
@@ -257,16 +256,7 @@
 
     /**
      * {@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-09-17 18:57:47 UTC (rev 527)
+++ trunk/dna-spi/src/main/java/org/jboss/dna/spi/graph/impl/UuidReferenceValueFactory.java	2008-09-17 20:11:01 UTC (rev 528)
@@ -27,7 +27,6 @@
 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;
@@ -247,16 +246,7 @@
 
     /**
      * {@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-09-17 18:57:47 UTC (rev 527)
+++ trunk/dna-spi/src/main/java/org/jboss/dna/spi/graph/impl/UuidValueFactory.java	2008-09-17 20:11:01 UTC (rev 528)
@@ -27,7 +27,6 @@
 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;
@@ -263,16 +262,7 @@
 
     /**
      * {@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-09-17 18:57:47 UTC (rev 527)
+++ trunk/dna-spi/src/test/java/org/jboss/dna/spi/graph/impl/AbstractValueFactoryTest.java	2008-09-17 20:11:01 UTC (rev 528)
@@ -32,7 +32,6 @@
 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;
@@ -147,16 +146,7 @@
 
         /**
          * {@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];




More information about the dna-commits mailing list