IN PROGRESS - BATCH-863: introduce LineMapper interface to encapsulate string-to-item mapping

replacing FFIR with RLR
This commit is contained in:
robokaso
2008-10-07 08:19:43 +00:00
parent e304b1bdb7
commit 0a0bf5b8f2
2 changed files with 17 additions and 11 deletions

View File

@@ -2,16 +2,15 @@ package org.springframework.batch.item.file;
import java.util.Comparator;
import org.junit.internal.runners.JUnit4ClassRunner;
import org.junit.runner.RunWith;
import org.springframework.batch.item.CommonItemStreamItemReaderTests;
import org.springframework.batch.item.ExecutionContext;
import org.springframework.batch.item.ItemReader;
import org.springframework.batch.item.file.mapping.FieldSet;
import org.springframework.batch.item.file.mapping.FieldSetMapper;
import org.springframework.batch.item.file.mapping.LineMapper;
import org.springframework.batch.item.sample.Foo;
import org.springframework.core.io.ByteArrayResource;
import org.springframework.core.io.Resource;
import org.junit.runner.RunWith;
import org.junit.internal.runners.JUnit4ClassRunner;
@RunWith(JUnit4ClassRunner.class)
public class MultiResourceItemReaderFlatFileTests extends
@@ -20,14 +19,16 @@ public class MultiResourceItemReaderFlatFileTests extends
protected ItemReader<Foo> getItemReader() throws Exception {
MultiResourceItemReader<Foo> multiReader = new MultiResourceItemReader<Foo>();
FlatFileItemReader<Foo> fileReader = new FlatFileItemReader<Foo>();
ResourceLineReader<Foo> fileReader = new ResourceLineReader<Foo>();
fileReader.setFieldSetMapper(new FieldSetMapper<Foo>() {
public Foo process(FieldSet fs) {
fileReader.setLineMapper(new LineMapper<Foo>() {
public Foo mapLine(String line, int lineNumber) throws Exception {
Foo foo = new Foo();
foo.setValue(fs.readInt(0));
foo.setValue(Integer.valueOf(line));
return foo;
}
});
fileReader.setSaveState(true);

View File

@@ -22,9 +22,11 @@ import junit.framework.TestCase;
import org.springframework.batch.item.ExecutionContext;
import org.springframework.batch.item.ItemWriter;
import org.springframework.batch.item.file.FlatFileItemReader;
import org.springframework.batch.item.file.ResourceLineReader;
import org.springframework.batch.item.file.mapping.DefaultLineMapper;
import org.springframework.batch.item.file.mapping.FieldSet;
import org.springframework.batch.item.file.mapping.FieldSetMapper;
import org.springframework.batch.item.file.transform.DelimitedLineTokenizer;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.Resource;
@@ -50,12 +52,15 @@ public abstract class AbstractTradeBatchTests extends TestCase {
provider.open(new ExecutionContext());
}
protected static class TradeItemReader extends FlatFileItemReader<Trade> {
protected static class TradeItemReader extends ResourceLineReader<Trade> {
protected TradeItemReader(Resource resource) throws Exception {
super();
setResource(resource);
setFieldSetMapper(new TradeMapper());
DefaultLineMapper<Trade> mapper = new DefaultLineMapper<Trade>();
mapper.setLineTokenizer(new DelimitedLineTokenizer());
mapper.setFieldSetMapper(new TradeMapper());
setLineMapper(mapper);
afterPropertiesSet();
}