⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 xmlsalesformatter.java

📁 Exercise 5 SSD3 icarnegie mellon
💻 JAVA
字号:
/**
 * Esta clase crea una sola instancia y regresa una cadena de caracteres  en XML
 * cada vez que sea invocada.
 * 
 * @author  Marcos Alan Martinez Montes de Oca
 * @version 1.0.0
 */
public class XMLSalesFormatter implements SalesFormatter {

	// La unica instancia de PlainTextSalesFormatter.
	static private XMLSalesFormatter singletonInstance = null;

	// En lugar de \n, usamos este separador que se adapta al sistema usado.
	private final static String NEW_LINE = System.getProperty("line.separator");

	/**
	 * Obtiene la unica instancia de mi clase PlainTextSalesFormatter. Si no hay
	 * una instancia previa, la crea. Si ya existe, regresa la instancia
	 * existente.
	 * 
	 * @return la unica instancia de PlainTextSalesFormatter
	 */
	static public XMLSalesFormatter getSingletonInstance() {

		if (singletonInstance == null) {
			singletonInstance = new XMLSalesFormatter();
		}

		return singletonInstance;
	}

	/**
	 * Declaro el constructor como privado para que otras clases no puedan crear
	 * instancias multiples.
	 */
	private XMLSalesFormatter() {
	}

	/**
	 * Regresa una cadena  con el formato de la venta en XML
	 * 
	 * @return una cadena de caracteres con el formato de la venta en XML
	 */
	public String formatSales(Sales sales) {
		
		String out = "<Sales>" + NEW_LINE;
		
		for (Order order: sales) {
			for (OrderItem orderItem : order) {
			out += "  <Order total=\"" 
				+ order.getTotalCost() 
				+ "\">" + NEW_LINE;
			
			out += "    <OrderItem quantity=\"" 
				+ orderItem.getProduct().getPrice()
			    + "\" price=\""
				+ orderItem.getProduct().getPrice() 
				+ "\">"
				+ orderItem.getProduct().getCode() 
				+ "</OrderItem>" + NEW_LINE
				+ "  </Order>" + NEW_LINE + NEW_LINE; 
			}
	        
		}
		out += "</Sales>";

		return out;
    }
	
	
}

⌨️ 快捷键说明

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