|
SalesPoint v3.3 API | ||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object data.AbstractNameable data.ooimpl.StockItemImpl data.ooimpl.StockImpl<Integer,T,CT> data.ooimpl.CountingStockImpl<T,CT>
public class CountingStockImpl<T extends StockItemImpl,CT extends CatalogItemImpl>
Pure Java implementation of the CountingStock
interface.
Field Summary | |
---|---|
protected CatalogChangeListener |
m_cclReferentialIntegrityListener
Listens for the Catalog to ensure referential integrity. |
Fields inherited from class data.ooimpl.StockImpl |
---|
m_cclEditListener, m_ciCatalog, m_cinlCatalogItemNameListener, m_dbCatalogValidator, m_lhListeners, m_sclEditCreatorListener |
Fields inherited from class data.AbstractNameable |
---|
m_ncContext, m_pcsPropertyListeners |
Fields inherited from interface data.Nameable |
---|
NAME_PROPERTY |
Fields inherited from interface data.DataBasketKeys |
---|
CATALOG_ITEM_MAIN_KEY, STOCK_ITEM_MAIN_KEY |
Constructor Summary | |
---|---|
CountingStockImpl(StockIdentifier<T,CT> siId,
Catalog<CT> ciRef)
Create a new, initially empty CountingStockImpl. |
|
CountingStockImpl(String sName,
Catalog<CT> ciRef)
Create a new, initially empty CountingStockImpl. |
Method Summary | |
---|---|
void |
add(String sKey,
int nCount,
DataBasket db)
Add a number of items of a given key to the Stock. |
void |
add(T si,
DataBasket db)
Add an item to the Stock. |
void |
addStock(Stock<T,CT> st,
DataBasket db,
boolean fRemove)
Overridden for efficiency reasons. |
void |
commitAdd(DataBasket db,
DataBasketEntry dbe)
Commit the adding of StockItems. |
void |
commitRemove(DataBasket db,
DataBasketEntry dbe)
Commit the removal of StockItems. |
boolean |
contains(T si,
DataBasket db)
Check whether the Stock contains the given StockItem. |
boolean |
containsStock(Stock<T,CT> st,
DataBasket db)
Reimplemented for efficiency reasons. |
int |
countItems(String sKey,
DataBasket db)
Count the StockItems with a given key that are visible using a given DataBasket. |
protected StockImpl<Integer,T,CT> |
createPeer()
Create an empty Stock with the same name, associated Catalog and class. |
Iterator<T> |
get(String sKey,
DataBasket db,
boolean fForEdit)
Iterate all items with a given key. |
protected void |
internalSetCatalog(CatalogImpl<CT> ciRef)
Overridden to ensure referential integrity. |
StockItem |
remove(String sKey,
DataBasket db)
Remove one StockItem with the specified key from the Stock. |
void |
remove(String sKey,
int nCount,
DataBasket db)
Remove a number of items of a given key from the Stock. |
StockItem |
remove(T si,
DataBasket db)
Remove the given StockItem from the Stock. |
void |
rollbackAdd(DataBasket db,
DataBasketEntry dbe)
Rollback the adding of StockItems. |
void |
rollbackRemove(DataBasket db,
DataBasketEntry dbe)
Rollback the removal of StockItems. |
String |
toString()
Get a String representation of the Stock. |
Methods inherited from class data.ooimpl.StockItemImpl |
---|
equals, getAssociatedItem, getStock |
Methods inherited from class data.AbstractNameable |
---|
addNameListener, addPropertyChangeListener, attach, detachNC, getName, removeNameListener, removePropertyChangeListener, setName |
Methods inherited from class java.lang.Object |
---|
finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Methods inherited from interface data.Stock |
---|
contains, fillStockWithValue, getCatalog, iterator, keySet, size, sumStock |
Methods inherited from interface data.StockItem |
---|
clone, getAssociatedItem, getStock |
Methods inherited from interface java.lang.Comparable |
---|
compareTo |
Methods inherited from interface data.Nameable |
---|
addNameListener, addPropertyChangeListener, attach, detachNC, getName, removeNameListener, removePropertyChangeListener, setName |
Field Detail |
---|
protected CatalogChangeListener m_cclReferentialIntegrityListener
Constructor Detail |
---|
public CountingStockImpl(StockIdentifier<T,CT> siId, Catalog<CT> ciRef)
siId
- the id of the Stock.ciRef
- the Catalog referenced by the Stock.public CountingStockImpl(String sName, Catalog<CT> ciRef)
sName
- the name of the Stock.ciRef
- the Catalog referenced by the Stock.Method Detail |
---|
protected void internalSetCatalog(CatalogImpl<CT> ciRef)
internalSetCatalog
in class StockImpl<Integer,T extends StockItemImpl,CT extends CatalogItemImpl>
ciRef
- the Catalog to refer to from now on.public void add(T si, DataBasket db)
The item will only be visible to users of the same DataBasket. Only after a DataBasket.commit()
was performed on the DataBasket, the item will become visible to other users.
A addedStockItems
event will be fired.
add
in interface Stock<T extends StockItemImpl,CT extends CatalogItemImpl>
si
- the item to be added.db
- the DataBasket relative to which the item will be added. Must be either null
or
a descendant of DataBasketImpl
.
CatalogConflictException
- if the items key is not contained in the corresponding Catalog
.
DataBasketConflictException
- if the item has already been added/removed using another DataBasket.public void addStock(Stock<T,CT> st, DataBasket db, boolean fRemove)
addStock
in interface Stock<T extends StockItemImpl,CT extends CatalogItemImpl>
addStock
in class StockImpl<Integer,T extends StockItemImpl,CT extends CatalogItemImpl>
st
- the Stock whose contents is to be added to this Stock.db
- the DataBasket relative to which to perform the actions. addStock
will add all
items from the source Stock that are visible using this DataBasket. Must be either null
or
a descendant of DataBasketImpl
.fRemove
- if true, the items will be removed from the source Stock prior to adding them to this
Stock. Otherwise, they will be cloned prior to adding them to the Stock.public Iterator<T> get(String sKey, DataBasket db, boolean fForEdit)
This method, together with StockImpl.iterator(data.DataBasket, boolean)
is the only way of accessing the individual
StockItems
contained in a Stock. The iterator will deliver all items that have the
specified key and are visible using the given DataBasket. Depending on the fForEdit
parameter, the items will be retrieved in different ways. See DataBasket
for an explanation of
the different possibilities.
canEditStockItems
and editingStockItems
events will be fired if
fForEdit
== true. VetoExceptions
will be converted into
UnSupportedOperationException
s.
get
in interface Stock<T extends StockItemImpl,CT extends CatalogItemImpl>
sKey
- the key for which to retrieve the StockItems.db
- the DataBasket relative to which to retrieve the StockItems. Must be either null
or a descendant of DataBasketImpl
.fForEdit
- if true, the StockItems will be retrieved for editing.public int countItems(String sKey, DataBasket db)
countItems
in interface Stock<T extends StockItemImpl,CT extends CatalogItemImpl>
sKey
- the key for which to count the StockItems.db
- the DataBasket that is used to determine visibility. Must be either null
or a
descendant of DataBasketImpl
.public boolean contains(T si, DataBasket db)
Return true if the Stock contains a StockItem that is equal to the given one.
contains
in interface Stock<T extends StockItemImpl,CT extends CatalogItemImpl>
contains
in class StockImpl<Integer,T extends StockItemImpl,CT extends CatalogItemImpl>
si
- the StockItem for which to check containment.db
- the DataBasket used to check visibility. Must be either null
or a descendant of
DataBasketImpl
.public boolean containsStock(Stock<T,CT> st, DataBasket db)
containsStock
in interface Stock<T extends StockItemImpl,CT extends CatalogItemImpl>
containsStock
in class StockImpl<Integer,T extends StockItemImpl,CT extends CatalogItemImpl>
st
- the Stock for which to check containment.db
- the DataBasket used to determine visibility. Must be either null
or a descendant of
DataBasketImpl
.public StockItem remove(String sKey, DataBasket db) throws VetoException
If there are any StockItems with the specified key, one will be removed. There is no guarantee as to which StockItem will be removed. The removed item, if any, will be returned.
canRemoveStockItems
and removedStockItems
events will be fired.
remove
in interface Stock<T extends StockItemImpl,CT extends CatalogItemImpl>
sKey
- the key for which to remove an item.db
- the DataBasket relative to which to remove the item. Must be either null
or a
descendant of DataBasketImpl
.
VetoException
- if a listener vetoed the removal.
DataBasketConflictException
- if the item cannot be removed due to conflicts from DataBasket
usage.public StockItem remove(T si, DataBasket db) throws VetoException
If the given StockItem is contained in the Stock, it will be removed. The removed item, if any, will be returned.
canRemoveStockItems
and removedStockItems
events will be fired.
remove
in interface Stock<T extends StockItemImpl,CT extends CatalogItemImpl>
si
- the StockItem to be removed.db
- the DataBasket relative to which to remove the item. Must be either null
or a
descendant of DataBasketImpl
.
VetoException
- if a listener vetoed the removal.
DataBasketConflictException
- if the item cannot be removed due to conflicts from DataBasket
usage.protected StockImpl<Integer,T,CT> createPeer()
StockImpl
createPeer
in class StockImpl<Integer,T extends StockItemImpl,CT extends CatalogItemImpl>
public void add(String sKey, int nCount, DataBasket db)
As with any Stock the added items will not at once be visible to users of other DataBaskets.
In general the method behaves as though it would call Stock.add(T, data.DataBasket)
nCount
times.
Especially, the same exceptions might occur and the same constraints hold.
add
in interface CountingStock<T extends StockItemImpl,CT extends CatalogItemImpl>
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. Must be either null
or a
descendant of DataBasketImpl
.
IllegalArgumentException
- if nCount <= 0
.
CatalogConflictException
- if the key cannot be found in the Catalog.public void remove(String sKey, int nCount, DataBasket db) throws VetoException
In general the method behaves as though it would call
Stock.remove(java.lang.String, data.DataBasket)
nCount
times. Especially, the same
exceptions might occur and the same constraints hold.
remove
in interface CountingStock<T extends StockItemImpl,CT extends CatalogItemImpl>
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. Must be either null
or
a descendant of DataBasketImpl
.
VetoException
- if a listener vetos the removal.
NotEnoughElementsException
- if there are not enough elements to fulfill the request. If this
exception is thrown no items will have been removed.
IllegalArgumentException
- if nCount <= 0
public String toString()
toString
in class StockItemImpl
public void commitRemove(DataBasket db, DataBasketEntry dbe)
A commitRemoveStockItems
will be fired.
commitRemove
in interface SelfManagingDBESource<T extends StockItemImpl>
db
- the DataBasket that issued the rollback requestdbe
- the DataBasketEntry describing the operation to rollback.public void rollbackRemove(DataBasket db, DataBasketEntry dbe)
A rollbackRemoveStockItems
will be fired. Also, the Stock will try to make sure, that
a corresponding CatalogItem exists.
rollbackRemove
in interface SelfManagingDBESource<T extends StockItemImpl>
db
- the DataBasket that issued the commit requestdbe
- the DataBasketEntry describing the operation to commit.public void commitAdd(DataBasket db, DataBasketEntry dbe)
A commitAddStockItems
will be fired. A commitEditStockItems
event may be
fired as a consequence of this method. Also, the Stock will try to make sure, that a corresponding
CatalogItem exists.
commitAdd
in interface SelfManagingDBEDestination<T extends StockItemImpl>
db
- the DataBasket that issued the commit requestdbe
- the DataBasketEntry describing the operation to commit.public void rollbackAdd(DataBasket db, DataBasketEntry dbe)
A commitAddStockItems
will be fired. A commitEditStockItems
event may be
fired as a consequence of this method.
rollbackAdd
in interface SelfManagingDBEDestination<T extends StockItemImpl>
db
- the DataBasket that issued the rollback requestdbe
- the DataBasketEntry describing the operation to rollback.
|
SalesPoint v3.3 API | ||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |