001    package org.cocome.tradingsystem.systests.interfaces;
002    
003    /**
004     * This is the interface used for a bank. There is exactly one bank in the
005     * entire system which is used for all credit card checks. The bank is not
006     * checked for events but is just used to manage credit cards (so we know which
007     * ones are valid).
008     * 
009     * @author Benjamin Hummel
010     * @author $Author: hummel $
011     * @version $Rev: 47 $
012     * @levd.rating GREEN Rev: 47
013     */
014    public interface IBank {
015    
016            /**
017             * Create a new credit card for this bank. If a card of this number already
018             * exists, the old card will be replaced.
019             * 
020             * @param cardNumber
021             *            the number for this card.
022             * @param pinNumber
023             *            the secret pin code for the credit card.
024             * @param availableMoney
025             *            the amount of money in cents associated with this card.
026             */
027            void createCreditCard(int cardNumber, int pinNumber, int availableMoney)
028                            throws Exception;
029    
030            /**
031             * Returns the amount of money (in cents) available for this card.
032             * 
033             * @param cardNumber
034             *            the number for this card.
035             */
036            int getAvailableMoney(int cardNumber) throws Exception;
037    
038            /**
039             * Deletes the given credit card. If the card does not exist, nothing
040             * happens.
041             * 
042             * @param cardNumber
043             *            the number of card to be deleted.
044             */
045            void deleteCreditCard(int cardNumber) throws Exception;
046    }