xmlsalesformatter.java

来自「ssd3部分quiz、exercise、exam的参考答案」· Java 代码 · 共 60 行

JAVA
60
字号
import java.util.*;


public class XMLSalesFormatter implements SalesFormatter{
	static public XMLSalesFormatter singletonInstance = null;
	
	private XMLSalesFormatter() {
		
	}
	
	static public XMLSalesFormatter getSingletonInstance() {
		if(singletonInstance == null) {
			singletonInstance = new XMLSalesFormatter();
		}
		
		return XMLSalesFormatter.singletonInstance;
	}
	
	public String formatSales(Sales sales) {
		String record = "";
		double total = 0.0;
		
		/**  Why can't use this!!!
		 *for(Iterator<Order> temp = sales.iterator(); temp.hasNext();)
		 *	total += temp.next().getTotalCost();
		 *
		 *record += "<Sales>\n" +
		 *			"<Order total=\"" + total + "\">";
		 *
		 *for(Iterator<Order> temp1 = sales.iterator(); temp1.hasNext();) {
		 *	for(Iterator<OrderItem> temp2 = temp1.next().iterator(); temp2.hasNext();) {
		 *		record += "<OrderItem quantity=\"" + temp2.next().getQuantity() +
		 *					"\" price=\"" + temp2.next().getProduct().getPrice() +
		 *					"\">" + temp2.next().getProduct().getCode() + 
		 *					"</OrderItem>\n";
		 *	}
		 *}
		*/
		
		for(Order temp: sales.orders) {
			total += temp.getTotalCost();
		}
		record += "<Sales>\n" +
			"<Order total=\"" + total + "\">";
		
		for(Order temp1: sales.orders) {
			for(OrderItem temp2: temp1.getOrderItem()) {
				record += "<OrderItem quantity=\"" + temp2.getQuantity() +
							"\" price=\"" + temp2.getProduct().getPrice() +
							"\">" + temp2.getProduct().getCode() + 
							"</OrderItem>\n";
			}
		}
		
		record += "</Order>\n</Sales>";
		return record;
	}

}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?