Example usage for org.springframework.batch.item.file.mapping BeanWrapperFieldSetMapper setTargetType

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

Introduction

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

Prototype

public void setTargetType(Class<? extends T> type) 

Source Link

Document

Public setter for the type of bean to create instead of using a prototype bean.

Usage

From source file:my.sandbox.spring.batch.demo.readers.ProductReader.java

public ProductReader() {

    DelimitedLineTokenizer tokenizer = new DelimitedLineTokenizer();
    tokenizer.setNames(new String[] { "description", "price", "purchaseDate" });
    tokenizer.setDelimiter(DelimitedLineTokenizer.DELIMITER_TAB);

    BeanWrapperFieldSetMapper<Product> mapper = new BeanWrapperFieldSetMapper<>();
    mapper.setTargetType(Product.class);

    DefaultLineMapper<Product> defaultLineMapper = new DefaultLineMapper<>();

    defaultLineMapper.setLineTokenizer(tokenizer);
    defaultLineMapper.setFieldSetMapper(mapper);

    setLineMapper(defaultLineMapper);/*from  w  w  w .  j a va 2 s  .  c  om*/
}

From source file:org.my.spring.batch.java.config.demo.readers.ProductReader.java

@Autowired
public ProductReader(@Value("#{jobParameters[inputFile]}") String inputFile) {

    setResource(new FileSystemResource(inputFile));

    DelimitedLineTokenizer tokenizer = new DelimitedLineTokenizer();
    tokenizer.setNames(new String[] { "description", "price", "purchaseDate" });
    tokenizer.setDelimiter(DelimitedLineTokenizer.DELIMITER_TAB);

    BeanWrapperFieldSetMapper<Product> mapper = new BeanWrapperFieldSetMapper<>();
    mapper.setTargetType(Product.class);

    DefaultLineMapper<Product> defaultLineMapper = new DefaultLineMapper<>();

    defaultLineMapper.setLineTokenizer(tokenizer);
    defaultLineMapper.setFieldSetMapper(mapper);

    setLineMapper(defaultLineMapper);//from w  w  w .  j a va  2  s . c om
}

From source file:com.create.batch.TicketReaderFactory.java

public ItemStreamReader<Ticket> createReader(final Resource source) {

    final FlatFileItemReader<Ticket> reader = new FlatFileItemReader<>();
    reader.setResource(source);/*from ww  w .  j  a va 2s  .c  o  m*/
    final DefaultLineMapper<Ticket> lineMapper = new DefaultLineMapper<>();
    final DelimitedLineTokenizer lineTokenizer = new DelimitedLineTokenizer();
    lineTokenizer.setNames(TICKET_FILE_CSV_FIELDS);
    lineMapper.setLineTokenizer(lineTokenizer);
    final BeanWrapperFieldSetMapper<Ticket> fieldMapper = new BeanWrapperFieldSetMapper<>();
    fieldMapper.setTargetType(Ticket.class);
    final DateFormat df = new SimpleDateFormat(DATE_FORMAT);
    final Map<Class, PropertyEditor> customEditors = Stream
            .of(new AbstractMap.SimpleEntry<>(Date.class, new CustomDateEditor(df, false)))
            .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));
    fieldMapper.setCustomEditors(customEditors);
    lineMapper.setFieldSetMapper(fieldMapper);
    reader.setLineMapper(lineMapper);
    return reader;
}

From source file:com.apress.prospringintegration.batch.JobConfiguration.java

@Bean
@Scope("step")/* w  w  w . j  a  v a 2  s  .  c  o m*/
public FlatFileItemReader dataReader(@Value("file:#{jobParameters['input.file']}") Resource resource) {
    FlatFileItemReader csvFileReader = new FlatFileItemReader();
    csvFileReader.setResource(resource);

    DelimitedLineTokenizer delimitedLineTokenizer = new DelimitedLineTokenizer(
            DelimitedLineTokenizer.DELIMITER_COMMA);
    delimitedLineTokenizer.setNames(new String[] { "firstName", "lastName", "company", "address", "city",
            "state", "zip", "county", "url", "phoneNumber", "fax" });

    BeanWrapperFieldSetMapper beanWrapperFieldSetMapper = new BeanWrapperFieldSetMapper();
    beanWrapperFieldSetMapper.setTargetType(UserRegistration.class);

    DefaultLineMapper defaultLineMapper = new DefaultLineMapper();
    defaultLineMapper.setLineTokenizer(delimitedLineTokenizer);
    defaultLineMapper.setFieldSetMapper(beanWrapperFieldSetMapper);

    csvFileReader.setLineMapper(defaultLineMapper);

    return csvFileReader;
}

From source file:com.apress.prospringintegration.springbatch.integration.JobConfiguration.java

@Bean
@Scope("step")//ww  w  . j a v  a 2 s  . co  m
public FlatFileItemReader dataReader(
        @Value("file:src/main/resources/sample/#{jobParameters['input.file']}.csv") Resource resource) {
    FlatFileItemReader csvFileReader = new FlatFileItemReader();
    csvFileReader.setResource(resource);

    DelimitedLineTokenizer delimitedLineTokenizer = new DelimitedLineTokenizer(
            DelimitedLineTokenizer.DELIMITER_COMMA);
    delimitedLineTokenizer.setNames(new String[] { "firstName", "lastName", "company", "address", "city",
            "state", "zip", "county", "url", "phoneNumber", "fax" });

    BeanWrapperFieldSetMapper beanWrapperFieldSetMapper = new BeanWrapperFieldSetMapper();
    beanWrapperFieldSetMapper.setTargetType(UserRegistration.class);

    DefaultLineMapper defaultLineMapper = new DefaultLineMapper();
    defaultLineMapper.setLineTokenizer(delimitedLineTokenizer);
    defaultLineMapper.setFieldSetMapper(beanWrapperFieldSetMapper);

    csvFileReader.setLineMapper(defaultLineMapper);

    return csvFileReader;
}

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

@Bean
public LineMapper<Item> lineMapper() {
    DefaultLineMapper<Item> lineMapper = new DefaultLineMapper<Item>();
    DelimitedLineTokenizer lineTokenizer = new DelimitedLineTokenizer();
    lineTokenizer.setNames(new String[] { "id", "description", "firstAction", "secondAction" });
    lineTokenizer.setIncludedFields(new int[] { 0, 1, 2, 3 });
    BeanWrapperFieldSetMapper<Item> fieldSetMapper = new BeanWrapperFieldSetMapper<Item>();
    fieldSetMapper.setTargetType(Item.class);
    lineMapper.setLineTokenizer(lineTokenizer);
    lineMapper.setFieldSetMapper(fieldSetMapper);
    return lineMapper;
}

From source file:com.inkubator.hrm.batch.PayTempOvertimeUploadReader.java

private void initializationCsvReader(String filePath) {

    //read a CSV file
    Resource resource = new FileSystemResource(filePath);

    //split by separated coma
    DelimitedLineTokenizer lineTokenizer = new DelimitedLineTokenizer(DelimitedLineTokenizer.DELIMITER_COMMA);
    lineTokenizer.setNames(new String[] { "Nik", "Overtime" });

    //mapped to an object
    BeanWrapperFieldSetMapper<PayTempOvertimeFileModel> beanWrapperFieldSetMapper = new BeanWrapperFieldSetMapper<>();
    beanWrapperFieldSetMapper.setTargetType(PayTempOvertimeFileModel.class);

    DefaultLineMapper<PayTempOvertimeFileModel> lineMapper = new DefaultLineMapper<>();
    lineMapper.setLineTokenizer(lineTokenizer);
    lineMapper.setFieldSetMapper(beanWrapperFieldSetMapper);

    //initial flatFileItemReader
    csvFileReader = new FlatFileItemReader<>();
    csvFileReader.setLineMapper(lineMapper);
    csvFileReader.setResource(resource);
    csvFileReader.setLinesToSkip(1);//w w  w  .  j  a va  2  s  .  com
    csvFileReader.open(new ExecutionContext());
}

From source file:com.github.jrrdev.mantisbtsync.core.jobs.issues.IssuesReadersConfiguration.java

/**
 * Return a reader that gets a list of issues ids from a CSV file.
 * The CSV file must not have a header line for columns definition.
 * The file is loaded through Spring resource loader so the filepath can contains
 * definitions like classpath: and others.
 *
 * @param resourceLoader/*from  w w  w  .ja v  a  2s  .co m*/
 *          Spring resource loader
 * @param filePath
 *          File path of the CSV file
 * @return the reader
 */
@Bean
@StepScope
public FlatFileItemReader<BugIdBean> csvIssuesReader(final ResourceLoader resourceLoader,
        @Value("#{jobParameters['mantis.filepath']}") final String filePath) {

    final FlatFileItemReader<BugIdBean> reader = new FlatFileItemReader<BugIdBean>();
    reader.setResource(resourceLoader.getResource(filePath));

    final DefaultLineMapper<BugIdBean> lineMapper = new DefaultLineMapper<BugIdBean>();

    final DelimitedLineTokenizer tokenizer = new DelimitedLineTokenizer();
    tokenizer.setNames(new String[] { "id" });
    lineMapper.setLineTokenizer(tokenizer);

    final BeanWrapperFieldSetMapper<BugIdBean> mapper = new BeanWrapperFieldSetMapper<BugIdBean>();
    mapper.setTargetType(BugIdBean.class);
    lineMapper.setFieldSetMapper(mapper);

    reader.setLineMapper(lineMapper);

    return reader;
}

From source file:org.springframework.batch.item.file.builder.FlatFileItemReaderBuilder.java

/**
 * Builds the {@link FlatFileItemReader}.
 *
 * @return a {@link FlatFileItemReader}/*from w  w  w. java2 s .  com*/
 * @throws Exception
 */
public FlatFileItemReader<T> build() throws Exception {
    if (this.saveState) {
        Assert.state(StringUtils.hasText(this.name), "A name is required when saveSate is set to true.");
    }

    if (this.resource == null) {
        logger.debug("The resource is null.  This is only a valid scenario when "
                + "injecting it later as in when using the MultiResourceItemReader");
    }

    Assert.notNull(this.recordSeparatorPolicy, "A RecordSeparatorPolicy is required.");
    int validatorValue = this.tokenizerValidator.intValue();
    Assert.state(validatorValue == 1 || validatorValue == 2 || validatorValue == 4,
            "Only one LineTokenizer option may be configured");

    FlatFileItemReader<T> reader = new FlatFileItemReader<>();

    if (StringUtils.hasText(this.name)) {
        reader.setName(this.name);
    }

    reader.setResource(this.resource);

    if (this.lineMapper != null) {
        reader.setLineMapper(this.lineMapper);
    } else {
        DefaultLineMapper<T> lineMapper = new DefaultLineMapper<>();

        if (this.lineTokenizer != null && this.fieldSetMapper != null) {
            lineMapper.setLineTokenizer(this.lineTokenizer);
        } else if (this.fixedLengthBuilder != null) {
            lineMapper.setLineTokenizer(this.fixedLengthBuilder.build());
        } else if (this.delimitedBuilder != null) {
            lineMapper.setLineTokenizer(this.delimitedBuilder.build());
        } else {
            throw new IllegalStateException("No LineTokenizer implementation was provided.");
        }

        if (this.targetType != null || StringUtils.hasText(this.prototypeBeanName)) {
            BeanWrapperFieldSetMapper<T> mapper = new BeanWrapperFieldSetMapper<>();
            mapper.setTargetType(this.targetType);
            mapper.setPrototypeBeanName(this.prototypeBeanName);
            mapper.setStrict(this.beanMapperStrict);
            mapper.setBeanFactory(this.beanFactory);
            mapper.setDistanceLimit(this.distanceLimit);
            mapper.setCustomEditors(this.customEditors);
            mapper.afterPropertiesSet();

            lineMapper.setFieldSetMapper(mapper);
        } else if (this.fieldSetMapper != null) {
            lineMapper.setFieldSetMapper(this.fieldSetMapper);
        } else {
            throw new IllegalStateException("No FieldSetMapper implementation was provided.");
        }

        reader.setLineMapper(lineMapper);
    }

    reader.setLinesToSkip(this.linesToSkip);

    if (!this.comments.isEmpty()) {
        reader.setComments(this.comments.toArray(new String[this.comments.size()]));
    }

    reader.setSkippedLinesCallback(this.skippedLinesCallback);
    reader.setRecordSeparatorPolicy(this.recordSeparatorPolicy);
    reader.setMaxItemCount(this.maxItemCount);
    reader.setSaveState(this.saveState);
    reader.setStrict(this.strict);

    return reader;
}