package bank.bankieren;_x000D_
_x000D_
import centralebank.ICentraleBank;_x000D_
import fontys.observer.Publisher;_x000D_
import fontys.observer.RemotePropertyListener;_x000D_
import fontys.util.*;_x000D_
import java.rmi.RemoteException;_x000D_
_x000D_
/**_x000D_
 * @author 871059_x000D_
 * _x000D_
 */_x000D_
public interface IBank extends Publisher, RemotePropertyListener {_x000D_
	/**_x000D_
	 * creatie van een nieuwe bankrekening; het gegenereerde bankrekeningnummer_x000D_
	 * is identificerend voor de nieuwe bankrekening; als de klant_x000D_
	 * geidentificeerd door naam en plaats nog niet bestaat wordt er ook een_x000D_
	 * nieuwe klant aangemaakt_x000D_
	 * _x000D_
	 * @param naam_x000D_
	 *            van de eigenaar van de nieuwe bankrekening_x000D_
	 * @param plaats_x000D_
	 *            de woonplaats van de eigenaar van de nieuwe bankrekening_x000D_
	 * @return -1 zodra naam of plaats een lege string of rekeningnummer niet_x000D_
	 *         door centrale kon worden vrijgegeven en anders het nummer van de_x000D_
	 *         gecreeerde bankrekening_x000D_
	 */_x000D_
	int openRekening(String naam, String plaats) throws RemoteException;_x000D_
_x000D_
	/**_x000D_
	 * er wordt bedrag overgemaakt van de bankrekening met nummer bron naar de_x000D_
	 * bankrekening met nummer bestemming_x000D_
	 * _x000D_
	 * @param bron_x000D_
	 * @param bestemming_x000D_
	 *            ongelijk aan bron_x000D_
	 * @param bedrag_x000D_
	 *            is groter dan 0_x000D_
	 * @return <b>true</b> als de overmaking is gelukt, anders <b>false</b>_x000D_
	 * @throws NumberDoesntExistException_x000D_
	 *             als een van de twee bankrekeningnummers onbekend is_x000D_
	 */_x000D_
	boolean maakOver(int bron, int bestemming, Money bedrag)_x000D_
			throws NumberDoesntExistException, RemoteException;_x000D_
_x000D_
	/**_x000D_
	 * @param nr_x000D_
	 * @return de bankrekening met nummer nr mits bij deze bank bekend, anders null_x000D_
	 */_x000D_
	IRekening getRekening(int nr) throws RemoteException;_x000D_
_x000D_
	/**_x000D_
	 * @return de naam van deze bank_x000D_
	 */_x000D_
	String getName() throws RemoteException;_x000D_
_x000D_
        /**_x000D_
         * Methode om de centrale bank te wijzigen_x000D_
         * @throws RemoteException_x000D_
         */_x000D_
        void setCentraleBank(ICentraleBank centraleBank) throws RemoteException;_x000D_
_x000D_
        /**_x000D_
         * @return Centrale bank die bij de bank hoort_x000D_
         * @throws RemoteException_x000D_
         */_x000D_
        public ICentraleBank getCentraleBank() throws RemoteException;_x000D_
_x000D_
        /**_x000D_
         * Voeg listener aan publisher_x000D_
         * @param listener_x000D_
         * @param property_x000D_
         * @throws RemoteException_x000D_
         *          Als server niet kan worden gevonden_x000D_
         */_x000D_
        public void addListener(RemotePropertyListener listener, String property) throws RemoteException;_x000D_
_x000D_
         /**_x000D_
         * Voeg listener aan publisher_x000D_
         * @param listener_x000D_
         * @param property_x000D_
         * @throws RemoteException_x000D_
         *          Als server niet kan worden gevonden_x000D_
         */_x000D_
        public void removeListener(RemotePropertyListener listener, String property) throws RemoteException;_x000D_
        public void muteerCentraal(int reknr, Money money) throws RemoteException;_x000D_
}_x000D_

/**_x000D_
	 * creatie van een nieuwe bankrekening; het gegenereerde bankrekeningnummer_x000D_
	 * is identificerend voor de nieuwe bankrekening; als de klant_x000D_
	 * geidentificeerd door naam en plaats nog niet bestaat wordt er ook een_x000D_
	 * nieuwe klant aangemaakt_x000D_
	 * _x000D_
	 * @param naam_x000D_
	 *            van de eigenaar van de nieuwe bankrekening_x000D_
	 * @param plaats_x000D_
	 *            de woonplaats van de eigenaar van de nieuwe bankrekening_x000D_
	 * @return -1 zodra naam of plaats een lege string of rekeningnummer niet_x000D_
	 *         door centrale kon worden vrijgegeven en anders het nummer van de_x000D_
	 *         gecreeerde bankrekening_x000D_
	 */
package bank.bankieren;_x000D_
_x000D_
import centralebank.ICentraleBank;_x000D_
import fontys.observer.Publisher;_x000D_
import fontys.observer.RemotePropertyListener;_x000D_
import fontys.util.*;_x000D_
import java.rmi.RemoteException;_x000D_
_x000D_
/**_x000D_
 * @author 871059_x000D_
 * _x000D_
 */_x000D_
public interface IBank extends Publisher, RemotePropertyListener {_x000D_
	/**_x000D_
	 * creatie van een<SUF>*/_x000D_
	int openRekening(String naam, String plaats) throws RemoteException;_x000D_
_x000D_
	/**_x000D_
	 * er wordt bedrag overgemaakt van de bankrekening met nummer bron naar de_x000D_
	 * bankrekening met nummer bestemming_x000D_
	 * _x000D_
	 * @param bron_x000D_
	 * @param bestemming_x000D_
	 *            ongelijk aan bron_x000D_
	 * @param bedrag_x000D_
	 *            is groter dan 0_x000D_
	 * @return <b>true</b> als de overmaking is gelukt, anders <b>false</b>_x000D_
	 * @throws NumberDoesntExistException_x000D_
	 *             als een van de twee bankrekeningnummers onbekend is_x000D_
	 */_x000D_
	boolean maakOver(int bron, int bestemming, Money bedrag)_x000D_
			throws NumberDoesntExistException, RemoteException;_x000D_
_x000D_
	/**_x000D_
	 * @param nr_x000D_
	 * @return de bankrekening met nummer nr mits bij deze bank bekend, anders null_x000D_
	 */_x000D_
	IRekening getRekening(int nr) throws RemoteException;_x000D_
_x000D_
	/**_x000D_
	 * @return de naam van deze bank_x000D_
	 */_x000D_
	String getName() throws RemoteException;_x000D_
_x000D_
        /**_x000D_
         * Methode om de centrale bank te wijzigen_x000D_
         * @throws RemoteException_x000D_
         */_x000D_
        void setCentraleBank(ICentraleBank centraleBank) throws RemoteException;_x000D_
_x000D_
        /**_x000D_
         * @return Centrale bank die bij de bank hoort_x000D_
         * @throws RemoteException_x000D_
         */_x000D_
        public ICentraleBank getCentraleBank() throws RemoteException;_x000D_
_x000D_
        /**_x000D_
         * Voeg listener aan publisher_x000D_
         * @param listener_x000D_
         * @param property_x000D_
         * @throws RemoteException_x000D_
         *          Als server niet kan worden gevonden_x000D_
         */_x000D_
        public void addListener(RemotePropertyListener listener, String property) throws RemoteException;_x000D_
_x000D_
         /**_x000D_
         * Voeg listener aan publisher_x000D_
         * @param listener_x000D_
         * @param property_x000D_
         * @throws RemoteException_x000D_
         *          Als server niet kan worden gevonden_x000D_
         */_x000D_
        public void removeListener(RemotePropertyListener listener, String property) throws RemoteException;_x000D_
        public void muteerCentraal(int reknr, Money money) throws RemoteException;_x000D_
}_x000D_
