IN PROGRESS - BATCH-711: Upgrade ItemWriter and implementations to use parameterized types

This commit is contained in:
robokaso
2008-07-22 11:57:20 +00:00
parent 060d296621
commit 7e99df92a0
4 changed files with 16 additions and 18 deletions

View File

@@ -10,12 +10,12 @@ import javax.xml.stream.XMLEventWriter;
* @author Lucas Ward
*
*/
public interface EventWriterSerializer {
public interface EventWriterSerializer<T> {
/**
* Serialize an Object.
*
* @param output
*/
void serializeObject(XMLEventWriter writer, Object output);
void serializeObject(XMLEventWriter writer, T output);
}

View File

@@ -47,7 +47,7 @@ import org.springframework.util.CollectionUtils;
* @author Robert Kasanicky
*
*/
public class StaxEventItemWriter extends ExecutionContextUserSupport implements ItemWriter, ItemStream,
public class StaxEventItemWriter<T> extends ExecutionContextUserSupport implements ItemWriter<T>, ItemStream,
InitializingBean {
// default encoding
@@ -69,7 +69,7 @@ public class StaxEventItemWriter extends ExecutionContextUserSupport implements
private Resource resource;
// xml serializer
private EventWriterSerializer serializer;
private EventWriterSerializer<T> serializer;
// encoding to be used while reading from the resource
private String encoding = DEFAULT_ENCODING;
@@ -113,9 +113,9 @@ public class StaxEventItemWriter extends ExecutionContextUserSupport implements
// holds the list of items for writing before they are actually written on
// #flush()
private List<Object> buffer = new ArrayList<Object>();
private List<T> buffer = new ArrayList<T>();
private List<Object> headers = new ArrayList<Object>();
private List<? extends T> headers = new ArrayList<T>();
public StaxEventItemWriter() {
setName(ClassUtils.getShortName(StaxEventItemWriter.class));
@@ -135,7 +135,7 @@ public class StaxEventItemWriter extends ExecutionContextUserSupport implements
*
* @param serializer the Object to XML serializer
*/
public void setSerializer(EventWriterSerializer serializer) {
public void setSerializer(EventWriterSerializer<T> serializer) {
this.serializer = serializer;
}
@@ -227,7 +227,7 @@ public class StaxEventItemWriter extends ExecutionContextUserSupport implements
* any calls to {@link #write(Object)}.
* @param headers
*/
public void setHeaderItems(Object[] headers) {
public void setHeaderItems(T[] headers) {
this.headers = Arrays.asList(headers);
}
@@ -264,9 +264,8 @@ public class StaxEventItemWriter extends ExecutionContextUserSupport implements
open(startAtPosition);
if (startAtPosition == 0) {
for (Iterator<Object> iterator = headers.listIterator(); iterator.hasNext();) {
Object header = iterator.next();
write(header);
for (Iterator<? extends T> iterator = headers.listIterator(); iterator.hasNext();) {
write(iterator.next());
}
}
}
@@ -391,7 +390,7 @@ public class StaxEventItemWriter extends ExecutionContextUserSupport implements
* @param item the value object
* @see #flush()
*/
public void write(Object item) {
public void write(T item) {
currentRecordCount++;
buffer.add(item);
@@ -456,8 +455,7 @@ public class StaxEventItemWriter extends ExecutionContextUserSupport implements
*/
public void flush() throws FlushFailedException {
for (Iterator<Object> iterator = buffer.listIterator(); iterator.hasNext();) {
Object item = iterator.next();
for (T item : buffer) {
serializer.serializeObject(eventWriter, item);
}
try {

View File

@@ -16,7 +16,7 @@ import org.springframework.xml.transform.StaxResult;
* @author Lucas Ward
*
*/
public class MarshallingEventWriterSerializer implements EventWriterSerializer {
public class MarshallingEventWriterSerializer<T> implements EventWriterSerializer<T> {
private Marshaller marshaller;
@@ -24,7 +24,7 @@ public class MarshallingEventWriterSerializer implements EventWriterSerializer {
this.marshaller = marshaller;
}
public void serializeObject(XMLEventWriter writer, Object output) {
public void serializeObject(XMLEventWriter writer, T output) {
Result result = new StaxResult(writer);
try {
marshaller.marshal(output, result);

View File

@@ -33,9 +33,9 @@ public class ItemReaderRepeatCallback<T> implements RepeatCallback {
ItemReader<T> reader;
ItemWriter writer;
ItemWriter<T> writer;
public ItemReaderRepeatCallback(ItemReader<T> reader, ItemWriter writer) {
public ItemReaderRepeatCallback(ItemReader<T> reader, ItemWriter<T> writer) {
super();
this.reader = reader;
this.writer = writer;