001    package data;
002    
003    import data.events.DataBasketListener;
004    
005    /**
006     * A DataBasket that will fire events to inform about changes to its contents.
007     *
008     * @author Steffen Zschaler
009     * @version 2.0 18/08/1999
010     * @since v2.0
011     */
012    public interface ListenableDataBasket extends DataBasket {
013    
014        /**
015         * Add a listener that will be informed about changes to the DataBasket's contents.
016         *
017         * @override Always
018         *
019         * @param dbl the listener.
020         */
021        public void addDataBasketListener(DataBasketListener dbl);
022    
023        /**
024         * Remove a listener that was being informed about changes to the DataBasket's contents.
025         *
026         * @override Always
027         *
028         * @param dbl the listener.
029         */
030        public void removeDataBasketListener(DataBasketListener dbl);
031    
032        /**
033         * Fire an event to inform listeners about some unspecific change to the DataBasket's contents.
034         *
035         * <p>This method is necessary as there may be changes that are made without calling methods in the
036         * DataBasket. In such cases a call to this method will be necessary to keep the listeners informed.</p>
037         *
038         * @override Always
039         *
040         * @param dbl the listener.
041         */
042        public void fireDataBasketChanged();
043    }