Package net.dv8tion.jda.api.utils
Class Result<T>
java.lang.Object
net.dv8tion.jda.api.utils.Result<T>
- Type Parameters:
T
- The success type
Represents a computation or task result.
This result may be a
This result may be a
failure
or success
.
This is a value type and does not implement Object.equals(Object)
or Object.hashCode()
!
- Since:
- 4.2.1
-
Method Summary
Modifier and TypeMethodDescriptionstatic <E> Result
<E> Creates a result instance from the provided supplier.Throws the wrapped exception if the provided predicate returns true.static <E> Result
<E> Creates a failure result.<U> Result
<U> Composite function to convert a result value to another result.get()
Unwraps the success value of this result.Unwraps the error for this result.boolean
True if this result is a failure.boolean
True if this result is a success.<U> Result
<U> Composite function to convert a result value to another value.Passive error handler.Passive success handler.static <E> Result
<E> success
(E value) Creates a successful result.toString()
-
Method Details
-
success
Creates a successful result.- Type Parameters:
E
- The success type- Parameters:
value
- The success value- Returns:
- Result
-
failure
Creates a failure result.- Type Parameters:
E
- The success type- Parameters:
error
- The failure throwable- Returns:
- Result
- Throws:
IllegalArgumentException
- If the provided error is null
-
defer
@Nonnull @CheckReturnValue public static <E> Result<E> defer(@Nonnull Supplier<? extends E> supplier) Creates a result instance from the provided supplier.
If the supplier throws an exception, a failure result is returned.- Type Parameters:
E
- The success type- Parameters:
supplier
- The supplier- Returns:
- Result instance with the supplied value or exception failure
- Throws:
IllegalArgumentException
- If the supplier is null
-
isFailure
public boolean isFailure()- Returns:
- True, if this is a failure result
-
isSuccess
public boolean isSuccess()- Returns:
- True, if this is a successful result
-
onFailure
Passive error handler.
This will apply the provided callback ifisFailure()
is true and return the same result for further chaining.- Parameters:
callback
- The passive callback- Returns:
- The same result instance
- Throws:
IllegalArgumentException
- If the callback is null
-
onSuccess
Passive success handler.
This will apply the provided callback ifisSuccess()
is true and return the same result for further chaining.- Parameters:
callback
- The passive callback- Returns:
- The same result instance
- Throws:
IllegalArgumentException
- If the callback is null
-
map
@Nonnull @CheckReturnValue public <U> Result<U> map(@Nonnull Function<? super T, ? extends U> function) Composite function to convert a result value to another value.
This will only apply the function isisSuccess()
is true.- Type Parameters:
U
- The result type- Parameters:
function
- The conversion function- Returns:
- The mapped result
- Throws:
IllegalArgumentException
- If the provided function is null- See Also:
-
flatMap
@Nonnull @CheckReturnValue public <U> Result<U> flatMap(@Nonnull Function<? super T, ? extends Result<U>> function) Composite function to convert a result value to another result.
This will only apply the function isisSuccess()
is true.- Type Parameters:
U
- The result type- Parameters:
function
- The conversion function- Returns:
- The mapped result
- Throws:
IllegalArgumentException
- If the provided function is null
-
get
Unwraps the success value of this result.
This only works ifisSuccess()
is true and throws otherwise.- Returns:
- The result value
- Throws:
IllegalStateException
- If the result is not successful
-
getFailure
- Returns:
- The error or null
-
expect
Throws the wrapped exception if the provided predicate returns true.
This will never provide a null error to the predicate. A successful result will never throw.- Parameters:
predicate
- The test predicate- Returns:
- The same result instance
- Throws:
IllegalArgumentException
- If the provided predicate is nullIllegalStateException
- If the predicate returns true, thecause
will be the wrapped exception
-
toString
-