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:io.spring.marchmadness.NcaaStatConfiguration.java

@Bean
public ItemReader<NcaaStats> reader(ResourceLoader resourceLoader) {
    FlatFileItemReader<NcaaStats> reader = new FlatFileItemReader<NcaaStats>();
    reader.setResource(resourceLoader.getResource("file:" + inputFileName));
    reader.setLineMapper(new DefaultLineMapper<NcaaStats>() {
        {//from   w ww. ja v  a2s  .c om
            setLineTokenizer(new DelimitedLineTokenizer() {
                {
                    setNames(new String[] { "year", "rank", "name", "rating", "win", "loss", "schedl",
                            "schedlRank", "winTop25", "lossTop25", "winTop50", "lossTop50", "predictor",
                            "predictorRank", "goldenMean", "goldenMeanRank", "recent", "recentRank" });
                }
            });
            setFieldSetMapper(new BeanWrapperFieldSetMapper<NcaaStats>() {
                {
                    setTargetType(NcaaStats.class);
                }
            });
        }
    });
    return reader;
}

From source file:de.langmi.spring.batch.examples.readers.file.archive.ArchiveMultiResourceItemReaderTest.java

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

From source file:com.acmemotors.batch.LoaderJobConfiguration.java

@Bean
@StepScope//from   ww  w .j ava2 s  .  com
public FlatFileItemReader<Map<String, Object>> reader(@Value("#{jobParameters['inputFile']}") String fileName)
        throws Exception {

    DefaultLineMapper<Map<String, Object>> mapper = new DefaultLineMapper<>();
    mapper.setLineTokenizer(jsonLineTokenzier());
    mapper.setFieldSetMapper(new FieldSetMapper<Map<String, Object>>() {

        private UUID journeyId = UUID.randomUUID();

        private Double readDouble(String value) {
            if (StringUtils.hasText(value)) {
                return Double.valueOf(value);
            } else {
                return null;
            }
        }

        private Integer readInteger(String value) {
            if (StringUtils.hasText(value)) {
                return Integer.valueOf(value);
            } else {
                return null;
            }
        }

        @Override
        public Map<String, Object> mapFieldSet(FieldSet fieldSet) throws BindException {

            Map<String, Object> map = new HashMap<>();

            map.put(VIN.getHerbieField(), fieldSet.readString(VIN.getHerbieField()));
            map.put(LONGITUDE.getHerbieField(), readDouble(fieldSet.readString(LONGITUDE.getHerbieField())));
            map.put(LATITUDE.getHerbieField(), readDouble(fieldSet.readString(LATITUDE.getHerbieField())));
            map.put(RPM.getHerbieField(), readDouble(fieldSet.readString(RPM.getHerbieField())));
            map.put(VEHICLE_SPEED.getHerbieField(),
                    readInteger(fieldSet.readString(VEHICLE_SPEED.getHerbieField())));
            String statuses = fieldSet.readString(FUEL_SYSTEM_STATUS.getHerbieField());
            String[] statusPieces = statuses.substring(1, statuses.length() - 1).split(",");
            Integer[] integerStatuses = { readInteger(statusPieces[0].trim()),
                    readInteger(statusPieces[1].trim()) };
            map.put(FUEL_SYSTEM_STATUS.getHerbieField(), integerStatuses);
            map.put(ENGINE_LOAD.getHerbieField(),
                    readDouble(fieldSet.readString(ENGINE_LOAD.getHerbieField())));
            map.put(COOLANT_TEMP.getHerbieField(),
                    readInteger(fieldSet.readString(COOLANT_TEMP.getHerbieField())));
            map.put(SHORT_TERM_FUEL.getHerbieField(),
                    readDouble(fieldSet.readString(SHORT_TERM_FUEL.getHerbieField())));
            map.put(LONG_TERM_FUEL.getHerbieField(),
                    readDouble(fieldSet.readString(LONG_TERM_FUEL.getHerbieField())));
            map.put(INTAKE_MANIFOLD_PRESSURE.getHerbieField(),
                    readInteger(fieldSet.readString(INTAKE_MANIFOLD_PRESSURE.getHerbieField())));
            map.put(INTAKE_AIR_TEMP.getHerbieField(),
                    readInteger(fieldSet.readString(INTAKE_AIR_TEMP.getHerbieField())));
            map.put(MAF_AIRFLOW.getHerbieField(),
                    readDouble(fieldSet.readString(MAF_AIRFLOW.getHerbieField())));
            map.put(THROTTLE_POSITION.getHerbieField(),
                    readInteger(fieldSet.readString(THROTTLE_POSITION.getHerbieField())));
            map.put(OBD_STANDARDS.getHerbieField(), fieldSet.readString(OBD_STANDARDS.getHerbieField()));
            map.put(TIME_SINCE_ENGINE_START.getHerbieField(),
                    readInteger(fieldSet.readString(TIME_SINCE_ENGINE_START.getHerbieField())));
            map.put(FUEL_LEVEL_INPUT.getHerbieField(),
                    readInteger(fieldSet.readString(FUEL_LEVEL_INPUT.getHerbieField())));
            map.put(RELATIVE_THROTTLE_POS.getHerbieField(),
                    readDouble(fieldSet.readString(RELATIVE_THROTTLE_POS.getHerbieField())));
            map.put(ABSOLUTE_THROTTLE_POS_B.getHerbieField(),
                    readDouble(fieldSet.readString(ABSOLUTE_THROTTLE_POS_B.getHerbieField())));
            map.put(ACCELERATOR_THROTTLE_POS_D.getHerbieField(),
                    readDouble(fieldSet.readString(ACCELERATOR_THROTTLE_POS_D.getHerbieField())));
            map.put(ACCELERATOR_THROTTLE_POS_E.getHerbieField(),
                    readDouble(fieldSet.readString(ACCELERATOR_THROTTLE_POS_E.getHerbieField())));
            map.put(DISTANCE_WITH_MIL_ON.getHerbieField(),
                    readInteger(fieldSet.readString(DISTANCE_WITH_MIL_ON.getHerbieField())));
            map.put(CATALYST_TEMP.getHerbieField(),
                    readDouble(fieldSet.readString(CATALYST_TEMP.getHerbieField())));
            map.put(BAROMETRIC_PRESSURE.getHerbieField(),
                    readInteger(fieldSet.readString(BAROMETRIC_PRESSURE.getHerbieField())));
            map.put(CONTROL_MODULE_VOLTAGE.getHerbieField(),
                    readDouble(fieldSet.readString(CONTROL_MODULE_VOLTAGE.getHerbieField())));
            map.put(ACCELERATION.getHerbieField(),
                    readDouble(fieldSet.readString(ACCELERATION.getHerbieField())));
            map.put(BEARING.getHerbieField(), readDouble(fieldSet.readString(BEARING.getHerbieField())));
            map.put(JOURNEY_ID.getHerbieField(), journeyId.toString());

            return map;
        }
    });

    mapper.afterPropertiesSet();

    FlatFileItemReader<Map<String, Object>> reader = new FlatFileItemReader<>();
    reader.setLineMapper(mapper);
    reader.setResource(new FileSystemResource(fileName));
    reader.afterPropertiesSet();

    return reader;
}

From source file:org.jboss.examples.spring.batch.BatchConfiguration.java

@Bean
@StepScope//  w w  w .j  a va 2s  .  c om
public FlatFileItemReader<AggregateItem> flatFileItemReader(
        @Value("#{jobParameters[inputFile]}") String fileName, LineTokenizer lineTokenizer) {
    FlatFileItemReader<AggregateItem> rc = new FlatFileItemReader<>();
    rc.setResource(new FileSystemResource(fileName));
    DefaultLineMapper<AggregateItem> mapper = new DefaultLineMapper<>();

    // tokenizer
    mapper.setLineTokenizer(lineTokenizer);

    // field mapper
    AggregateItemFieldSetMapper fieldSetMapper = new AggregateItemFieldSetMapper();
    fieldSetMapper.setDelegate(new TradeFieldSetMapper());
    mapper.setFieldSetMapper(fieldSetMapper);

    rc.setLineMapper(mapper);
    return rc;
}

From source file:de.mediait.batch.FlatFileItemReaderTest.java

private FlatFileItemReader<String[]> createFlatFileReader(final char seperatorCharacter,
        final char quoteCharacter) {
    final FlatFileItemReader<String[]> reader = new FlatFileItemReader<String[]>();
    final DefaultLineMapper<String[]> lineMapper = new DefaultLineMapper<String[]>();
    final DelimitedLineTokenizer tokenizer = new DelimitedLineTokenizer(String.valueOf(seperatorCharacter));
    tokenizer.setQuoteCharacter(quoteCharacter);
    lineMapper.setLineTokenizer(tokenizer);
    final FixingCsvRecordSeparatorPolicy recordSeparatorPolicy = new FixingCsvRecordSeparatorPolicy();
    recordSeparatorPolicy.setQuoteCharacter(quoteCharacter);
    reader.setRecordSeparatorPolicy(recordSeparatorPolicy);
    reader.setLineMapper(lineMapper);
    final FieldSetMapper<String[]> fieldSetMapper = new ArrayFieldSetMapper();
    lineMapper.setFieldSetMapper(fieldSetMapper);
    return reader;
}

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//  ww w  .ja  v  a  2 s.  c o  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:example.UserInitializer.java

private static List<User> readUsers(Resource resource) throws Exception {

    Scanner scanner = new Scanner(resource.getInputStream());
    String line = scanner.nextLine();
    scanner.close();/*from   ww w  .jav  a  2s  .c om*/

    FlatFileItemReader<User> reader = new FlatFileItemReader<User>();
    reader.setResource(resource);

    DelimitedLineTokenizer tokenizer = new DelimitedLineTokenizer();
    tokenizer.setNames(line.split(","));
    tokenizer.setStrict(false);

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

        User user = new User();

        user.setEmail(fields.readString("email"));
        user.setFirstname(capitalize(fields.readString("first")));
        user.setLastname(capitalize(fields.readString("last")));
        user.setNationality(fields.readString("nationality"));

        String city = Arrays.stream(fields.readString("city").split(" "))//
                .map(StringUtils::capitalize)//
                .collect(Collectors.joining(" "));
        String street = Arrays.stream(fields.readString("street").split(" "))//
                .map(StringUtils::capitalize)//
                .collect(Collectors.joining(" "));

        try {
            user.setAddress(new Address(city, street, fields.readString("zip")));
        } catch (IllegalArgumentException e) {
            user.setAddress(new Address(city, street, fields.readString("postcode")));
        }

        user.setPicture(new Picture(fields.readString("large"), fields.readString("medium"),
                fields.readString("thumbnail")));
        user.setUsername(fields.readString("username"));
        user.setPassword(fields.readString("password"));

        return user;
    });

    lineMapper.setLineTokenizer(tokenizer);

    reader.setLineMapper(lineMapper);
    reader.setRecordSeparatorPolicy(new DefaultRecordSeparatorPolicy());
    reader.setLinesToSkip(1);
    reader.open(new ExecutionContext());

    List<User> users = new ArrayList<>();
    User user = null;

    do {

        user = reader.read();

        if (user != null) {
            users.add(user);
        }

    } while (user != null);

    return users;
}

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

@Bean
@Scope("step")//www.ja va 2s.  com
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")//from   www  .j  a  va 2s . 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;
}