From 20fcba8b06dd63b80dc571dc5dfc3f835d08ceeb Mon Sep 17 00:00:00 2001 From: robokaso Date: Wed, 23 Jul 2008 13:52:24 +0000 Subject: [PATCH] IN PROGRESS - BATCH-711: Upgrade ItemWriter and implementations to use parameterized types --- .../file/transform/LineAggregatorItemTransformer.java | 6 +++--- .../transform/RecursiveCollectionItemTransformer.java | 1 + .../batch/item/transform/CompositeItemTransformer.java | 10 +++++++--- 3 files changed, 11 insertions(+), 6 deletions(-) diff --git a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/file/transform/LineAggregatorItemTransformer.java b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/file/transform/LineAggregatorItemTransformer.java index 855c9468d..e31fef391 100644 --- a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/file/transform/LineAggregatorItemTransformer.java +++ b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/file/transform/LineAggregatorItemTransformer.java @@ -26,7 +26,7 @@ import org.springframework.batch.item.transform.ItemTransformer; * @author Dave Syer * */ -public class LineAggregatorItemTransformer implements ItemTransformer { +public class LineAggregatorItemTransformer implements ItemTransformer { private LineAggregator aggregator = new DelimitedLineAggregator(); @@ -44,7 +44,7 @@ public class LineAggregatorItemTransformer implements ItemTransformer { * * @see org.springframework.batch.item.transform.ItemTransformer#transform(java.lang.Object) */ - public Object transform(Object item) throws Exception { + public String transform(T item) throws Exception { return aggregator.aggregate(createFieldSet(item)); } @@ -58,7 +58,7 @@ public class LineAggregatorItemTransformer implements ItemTransformer { * * @throws ConversionException if the field set cannot be created */ - protected FieldSet createFieldSet(Object item) throws ConversionException { + protected FieldSet createFieldSet(T item) throws ConversionException { try { return new DefaultFieldSet((String[]) item); } diff --git a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/file/transform/RecursiveCollectionItemTransformer.java b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/file/transform/RecursiveCollectionItemTransformer.java index bb9ee36fe..9eb71ef7f 100644 --- a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/file/transform/RecursiveCollectionItemTransformer.java +++ b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/file/transform/RecursiveCollectionItemTransformer.java @@ -15,6 +15,7 @@ import org.springframework.batch.item.transform.ItemTransformer; * @author Dave Syer * */ +@SuppressWarnings("unchecked") public class RecursiveCollectionItemTransformer implements ItemTransformer { private static final String LINE_SEPARATOR = System.getProperty("line.separator"); diff --git a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/transform/CompositeItemTransformer.java b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/transform/CompositeItemTransformer.java index 740417111..8b1806cdc 100644 --- a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/transform/CompositeItemTransformer.java +++ b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/transform/CompositeItemTransformer.java @@ -11,18 +11,22 @@ import org.springframework.util.Assert; * injected ItemTransformers (return value of previous * transformation is the entry value of the next). * + * Note the user is responsible for injecting a chain of {@link ItemTransformer} + * s that conforms to declared input and output types. + * * @author Robert Kasanicky */ -public class CompositeItemTransformer implements ItemTransformer, InitializingBean { +@SuppressWarnings("unchecked") +public class CompositeItemTransformer implements ItemTransformer, InitializingBean { private List itemTransformers; - public Object transform(Object item) throws Exception { + public O transform(I item) throws Exception { Object result = item; for (Iterator iterator = itemTransformers.listIterator(); iterator.hasNext();) { result = iterator.next().transform(result); } - return result; + return (O) result; } public void afterPropertiesSet() throws Exception {