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

         

Методы для подсчета...



Листинг 5.6. Методы для подсчета характеристик заказа как единого целого (Order.java)

public double getTotalItemPrice() { double total = 0; Enumeration enum = items.elements();
while( enum.hasMoreElements() ) { CartItem item = (CartItem)enum.nextElement();
total += getPrice( item ) * item.getNumberOrdered();
} return total; } public double getTotalItemWeight() { double total = 0; Enumeration enum = items.elements();
while( enum.hasMoreElements() ) { CartItem cartItem = (CartItem)enum.nextElement();
double d = Double.parseDouble(cartItem.getShippingValue());


total += d * cartItem.getNumberOrdered();
} return total; } private double getPrice( CartItem item ) { String s = item.getPrice();
//remove dollar sign s = s.replace( '$', ' ' );
//remove commas int i; while( (i = s.indexOf( ',' )) >
0 ) { s = s.substring( 0, i ) + s.substring( i + 1 );
} return Double.parseDouble( s );
}

Имеется также метод для записи заказа в формате XML. Информация о заказе может пригодиться в будущем. Поэтому мы создали определение DTD, которое является непосредственным отображением класса Order и всех классов, которые в нем используются. В листинге 5.7 представлен файл order.dtd, в котором каждому из полей класса Order (item, customer-Info, authorization и fullfilment) соответствует элемент, дочерний по отношению к элементу order. Поля id и date класса Order представлены атрибутами элемента order. Таким же образом сформированы и остальные элементы DTD: каждому полю класса Order соответствует элемент или атрибут в DTD [Order — заказ, item — товар, first name — имя, last name — фамилия, address — адрес, city — город, state — штат или страна, zip — почтовый индекс, phone — номер телефона, card number — номер кредитной карты, card type — тип кредитной карты, expiration date — дата окончания срока действия, reason — причина (отклонения кредитной карты), authorization code — код подтверждения, cost — стоимость, tracking number — номер для отслеживания заказа, date sent — дата отправки. — Примеч. перев. ].



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