Example usage for org.springframework.batch.item.file.mapping PassThroughFieldSetMapper PassThroughFieldSetMapper

List of usage examples for org.springframework.batch.item.file.mapping PassThroughFieldSetMapper PassThroughFieldSetMapper

Introduction

In this page you can find the example usage for org.springframework.batch.item.file.mapping PassThroughFieldSetMapper PassThroughFieldSetMapper.

Prototype

PassThroughFieldSetMapper

Source Link

Usage

From source file:de.langmi.spring.batch.examples.readers.file.csv.CsvFlatFileItemReaderTest.java

/**
 * Test should read succesfully.//w  w w  .j a  va2 s.c o  m
 *
 * @throws Exception 
 */
@Test
public void testSuccessfulReading() throws Exception {
    // init linetokenizer
    DelimitedLineTokenizer lineTokenizer = new DelimitedLineTokenizer();
    lineTokenizer.setNames(new String[] { "id", "value" });
    // init linemapper
    DefaultLineMapper<FieldSet> lineMapper = new DefaultLineMapper<FieldSet>();
    lineMapper.setLineTokenizer(lineTokenizer);
    lineMapper.setFieldSetMapper(new PassThroughFieldSetMapper());
    // init reader
    reader.setLineMapper(lineMapper);
    reader.setResource(new FileSystemResource(INPUT_FILE));
    // open, provide "mock" ExecutionContext
    reader.open(MetaDataInstanceFactory.createStepExecution().getExecutionContext());
    // read
    try {
        int count = 0;
        FieldSet line;
        while ((line = reader.read()) != null) {
            // really test for the fieldSet names and values
            assertEquals("id", line.getNames()[0]);
            assertEquals(String.valueOf(count), line.getValues()[0]);
            assertEquals("value", line.getNames()[1]);
            // csv contains entry like '0,foo0'
            assertEquals("foo" + String.valueOf(count), line.getValues()[1]);
            count++;
        }
        assertEquals(EXPECTED_COUNT, count);
    } catch (Exception e) {
        throw e;
    } finally {
        reader.close();
    }
}

From source file:com.springsource.html5expense.config.BatchConfig.java

@Bean
@Scope("step")//  w  w  w .j a  v  a2  s.  co  m
public FlatFileItemReader reader(@Value("#{jobParameters[file]}") String resource) {

    File f = new File(this.batchFileDirectory, resource + ".csv");

    DelimitedLineTokenizer del = new DelimitedLineTokenizer();
    del.setNames("date,amount,category,merchant".split(","));
    del.setDelimiter(DelimitedLineTokenizer.DELIMITER_COMMA);

    DefaultLineMapper<FieldSet> defaultLineMapper = new DefaultLineMapper<FieldSet>();
    defaultLineMapper.setLineTokenizer(del);
    defaultLineMapper.setFieldSetMapper(new PassThroughFieldSetMapper());
    defaultLineMapper.afterPropertiesSet();

    FlatFileItemReader<FieldSet> fileItemReader = new FlatFileItemReader<FieldSet>();
    fileItemReader.setLineMapper(defaultLineMapper);
    fileItemReader.setResource(new FileSystemResource(f));

    return fileItemReader;
}

From source file:org.springframework.batch.admin.sample.LeadRandomizer.java

@Test
public void testLeads() throws Exception {

    FlatFileItemReader<FieldSet> reader = new FlatFileItemReader<FieldSet>();
    reader.setResource(new ClassPathResource("/data/test.txt"));
    DefaultLineMapper<FieldSet> lineMapper = new DefaultLineMapper<FieldSet>();
    lineMapper.setLineTokenizer(new DelimitedLineTokenizer());
    lineMapper.setFieldSetMapper(new PassThroughFieldSetMapper());
    reader.setLinesToSkip(1);//from  w w w  . j a va  2s. c o  m
    final List<String> headers = new ArrayList<String>();
    reader.setSkippedLinesCallback(new LineCallbackHandler() {
        public void handleLine(String line) {
            headers.add(line);
        }
    });
    reader.setLineMapper(lineMapper);
    reader.open(new ExecutionContext());

    List<FieldSet> list = new ArrayList<FieldSet>();
    FieldSet item = reader.read();
    while (item != null) {
        list.add(item);
        item = reader.read();
    }
    assertEquals(7, list.size());

    FlatFileItemWriter<FieldSet> writer = new FlatFileItemWriter<FieldSet>();
    FileSystemResource resource = new FileSystemResource("target/output/output.txt");
    FileUtils.deleteQuietly(resource.getFile());
    writer.setResource(resource);
    writer.setHeaderCallback(new FlatFileHeaderCallback() {
        public void writeHeader(Writer writer) throws IOException {
            for (String header : headers) {
                writer.write(header);
            }
        }
    });
    writer.setLineAggregator(new DelimitedLineAggregator<FieldSet>());
    writer.open(new ExecutionContext());

    String[] names = getFields(list, 1);
    String[] country = getFields(list, 2);
    String[] products = getFields(list, 3);
    double[] amounts = getMinMax(list, 4);

    NumberFormat formatter = new DecimalFormat("#.##");
    int count = 20;
    for (int i = 0; i < 100; i++) {
        List<FieldSet> items = new ArrayList<FieldSet>();
        for (FieldSet fieldSet : list) {
            String[] values = fieldSet.getValues();
            values[0] = "" + (count++);
            values[1] = choose(names);
            values[2] = choose(country);
            values[3] = choose(products);
            values[4] = formatter.format(random(amounts));
            items.add(new DefaultFieldSet(values));
        }
        writer.write(items);
    }
    writer.close();

}