001 package data; 002 003 /** 004 * An item in a {@link Stock}. 005 * 006 * <p>StockItems describe actually available items. They refer to a {@link CatalogItem} and describe an item 007 * of the CatalogItem's type that is actually available in a Shop's storage, on an order form etc.</p> 008 * 009 * <p><strong>Note</strong> that the name as obtained via {@link Nameable#getName} is used as the StockItem's 010 * key when inserting the StockItem in a Stock.</p> 011 * 012 * <p>Stocks are a special form of StockItems.</p> 013 * 014 * @author Steffen Zschaler 015 * @version 2.0 18/08/1999 016 * @since v2.0 017 */ 018 public interface StockItem extends Cloneable, Comparable, Nameable { 019 020 /** 021 * Get the Stock that contains this StockItem. 022 * 023 * @override Always 024 */ 025 public Stock getStock(); 026 027 /** 028 * Get the CatalogItem that is associated to this StockItem. 029 * 030 * @param db the DataBasket that is used for checking visibility. 031 * 032 * @override Always 033 */ 034 public CatalogItem getAssociatedItem(DataBasket db); 035 036 /** 037 * Clone the StockItem. 038 * 039 * @override Always 040 */ 041 public Object clone(); 042 }