001 package data.events;
002
003 import util.SerializableListener;
004 import data.CatalogItem;
005 import data.StockItem;
006
007 /**
008 * An <i>abstract</i> adapter class for receiving stock change events. The methods in this class are empty.
009 * This class exists as convenience for creating listener objects.
010 *
011 * <p>Extend this class to create a StockChangeEvent listener and override the methods for the events of
012 * interest. (If you implement the StockChangeListener interface, you have to define all of the methods in
013 * it. This abstract class defines empty method bodies for them all, so you can concentrate on defining
014 * methods only for events you care about.)</p>
015 *
016 * <p>Create a listener object using the extended class and then register it with a ListenableStock using
017 * the Stock's {@link data.ListenableStock#addStockChangeListener} method. When the Stock's contents
018 * change, the relevant method in the listener object is invoked, and a {@link StockChangeEvent} is passed
019 * to it.</p>
020 *
021 * @author Steffen Zschaler
022 * @version 2.0 19/08/1999
023 * @since v2.0
024 */
025 public class StockChangeAdapter<T extends StockItem, CT extends CatalogItem> extends Object
026 implements StockChangeListener<T, CT>, SerializableListener {
027 /**
028 * ID for serialization.
029 */
030 private static final long serialVersionUID = -3696397741490620296L;
031
032 /**
033 * Called whenever StockItems were added to the Stock.
034 *
035 * @override Sometimes
036 *
037 * @param e an event object describing the event.
038 */
039 public void addedStockItems(StockChangeEvent<T, CT> e) {}
040
041 /**
042 * Called whenever the adding of StockItems was commited.
043 *
044 * @override Sometimes
045 *
046 * @param e an event object describing the event.
047 */
048 public void commitAddStockItems(StockChangeEvent<T, CT> e) {}
049
050 /**
051 * Called whenever the adding of StockItems was rolled back.
052 *
053 * @override Sometimes
054 *
055 * @param e an event object describing the event.
056 */
057 public void rollbackAddStockItems(StockChangeEvent<T, CT> e) {}
058
059 /**
060 * Called to ask whether certain StockItems may be removed. If one of the listeners vetos the removal, all
061 * listeners that had already been asked will receive a {@link #noRemoveStockItems noRemoveStockItems}
062 * event.
063 *
064 * @override Sometimes
065 *
066 * @param e an event object describing the event.
067 *
068 * @exception VetoException if the listener wants to veto the removal.
069 */
070 public void canRemoveStockItems(StockChangeEvent<T, CT> e) throws VetoException {}
071
072 /**
073 * Called for each listener that already agreed with a removal that was then rejected by another listener.
074 *
075 * @override Sometimes
076 *
077 * @param e an event object describing the event.
078 */
079 public void noRemoveStockItems(StockChangeEvent<T, CT> e) {}
080
081 /**
082 * Called whenever StockItems were removed from the Stock.
083 *
084 * @override Sometimes
085 *
086 * @param e an event object describing the event.
087 */
088 public void removedStockItems(StockChangeEvent<T, CT> e) {}
089
090 /**
091 * Called whenever the removal of StockItems was commited.
092 *
093 * @override Sometimes
094 *
095 * @param e an event object describing the event.
096 */
097 public void commitRemoveStockItems(StockChangeEvent<T, CT> e) {}
098
099 /**
100 * Called whenever the removal of StockItems was rolled back.
101 *
102 * @override Sometimes
103 *
104 * @param e an event object describing the event.
105 */
106 public void rollbackRemoveStockItems(StockChangeEvent<T, CT> e) {}
107
108 /**
109 * Called to ask whether certain StockItems may be edited. If one of the listeners vetos the editing, all
110 * listeners that had already been asked will receive a {@link #noEditStockItems noEditStockItems}
111 * event.
112 *
113 * @override Sometimes
114 *
115 * @param e an event object describing the event.
116 *
117 * @exception VetoException if the listener wants to veto the editing.
118 */
119 public void canEditStockItems(StockChangeEvent<T, CT> e) throws VetoException {}
120
121 /**
122 * Called for each listener that already agreed with an editing that was then rejected by another listener.
123 *
124 * @override Sometimes
125 *
126 * @param e an event object describing the event.
127 */
128 public void noEditStockItems(StockChangeEvent<T, CT> e) {}
129
130 /**
131 * Called whenever the Stock began editing StockItems. This event may be accompanied by a
132 * <code>removedStockItems</code> and a <code>addedStockItems</code> event, but this is implementation
133 * specific.
134 *
135 * @override Sometimes
136 *
137 * @param e an event object describing the event.
138 */
139 public void editingStockItems(StockChangeEvent<T, CT> e) {}
140
141 /**
142 * Called whenever the editing of StockItems was commited.
143 *
144 * @override Sometimes
145 *
146 * @param e an event object describing the event.
147 */
148 public void commitEditStockItems(StockChangeEvent<T, CT> e) {}
149
150 /**
151 * Called whenever the editing of StockItems was rolled back.
152 *
153 * @override Sometimes
154 *
155 * @param e an event object describing the event.
156 */
157 public void rollbackEditStockItems(StockChangeEvent<T, CT> e) {}
158 }