Example usage for org.springframework.batch.item.file FlatFileItemReader setLineMapper

List of usage examples for org.springframework.batch.item.file FlatFileItemReader setLineMapper

Introduction

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

Prototype

public void setLineMapper(LineMapper<T> lineMapper) 

Source Link

Document

Setter for line mapper.

Usage

From source file:com.cocktail.initializer.ItemReader.java

/**
 * Read items.//from  w  w  w.  ja  v a2s  . c o  m
 *
 * @param <I>
 *            the generic type
 * @param path
 *            the path
 * @param itemMapper
 *            the item mapper
 * @return the list
 * @throws Exception
 *             the exception
 */
public static <I> List<I> readItems(String path, FieldSetMapper<I> itemMapper) throws Exception {

    ClassPathResource resource = new ClassPathResource(path);
    Scanner scanner = new Scanner(resource.getInputStream());
    String line = scanner.nextLine();
    scanner.close();

    FlatFileItemReader<I> itemReader = new FlatFileItemReader<I>();
    itemReader.setResource(resource);

    // DelimitedLineTokenizer defaults to | as its delimiter
    DelimitedLineTokenizer tokenizer = new DelimitedLineTokenizer("|");
    tokenizer.setNames(line.split("\\|"));
    tokenizer.setStrict(false);

    DefaultLineMapper<I> lineMapper = new DefaultLineMapper<I>();
    lineMapper.setLineTokenizer(tokenizer);
    lineMapper.setFieldSetMapper(itemMapper);
    itemReader.setLineMapper(lineMapper);
    itemReader.setRecordSeparatorPolicy(new DefaultRecordSeparatorPolicy());
    itemReader.setLinesToSkip(1);
    itemReader.open(new ExecutionContext());

    List<I> items = new ArrayList<>();
    I item = null;

    do {

        item = itemReader.read();

        if (item != null) {
            items.add(item);
        }

    } while (item != null);

    return items;
}

From source file:example.store.StoreInitializer.java

/**
 * Reads a file {@code starbucks.csv} from the class path and parses it into {@link Store} instances about to
 * persisted./*from   w  w w. j a  v a  2s. c o m*/
 *
 * @return
 * @throws Exception
 */
public static List<Store> readStores() throws Exception {

    ClassPathResource resource = new ClassPathResource("starbucks.csv");
    Scanner scanner = new Scanner(resource.getInputStream());
    String line = scanner.nextLine();
    scanner.close();

    FlatFileItemReader<Store> itemReader = new FlatFileItemReader<Store>();
    itemReader.setResource(resource);

    // DelimitedLineTokenizer defaults to comma as its delimiter
    DelimitedLineTokenizer tokenizer = new DelimitedLineTokenizer();
    tokenizer.setNames(line.split(","));
    tokenizer.setStrict(false);

    DefaultLineMapper<Store> lineMapper = new DefaultLineMapper<Store>();
    lineMapper.setLineTokenizer(tokenizer);
    lineMapper.setFieldSetMapper(StoreFieldSetMapper.INSTANCE);
    itemReader.setLineMapper(lineMapper);
    itemReader.setRecordSeparatorPolicy(new DefaultRecordSeparatorPolicy());
    itemReader.setLinesToSkip(1);
    itemReader.open(new ExecutionContext());

    List<Store> stores = new ArrayList<>();
    Store store = null;

    do {

        store = itemReader.read();

        if (store != null) {
            stores.add(store);
        }

    } while (store != null);

    return stores;
}

From source file:example.springdata.rest.stores.StoreInitializer.java

/**
 * Reads a file {@code starbucks.csv} from the class path and parses it into {@link Store} instances about to
 * persisted./*  ww  w  .  j a  va2 s .  co m*/
 * 
 * @return
 * @throws Exception
 */
public static List<Store> readStores() throws Exception {

    ClassPathResource resource = new ClassPathResource("starbucks.csv");
    Scanner scanner = new Scanner(resource.getInputStream());
    String line = scanner.nextLine();
    scanner.close();

    FlatFileItemReader<Store> itemReader = new FlatFileItemReader<Store>();
    itemReader.setResource(resource);

    // DelimitedLineTokenizer defaults to comma as its delimiter
    DelimitedLineTokenizer tokenizer = new DelimitedLineTokenizer();
    tokenizer.setNames(line.split(","));
    tokenizer.setStrict(false);

    DefaultLineMapper<Store> lineMapper = new DefaultLineMapper<Store>();
    lineMapper.setFieldSetMapper(fields -> {

        Point location = new Point(fields.readDouble("Longitude"), fields.readDouble("Latitude"));
        Address address = new Address(fields.readString("Street Address"), fields.readString("City"),
                fields.readString("Zip"), location);

        return new Store(fields.readString("Name"), address);
    });

    lineMapper.setLineTokenizer(tokenizer);
    itemReader.setLineMapper(lineMapper);
    itemReader.setRecordSeparatorPolicy(new DefaultRecordSeparatorPolicy());
    itemReader.setLinesToSkip(1);
    itemReader.open(new ExecutionContext());

    List<Store> stores = new ArrayList<>();
    Store store = null;

    do {

        store = itemReader.read();

        if (store != null) {
            stores.add(store);
        }

    } while (store != null);

    return stores;
}

From source file:io.spring.batch.configuration.BatchConfiguration.java

@Bean
@StepScope/*  w ww.j  a  va2s. c  o m*/
protected FlatFileItemReader<Customer> reader(@Value("#{jobParameters['fileName']}") Resource fileName)
        throws Exception {
    DefaultLineMapper<Customer> defaultLineMapper = new DefaultLineMapper<>();
    defaultLineMapper.setLineTokenizer(new DelimitedLineTokenizer());
    defaultLineMapper.setFieldSetMapper(new FieldSetMapper<Customer>() {
        @Override
        public Customer mapFieldSet(FieldSet fieldSet) throws BindException {
            Customer cust = new Customer();

            cust.setCustomerName(fieldSet.readString(0));
            cust.setQty(fieldSet.readInt(1));

            return cust;
        }
    });

    defaultLineMapper.afterPropertiesSet();

    FlatFileItemReader<Customer> reader = new FlatFileItemReader<>();
    reader.setLineMapper(defaultLineMapper);
    reader.setResource(fileName);
    reader.afterPropertiesSet();

    return reader;
}

From source file:de.codecentric.batch.jobs.FlatFileJobConfiguration.java

@Bean
public ItemReader<String> reader() {
    FlatFileItemReader<String> reader = new FlatFileItemReader<String>();
    reader.setResource(new ClassPathResource("in-javaconfig.txt"));
    reader.setLineMapper(new PassThroughLineMapper());
    return reader;
}

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

@Bean
@Scope("step")/*from w ww .j  ava 2 s.  c  o  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:de.codecentric.batch.jobs.FlatFileToDbNoSkipJobConfiguration.java

@Bean
@StepScope//w  ww . j a  va2  s.  c  o  m
public FlatFileItemReader<Item> flatFileItemReader(@Value("#{jobParameters[pathToFile]}") String pathToFile) {
    FlatFileItemReader<Item> itemReader = new FlatFileItemReader<Item>();
    itemReader.setLineMapper(lineMapper());
    itemReader.setResource(new FileSystemResource("src/test/resources/" + pathToFile));
    return itemReader;
}

From source file:de.langmi.spring.batch.examples.readers.support.CompositeItemStreamReaderTest.java

/**
 * Helpermethod to create FlatFileItemReader, sets the name too, to make restart
 * scenario possible - otherwise one flatFileItemReader would overwrite the 
 * other (in context)./*from  www  . j  ava2  s.c o  m*/
 *
 * @param inputFile
 * @return configured FlatFileItemReader cast as ItemStreamReader
 */
private ItemStreamReader<String> createFlatFileItemReader(final String inputFile) {
    FlatFileItemReader<String> ffir = new FlatFileItemReader<String>();
    // init reader
    ffir.setLineMapper(new PassThroughLineMapper());
    ffir.setResource(new FileSystemResource(inputFile));
    ffir.setName(inputFile);

    return (ItemStreamReader<String>) ffir;
}

From source file:de.langmi.spring.batch.examples.readers.file.zip.ZipMultiResourceItemReaderTest.java

/**
 * Helper method to setup the used MultiResourceItemReader.
 *
 * @param mReader//www.  j  a va  2s  . c o m
 * @throws Exception 
 */
private void generalMultiResourceReaderSetup(ZipMultiResourceItemReader<String> mReader) throws Exception {
    // setup delegate
    FlatFileItemReader<String> reader = new FlatFileItemReader<String>();
    reader.setLineMapper(new PassThroughLineMapper());
    mReader.setDelegate(reader);
}

From source file:io.spring.marchmadness.MooreStatConfiguration.java

@Bean
public ItemReader<MooreNcaaStat> reader(ResourceLoader resourceLoader) {
    FlatFileItemReader<MooreNcaaStat> reader = new FlatFileItemReader<MooreNcaaStat>();
    reader.setResource(resourceLoader.getResource("file:" + inputFileName));
    reader.setLineMapper(new DefaultLineMapper<MooreNcaaStat>() {
        {/*from   w ww . ja  va 2  s  .c o m*/
            setLineTokenizer(new DelimitedLineTokenizer() {
                {
                    setNames(new String[] { "year", "rank", "name", "win", "loss", "tie", "sos", "pr" });
                }
            });
            setFieldSetMapper(new BeanWrapperFieldSetMapper<MooreNcaaStat>() {
                {
                    setTargetType(MooreNcaaStat.class);
                }
            });
        }
    });
    return reader;
}