Author: jverhaeg(a)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<String> 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];