@Test public void testTokenizeWithEscapedQuotes() { FieldSet line = tokenizer.tokenize("a,\"\"b,\"\"\"c\""); assertEquals(3, line.getFieldCount()); assertEquals("\"\"b", line.readString(1)); assertEquals("\"c", line.readString(2)); }
@Override public CustomerCredit mapFieldSet(FieldSet fieldSet) { CustomerCredit trade = new CustomerCredit(); trade.setId(fieldSet.readInt(ID_COLUMN)); trade.setName(fieldSet.readString(NAME_COLUMN)); trade.setCredit(fieldSet.readBigDecimal(CREDIT_COLUMN)); return trade; } }
@Override public CustomerUpdate mapFieldSet(FieldSet fs) { if (fs == null) { return null; } CustomerOperation operation = CustomerOperation.fromCode(fs.readChar(0)); String name = fs.readString(1); BigDecimal credit = fs.readBigDecimal(2); return new CustomerUpdate(operation, name, credit); }
Trade(FieldSet fieldSet) { this.isin = fieldSet.readString(0); this.quantity = fieldSet.readLong(1); this.price = fieldSet.readBigDecimal(2); }
@Override public LineItem mapFieldSet(FieldSet fieldSet) { LineItem item = new LineItem(); item.setItemId(fieldSet.readLong(ITEM_ID_COLUMN)); item.setPrice(fieldSet.readBigDecimal(PRICE_COLUMN)); item.setDiscountPerc(fieldSet.readBigDecimal(DISCOUNT_PERC_COLUMN)); item.setDiscountAmount(fieldSet.readBigDecimal(DISCOUNT_AMOUNT_COLUMN)); item.setShippingPrice(fieldSet.readBigDecimal(SHIPPING_PRICE_COLUMN)); item.setHandlingPrice(fieldSet.readBigDecimal(HANDLING_PRICE_COLUMN)); item.setQuantity(fieldSet.readInt(QUANTITY_COLUMN)); item.setTotalPrice(fieldSet.readBigDecimal(TOTAL_PRICE_COLUMN)); return item; } }
@Override public Contact mapFieldSet(FieldSet fieldSet) throws BindException { return new Contact( fieldSet.readString("firstname"), fieldSet.readString("lastname"), fieldSet.readDate("birth","yyyy-MM-dd") ); } }
@Override public Contact mapFieldSet(FieldSet fieldSet) throws BindException { return new Contact( fieldSet.readLong("id"), fieldSet.readString("firstname"), fieldSet.readString("lastname"), fieldSet.readDate("birth","yyyy-MM-dd") ); } }
@Override public Payment mapFieldSet(FieldSet fieldSet) throws BindException { Payment payment = new Payment(); payment.setSourceAccountNo(fieldSet.readString("source")); payment.setDestinationAccountNo(fieldSet.readString("destination")); payment.setAmount(fieldSet.readBigDecimal("amount")); payment.setDate(fieldSet.readDate("date")); return payment; } }
@Override public ShippingInfo mapFieldSet(FieldSet fieldSet) { ShippingInfo info = new ShippingInfo(); info.setShipperId(fieldSet.readString(SHIPPER_ID_COLUMN)); info.setShippingTypeId(fieldSet.readString(SHIPPING_TYPE_ID_COLUMN)); info.setShippingInfo(fieldSet.readString(ADDITIONAL_SHIPPING_INFO_COLUMN)); return info; } }
@Override public Player mapFieldSet(FieldSet fs) { if(fs == null){ return null; } Player player = new Player(); player.setId(fs.readString("ID")); player.setLastName(fs.readString("lastName")); player.setFirstName(fs.readString("firstName")); player.setPosition(fs.readString("position")); player.setDebutYear(fs.readInt("debutYear")); player.setBirthYear(fs.readInt("birthYear")); return player; }
import org.springframework.batch.item.file.transform.FieldSet; import org.springframework.validation.BindException; public class ProductFieldSetMapper implements org.springframework.batch.item.file.mapping.FieldSetMapper<Product> { public Product mapFieldSet(FieldSet fieldSet) throws BindException { Product product = new Product(); product.setId(fieldSet.readString("PRODUCT_ID")); product.setName(fieldSet.readString("NAME")); product.setDescription(fieldSet.readString("DESCRIPTION")); product.setPrice(fieldSet.readBigDecimal("PRICE")); return product; } }
@Override public Customer mapFieldSet(FieldSet fieldSet) { Customer customer = new Customer(); if (Customer.LINE_ID_BUSINESS_CUST.equals(fieldSet.readString(LINE_ID_COLUMN))) { customer.setCompanyName(fieldSet.readString(COMPANY_NAME_COLUMN)); // business customer must be always registered customer.setRegistered(true); } if (Customer.LINE_ID_NON_BUSINESS_CUST.equals(fieldSet.readString(LINE_ID_COLUMN))) { customer.setLastName(fieldSet.readString(LAST_NAME_COLUMN)); customer.setFirstName(fieldSet.readString(FIRST_NAME_COLUMN)); customer.setMiddleName(fieldSet.readString(MIDDLE_NAME_COLUMN)); customer.setRegistered(TRUE_SYMBOL.equals(fieldSet.readString(REGISTERED_COLUMN))); } customer.setRegistrationId(fieldSet.readLong(REG_ID_COLUMN)); customer.setVip(TRUE_SYMBOL.equals(fieldSet.readString(VIP_COLUMN))); return customer; } }
public class ImportDataObjectFieldSetMapper implements FieldSetMapper<ImportDataObject> { @Override public ImportDataObject mapFieldSet(final FieldSet fieldSet) throws BindException { final ImportDataObject importDataObject = new ImportDataObject(); importDataObject.setKittenUrl(fieldSet.readString(0)); importDataObject.setKittenName(fieldSet.readString(1)); importDataObject.setNumOfReviews(fieldSet.readInt(2)); importDataObject.setRating(fieldSet.readInt(3)); importDataObject.setCategories(new ArrayList<String>()); for (int i = 4; i < fieldSet.getFieldCount(); i++) { importDataObject.getCategories().add(fieldSet.readString(i)); } return importDataObject; } }
@Test public void testFieldSetWithDateFormat() throws Exception { SimpleDateFormat format = new SimpleDateFormat("yyyy/MM/dd"); factory.setDateFormat(format); FieldSet fieldSet = factory.create(new String[] {"1999/12/18", "bar"} ); assertEquals(format.parse("1999/12/18"), fieldSet.readDate(0)); }
@Override public FieldSet tokenize(String line) { if(line.charAt(0) == 'F'){ //line starts with F, so the footer tokenizer should tokenize it. FieldSet fs = footerTokenizer.tokenize(line); long customerUpdateTotal = stepExecution.getReadCount(); long fileUpdateTotal = fs.readLong(1); if(customerUpdateTotal != fileUpdateTotal){ throw new IllegalStateException("The total number of customer updates in the file footer does not match the " + "number entered File footer total: [" + fileUpdateTotal + "] Total encountered during processing: [" + customerUpdateTotal + "]"); } else{ //return null, because the footer indicates an end of processing. return null; } } else if(line.charAt(0) == 'A' || line.charAt(0) == 'U' || line.charAt(0) == 'D'){ //line starts with A,U, or D, so it must be a customer operation. return customerTokenizer.tokenize(line); } else{ //If the line doesn't start with any of the characters above, it must obviously be invalid. throw new IllegalArgumentException("Invalid line encountered for tokenizing: " + line); } }
@Test public void testVanillaFieldSetWithNames() throws Exception { FieldSet fieldSet = factory.create(new String[] {"1", "bar"}, new String[] {"foo", "bar"} ); assertEquals(1, fieldSet.readInt("foo")); }
@Override public Contact mapFieldSet(FieldSet fieldSet) throws BindException { return new Contact( fieldSet.readString("firstname"), fieldSet.readString("lastname"), fieldSet.readDate("birth","yyyy-MM-dd") ); } }
@Override public Contact mapFieldSet(FieldSet fieldSet) throws BindException { return new Contact( fieldSet.readLong("id"), fieldSet.readString("firstname"), fieldSet.readString("lastname"), fieldSet.readDate("birth","yyyy-MM-dd") ); } }
@Override public Payment mapFieldSet(FieldSet fieldSet) throws BindException { final Payment payment = new Payment(); payment.setSourceAccountNo(fieldSet.readString("source")); payment.setDestinationAccountNo(fieldSet.readString("destination")); payment.setAmount(fieldSet.readBigDecimal("amount")); payment.setDate(fieldSet.readDate("date")); return payment; } }