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

📄 xmlsalesformatter.java

📁 这是我修读美国卡耐基梅隆大学Carnegie Mellon University(CMU)课程ssd3:Object-Oriented Programming and Design时完成的课程设计
💻 JAVA
字号:
import java.util.*;

/**
 * The class XMLSalesFormatter implements the interface SalesFormatter. 
 * This class is implemented as a singleton so a new object will not be 
 * created every time the XML format is used.
 *
 * @author 张维
 * @version  1.0.0
 * @see SalesFormatter
 * @see Order
 * @see Product
 * @see OrderItem
 * @see Sales
 * @see Catalog
 * @see Coffee
 * @see CoffeeBrewer
 */
public class XMLSalesFormatter implements SalesFormatter {

    /* Line separator */
    private static final String NEW_LINE = System.getProperty("line.separator");

    /* Single instance of this class */
    private static XMLSalesFormatter singletonInstance = null;

    /**
     * Returns the single instance of class <code>XMLSalesFormatter</code>
     *
     * @return the single instance  of class <code>XMLSalesFormatter</code>
     */
    public static XMLSalesFormatter getSingletonInstance( ) {

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

    /**
     * The constructor is declared private so other classes cannot
     * create an instance of this class.
     */
    private XMLSalesFormatter( ) {
    	
    }

    /**
     * Returns an XML representation of the specified sales.
     *
     * @param sales  the Sales object that contains the orders that have been sold. 
     * @return  a XML representation of the specified <code>Sales</code> object.
     */
     public String formatSales(Sales sales) {
     	
        String s = "<Sales>" + NEW_LINE;
        for(Iterator iterator = sales.getOrdersIterator( ); iterator.hasNext( );) { 
        	
            Order order = (Order)iterator.next( );
            s = s + "  <Order total=\"" + order.getTotalCost() + "\">" + NEW_LINE;
            
            for(Iterator iterator1 = order.getItemsIterator( ); iterator1.hasNext( );) {
                OrderItem orderitem = (OrderItem)iterator1.next( );
                s = s + "    <OrderItem quantity=\"" + orderitem.getQuantity( ) 
                    + "\" price=\"" + orderitem.getProduct( ).getPrice( ) + "\">" 
                    + orderitem.getProduct( ).getCode( ) + "</OrderItem>" + NEW_LINE;
            }
            s = s + "  </Order>" + NEW_LINE;
        }
        s = s + "</Sales>";
        return s;
    }
}

⌨️ 快捷键说明

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