List of usage examples for org.springframework.batch.item.file.transform DelimitedLineTokenizer DelimitedLineTokenizer
public DelimitedLineTokenizer()
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);// w w w. jav a2s . 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 ww . j ava 2 s. c om }
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();/* www. j a v a 2 s .c o m*/ 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: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./*from w ww. jav a 2 s .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.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:com.create.batch.TicketReaderFactory.java
public ItemStreamReader<Ticket> createReader(final Resource source) { final FlatFileItemReader<Ticket> reader = new FlatFileItemReader<>(); reader.setResource(source);//from w ww . j a v a2 s . 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:de.langmi.spring.batch.examples.readers.file.csv.CsvFlatFileItemReaderTest.java
/** * Test should read succesfully.//from ww w . j av a 2s . co m * * @throws Exception */ @Test public void testSuccessfulReading() throws Exception { // init linetokenizer DelimitedLineTokenizer lineTokenizer = new DelimitedLineTokenizer(); lineTokenizer.setNames(new String[] { "id", "value" }); // init linemapper DefaultLineMapper<FieldSet> lineMapper = new DefaultLineMapper<FieldSet>(); lineMapper.setLineTokenizer(lineTokenizer); lineMapper.setFieldSetMapper(new PassThroughFieldSetMapper()); // init reader reader.setLineMapper(lineMapper); reader.setResource(new FileSystemResource(INPUT_FILE)); // open, provide "mock" ExecutionContext reader.open(MetaDataInstanceFactory.createStepExecution().getExecutionContext()); // read try { int count = 0; FieldSet line; while ((line = reader.read()) != null) { // really test for the fieldSet names and values assertEquals("id", line.getNames()[0]); assertEquals(String.valueOf(count), line.getValues()[0]); assertEquals("value", line.getNames()[1]); // csv contains entry like '0,foo0' assertEquals("foo" + String.valueOf(count), line.getValues()[1]); count++; } assertEquals(EXPECTED_COUNT, count); } catch (Exception e) { throw e; } finally { reader.close(); } }
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./* ww w. j a va 2 s. 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: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 v a2 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; }
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>() { {// w w w.ja v a2 s .co m 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:io.spring.batch.configuration.BatchConfiguration.java
@Bean @StepScope//from w ww . ja va 2 s .c om 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; }