001 package data.ooimpl; 002 003 import data.*; // This is to help javadoc... 004 005 /** 006 * DataBasketEntry that describes operations with StoringStock's items. The 007 * fields of the <code>DataBasketEntry</code> are set as follows: 008 * 009 * <table border=1> 010 * <tr><td><strong>Field</strong></td><td><strong>Value</strong></td></tr> 011 * <tr><td>{@link DataBasketEntry#getMainKey main key}</td> 012 * <td>{@link DataBasketKeys#STOCK_ITEM_MAIN_KEY STOCK_ITEM_MAIN_KEY} 013 * </td> 014 * </tr> 015 * <tr><td>{@link DataBasketEntry#getSecondaryKey secondary key}</td> 016 * <td>{@link StockItem#getName name} of the StockItem in question</td> 017 * </tr> 018 * <tr><td>{@link DataBasketEntry#getSource source}</td> 019 * <td>{@link Stock source stock}<td> 020 * </tr> 021 * <tr><td>{@link DataBasketEntry#getDestination destination}</td> 022 * <td>{@link Stock destination stock}<td> 023 * </tr> 024 * <tr><td>{@link DataBasketEntry#getValue value}</td> 025 * <td>{@link StockItem} that was moved.<td> 026 * </tr> 027 * </table> 028 * 029 * @author Steffen Zschaler 030 * @version 2.0 19/09/1999 031 * @since v2.0 032 */ 033 public class StoringStockItemDBEntry extends StockItemDBEntry { 034 035 /** 036 * ID for serialization. 037 */ 038 private static final long serialVersionUID = 8511828947009795094L; 039 040 /** 041 * Create a new StoringStockItemDBEntry. 042 * 043 * @param sstiSource the source Stock. 044 * @param sstiDest the destination Stock. 045 * @param siiItem the item that was operated on. 046 */ 047 public StoringStockItemDBEntry(StoringStockImpl sstiSource, StoringStockImpl sstiDest, 048 StockItemImpl siiItem) { 049 super(siiItem.getName(), sstiSource, sstiDest, siiItem); 050 } 051 052 /** 053 * Rollback the destination part of the operation described by this {@link data.DataBasketEntry}. 054 * 055 * <p>The method will correctly update the underlying DataBasket.</p> 056 * 057 * <p><strong>Attention</strong>: The method is public as an implementation detail and should not be called 058 * directly.</p> 059 * 060 * @override Never 061 */ 062 public void rollbackDestination() { 063 DataBasketEntryImpl dbe = new StoringStockItemDBEntry(null, (StoringStockImpl)getDestination(), 064 (StockItemImpl)getValue()); 065 066 dbe.setOwner(m_dbiOwner); 067 068 m_dbedDest = null; 069 070 dbe.rollback(); 071 } 072 073 /** 074 * Commit the source part of the operation described by this {@link data.DataBasketEntry}. 075 * 076 * <p>The method will correctly update the underlying DataBasket.</p> 077 * 078 * <p><strong>Attention</strong>: The method is public as an implementation detail and should not be called 079 * directly.</p> 080 * 081 * @override Never 082 */ 083 public void commitSource() { 084 DataBasketEntryImpl dbe = new StoringStockItemDBEntry((StoringStockImpl)getSource(), null, 085 (StockItemImpl)getValue()); 086 dbe.setOwner(m_dbiOwner); 087 088 m_dbesSource = null; 089 090 dbe.commit(); 091 } 092 }