Class EventResultHolder<T>
java.lang.Object
net.ixdarklord.coolcatcore.api.event.v2.core.EventResultHolder<T>
- Type Parameters:
T- holder value type
An extension to
EventResult allowing to attach any kind of value to the result, null values are not permitted.
The implementation can be used similarly to Java's Optional class, allowing for functional patterns.
Implementation is also remotely similar to CompoundEventResult.java from Architectury API.
-
Method Summary
Modifier and TypeMethodDescriptionstatic <T> EventResultHolder<T> allow(T value) static <T> EventResultHolder<T> deny(T value) <U> EventResultHolder<U> flatMap(Function<? super T, ? extends EventResultHolder<? extends U>> mapper) getAllow()getDeny()getValue()ifInterrupt(Consumer<? super T> action) static <T> EventResultHolder<T> interrupt(T value) booleanbooleanisPass()<U> EventResultHolder<U> static <T> EventResultHolder<T> pass()result()
-
Method Details
-
pass
- Type Parameters:
T- holder value type- Returns:
- default passing value instance
-
interrupt
- Type Parameters:
T- holder value type- Parameters:
value- held value instance,nullare not permitted- Returns:
- interrupt instance
-
allow
- Type Parameters:
T- holder value type- Parameters:
value- held value instance,nullare not permitted- Returns:
- allow instance
-
deny
- Type Parameters:
T- holder value type- Parameters:
value- held value instance,nullare not permitted- Returns:
- deny instance
-
isInterrupt
public boolean isInterrupt()- Returns:
- does this result prevent the vanilla behavior from running
-
isPass
public boolean isPass()- Returns:
- does this result allow for events to continue processing and for vanilla behavior to apply
-
ifInterrupt
- Parameters:
action- action to run ifresultisEventResult.INTERRUPT- Returns:
- this instance
-
ifAllow
- Parameters:
action- action to run ifresultisEventResult.ALLOW- Returns:
- this instance
-
ifDeny
- Parameters:
action- action to run ifresultisEventResult.DENY- Returns:
- this instance
-
filter
- Parameters:
filter- tests the contained value- Returns:
- this instance if
filtersucceeds, otherwisepass()
-
map
- Type Parameters:
U- data type for new value- Parameters:
mapper- mapping transformer forvalue- Returns:
- new holder containing the mapped value,
resultis unchanged
-
flatMap
public <U> EventResultHolder<U> flatMap(Function<? super T, ? extends EventResultHolder<? extends U>> mapper) - Type Parameters:
U- data type for new value- Parameters:
mapper- mapping transformer forvalue- Returns:
- new holder containing the mapped value,
resultis unchanged
-
getInterrupt
- Returns:
- optional value if
resultisEventResult.INTERRUPT
-
getAllow
- Returns:
- optional value if
resultisEventResult.ALLOW
-
getDeny
- Returns:
- optional value if
resultisEventResult.DENY
-
result
- Returns:
- the result this holder carries
-
getValue
-