Поля, конструктор...
Листинг 5.5. Поля, конструктор и методы setXxx и getXxx для класса Order (Order.java)
package com.XmlEcomBook.Chap05;
import com.XmlEcomBook.catalog.CartItem;
import java.util.*;
import java.io.*;
import com.XmlEcomBook.util.Debug;
public class Order {
private int id; //unique id for this order
private Date date; //date of order
private Vector items = new Vector();
private CustomerInfo customerInfo;
private Authorization authorization; //payment authorization
private Fulfillment fulfillment;
public Order() {
id = getUniqueId();
date = new Date();
}
public int getId() {
return id;
}
public Date getDate() {
return date;
}
public void setItems( Vector newItems ) {
if( newItems != null )
items = newItems;
}
public Vector getItems() {
return items;
}
public void setCustomerInfo( CustomerInfo newCustomer ) {
if( newCustomer != null )
customerInfo = newCustomer;
}
public CustomerInfo getCustomerInfo() {
return customerInfo;
}
public void setAuthorization( Authorization newAuth ) {
authorization = newAuth;
}
public Authorization getAuthorization() {
return authorization;
}
public void setFulfillment( Fulfillment newFulfillment ) {
fulfillment = newFulfillment;
}
public Fulfillment getFulfillment() {
return fulfillment;
}
В листинге 5.6 показаны некоторые методы, оперирующие данными, которые содержатся в классе Order. Первый метод, getTotalltemPrice, реализует цикл по всем заказанным товарам и для каждого товара умножает его цену на количество заказанных экземпляров. Затем подсчитывается и возвращается общая сумма. Метод getOrderTotal добавляет к общей сумме стоимость доставки, что и составляет общую стоимость заказа. Наконец, имеется метод getTotalltemWeight, который аналогичен методу getTotalltemPrice, но только в нем подсчитывается не стоимость, а общий вес заказа. Метод getPrice-осуществляет вспомогательные функции — удаляет дополнительные символы (знак $ и запятые) из строки с указанием цены, полученной из объекта Cartltem, а затем преобразует полученное число к типу doubl e.
Содержание раздела