BATCH-1247: Clean up multilineOrderJob sample
This commit is contained in:
@@ -52,7 +52,7 @@ public class OrderItemReader implements ItemReader<Order> {
|
||||
private FieldSetMapper<LineItem> itemMapper;
|
||||
|
||||
private FieldSetMapper<ShippingInfo> shippingMapper;
|
||||
|
||||
|
||||
private ItemReader<FieldSet> fieldSetReader;
|
||||
|
||||
/**
|
||||
@@ -67,7 +67,7 @@ public class OrderItemReader implements ItemReader<Order> {
|
||||
}
|
||||
|
||||
log.info("Mapped: " + order);
|
||||
|
||||
|
||||
Order result = order;
|
||||
order = null;
|
||||
|
||||
@@ -80,7 +80,6 @@ public class OrderItemReader implements ItemReader<Order> {
|
||||
log.debug("FINISHED");
|
||||
recordFinished = true;
|
||||
order = null;
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -90,12 +89,8 @@ public class OrderItemReader implements ItemReader<Order> {
|
||||
if (Order.LINE_ID_HEADER.equals(lineId)) {
|
||||
log.debug("STARTING NEW RECORD");
|
||||
order = headerMapper.mapFieldSet(fieldSet);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
// mark we are finished with current Order
|
||||
if (Order.LINE_ID_FOOTER.equals(lineId)) {
|
||||
else if (Order.LINE_ID_FOOTER.equals(lineId)) {
|
||||
log.debug("END OF RECORD");
|
||||
|
||||
// Do mapping for footer here, because mapper does not allow to pass
|
||||
@@ -105,74 +100,57 @@ public class OrderItemReader implements ItemReader<Order> {
|
||||
order.setTotalLines(fieldSet.readInt("TOTAL_LINE_ITEMS"));
|
||||
order.setTotalItems(fieldSet.readInt("TOTAL_ITEMS"));
|
||||
|
||||
// mark we are finished with current Order
|
||||
recordFinished = true;
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
if (Customer.LINE_ID_BUSINESS_CUST.equals(lineId)) {
|
||||
else if (Customer.LINE_ID_BUSINESS_CUST.equals(lineId)) {
|
||||
log.debug("MAPPING CUSTOMER");
|
||||
|
||||
if (order.getCustomer() == null) {
|
||||
order.setCustomer(customerMapper.mapFieldSet(fieldSet));
|
||||
order.getCustomer().setBusinessCustomer(true);
|
||||
Customer customer = customerMapper.mapFieldSet(fieldSet);
|
||||
customer.setBusinessCustomer(true);
|
||||
order.setCustomer(customer);
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
if (Customer.LINE_ID_NON_BUSINESS_CUST.equals(lineId)) {
|
||||
else if (Customer.LINE_ID_NON_BUSINESS_CUST.equals(lineId)) {
|
||||
log.debug("MAPPING CUSTOMER");
|
||||
|
||||
if (order.getCustomer() == null) {
|
||||
order.setCustomer(customerMapper.mapFieldSet(fieldSet));
|
||||
order.getCustomer().setBusinessCustomer(false);
|
||||
Customer customer = customerMapper.mapFieldSet(fieldSet);
|
||||
customer.setBusinessCustomer(false);
|
||||
order.setCustomer(customer);
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
if (Address.LINE_ID_BILLING_ADDR.equals(lineId)) {
|
||||
else if (Address.LINE_ID_BILLING_ADDR.equals(lineId)) {
|
||||
log.debug("MAPPING BILLING ADDRESS");
|
||||
order.setBillingAddress(addressMapper.mapFieldSet(fieldSet));
|
||||
return;
|
||||
}
|
||||
|
||||
if (Address.LINE_ID_SHIPPING_ADDR.equals(lineId)) {
|
||||
else if (Address.LINE_ID_SHIPPING_ADDR.equals(lineId)) {
|
||||
log.debug("MAPPING SHIPPING ADDRESS");
|
||||
order.setShippingAddress(addressMapper.mapFieldSet(fieldSet));
|
||||
return;
|
||||
}
|
||||
|
||||
if (BillingInfo.LINE_ID_BILLING_INFO.equals(lineId)) {
|
||||
else if (BillingInfo.LINE_ID_BILLING_INFO.equals(lineId)) {
|
||||
log.debug("MAPPING BILLING INFO");
|
||||
order.setBilling(billingMapper.mapFieldSet(fieldSet));
|
||||
return;
|
||||
}
|
||||
|
||||
if (ShippingInfo.LINE_ID_SHIPPING_INFO.equals(lineId)) {
|
||||
else if (ShippingInfo.LINE_ID_SHIPPING_INFO.equals(lineId)) {
|
||||
log.debug("MAPPING SHIPPING INFO");
|
||||
order.setShipping(shippingMapper.mapFieldSet(fieldSet));
|
||||
return;
|
||||
}
|
||||
|
||||
if (LineItem.LINE_ID_ITEM.equals(lineId)) {
|
||||
else if (LineItem.LINE_ID_ITEM.equals(lineId)) {
|
||||
log.debug("MAPPING LINE ITEM");
|
||||
|
||||
if (order.getLineItems() == null) {
|
||||
order.setLineItems(new ArrayList<LineItem>());
|
||||
}
|
||||
order.getLineItems().add(itemMapper.mapFieldSet(fieldSet));
|
||||
|
||||
return;
|
||||
}
|
||||
else {
|
||||
log.debug("Could not map LINE_ID=" + lineId);
|
||||
}
|
||||
|
||||
log.debug("Could not map LINE_ID=" + lineId);
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @param fieldSetReader reads lines from the file converting them to {@link FieldSet}.
|
||||
* @param fieldSetReader reads lines from the file converting them to
|
||||
* {@link FieldSet}.
|
||||
*/
|
||||
public void setFieldSetReader(ItemReader<FieldSet> fieldSetReader) {
|
||||
this.fieldSetReader = fieldSetReader;
|
||||
|
||||
@@ -16,16 +16,12 @@
|
||||
|
||||
package org.springframework.batch.sample.domain.order.internal;
|
||||
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import org.springframework.batch.item.ItemProcessor;
|
||||
import org.springframework.batch.item.file.transform.LineAggregator;
|
||||
import org.springframework.batch.sample.domain.order.Address;
|
||||
import org.springframework.batch.sample.domain.order.BillingInfo;
|
||||
import org.springframework.batch.sample.domain.order.Customer;
|
||||
import org.springframework.batch.sample.domain.order.LineItem;
|
||||
import org.springframework.batch.sample.domain.order.Order;
|
||||
|
||||
@@ -39,80 +35,34 @@ public class OrderProcessor implements ItemProcessor<Order, List<String>> {
|
||||
/**
|
||||
* Aggregators for all types of lines in the output file
|
||||
*/
|
||||
private Map<String, LineAggregator<Object[]>> aggregators;
|
||||
private Map<String, LineAggregator<Object>> aggregators;
|
||||
|
||||
/**
|
||||
* Converts information from an Order object to a collection of Strings for
|
||||
* output.
|
||||
* @throws Exception
|
||||
*
|
||||
* @throws Exception
|
||||
*/
|
||||
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(aggregators.get("header").aggregate(order));
|
||||
result.add(aggregators.get("customer").aggregate(order));
|
||||
result.add(aggregators.get("address").aggregate(order));
|
||||
result.add(aggregators.get("billing").aggregate(order));
|
||||
|
||||
List<LineItem> items = order.getLineItems();
|
||||
|
||||
for (LineItem lineItem : items) {
|
||||
result.add(getAggregator("item").aggregate(OrderFormatterUtils.lineItemArgs(lineItem)));
|
||||
for (LineItem lineItem : order.getLineItems()) {
|
||||
result.add(aggregators.get("item").aggregate(lineItem));
|
||||
}
|
||||
|
||||
result.add(getAggregator("footer").aggregate(OrderFormatterUtils.footerArgs(order)));
|
||||
result.add(aggregators.get("footer").aggregate(order));
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
public void setAggregators(Map<String, LineAggregator<Object[]>> aggregators) {
|
||||
public void setAggregators(Map<String, LineAggregator<Object>> aggregators) {
|
||||
this.aggregators = aggregators;
|
||||
}
|
||||
|
||||
private LineAggregator<Object[]> getAggregator(String name) {
|
||||
return aggregators.get(name);
|
||||
}
|
||||
|
||||
/**
|
||||
* Utility class encapsulating formatting of <code>Order</code> and its
|
||||
* nested objects.
|
||||
*/
|
||||
private static class OrderFormatterUtils {
|
||||
|
||||
private static SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd");
|
||||
|
||||
static Object[] headerArgs(Order order) {
|
||||
return new Object[] { "BEGIN_ORDER:", String.valueOf(order.getOrderId()),
|
||||
dateFormat.format(order.getOrderDate()) };
|
||||
}
|
||||
|
||||
static Object[] footerArgs(Order order) {
|
||||
return new Object[] { "END_ORDER:", order.getTotalPrice().toString() };
|
||||
}
|
||||
|
||||
static Object[] customerArgs(Order order) {
|
||||
Customer customer = order.getCustomer();
|
||||
|
||||
return new Object[] { "CUSTOMER:", String.valueOf(customer.getRegistrationId()), customer.getFirstName(),
|
||||
customer.getMiddleName(), customer.getLastName() };
|
||||
}
|
||||
|
||||
static Object[] lineItemArgs(LineItem item) {
|
||||
return new Object[] { "ITEM:", String.valueOf(item.getItemId()), item.getPrice().toString() };
|
||||
}
|
||||
|
||||
static Object[] billingAddressArgs(Order order) {
|
||||
Address address = order.getBillingAddress();
|
||||
|
||||
return new Object[] { "ADDRESS:", address.getAddrLine1(), address.getCity(), address.getZipCode() };
|
||||
}
|
||||
|
||||
static Object[] billingInfoArgs(Order order) {
|
||||
BillingInfo billingInfo = order.getBilling();
|
||||
|
||||
return new Object[] { "BILLING:", billingInfo.getPaymentId(), billingInfo.getPaymentDesc() };
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
package org.springframework.batch.sample.domain.order.internal.extractor;
|
||||
|
||||
import org.springframework.batch.item.file.transform.FieldExtractor;
|
||||
import org.springframework.batch.sample.domain.order.Address;
|
||||
import org.springframework.batch.sample.domain.order.Order;
|
||||
|
||||
/**
|
||||
* @author Dan Garrette
|
||||
* @since 2.0.1
|
||||
*/
|
||||
public class AddressFieldExtractor implements FieldExtractor<Order> {
|
||||
|
||||
public Object[] extract(Order order) {
|
||||
Address address = order.getBillingAddress();
|
||||
return new Object[] { "ADDRESS:", address.getAddrLine1(), address.getCity(), address.getZipCode() };
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
package org.springframework.batch.sample.domain.order.internal.extractor;
|
||||
|
||||
import org.springframework.batch.item.file.transform.FieldExtractor;
|
||||
import org.springframework.batch.sample.domain.order.BillingInfo;
|
||||
import org.springframework.batch.sample.domain.order.Order;
|
||||
|
||||
/**
|
||||
* @author Dan Garrette
|
||||
* @since 2.0.1
|
||||
*/
|
||||
public class BillingInfoFieldExtractor implements FieldExtractor<Order> {
|
||||
|
||||
public Object[] extract(Order order) {
|
||||
BillingInfo billingInfo = order.getBilling();
|
||||
return new Object[] { "BILLING:", billingInfo.getPaymentId(), billingInfo.getPaymentDesc() };
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
package org.springframework.batch.sample.domain.order.internal.extractor;
|
||||
|
||||
import org.springframework.batch.item.file.transform.FieldExtractor;
|
||||
import org.springframework.batch.sample.domain.order.Customer;
|
||||
import org.springframework.batch.sample.domain.order.Order;
|
||||
|
||||
/**
|
||||
* @author Dan Garrette
|
||||
* @since 2.0.1
|
||||
*/
|
||||
public class CustomerFieldExtractor implements FieldExtractor<Order> {
|
||||
|
||||
public Object[] extract(Order order) {
|
||||
Customer customer = order.getCustomer();
|
||||
return new Object[] { "CUSTOMER:", customer.getRegistrationId(), emptyIfNull(customer.getFirstName()),
|
||||
emptyIfNull(customer.getMiddleName()), emptyIfNull(customer.getLastName()) };
|
||||
}
|
||||
|
||||
private String emptyIfNull(String s) {
|
||||
return s != null ? s : "";
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
package org.springframework.batch.sample.domain.order.internal.extractor;
|
||||
|
||||
import org.springframework.batch.item.file.transform.FieldExtractor;
|
||||
import org.springframework.batch.sample.domain.order.Order;
|
||||
|
||||
/**
|
||||
* @author Dan Garrette
|
||||
* @since 2.0.1
|
||||
*/
|
||||
public class FooterFieldExtractor implements FieldExtractor<Order> {
|
||||
|
||||
public Object[] extract(Order order) {
|
||||
return new Object[] { "END_ORDER:", order.getTotalPrice() };
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
package org.springframework.batch.sample.domain.order.internal.extractor;
|
||||
|
||||
import java.text.SimpleDateFormat;
|
||||
|
||||
import org.springframework.batch.item.file.transform.FieldExtractor;
|
||||
import org.springframework.batch.sample.domain.order.Order;
|
||||
|
||||
/**
|
||||
* @author Dan Garrette
|
||||
* @since 2.0.1
|
||||
*/
|
||||
public class HeaderFieldExtractor implements FieldExtractor<Order> {
|
||||
|
||||
private static final SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd");
|
||||
|
||||
public Object[] extract(Order order) {
|
||||
return new Object[] { "BEGIN_ORDER:", order.getOrderId(), dateFormat.format(order.getOrderDate()) };
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
package org.springframework.batch.sample.domain.order.internal.extractor;
|
||||
|
||||
import org.springframework.batch.item.file.transform.FieldExtractor;
|
||||
import org.springframework.batch.sample.domain.order.LineItem;
|
||||
|
||||
/**
|
||||
* @author Dan Garrette
|
||||
* @since 2.0.1
|
||||
*/
|
||||
public class LineItemFieldExtractor implements FieldExtractor<LineItem> {
|
||||
|
||||
public Object[] extract(LineItem item) {
|
||||
return new Object[] { "ITEM:", item.getItemId(), item.getPrice() };
|
||||
}
|
||||
|
||||
}
|
||||
@@ -14,16 +14,14 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.batch.sample.domain.order.internal;
|
||||
package org.springframework.batch.sample.domain.order.internal.mapper;
|
||||
|
||||
import org.springframework.batch.item.file.mapping.FieldSetMapper;
|
||||
import org.springframework.batch.item.file.transform.FieldSet;
|
||||
import org.springframework.batch.sample.domain.order.Address;
|
||||
|
||||
|
||||
|
||||
public class AddressFieldSetMapper implements FieldSetMapper<Address> {
|
||||
|
||||
|
||||
public static final String ADDRESSEE_COLUMN = "ADDRESSEE";
|
||||
public static final String ADDRESS_LINE1_COLUMN = "ADDR_LINE1";
|
||||
public static final String ADDRESS_LINE2_COLUMN = "ADDR_LINE2";
|
||||
@@ -31,19 +29,18 @@ public class AddressFieldSetMapper implements FieldSetMapper<Address> {
|
||||
public static final String ZIP_CODE_COLUMN = "ZIP_CODE";
|
||||
public static final String STATE_COLUMN = "STATE";
|
||||
public static final String COUNTRY_COLUMN = "COUNTRY";
|
||||
|
||||
|
||||
public Address mapFieldSet(FieldSet fieldSet) {
|
||||
Address address = new Address();
|
||||
|
||||
address.setAddressee(fieldSet.readString(ADDRESSEE_COLUMN));
|
||||
address.setAddrLine1(fieldSet.readString(ADDRESS_LINE1_COLUMN));
|
||||
address.setAddrLine2(fieldSet.readString(ADDRESS_LINE2_COLUMN));
|
||||
address.setCity(fieldSet.readString(CITY_COLUMN));
|
||||
address.setZipCode(fieldSet.readString(ZIP_CODE_COLUMN));
|
||||
address.setState(fieldSet.readString(STATE_COLUMN));
|
||||
address.setCountry(fieldSet.readString(COUNTRY_COLUMN));
|
||||
public Address mapFieldSet(FieldSet fieldSet) {
|
||||
Address address = new Address();
|
||||
|
||||
return address;
|
||||
}
|
||||
address.setAddressee(fieldSet.readString(ADDRESSEE_COLUMN));
|
||||
address.setAddrLine1(fieldSet.readString(ADDRESS_LINE1_COLUMN));
|
||||
address.setAddrLine2(fieldSet.readString(ADDRESS_LINE2_COLUMN));
|
||||
address.setCity(fieldSet.readString(CITY_COLUMN));
|
||||
address.setZipCode(fieldSet.readString(ZIP_CODE_COLUMN));
|
||||
address.setState(fieldSet.readString(STATE_COLUMN));
|
||||
address.setCountry(fieldSet.readString(COUNTRY_COLUMN));
|
||||
|
||||
return address;
|
||||
}
|
||||
}
|
||||
@@ -14,25 +14,23 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.batch.sample.domain.order.internal;
|
||||
package org.springframework.batch.sample.domain.order.internal.mapper;
|
||||
|
||||
import org.springframework.batch.item.file.mapping.FieldSetMapper;
|
||||
import org.springframework.batch.item.file.transform.FieldSet;
|
||||
import org.springframework.batch.sample.domain.order.BillingInfo;
|
||||
|
||||
|
||||
|
||||
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 mapFieldSet(FieldSet fieldSet) {
|
||||
BillingInfo info = new BillingInfo();
|
||||
|
||||
info.setPaymentId(fieldSet.readString(PAYMENT_TYPE_ID_COLUMN));
|
||||
info.setPaymentDesc(fieldSet.readString(PAYMENT_DESC_COLUMN));
|
||||
public BillingInfo mapFieldSet(FieldSet fieldSet) {
|
||||
BillingInfo info = new BillingInfo();
|
||||
|
||||
return info;
|
||||
}
|
||||
info.setPaymentId(fieldSet.readString(PAYMENT_TYPE_ID_COLUMN));
|
||||
info.setPaymentDesc(fieldSet.readString(PAYMENT_DESC_COLUMN));
|
||||
|
||||
return info;
|
||||
}
|
||||
}
|
||||
@@ -14,16 +14,14 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.batch.sample.domain.order.internal;
|
||||
package org.springframework.batch.sample.domain.order.internal.mapper;
|
||||
|
||||
import org.springframework.batch.item.file.mapping.FieldSetMapper;
|
||||
import org.springframework.batch.item.file.transform.FieldSet;
|
||||
import org.springframework.batch.sample.domain.order.Customer;
|
||||
|
||||
|
||||
|
||||
public class CustomerFieldSetMapper implements FieldSetMapper<Customer> {
|
||||
|
||||
|
||||
public static final String LINE_ID_COLUMN = "LINE_ID";
|
||||
public static final String COMPANY_NAME_COLUMN = "COMPANY_NAME";
|
||||
public static final String LAST_NAME_COLUMN = "LAST_NAME";
|
||||
@@ -33,26 +31,26 @@ public class CustomerFieldSetMapper implements FieldSetMapper<Customer> {
|
||||
public static final String REGISTERED_COLUMN = "REGISTERED";
|
||||
public static final String REG_ID_COLUMN = "REG_ID";
|
||||
public static final String VIP_COLUMN = "VIP";
|
||||
|
||||
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);
|
||||
}
|
||||
public Customer mapFieldSet(FieldSet fieldSet) {
|
||||
Customer customer = new Customer();
|
||||
|
||||
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)));
|
||||
}
|
||||
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);
|
||||
}
|
||||
|
||||
customer.setRegistrationId(fieldSet.readLong(REG_ID_COLUMN));
|
||||
customer.setVip(TRUE_SYMBOL.equals(fieldSet.readString(VIP_COLUMN)));
|
||||
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)));
|
||||
}
|
||||
|
||||
return customer;
|
||||
}
|
||||
customer.setRegistrationId(fieldSet.readLong(REG_ID_COLUMN));
|
||||
customer.setVip(TRUE_SYMBOL.equals(fieldSet.readString(VIP_COLUMN)));
|
||||
|
||||
return customer;
|
||||
}
|
||||
}
|
||||
@@ -14,24 +14,22 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.batch.sample.domain.order.internal;
|
||||
package org.springframework.batch.sample.domain.order.internal.mapper;
|
||||
|
||||
import org.springframework.batch.item.file.mapping.FieldSetMapper;
|
||||
import org.springframework.batch.item.file.transform.FieldSet;
|
||||
import org.springframework.batch.sample.domain.order.Order;
|
||||
|
||||
|
||||
|
||||
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 mapFieldSet(FieldSet fieldSet) {
|
||||
Order order = new Order();
|
||||
order.setOrderId(fieldSet.readLong(ORDER_ID_COLUMN));
|
||||
order.setOrderDate(fieldSet.readDate(ORDER_DATE_COLUMN));
|
||||
|
||||
return order;
|
||||
}
|
||||
public Order mapFieldSet(FieldSet fieldSet) {
|
||||
Order order = new Order();
|
||||
order.setOrderId(fieldSet.readLong(ORDER_ID_COLUMN));
|
||||
order.setOrderDate(fieldSet.readDate(ORDER_DATE_COLUMN));
|
||||
|
||||
return order;
|
||||
}
|
||||
}
|
||||
@@ -14,15 +14,14 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.batch.sample.domain.order.internal;
|
||||
package org.springframework.batch.sample.domain.order.internal.mapper;
|
||||
|
||||
import org.springframework.batch.item.file.mapping.FieldSetMapper;
|
||||
import org.springframework.batch.item.file.transform.FieldSet;
|
||||
import org.springframework.batch.sample.domain.order.LineItem;
|
||||
|
||||
|
||||
public class OrderItemFieldSetMapper implements FieldSetMapper<LineItem> {
|
||||
|
||||
|
||||
public static final String TOTAL_PRICE_COLUMN = "TOTAL_PRICE";
|
||||
public static final String QUANTITY_COLUMN = "QUANTITY";
|
||||
public static final String HANDLING_PRICE_COLUMN = "HANDLING_PRICE";
|
||||
@@ -31,20 +30,19 @@ public class OrderItemFieldSetMapper implements FieldSetMapper<LineItem> {
|
||||
public static final String DISCOUNT_PERC_COLUMN = "DISCOUNT_PERC";
|
||||
public static final String PRICE_COLUMN = "PRICE";
|
||||
public static final String ITEM_ID_COLUMN = "ITEM_ID";
|
||||
|
||||
|
||||
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));
|
||||
public LineItem mapFieldSet(FieldSet fieldSet) {
|
||||
LineItem item = new LineItem();
|
||||
|
||||
return item;
|
||||
}
|
||||
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;
|
||||
}
|
||||
}
|
||||
@@ -14,27 +14,25 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.batch.sample.domain.order.internal;
|
||||
package org.springframework.batch.sample.domain.order.internal.mapper;
|
||||
|
||||
import org.springframework.batch.item.file.mapping.FieldSetMapper;
|
||||
import org.springframework.batch.item.file.transform.FieldSet;
|
||||
import org.springframework.batch.sample.domain.order.ShippingInfo;
|
||||
|
||||
|
||||
|
||||
public class ShippingFieldSetMapper implements FieldSetMapper<ShippingInfo> {
|
||||
|
||||
public static final String ADDITIONAL_SHIPPING_INFO_COLUMN = "ADDITIONAL_SHIPPING_INFO";
|
||||
|
||||
public static final String ADDITIONAL_SHIPPING_INFO_COLUMN = "ADDITIONAL_SHIPPING_INFO";
|
||||
public static final String SHIPPING_TYPE_ID_COLUMN = "SHIPPING_TYPE_ID";
|
||||
public static final String SHIPPER_ID_COLUMN = "SHIPPER_ID";
|
||||
|
||||
public ShippingInfo mapFieldSet(FieldSet fieldSet) {
|
||||
ShippingInfo info = new ShippingInfo();
|
||||
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));
|
||||
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;
|
||||
}
|
||||
return info;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user