org.salespointframework.core.data.filters
Class CountingStockFilter<T extends StockItem,CT extends CatalogItem>

java.lang.Object
  extended by org.salespointframework.core.data.filters.AbstractStockFilter<T,CT>
      extended by org.salespointframework.core.data.filters.CountingStockFilter<T,CT>
All Implemented Interfaces:
java.lang.Cloneable, java.lang.Comparable<java.lang.Object>, java.util.EventListener, DatasourceChangeListener, ExternalModificationListener, StockChangeListener<T,CT>, CountingStock<T,CT>, DataBasketEntryDestination, DataBasketEntrySource, ListenableStock<T,CT>, Nameable, SpAggregate, SpItem, Stock<T,CT>, StockItem
Direct Known Subclasses:
MoneyBagFilter

public abstract class CountingStockFilter<T extends StockItem,CT extends CatalogItem>
extends AbstractStockFilter<T,CT>
implements CountingStock<T,CT>

StockFilter for CountingStocks.

The filter condition will be defined by overriding method countItems(java.lang.String, org.salespointframework.core.data.interfaces.DataBasket).

Since:
v2.0
Version:
2.0 19/08/1999
Author:
Steffen Zschaler

Field Summary
 
Fields inherited from class org.salespointframework.core.data.filters.AbstractStockFilter
m_lhListeners, m_stSource
 
Fields inherited from interface org.salespointframework.core.data.interfaces.Nameable
NAME_PROPERTY
 
Constructor Summary
CountingStockFilter(CountingStock<T,CT> csSource)
          Create a new CountingStockFilter.
 
Method Summary
 void add(java.lang.String sKey, int nCount, DataBasket db)
          Add the specified number of items to the source Stock.
 boolean contains(T si, DataBasket db)
          Check whether the filtered Stock contains the given StockItem.
 boolean containsStock(Stock<T,CT> st, DataBasket db)
          Check whether the filtered Stock contains the given Stock.
abstract  int countItems(java.lang.String sKey, DataBasket db)
          Count the items of the given key in the filtered Stock.
 java.util.Iterator<T> get(java.lang.String sKey, DataBasket db, boolean fForEdit)
          Return all items with the given key that are contained in the filtered Stock.
 void remove(java.lang.String sKey, int nCount, DataBasket db)
          Remove at most the specified number of items from the source Stock.
 
Methods inherited from class org.salespointframework.core.data.filters.AbstractStockFilter
add, addedStockItems, addNameListener, addPropertyChangeListener, addStock, addStockChangeListener, attach, canEditStockItems, canRemoveStockItems, clone, commitAddStockItems, commitEditStockItems, commitRemoveStockItems, compareTo, contains, DatasourceChanged, detachNC, editingStockItems, externalModificationOccurred, fillStockWithValue, fireCanEditStockItems, fireCanRemoveStockItems, fireEditingStockItems, fireStockItemsAddCommit, fireStockItemsAdded, fireStockItemsAddRollback, fireStockItemsEditCommit, fireStockItemsEditRollback, fireStockItemsNoEdit, fireStockItemsNoRemove, fireStockItemsRemoveCommit, fireStockItemsRemoved, fireStockItemsRemoveRollback, getAssociatedItem, getCatalog, getMainStock, getName, getStock, iterator, keySet, noEditStockItems, noRemoveStockItems, remove, remove, removedStockItems, removeNameListener, removePropertyChangeListener, removeStockChangeListener, rollbackAddStockItems, rollbackEditStockItems, rollbackRemoveStockItems, setName, size, sumStock, unsubscribe
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.salespointframework.core.data.interfaces.Stock
add, addStock, contains, fillStockWithValue, getCatalog, iterator, keySet, remove, remove, size, sumStock
 
Methods inherited from interface org.salespointframework.core.data.interfaces.StockItem
clone, getAssociatedItem, getStock
 
Methods inherited from interface java.lang.Comparable
compareTo
 
Methods inherited from interface org.salespointframework.core.data.interfaces.Nameable
addNameListener, addPropertyChangeListener, attach, detachNC, getName, removeNameListener, removePropertyChangeListener, setName
 
Methods inherited from interface org.salespointframework.core.data.interfaces.SpItem
getName
 
Methods inherited from interface org.salespointframework.core.data.events.DatasourceChangeListener
DatasourceChanged
 
Methods inherited from interface org.salespointframework.core.data.events.ExternalModificationListener
externalModificationOccurred
 

Constructor Detail

CountingStockFilter

public CountingStockFilter(CountingStock<T,CT> csSource)
Create a new CountingStockFilter.

Parameters:
csSource - the source Stock.
Method Detail

get

public java.util.Iterator<T> get(java.lang.String sKey,
                                 DataBasket db,
                                 boolean fForEdit)
Return all items with the given key that are contained in the filtered Stock.

Specified by:
get in interface Stock<T extends StockItem,CT extends CatalogItem>
Parameters:
sKey - the key for which to retrieve the StockItems.
db - the DataBasket relative to which to retrieve the StockItems.
fForEdit - if true, the StockItems will be retrieved for editing.

countItems

public abstract int countItems(java.lang.String sKey,
                               DataBasket db)
Count the items of the given key in the filtered Stock.

This method must be overridden, as it represents the filter condition. All other methods that use or return filtered values will call this method.

Specified by:
countItems in interface Stock<T extends StockItem,CT extends CatalogItem>
Parameters:
sKey - the key for which to count the StockItems.
db - the DataBasket that is used to determine visibility.

contains

public boolean contains(T si,
                        DataBasket db)
Check whether the filtered Stock contains the given StockItem.

Specified by:
contains in interface Stock<T extends StockItem,CT extends CatalogItem>
Parameters:
si - the StockItem for which to check containment.
db - the DataBasket used to check visibility.

containsStock

public boolean containsStock(Stock<T,CT> st,
                             DataBasket db)
Check whether the filtered Stock contains the given Stock.

Specified by:
containsStock in interface Stock<T extends StockItem,CT extends CatalogItem>
Parameters:
st - the Stock for which to check containment.
db - the DataBasket used to determine visibility.

add

public void add(java.lang.String sKey,
                int nCount,
                DataBasket db)
Add the specified number of items to the source Stock.

Specified by:
add in interface CountingStock<T extends StockItem,CT extends CatalogItem>
Parameters:
sKey - the key for which to add a number of items.
nCount - how many items are to be added?
db - the DataBasket relative to which the adding is performed.

remove

public void remove(java.lang.String sKey,
                   int nCount,
                   DataBasket db)
            throws VetoException
Remove at most the specified number of items from the source Stock. If the filtered Stock contains fewer items than specified only as many items as are contained in the filtered Stock will be removed from the source Stock.

Specified by:
remove in interface CountingStock<T extends StockItem,CT extends CatalogItem>
Parameters:
sKey - the key for which to remove a number of items.
nCount - how many items are to be removed?
db - the DataBasket relative to which the removal is performed.
Throws:
VetoException - if a listener vetos the removal.