001 package data.events; 002 003 import java.util.EventListener; 004 005 import data.CatalogItem; 006 import data.StockItem; 007 008 /** 009 * Listener listening for StockChangeEvents. 010 * 011 * @author Steffen Zschaler 012 * @version 2.0 19/08/1999 013 * @since v2.0 014 */ 015 public interface StockChangeListener<T extends StockItem, CT extends CatalogItem> extends EventListener { 016 017 /** 018 * Called whenever StockItems were added to the Stock. 019 * 020 * @override Always 021 * 022 * @param e an event object describing the event. 023 */ 024 public void addedStockItems(StockChangeEvent<T, CT> e); 025 026 /** 027 * Called whenever the adding of StockItems was commited. 028 * 029 * @override Always 030 * 031 * @param e an event object describing the event. 032 */ 033 public void commitAddStockItems(StockChangeEvent<T, CT> e); 034 035 /** 036 * Called whenever the adding of StockItems was rolled back. 037 * 038 * @override Always 039 * 040 * @param e an event object describing the event. 041 */ 042 public void rollbackAddStockItems(StockChangeEvent<T, CT> e); 043 044 /** 045 * Called to ask whether certain StockItems may be removed. If one of the listeners vetos the removal, all 046 * listeners that had already been asked will receive a {@link #noRemoveStockItems noRemoveStockItems} 047 * event. 048 * 049 * @override Always 050 * 051 * @param e an event object describing the event. 052 * 053 * @exception VetoException if the listener wants to veto the removal. 054 */ 055 public void canRemoveStockItems(StockChangeEvent<T, CT> e) throws VetoException; 056 057 /** 058 * Called for each listener that already agreed with a removal that was then rejected by another listener. 059 * 060 * @override Always 061 * 062 * @param e an event object describing the event. 063 */ 064 public void noRemoveStockItems(StockChangeEvent<T, CT> e); 065 066 /** 067 * Called whenever StockItems were removed from the Stock. 068 * 069 * @override Always 070 * 071 * @param e an event object describing the event. 072 */ 073 public void removedStockItems(StockChangeEvent<T, CT> e); 074 075 /** 076 * Called whenever the removal of StockItems was commited. 077 * 078 * @override Always 079 * 080 * @param e an event object describing the event. 081 */ 082 public void commitRemoveStockItems(StockChangeEvent<T, CT> e); 083 084 /** 085 * Called whenever the removal of StockItems was rolled back. 086 * 087 * @override Always 088 * 089 * @param e an event object describing the event. 090 */ 091 public void rollbackRemoveStockItems(StockChangeEvent<T, CT> e); 092 093 /** 094 * Called to ask whether certain StockItems may be edited. If one of the listeners vetos the editing, all 095 * listeners that had already been asked will receive a {@link #noEditStockItems noEditStockItems} 096 * event. 097 * 098 * @override Always 099 * 100 * @param e an event object describing the event. 101 * 102 * @exception VetoException if the listener wants to veto the editing. 103 */ 104 public void canEditStockItems(StockChangeEvent<T, CT> e) throws VetoException; 105 106 /** 107 * Called for each listener that already agreed with an editing that was then rejected by another listener. 108 * 109 * @override Always 110 * 111 * @param e an event object describing the event. 112 */ 113 public void noEditStockItems(StockChangeEvent<T, CT> e); 114 115 /** 116 * Called whenever the Stock began editing StockItems. This event may be accompanied by a 117 * <code>removedStockItems</code> and a <code>addedStockItems</code> event, but this is implementation 118 * specific. 119 * 120 * @override Always 121 * 122 * @param e an event object describing the event. 123 */ 124 public void editingStockItems(StockChangeEvent<T, CT> e); 125 126 /** 127 * Called whenever the editing of StockItems was commited. 128 * 129 * @override Always 130 * 131 * @param e an event object describing the event. 132 */ 133 public void commitEditStockItems(StockChangeEvent<T, CT> e); 134 135 /** 136 * Called whenever the editing of StockItems was rolled back. 137 * 138 * @override Always 139 * 140 * @param e an event object describing the event. 141 */ 142 public void rollbackEditStockItems(StockChangeEvent<T, CT> e); 143 }