diff --git a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/support/DelegatingItemWriter.java b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/support/DelegatingItemWriter.java
index 74beb343f..5f4ef6501 100644
--- a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/support/DelegatingItemWriter.java
+++ b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/support/DelegatingItemWriter.java
@@ -11,24 +11,28 @@ import org.springframework.util.Assert;
*
* The implementation is thread-safe if the delegate is thread-safe.
*
+ * I is the type of item expected as input, O it the
+ * type of item after transformation that is passed to
+ * {@link #setDelegate(ItemWriter)}.
+ *
* @author Dave Syer
* @author Robert Kasanicky
*/
-public class DelegatingItemWriter implements ItemWriter, InitializingBean {
+public class DelegatingItemWriter implements ItemWriter, InitializingBean {
+
+ private ItemWriter delegate;
- private ItemWriter delegate;
-
/**
* Default constructor.
*/
public DelegatingItemWriter() {
super();
}
-
+
/**
* @param itemWriter
*/
- public DelegatingItemWriter(ItemWriter itemWriter) {
+ public DelegatingItemWriter(ItemWriter itemWriter) {
this();
this.delegate = itemWriter;
}
@@ -36,28 +40,29 @@ public class DelegatingItemWriter implements ItemWriter, InitializingBean {
/**
* Calls {@link #doProcess(Object)} and then writes the result to the
* delegate {@link ItemWriter}.
- * @throws Exception
+ * @throws Exception
*
* @see ItemWriter#write(Object)
*/
- public void write(Object item) throws Exception {
- Object result = doProcess(item);
+ public void write(I item) throws Exception {
+ O result = doProcess(item);
delegate.write(result);
}
/**
* By default returns the argument. This method is an extension point meant
* to be overridden by subclasses that implement processing logic.
- * @throws Exception
+ * @throws Exception
*/
- protected Object doProcess(Object item) throws Exception {
- return item;
+ @SuppressWarnings("unchecked")
+ protected O doProcess(I item) throws Exception {
+ return (O) item;
}
/**
* Setter for {@link ItemWriter}.
*/
- public void setDelegate(ItemWriter writer) {
+ public void setDelegate(ItemWriter writer) {
this.delegate = writer;
}
diff --git a/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/database/BatchSqlUpdateItemWriterTests.java b/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/database/BatchSqlUpdateItemWriterTests.java
index fb65ea486..31906f251 100644
--- a/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/database/BatchSqlUpdateItemWriterTests.java
+++ b/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/database/BatchSqlUpdateItemWriterTests.java
@@ -41,7 +41,7 @@ import org.springframework.transaction.support.TransactionSynchronizationManager
*/
public class BatchSqlUpdateItemWriterTests extends TestCase {
- private BatchSqlUpdateItemWriter writer = new BatchSqlUpdateItemWriter();
+ private BatchSqlUpdateItemWriter writer = new BatchSqlUpdateItemWriter();
private JdbcTemplate jdbcTemplate;
diff --git a/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/database/HibernateAwareItemWriterTests.java b/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/database/HibernateAwareItemWriterTests.java
index 8b3241a15..b274b1b9c 100644
--- a/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/database/HibernateAwareItemWriterTests.java
+++ b/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/database/HibernateAwareItemWriterTests.java
@@ -44,7 +44,7 @@ public class HibernateAwareItemWriterTests extends TestCase {
};
}
- private class StubItemWriter implements ItemWriter {
+ private class StubItemWriter implements ItemWriter