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

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

Introduction

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

Prototype

FieldSetMapper

Source Link

Usage

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

@Bean
@StepScope/*from w  w  w  . j a v a 2 s.  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:com.acmemotors.batch.LoaderJobConfiguration.java

@Bean
@StepScope/*ww w.  j a  v a 2  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;
}