List of usage examples for org.springframework.batch.item.file.mapping BeanWrapperFieldSetMapper setTargetType
public void setTargetType(Class<? extends T> type)
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; }