📄 xmlsalesformatter.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 + -