Interface OrderAction<T,M extends OrderAction<T,M>>
-
- Type Parameters:
T
- The entity type for theList
of entities contained in the OrderAction's orderListM
- The extension implementing the abstract operations of this OrderAction, this will be important for chaining convenience as it returns the specific implementation rather than a mask of this class. It allows us to implement chaining operations in this class instead of having to implement it in every inheriting class!
- All Superinterfaces:
RestAction<Void>
- All Known Subinterfaces:
CategoryOrderAction
,ChannelOrderAction
,RoleOrderAction
public interface OrderAction<T,M extends OrderAction<T,M>> extends RestAction<Void>
Extension ofRestAction
- Type: Void that allows to modify the order of entities provided as anArrayList
.
This action contains a List or entities for the specified typeT
which can be moved within the bounds but not removed, nor can any new entities be added.- Since:
- 3.0
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description List<T>
getCurrentOrder()
Immutable List representing the currently selected order of entities in this OrderAction instanceT
getSelectedEntity()
The entity which is currently at theselected position
int
getSelectedPosition()
The currently selected position that is in focus for all modification operations of this OrderAction instanceboolean
isAscendingOrder()
Whether this instance uses ascending order, from the lowest position to the highest.M
moveDown(int amount)
Moves the currently selected entityamount
positions DOWN in order by pushing all entities up by one position.M
moveTo(int position)
Moves the currently selected entity to the specified position (0 based index).M
moveUp(int amount)
Moves the currently selected entityamount
positions UP in order by pushing all entities down by one position.M
reverseOrder()
Reverses thecurrent order
by usingCollections.reverse(orderList)
M
selectPosition(int selectedPosition)
Selects a new current entity at the specified index
This index is in correlation to thecurrent order
M
selectPosition(T selectedEntity)
Selects a new current entity based on the index of the specified entity in thecurrent order
This is a convenience function that usesselectPosition(int)
internallyM
setCheck(BooleanSupplier checks)
Sets the last-second checks before finally executing the http request in the queue.M
shuffleOrder()
Shuffles thecurrent order
by usingCollections.shuffle(orderList)
M
sortOrder(Comparator<T> comparator)
Sorts thecurrent order
based on the specifiedComparator
.M
swapPosition(int swapPosition)
Swaps the currently selected entity with the entity located at the specified position.M
swapPosition(T swapEntity)
Swaps the currently selected entity with the specified entity.-
Methods inherited from interface net.dv8tion.jda.api.requests.RestAction
complete, complete, completeAfter, getJDA, queue, queue, queue, queueAfter, queueAfter, queueAfter, queueAfter, queueAfter, queueAfter, submit, submit, submitAfter, submitAfter
-
-
-
-
Method Detail
-
setCheck
@Nonnull M setCheck(@Nullable BooleanSupplier checks)
Description copied from interface:RestAction
Sets the last-second checks before finally executing the http request in the queue.
If the provided supplier evaluates tofalse
or throws an exception this will not be finished. When an exception is thrown from the supplier it will be provided to the failure callback.- Specified by:
setCheck
in interfaceRestAction<T>
- Parameters:
checks
- The checks to run before executing the request, ornull
to run no checks- Returns:
- The current RestAction for chaining convenience
-
isAscendingOrder
boolean isAscendingOrder()
Whether this instance uses ascending order, from the lowest position to the highest.- Returns:
- True, if this uses ascending order
-
getCurrentOrder
@Nonnull List<T> getCurrentOrder()
Immutable List representing the currently selected order of entities in this OrderAction instance- Returns:
- Immutable List representing the current order
-
selectPosition
@Nonnull M selectPosition(int selectedPosition)
Selects a new current entity at the specified index
This index is in correlation to thecurrent order
- Parameters:
selectedPosition
- The index for the new position that will be in focus for all modification operations- Returns:
- The current OrderAction sub-implementation instance
- Throws:
IllegalArgumentException
- If the provided position is out-of-bounds- See Also:
getSelectedPosition()
,getSelectedEntity()
-
selectPosition
@Nonnull M selectPosition(@Nonnull T selectedEntity)
Selects a new current entity based on the index of the specified entity in thecurrent order
This is a convenience function that usesselectPosition(int)
internally- Parameters:
selectedEntity
- The entity for the new position that will be in focus for all modification operations- Returns:
- The current OrderAction sub-implementation instance
- See Also:
selectPosition(int)
,getSelectedPosition()
,getSelectedEntity()
-
getSelectedPosition
int getSelectedPosition()
The currently selected position that is in focus for all modification operations of this OrderAction instance- Returns:
- The currently selected index, or -1 if no position has been selected yet
-
getSelectedEntity
@Nonnull T getSelectedEntity()
The entity which is currently at theselected position
- Returns:
- The currently selected entity
- Throws:
IllegalStateException
- If no entity has been selected yet
-
moveUp
@Nonnull M moveUp(int amount)
Moves the currently selected entityamount
positions UP in order by pushing all entities down by one position.- Parameters:
amount
- The amount of positions that should be moved- Returns:
- The current OrderAction sub-implementation instance
- Throws:
IllegalStateException
- If no entity has been selected yetIllegalArgumentException
- If the specified amount would cause the entity to go out-of-bounds- See Also:
moveTo(int)
-
moveDown
@Nonnull M moveDown(int amount)
Moves the currently selected entityamount
positions DOWN in order by pushing all entities up by one position.- Parameters:
amount
- The amount of positions that should be moved- Returns:
- The current OrderAction sub-implementation instance
- Throws:
IllegalStateException
- If no entity has been selected yetIllegalArgumentException
- If the specified amount would cause the entity to go out-of-bounds- See Also:
moveTo(int)
-
moveTo
@Nonnull M moveTo(int position)
Moves the currently selected entity to the specified position (0 based index). All entities are moved in the direction of the left hole to fill the gap.- Parameters:
position
- The new not-negative position for the currently selected entity- Returns:
- The current OrderAction sub-implementation instance
- Throws:
IllegalStateException
- If no entity has been selected yetIllegalArgumentException
- If the specified position is out-of-bounds- See Also:
moveDown(int)
,moveUp(int)
-
swapPosition
@Nonnull M swapPosition(int swapPosition)
Swaps the currently selected entity with the entity located at the specified position. No other entities are affected by this operation.- Parameters:
swapPosition
- 0 based index of target position- Returns:
- The current OrderAction sub-implementation instance
- Throws:
IllegalStateException
- If no entity has been selected yetIllegalArgumentException
- If the specified position is out-of-bounds
-
swapPosition
@Nonnull M swapPosition(@Nonnull T swapEntity)
Swaps the currently selected entity with the specified entity. No other entities are affected by this operation.- Parameters:
swapEntity
- Target entity to switch positions with- Returns:
- The current OrderAction sub-implementation instance
- Throws:
IllegalStateException
- If no entity has been selected yetIllegalArgumentException
- If the specified position is out-of-bounds, or if the target entity isnull
or not available in this order action implementation- See Also:
swapPosition(int)
-
reverseOrder
@Nonnull M reverseOrder()
Reverses thecurrent order
by usingCollections.reverse(orderList)
- Returns:
- The current OrderAction sub-implementation instance
- See Also:
Collections.reverse(java.util.List)
-
shuffleOrder
@Nonnull M shuffleOrder()
Shuffles thecurrent order
by usingCollections.shuffle(orderList)
- Returns:
- The current OrderAction sub-implementation instance
- See Also:
Collections.shuffle(java.util.List)
-
sortOrder
@Nonnull M sortOrder(@Nonnull Comparator<T> comparator)
- Parameters:
comparator
- Comparator used to sort the current order- Returns:
- The current OrderAction sub-implementation instance
- Throws:
IllegalArgumentException
- If the specified comparator isnull
- See Also:
ArrayList.sort(java.util.Comparator)
-
-