Электронный магазин на Java и XML

       

Класс Fullfilment


В процесс выполнения заказа входит все, что должно быть сделано с товаром после оформления заказа. Обычно для этого нужно найти товар на складе, запаковать его и отправить клиенту. Мы рассмотрим несколько упрощенный вариант выполнения заказа; в нашем примере будет учитываться только сам процесс доставки.

В классе Fullfilment имеются поля для хранения информации о фирме, которая осуществляет доставку, и о типе услуг. Таким образом, мы можем доставлять товары с помощью различных почтовых фирм — например, Federal Express, UPS или почтовой службы US, а также выбирать различные типы услуг — срочную доставку на следующий день, через один или два дня или доставку в обычном режиме. Также нужно знать, сколько клиент должен заплатить за доставку. Эта сумма добавляется к стоимости товаров, что в результате дает полную стоимость заказа. Когда заказ наконец отправлен, ему должен быть присвоен некоторый идентификационный номер, а также следует записать дату отправки заказа — эти сведения потребуются, если от клиента поступят какие-либо вопросы, связанные с доставкой.

В классе Fullfilmerit (листинг 5.3) имеются методы setXxx и getXxx для каждого из полей. Имеется также один специальный метод, setShipperAndClass. Он позволяет задавать в одной строке и название почтовой фирмы, и тип услуг (для данного заказа) [Эту совокупность далее мы будем называть способом доставки. — Примеч. перев.]. Как вы увидите в разделе «JSP-страница Shippinglnfo», это упрощает обработку введенных пользователем данных (о предпочтительном способе доставки). В этом методе используется объект StringTokenizer, который разделяет строку на две части, затем первую часть заносит в поле shipper (почтовая фирма), а вторую — в поле class (тип услуг). Это сделано для того, чтобы упростить ввод указанных данных. Ниже мы рассмотрим страницу Shippinglnfo.jsp и увидим, как используется данный метод.

Листинг 5.3. Класс Fulfilment (Fullfilment.java)

package com.XmlEcomBook.Chap05;

import java.util.Date;


import java.util.StringTokenizer;

public class Fulfillment {

String shipper;

//UPS, Fedex, USPS, etc.

String shippingClass;



//Overnight, 2 Day, regular, frieght, etc.

double costToCustomer;

// How much the customer is charged for shipping

String trackingNumber = "NO_TRACKING_NUMBER";

String dateSent = "NOT_SENT_YET";

public Fulfillment() {

}

public void setShipper( String newShipper ) {

shipper = newShipper;

}

public String getShipper() {

return shipper;

}

public void setShipperAndClass( String shipperAndClass ) {

StringTokenizer st = new StringTokenizer( shipperAndClass );

if( st.hasMoreTokens() ) {

shipper = st.nextToken();

if( st.hasMoreTokens() ) {

shippingClass = st.nextToken();

}

}

}

public void setShippingClass( String newClass ) {

shippingClass = newClass;

}

public String getShippingClass() {

return shippingClass;

}

public void setTrackingNumber( String newNumber ) {

trackingNumber = newNumber;

}

public String getTrackingNumber() {

return trackingNumber;

}

public void setDateSent( String newDate ) { dateSent = newDate;

}

public String getDateSent() {

return dateSent;

}

public double getCostToCustomer() {

return costToCustomer;

}

public void setCostToCustomer( double newCost ) {

costToCustomer = newCost;

}

}

 




Содержание раздела