001    package market.statistics;
002    
003    import market.UCustomer;
004    import data.Value;
005    import data.events.VetoException;
006    import data.ooimpl.CatalogImpl;
007    
008    /**
009     * Catalog that contains the statistics of the market's customers.
010     */
011    public class CCustomerStats extends CatalogImpl {
012    
013        /**
014             * ID for serialization.
015             */
016            private static final long serialVersionUID = 1L;
017    
018            public CCustomerStats() {
019            super("Kundenstatistik");
020        }
021    
022        /**
023         * @param id the ID of the customer whose statistics are to be got.
024         * @return the desired customer statistics.
025         */
026        public CICustomerStats get(String id) {
027            try {
028                return (CICustomerStats)super.get(id, null, false);
029            }
030            catch (VetoException ex) {
031                return null;
032            }
033        }
034    
035        /**
036         * @param id the ID of the customer whose statistics are to be removed.
037         */
038        public void remove(String id) {
039            try {
040                super.remove(id, null);
041            }
042            catch (VetoException ex) {}
043        }
044    
045        /**
046         * Updates the customer's statistics whenever he made a purchase.
047         *
048         * @param uc the customer to whose statistics the value should be added.
049         * @param v the value to be added to the statistics.
050         */
051        public void addSales(UCustomer uc, Value v) {
052            get(uc.getName()).add(Integer.parseInt(v.toString()));
053        }
054    }