RESOLVED - BATCH-779: make FieldSetMapper and LineAggregator extend ItemProcessor

FiedSetMapper, LineTokenizer and LineAggregator interfaces now extend ItemProcessor
This commit is contained in:
robokaso
2008-09-29 11:36:13 +00:00
parent 131b524dcb
commit a6fd1cecc0
47 changed files with 186 additions and 196 deletions

View File

@@ -6,7 +6,7 @@ import org.springframework.batch.sample.domain.football.Game;
public class GameFieldSetMapper implements FieldSetMapper<Game> {
public Game mapLine(FieldSet fs) {
public Game process(FieldSet fs) {
if(fs == null){
return null;

View File

@@ -6,7 +6,7 @@ import org.springframework.batch.sample.domain.football.Player;
public class PlayerFieldSetMapper implements FieldSetMapper<Player> {
public Player mapLine(FieldSet fs) {
public Player process(FieldSet fs) {
if(fs == null){
return null;

View File

@@ -33,7 +33,7 @@ public class AddressFieldSetMapper implements FieldSetMapper<Address> {
public static final String COUNTRY_COLUMN = "COUNTRY";
public Address mapLine(FieldSet fieldSet) {
public Address process(FieldSet fieldSet) {
Address address = new Address();
address.setAddressee(fieldSet.readString(ADDRESSEE_COLUMN));

View File

@@ -27,7 +27,7 @@ public class BillingFieldSetMapper implements FieldSetMapper<BillingInfo> {
public static final String PAYMENT_TYPE_ID_COLUMN = "PAYMENT_TYPE_ID";
public static final String PAYMENT_DESC_COLUMN = "PAYMENT_DESC";
public BillingInfo mapLine(FieldSet fieldSet) {
public BillingInfo process(FieldSet fieldSet) {
BillingInfo info = new BillingInfo();
info.setPaymentId(fieldSet.readString(PAYMENT_TYPE_ID_COLUMN));

View File

@@ -34,7 +34,7 @@ public class CustomerFieldSetMapper implements FieldSetMapper<Customer> {
public static final String REG_ID_COLUMN = "REG_ID";
public static final String VIP_COLUMN = "VIP";
public Customer mapLine(FieldSet fieldSet) {
public Customer process(FieldSet fieldSet) {
Customer customer = new Customer();
if (Customer.LINE_ID_BUSINESS_CUST.equals(fieldSet.readString(LINE_ID_COLUMN))) {

View File

@@ -27,7 +27,7 @@ public class HeaderFieldSetMapper implements FieldSetMapper<Order> {
public static final String ORDER_ID_COLUMN = "ORDER_ID";
public static final String ORDER_DATE_COLUMN = "ORDER_DATE";
public Order mapLine(FieldSet fieldSet) {
public Order process(FieldSet fieldSet) {
Order order = new Order();
order.setOrderId(fieldSet.readLong(ORDER_ID_COLUMN));
order.setOrderDate(fieldSet.readDate(ORDER_DATE_COLUMN));

View File

@@ -33,7 +33,7 @@ public class OrderItemFieldSetMapper implements FieldSetMapper<LineItem> {
public static final String ITEM_ID_COLUMN = "ITEM_ID";
public LineItem mapLine(FieldSet fieldSet) {
public LineItem process(FieldSet fieldSet) {
LineItem item = new LineItem();
item.setItemId(fieldSet.readLong(ITEM_ID_COLUMN));

View File

@@ -74,7 +74,7 @@ public class OrderItemReader implements ItemReader<Order> {
return result;
}
private void process(FieldSet fieldSet) {
private void process(FieldSet fieldSet) throws Exception {
// finish processing if we hit the end of file
if (fieldSet == null) {
log.debug("FINISHED");
@@ -89,7 +89,7 @@ public class OrderItemReader implements ItemReader<Order> {
// start a new Order
if (Order.LINE_ID_HEADER.equals(lineId)) {
log.debug("STARTING NEW RECORD");
order = headerMapper.mapLine(fieldSet);
order = headerMapper.process(fieldSet);
return;
}
@@ -114,7 +114,7 @@ public class OrderItemReader implements ItemReader<Order> {
log.debug("MAPPING CUSTOMER");
if (order.getCustomer() == null) {
order.setCustomer(customerMapper.mapLine(fieldSet));
order.setCustomer(customerMapper.process(fieldSet));
order.getCustomer().setBusinessCustomer(true);
}
@@ -125,7 +125,7 @@ public class OrderItemReader implements ItemReader<Order> {
log.debug("MAPPING CUSTOMER");
if (order.getCustomer() == null) {
order.setCustomer(customerMapper.mapLine(fieldSet));
order.setCustomer(customerMapper.process(fieldSet));
order.getCustomer().setBusinessCustomer(false);
}
@@ -134,25 +134,25 @@ public class OrderItemReader implements ItemReader<Order> {
if (Address.LINE_ID_BILLING_ADDR.equals(lineId)) {
log.debug("MAPPING BILLING ADDRESS");
order.setBillingAddress(addressMapper.mapLine(fieldSet));
order.setBillingAddress(addressMapper.process(fieldSet));
return;
}
if (Address.LINE_ID_SHIPPING_ADDR.equals(lineId)) {
log.debug("MAPPING SHIPPING ADDRESS");
order.setShippingAddress(addressMapper.mapLine(fieldSet));
order.setShippingAddress(addressMapper.process(fieldSet));
return;
}
if (BillingInfo.LINE_ID_BILLING_INFO.equals(lineId)) {
log.debug("MAPPING BILLING INFO");
order.setBilling(billingMapper.mapLine(fieldSet));
order.setBilling(billingMapper.process(fieldSet));
return;
}
if (ShippingInfo.LINE_ID_SHIPPING_INFO.equals(lineId)) {
log.debug("MAPPING SHIPPING INFO");
order.setShipping(shippingMapper.mapLine(fieldSet));
order.setShipping(shippingMapper.process(fieldSet));
return;
}
@@ -162,7 +162,7 @@ public class OrderItemReader implements ItemReader<Order> {
if (order.getLineItems() == null) {
order.setLineItems(new ArrayList<LineItem>());
}
order.getLineItems().add(itemMapper.mapLine(fieldSet));
order.getLineItems().add(itemMapper.process(fieldSet));
return;
}

View File

@@ -44,23 +44,24 @@ public class OrderProcessor implements ItemProcessor<Order, List<String>> {
/**
* Converts information from an Order object to a collection of Strings for
* output.
* @throws Exception
*/
public List<String> process(Order order) {
public List<String> process(Order order) throws Exception {
List<String> result = new ArrayList<String>();
result.add(getAggregator("header").aggregate(OrderFormatterUtils.headerArgs(order)));
result.add(getAggregator("customer").aggregate(OrderFormatterUtils.customerArgs(order)));
result.add(getAggregator("address").aggregate(OrderFormatterUtils.billingAddressArgs(order)));
result.add(getAggregator("billing").aggregate(OrderFormatterUtils.billingInfoArgs(order)));
result.add(getAggregator("header").process(OrderFormatterUtils.headerArgs(order)));
result.add(getAggregator("customer").process(OrderFormatterUtils.customerArgs(order)));
result.add(getAggregator("address").process(OrderFormatterUtils.billingAddressArgs(order)));
result.add(getAggregator("billing").process(OrderFormatterUtils.billingInfoArgs(order)));
List<LineItem> items = order.getLineItems();
for (LineItem lineItem : items) {
result.add(getAggregator("item").aggregate(OrderFormatterUtils.lineItemArgs(lineItem)));
result.add(getAggregator("item").process(OrderFormatterUtils.lineItemArgs(lineItem)));
}
result.add(getAggregator("footer").aggregate(OrderFormatterUtils.footerArgs(order)));
result.add(getAggregator("footer").process(OrderFormatterUtils.footerArgs(order)));
return result;
}

View File

@@ -28,7 +28,7 @@ public class ShippingFieldSetMapper implements FieldSetMapper<ShippingInfo> {
public static final String SHIPPING_TYPE_ID_COLUMN = "SHIPPING_TYPE_ID";
public static final String SHIPPER_ID_COLUMN = "SHIPPER_ID";
public ShippingInfo mapLine(FieldSet fieldSet) {
public ShippingInfo process(FieldSet fieldSet) {
ShippingInfo info = new ShippingInfo();
info.setShipperId(fieldSet.readString(SHIPPER_ID_COLUMN));

View File

@@ -23,15 +23,15 @@ public class CompositeCustomerUpdateLineTokenizer implements LineTokenizer {
/* (non-Javadoc)
* @see org.springframework.batch.item.file.transform.LineTokenizer#tokenize(java.lang.String)
*/
public FieldSet tokenize(String line) {
public FieldSet process(String line) throws Exception {
if(line.charAt(0) == 'F'){
//line starts with F, so the footer tokenizer should tokenize it.
return footerTokenizer.tokenize(line);
return footerTokenizer.process(line);
}
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);
return customerTokenizer.process(line);
}
else{
//If the line doesn't start with any of the characters above, it must obviously be invalid.

View File

@@ -20,7 +20,7 @@ public class CustomerUpdateFieldSetMapper extends StepExecutionListenerSupport i
StepExecution stepExecution;
public CustomerUpdate mapLine(FieldSet fs) {
public CustomerUpdate process(FieldSet fs) {
char code = fs.readChar(0);
if(code == 'F'){

View File

@@ -29,7 +29,7 @@ public class TradeFieldSetMapper implements FieldSetMapper<Trade> {
public static final int PRICE_COLUMN = 2;
public static final int CUSTOMER_COLUMN = 3;
public Trade mapLine(FieldSet fieldSet) {
public Trade process(FieldSet fieldSet) {
Trade trade = new Trade();
trade.setIsin(fieldSet.readString(ISIN_COLUMN));