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.booleanTrue if this result is a failure.booleanTrue 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, thecausewill be the wrapped exception
-
toString
-