001 package data; 002 003 /** 004 * Basic implementation of the {@link DataBasketCondition} interface. You can use this 005 * class as a basis for implementing more sophisticated queries. 006 * 007 * @author Steffen Zschaler 008 * @version 2.0 14/06/1999 009 * @since v2.0 010 */ 011 public class DataBasketConditionImpl extends Object implements DataBasketCondition { 012 013 /** 014 * The source condition. 015 * 016 * @serial 017 */ 018 protected DataBasketEntrySource m_dbesSource; 019 020 /** 021 * The destination condition. 022 * 023 * @serial 024 */ 025 protected DataBasketEntryDestination m_dbedDest; 026 027 /** 028 * The main key condition. 029 * 030 * @serial 031 */ 032 protected String m_sMainKey; 033 034 /** 035 * The secondary key condition. 036 * 037 * @serial 038 */ 039 protected String m_sSecondaryKey; 040 041 /** 042 * The value condition. 043 * 044 * @serial 045 */ 046 protected Object m_oValue; 047 048 /** 049 * Create a new DataBasketConditionImpl. 050 * 051 * @param sMainKey the value for {@link #m_sMainKey}. 052 * @param sSecondaryKey the value for {@link #m_sSecondaryKey}. 053 * @param dbesSource the value for {@link #m_dbesSource}. 054 * @param dbedDest the value for {@link #m_dbedDest}. 055 * @param oValue the value for {@link #m_oValue}. 056 */ 057 public DataBasketConditionImpl(String sMainKey, String sSecondaryKey, DataBasketEntrySource dbesSource, 058 DataBasketEntryDestination dbedDest, Object oValue) { 059 super(); 060 061 m_sMainKey = sMainKey; 062 m_sSecondaryKey = sSecondaryKey; 063 m_dbesSource = dbesSource; 064 m_dbedDest = dbedDest; 065 m_oValue = oValue; 066 } 067 068 /** 069 * @return {@link #m_dbesSource}. 070 * 071 * @override Never Instead set the value of {@link #m_dbesSource}. 072 */ 073 public DataBasketEntrySource getSource() { 074 return m_dbesSource; 075 } 076 077 /** 078 * @return {@link #m_dbedDest}. 079 * 080 * @override Never Instead set the value of {@link #m_dbedDest}. 081 */ 082 public DataBasketEntryDestination getDestination() { 083 return m_dbedDest; 084 } 085 086 /** 087 * @return {@link #m_oValue}. 088 * 089 * @override Never Instead set the value of {@link #m_oValue}. 090 */ 091 public Object getValue() { 092 return m_oValue; 093 } 094 095 /** 096 * @return {@link #m_sMainKey}. 097 * 098 * @override Never Instead set the value of {@link #m_sMainKey}. 099 */ 100 public String getMainKey() { 101 return m_sMainKey; 102 } 103 104 /** 105 * @return {@link #m_sSecondaryKey}. 106 * 107 * @override Never Instead set the value of {@link #m_sSecondaryKey}. 108 */ 109 public String getSecondaryKey() { 110 return m_sSecondaryKey; 111 } 112 113 /** 114 * As a default, always returns true. 115 * 116 * @override Sometimes 117 */ 118 public boolean match(DataBasketEntry dbe) { 119 return true; 120 } 121 122 // some static convenience functions and objects 123 /** 124 * A DataBasketCondition matching all items in a DataBasket. 125 */ 126 public final static DataBasketCondition ALL_ENTRIES = new DataBasketConditionImpl(null, null, null, null, null); 127 /** 128 * A DataBasketCondition that matches all entries that describe StockItem movements. 129 */ 130 public final static DataBasketCondition ALL_STOCK_ITEMS = new DataBasketConditionImpl(STOCK_ITEM_MAIN_KEY, null, null, null, null); 131 132 /** 133 * A DataBasketCondition that matches all entries that describe CatalogItem movements. 134 */ 135 public final static DataBasketCondition ALL_CATALOG_ITEMS = new DataBasketConditionImpl( 136 CATALOG_ITEM_MAIN_KEY, null, null, null, null); 137 138 /** 139 * A DataBasketCondition that matches all entries that describe StockItems being taken from the 140 * given Stock. 141 */ 142 public static final DataBasketCondition allStockItemsWithSource(Stock stSource) { 143 return new DataBasketConditionImpl(STOCK_ITEM_MAIN_KEY, null, stSource, null, null); 144 } 145 146 /** 147 * A DataBasketCondition that matches all entries that describe StockItems being entered into the 148 * given Stock. 149 */ 150 public static final DataBasketCondition allStockItemsWithDest(Stock stDest) { 151 return new DataBasketConditionImpl(STOCK_ITEM_MAIN_KEY, null, null, stDest, null); 152 } 153 154 /** 155 * A DataBasketCondition that matches all entries that describe CatalogItems being taken from the 156 * given Catalog. 157 */ 158 public static final DataBasketCondition allCatalogItemsWithSource(Catalog cSource) { 159 return new DataBasketConditionImpl(CATALOG_ITEM_MAIN_KEY, null, cSource, null, null); 160 } 161 162 /** 163 * A DataBasketCondition that matches all entries that describe CatalogItems being entered into the 164 * given Catalog. 165 */ 166 public static final DataBasketCondition allCatalogItemsWithDest(Catalog cDest) { 167 return new DataBasketConditionImpl(CATALOG_ITEM_MAIN_KEY, null, null, cDest, null); 168 } 169 170 /** 171 * A DataBasketCondition that matches exactly one given CatalogItem. 172 */ 173 public static final DataBasketCondition specificCatalogItem(CatalogItem ci) { 174 return new DataBasketConditionImpl(CATALOG_ITEM_MAIN_KEY, ci.getName(), null, null, ci); 175 } 176 177 /** 178 * A DataBasketCondition that matches exactly one given StockItem. 179 */ 180 public static final DataBasketCondition specificStockItem(StockItem si) { 181 return new DataBasketConditionImpl(STOCK_ITEM_MAIN_KEY, si.getName(), null, null, si); 182 } 183 }