Interface StockHolderWrapper
- All Superinterfaces:
StockHolder
- All Known Subinterfaces:
PersonalStockHolder
- Functional Interface:
- This is a functional interface and can therefore be used as the assignment target for a lambda expression or method reference.
StockHolder
.-
Method Summary
Modifier and TypeMethodDescriptiondefault int
decrease
(@NotNull BoxItem item, @org.jetbrains.annotations.Range(from=0L, to=2147483647L) int decrement, @NotNull StockEvent.Cause cause) Decreases the stock of the specified item.default boolean
decreaseIfPossible
(@NotNull it.unimi.dsi.fastutil.objects.Object2IntMap<BoxItem> decrementMap, @NotNull StockEvent.Cause cause) Decreases the stock of the specified items.default int
decreaseIfPossible
(@NotNull BoxItem item, @org.jetbrains.annotations.Range(from=0L, to=2147483647L) int decrement, @NotNull StockEvent.Cause cause) Decreases the stock of the specified item.default int
decreaseToZero
(@NotNull BoxItem item, @org.jetbrains.annotations.Range(from=0L, to=2147483647L) int limit, @NotNull StockEvent.Cause cause) Decreases the stock of the specified item.@NotNull StockHolder
delegate()
Gets the delegatingStockHolder
.default int
getAmount
(int itemId) Gets the stock quantity of the specified item.default @NotNull String
getName()
Gets the name of this holder.default @NotNull @Unmodifiable Collection
<BoxItem> Gets a stocked item collection.default @NotNull UUID
getUUID()
Gets the uuid of this holder.default int
increase
(@NotNull BoxItem item, @org.jetbrains.annotations.Range(from=0L, to=2147483647L) int increment, @NotNull StockEvent.Cause cause) Increases the stock of the specified item.default @NotNull @Unmodifiable Collection
<StockData> reset()
Resets all stock.default void
setAmount
(@NotNull BoxItem item, @org.jetbrains.annotations.Range(from=0L, to=2147483647L) int amount, @NotNull StockEvent.Cause cause) Sets the stock quantity of the specified item.default @NotNull @Unmodifiable Collection
<StockData> Gets the current stock as aStockData
collection.Methods inherited from interface net.okocraft.box.api.model.stock.StockHolder
decreaseIfPossible, getAmount
-
Method Details
-
delegate
Gets the delegatingStockHolder
.- Returns:
- the delegating
StockHolder
-
getName
Description copied from interface:StockHolder
Gets the name of this holder.- Specified by:
getName
in interfaceStockHolder
- Returns:
- the name of this holder
-
getUUID
Description copied from interface:StockHolder
Gets the uuid of this holder.- Specified by:
getUUID
in interfaceStockHolder
- Returns:
- the uuid of this holder
-
getAmount
default int getAmount(int itemId) Description copied from interface:StockHolder
Gets the stock quantity of the specified item.- Specified by:
getAmount
in interfaceStockHolder
- Parameters:
itemId
- the id of theBoxItem
to get the stock- Returns:
- the current stock quantity
-
setAmount
default void setAmount(@NotNull @NotNull BoxItem item, @org.jetbrains.annotations.Range(from=0L, to=2147483647L) int amount, @NotNull StockEvent.Cause cause) Description copied from interface:StockHolder
Sets the stock quantity of the specified item.- Specified by:
setAmount
in interfaceStockHolder
- Parameters:
item
- the item to set the stock quantityamount
- the amountcause
- the cause that indicates why this method called
-
increase
default int increase(@NotNull @NotNull BoxItem item, @org.jetbrains.annotations.Range(from=0L, to=2147483647L) int increment, @NotNull StockEvent.Cause cause) Description copied from interface:StockHolder
Increases the stock of the specified item.If
increment
is zero, this method returnsStockHolder.getAmount(BoxItem)
.The behavior when the stock has overflowed depends on the implementation.
- Specified by:
increase
in interfaceStockHolder
- Parameters:
item
- the item to increase the stockincrement
- the amount to increase the stockcause
- the cause that indicates why this method called- Returns:
- the stock quantity after increasing
-
decrease
default int decrease(@NotNull @NotNull BoxItem item, @org.jetbrains.annotations.Range(from=0L, to=2147483647L) int decrement, @NotNull StockEvent.Cause cause) Description copied from interface:StockHolder
Decreases the stock of the specified item.If
decrement
is zero, this method returnsStockHolder.getAmount(BoxItem)
.If the current stock is less than
decrement
, this method sets the stock to zero. In other words, this method does not guarantee that the stock is always decreased bydecrement
.If you want to decrease the stock when it is sufficient, use
StockHolder.decreaseIfPossible(BoxItem, int, StockEvent.Cause)
.- Specified by:
decrease
in interfaceStockHolder
- Parameters:
item
- the item to decrease the stockdecrement
- the amount to decrease the stockcause
- the cause that indicates why this method called- Returns:
- the stock quantity after decreasing
-
decreaseToZero
default int decreaseToZero(@NotNull @NotNull BoxItem item, @org.jetbrains.annotations.Range(from=0L, to=2147483647L) int limit, @NotNull StockEvent.Cause cause) Description copied from interface:StockHolder
Decreases the stock of the specified item.This method has the following specification:
- If the stock is less than
limit
, this method sets the stock to zero and returns the stock before set to zero - Otherwise, this method decreases the stock by
limit
and returnslimit
This method is useful when you want to decrease the stock as much as possible, with
limit
as the maximum decrement.- Specified by:
decreaseToZero
in interfaceStockHolder
- Parameters:
item
- the item to decrease the stocklimit
- the maximum decrementcause
- the cause that indicates why this method called- Returns:
- the amount of decrement
- If the stock is less than
-
decreaseIfPossible
default int decreaseIfPossible(@NotNull @NotNull BoxItem item, @org.jetbrains.annotations.Range(from=0L, to=2147483647L) int decrement, @NotNull StockEvent.Cause cause) Description copied from interface:StockHolder
Decreases the stock of the specified item.If the stock is less than the
decrement
, this method does not actually decrease it, and returns-1
.- Specified by:
decreaseIfPossible
in interfaceStockHolder
- Parameters:
item
- the item to decrease the stockdecrement
- the amount to decrease the stockcause
- the cause that indicates why this method called- Returns:
- the stock quantity after decreasing or
-1
when the stock is less than thedecrement
-
decreaseIfPossible
default boolean decreaseIfPossible(@NotNull @NotNull it.unimi.dsi.fastutil.objects.Object2IntMap<BoxItem> decrementMap, @NotNull StockEvent.Cause cause) Description copied from interface:StockHolder
Decreases the stock of the specified items.This method is implemented as follows:
- If all items in the
decrementMap
are greater than the decrement (the value keyed byBoxItem
), this method will actually decrease them and returntrue
. - If even one item is lacking, it returns
false
without any stock modification. - If
decrementMap
is empty, this method returnstrue
. - When the negative value is contained in
decrementMap
, this method throwsIllegalArgumentException
- When the decrement value is zero, this method ignores it.
- Specified by:
decreaseIfPossible
in interfaceStockHolder
- Parameters:
decrementMap
- the map (key:BoxItem
, value: decrement)cause
- the cause that indicates why this method called- Returns:
true
if stock of all specified items is decreased, otherwisefalse
- If all items in the
-
getStockedItems
Description copied from interface:StockHolder
Gets a stocked item collection.- Specified by:
getStockedItems
in interfaceStockHolder
- Returns:
- a stocked item collection.
-
toStockDataCollection
Description copied from interface:StockHolder
Gets the current stock as aStockData
collection.- Specified by:
toStockDataCollection
in interfaceStockHolder
- Returns:
- the collection of
StockData
-
reset
Description copied from interface:StockHolder
Resets all stock.- Specified by:
reset
in interfaceStockHolder
- Returns:
- the collection of
StockData
before reset
-