Class BooleanResult<E>

java.lang.Object
no.gorandalum.fluentresult.BooleanResult<E>
Type Parameters:
E - the type of the error value

public final class BooleanResult<E> extends Object
A result object which either is in success state containing a non-null boolean value, or in error state containing a non-null error value.

A variable whose type is BooleanResult should never itself be null, it should always point to an BooleanResult instance.

  • Method Details

    • success

      public static <E> BooleanResult<E> success(boolean value)
      Returns a BooleanResult in success state containing the given non-null boolean value as success value.
      Type Parameters:
      E - the type of the error value
      Parameters:
      value - the boolean success value, which must be non-null
      Returns:
      a BooleanResult in success state containing the given boolean success value
      Throws:
      NullPointerException - if given success value is null
    • successTrue

      public static <E> BooleanResult<E> successTrue()
      Returns a BooleanResult in success state containing true as the boolean success value.
      Type Parameters:
      E - the type of the error value
      Returns:
      a BooleanResult in success state containing true as the boolean success value.
    • successFalse

      public static <E> BooleanResult<E> successFalse()
      Returns a BooleanResult in success state containing false as the boolean success value.
      Type Parameters:
      E - the type of the error value
      Returns:
      a BooleanResult in success state containing false as the boolean success value.
    • error

      public static <E> BooleanResult<E> error(E value)
      Returns a BooleanResult in error state containing the given non-null value as error value.
      Type Parameters:
      E - the type of the error value
      Parameters:
      value - the error value, which must be non-null
      Returns:
      a BooleanResult in error state containing the given error value
      Throws:
      NullPointerException - if given error value is null
    • map

      public <N> Result<N,E> map(Function<Boolean,? extends N> function)
      If in success state, returns a Result containing the result of applying the given mapping function to the boolean success value, otherwise returns a Result containing the error value of this BooleanResult.
      Type Parameters:
      N - the type of the value returned from the mapping function
      Parameters:
      function - the mapping function to apply to the boolean success value, if success state
      Returns:
      a Result containing the result of applying the mapping function to the boolean success value of this BooleanResult, if in success state, otherwise a Result containing the error value of this BooleanResult
      Throws:
      NullPointerException - if the given mapping function is null or returns null
    • mapToOptional

      public <N> OptionalResult<N,E> mapToOptional(Function<Boolean,? extends Optional<? extends N>> function)
      If in success state, returns a OptionalResult containing the result of applying the given mapping function to the boolean success value, otherwise returns a OptionalResult containing the error value of this BooleanResult.
      Type Parameters:
      N - the type of the success value which may be present in the Optional returned from the mapping function
      Parameters:
      function - the mapping function to apply to the boolean success value, if success state
      Returns:
      a OptionalResult containing the result of applying the mapping function to the boolean success value of this BooleanResult, if in success state, otherwise a OptionalResult containing the error value of this BooleanResult
      Throws:
      NullPointerException - if the given mapping function is null or returns null
    • mapToBoolean

      public BooleanResult<E> mapToBoolean(Function<Boolean,Boolean> function)
      If in success state, returns a BooleanResult containing the result of applying the given mapping function to the success value, otherwise returns the unaltered BooleanResult in error state.
      Parameters:
      function - the mapping function to apply to the boolean success value, if success state
      Returns:
      a BooleanResult containing the result of applying the mapping function to the boolean success value of this BooleanResult, if in success state, otherwise the unaltered BooleanResult in error state
      Throws:
      NullPointerException - if the given mapping function is null or returns null
    • mapError

      public <N> BooleanResult<N> mapError(Function<? super E,? extends N> function)
      If in error state, returns a BooleanResult containing the result of applying the given mapping function to the error value, otherwise returns the unaltered BooleanResult in success state.
      Type Parameters:
      N - the type of the value returned from the mapping function
      Parameters:
      function - the mapping function to apply to the error value, if error state
      Returns:
      a BooleanResult containing the result of applying the mapping function to the error value of this BooleanResult, if in error state, otherwise the unaltered BooleanResult in success state
      Throws:
      NullPointerException - if the given mapping function is null or returns null
    • flatMap

      public <N> Result<N,E> flatMap(Function<Boolean,Result<? extends N,? extends E>> function)
      If in success state, returns the Result from applying the given mapping function to the boolean success value, otherwise returns a Result containing the error value of this BooleanResult.
      Type Parameters:
      N - the type of success value which may be present in the Result returned by the mapping function
      Parameters:
      function - the mapping function to apply to the boolean success value, if success state
      Returns:
      the Result returned from the mapping function, if in success state, otherwise a Result containing the error value of this BooleanResult
      Throws:
      NullPointerException - if the given mapping function is null or returns null
    • flatMapToOptionalResult

      public <N> OptionalResult<N,E> flatMapToOptionalResult(Function<Boolean,OptionalResult<? extends N,? extends E>> function)
      If in success state, returns the OptionalResult from applying the given mapping function to the boolean success value, otherwise returns a OptionalResult containing the error value of this BooleanResult.
      Type Parameters:
      N - the type of success value which may be present in the OptionalResult returned by the mapping function
      Parameters:
      function - the mapping function to apply to the boolean success value, if success state
      Returns:
      the OptionalResult returned from the mapping function, if in success state, otherwise a OptionalResult containing the error value of this BooleanResult
      Throws:
      NullPointerException - if the given mapping function is null or returns null
    • flatMapToBooleanResult

      public BooleanResult<E> flatMapToBooleanResult(Function<Boolean,BooleanResult<? extends E>> function)
      If in success state, returns the BooleanResult from applying the given mapping function to the boolean success value, otherwise returns the unaltered BooleanResult in error state.
      Parameters:
      function - the mapping function to apply to the boolean success value, if success state
      Returns:
      the BooleanResult returned from the mapping function, if in success state, otherwise the unaltered BooleanResult in error state
      Throws:
      NullPointerException - if the given mapping function is null or returns null
    • flatMapToVoidResult

      public VoidResult<E> flatMapToVoidResult(Function<Boolean,VoidResult<? extends E>> function)
      If in success state, returns the VoidResult from applying the given mapping function to the boolean success value, otherwise returns a VoidResult containing the error value of this BooleanResult.
      Parameters:
      function - the mapping function to apply to the boolean success value, if success state
      Returns:
      the VoidResult returned from the mapping function, if in success state, otherwise a VoidResult containing the error value of this BooleanResult
      Throws:
      NullPointerException - if the given mapping function is null or returns null
    • recover

      public BooleanResult<E> recover(Function<E,Boolean> function)
      If in error state, returns a BooleanResult with the success value from applying the given mapping function to the error value, otherwise returns the unaltered BooleanResult in success state.
      Parameters:
      function - the mapping function to apply to the error value to convert to a new success value, if error state
      Returns:
      A BooleanResult containing the value from the mapping function, if in error state, otherwise the unaltered BooleanResult in success state
    • flatRecover

      public BooleanResult<E> flatRecover(Function<E,BooleanResult<? extends E>> function)
      If in error state, returns the BooleanResult from applying the given mapping function to the error value, otherwise returns the unaltered BooleanResult in success state.
      Parameters:
      function - the mapping function to apply to the error value to convert to a new BooleanResult, if error state BooleanResult returned by the mapping function
      Returns:
      the BooleanResult returned from the mapping function, if in error state, otherwise the unaltered BooleanResult in success state
    • consume

      public BooleanResult<E> consume(Consumer<Boolean> consumer)
      If in success state, applies the boolean success value to the given consumer, otherwise does nothing.
      Parameters:
      consumer - the consumer which accepts the boolean success value
      Returns:
      the original BooleanResult unaltered
      Throws:
      NullPointerException - if the given consumer is null
    • consumeError

      public BooleanResult<E> consumeError(Consumer<? super E> errorConsumer)
      If in error state, applies the error value to the given consumer, otherwise does nothing.
      Parameters:
      errorConsumer - the consumer which accepts the error value
      Returns:
      the original BooleanResult unaltered
      Throws:
      NullPointerException - if the given consumer is null
    • consumeEither

      public BooleanResult<E> consumeEither(Consumer<Boolean> valueConsumer, Consumer<? super E> errorConsumer)
      If in success state, applies the boolean success value to the given value consumer. If in error state, applies the error value to the given error consumer.
      Parameters:
      valueConsumer - the consumer which accepts the boolean success value
      errorConsumer - the consumer which accepts the error value
      Returns:
      the original BooleanResult unaltered
      Throws:
      NullPointerException - if one of the given consumers is null
    • consumeEither

      public BooleanResult<E> consumeEither(Runnable trueRunnable, Runnable falseRunnable, Consumer<? super E> errorConsumer)
      If in success state with a success value of true, runs the given true-runnable. If in success state with a success value of false, runs the given false-runnable. If in error state, applies the error value to the given error consumer.
      Parameters:
      trueRunnable - the runnable to run if a success value of true
      falseRunnable - the runnable to run if a success value of false
      errorConsumer - the consumer which accepts the error value
      Returns:
      the original BooleanResult unaltered
      Throws:
      NullPointerException - if one of the given runnables or consumer is null
    • flatConsume

      public BooleanResult<E> flatConsume(Function<Boolean,? extends VoidResult<? extends E>> function)
      If in success state, applies the boolean success value to the given function. If the function returns a VoidResult in success state, the original BooleanResult is returned unaltered. If the function returns a VoidResult in error state, a BooleanResult containing the error value is returned. If in error state, the original BooleanResult is returned unaltered.
      Parameters:
      function - the function which accepts the boolean success value
      Returns:
      the original BooleanResult unaltered if the given function returns success or the original BooleanResult is in error state, otherwise a BooleanResult containing the error value from the function result
      Throws:
      NullPointerException - if the given function is null or returns null
    • runIfSuccess

      public BooleanResult<E> runIfSuccess(Runnable runnable)
      If in success state, runs the given runnable, otherwise does nothing.
      Parameters:
      runnable - the runnable to run if success state
      Returns:
      the original BooleanResult unaltered
      Throws:
      NullPointerException - if the given runnable is null
    • runIfTrue

      public BooleanResult<E> runIfTrue(Runnable runnable)
      If in success state with a success value of true, runs the given runnable, otherwise does nothing.
      Parameters:
      runnable - the runnable to run if a success value of true
      Returns:
      the original BooleanResult unaltered
      Throws:
      NullPointerException - if the given runnable is null
    • runIfFalse

      public BooleanResult<E> runIfFalse(Runnable runnable)
      If in success state with a success value of false, runs the given runnable, otherwise does nothing.
      Parameters:
      runnable - the runnable to run if a success value of false
      Returns:
      the original BooleanResult unaltered
      Throws:
      NullPointerException - if the given runnable is null
    • runIfError

      public BooleanResult<E> runIfError(Runnable runnable)
      If in error state, runs the given runnable, otherwise does nothing.
      Parameters:
      runnable - the runnable to run if error state
      Returns:
      the original BooleanResult unaltered
      Throws:
      NullPointerException - if the given runnable is null
    • runEither

      public BooleanResult<E> runEither(Runnable successRunnable, Runnable errorRunnable)
      If in success state, runs the given success runnable. If in error state, runs the given error runnable.
      Parameters:
      successRunnable - the runnable to run if success state
      errorRunnable - the runnable to run if error state
      Returns:
      the original BooleanResult unaltered
      Throws:
      NullPointerException - if one of the given runnables is null
    • runEither

      public BooleanResult<E> runEither(Runnable trueRunnable, Runnable falseRunnable, Runnable errorRunnable)
      If in success state with a success value of true, runs the given true-runnable. If in success state with a success value of false, runs the given false-runnable. If in error state, runs the given error-runnable.
      Parameters:
      trueRunnable - the runnable to run if a success value of true
      falseRunnable - the runnable to run if a success value of false
      errorRunnable - the runnable to run if error state
      Returns:
      the original BooleanResult unaltered
      Throws:
      NullPointerException - if one of the given runnables is null
    • run

      @Deprecated public BooleanResult<E> run(Runnable runnable)
      Deprecated.
      use runAlways(java.lang.Runnable) instead for clarity
      Runs the given runnable, no matter the state.
      Parameters:
      runnable - the runnable to run
      Returns:
      the original BooleanResult unaltered
      Throws:
      NullPointerException - if the given runnable is null
    • runAlways

      public BooleanResult<E> runAlways(Runnable runnable)
      Runs the given runnable, no matter the state.
      Parameters:
      runnable - the runnable to run
      Returns:
      the original BooleanResult unaltered
      Throws:
      NullPointerException - if the given runnable is null
    • flatRunIfSuccess

      public BooleanResult<E> flatRunIfSuccess(Supplier<? extends VoidResult<? extends E>> supplier)
      If in success state, runs the given supplier. If the supplier returns a VoidResult in success state, the original BooleanResult is returned unaltered. If the supplier returns a VoidResult in error state, a BooleanResult containing the error value is returned. If in error state, the original BooleanResult is returned unaltered.
      Parameters:
      supplier - the supplier to run
      Returns:
      the original BooleanResult unaltered if the given supplier returns success or the original BooleanResult is in error state, otherwise a BooleanResult containing the error value from the supplier result
      Throws:
      NullPointerException - if the given supplier is null or returns null
    • verify

      public BooleanResult<E> verify(Predicate<Boolean> predicate, Supplier<? extends E> errorSupplier)
      If in success state, verifies the boolean success value of this BooleanResult by testing it with the given predicate. If the predicate evaluates to false, a new BooleanResult is returned containing the error value provided by the given error supplier. If the predicate evaluates to true, or the BooleanResult already was in error state, the original BooleanResult is returned unaltered.
      Parameters:
      predicate - the predicate used to verify the boolean success value, if success state
      errorSupplier - supplier providing the error if predicate evaluates to false
      Returns:
      the original BooleanResult unaltered, unless the predicate evaluates to false, then a new BooleanResult in error state is returned containing the supplied error value
      Throws:
      NullPointerException - if the given predicate is null or returns null, or the given error supplier is null or returns null
    • verify

      public BooleanResult<E> verify(Function<Boolean,? extends VoidResult<? extends E>> function)
      If in success state, verifies the success value of this BooleanResult by mapping it to a VoidResult. If the returned VoidResult is in error state, a new BooleanResult is returned containing the error value of the VoidResult. If the VoidResult is in success state, or the BooleanResult already was in error state, the original BooleanResult is returned unaltered.
      Parameters:
      function - the function applied to the success value, if success state
      Returns:
      the original BooleanResult unaltered, unless the VoidResult returned by the mapping function is in error state, then a new BooleanResult in error state is returned containing the error value from the VoidResult
      Throws:
      NullPointerException - if the given function is null or returns null
    • fold

      public <N> N fold(Function<Boolean,? extends N> valueFunction, Function<? super E,? extends N> errorFunction)
      Retrieve a value from this BooleanResult by folding the states. If in success state, return the value of applying the value function to the boolean success value. If in error state, return the value of applying the error function to the error value.
      Type Parameters:
      N - the type of the retrieved value
      Parameters:
      valueFunction - the mapping function to apply to the boolean success value, if success state, may return null
      errorFunction - the mapping function to apply to the error value, if error state, may return null
      Returns:
      the folded value mapped from either the success value or error value, may be null
      Throws:
      NullPointerException - if one of the given functions is null
    • fold

      public <N> N fold(Supplier<? extends N> trueSupplier, Supplier<? extends N> falseSupplier, Function<? super E,? extends N> errorFunction)
      Retrieve a value from this BooleanResult by folding the states. If in success state with a success value of true, return the value provided by the true-supplier. If in success state with a success value of false, return the value provided by the false-supplier. If in error state, return the value of applying the error function to the error value.
      Type Parameters:
      N - the type of the retrieved value
      Parameters:
      trueSupplier - the supplier to provide the value if a success value of true, may return null
      falseSupplier - the supplier to provide the value if a success value of false, may return null
      errorFunction - the mapping function to apply to the error value, if error state, may return null
      Returns:
      the folded value mapped from either the success value or error value, may be null
      Throws:
      NullPointerException - if one of the given functions or the supplier is null
    • orElse

      public Boolean orElse(Boolean other)
      If in success state, returns the boolean success value, otherwise returns other.
      Parameters:
      other - the value to be returned, if not in success state, may be null
      Returns:
      the boolean success value, if success state, otherwise other
    • orElseTrue

      public boolean orElseTrue()
      If in success state, returns the boolean success value, otherwise returns true.
      Returns:
      the boolean success value, if success state, otherwise true
    • orElseFalse

      public boolean orElseFalse()
      If in success state, returns the boolean success value, otherwise returns false.
      Returns:
      the boolean success value, if success state, otherwise false
    • orElseGet

      public Boolean orElseGet(Function<? super E,Boolean> function)
      If in success state, returns the boolean success value, otherwise returns the value returned from the given function.
      Parameters:
      function - the mapping function to apply to the error value, if not in success state, it may return null
      Returns:
      the boolean success value, if success state, otherwise the result returned from the given function
      Throws:
      NullPointerException - if the given function is null
    • orElseThrow

      public <X extends Throwable> Boolean orElseThrow(Function<? super E,? extends X> function) throws X
      If in success state, returns the boolean success value, otherwise throws the exception returned by the given function.
      Type Parameters:
      X - type of the exception to be thrown
      Parameters:
      function - the mapping function producing an exception by applying the error value, if not in success state
      Returns:
      the boolean success value, if success state
      Throws:
      X - if in error state
      NullPointerException - if the given function is null or returns null
    • toOptionalResult

      public OptionalResult<Boolean,E> toOptionalResult()
      Transforms this BooleanResult to an OptionalResult. If in success state, the OptionalResult will be in success state containing the boolean success value from this BooleanResult. If in error state, the OptionalResult will be in error state containing the error value from this BooleanResult.

      The returned OptionalResult will never be empty.

      Returns:
      an OptionalResult in success state containing the boolean success value from this BooleanResult or in error state containing the error value from this BooleanResult
    • toVoidResult

      public VoidResult<E> toVoidResult()
      Transforms this BooleanResult to a VoidResult. If in success state, the VoidResult will be in success state. If in error state, the VoidResult will be in error state containing the error value from this BooleanResult.
      Returns:
      a VoidResult either in success state or in error state containing the error value from this BooleanResult
    • handle

      public static BooleanResult<Exception> handle(Callable<Boolean> callable)
      Handle the given Callable. If the Callable executes successfully, the BooleanResult will be in success state containing the returned value. If the Callable throws an exception, the BooleanResult will be in error state containing the thrown exception.
      Parameters:
      callable - the Callable to handle
      Returns:
      a BooleanResult either in success state containing the value from the Callable, or in error state containing the exception thrown by the Callable
      Throws:
      NullPointerException - if the given callable is null or returns null
    • handle

      public static <E> BooleanResult<E> handle(Callable<Boolean> callable, Function<Exception,E> exceptionMapper)
      Handle the given Callable. If the Callable executes successfully, the BooleanResult will be in success state containing the returned value. If the Callable throws an exception, the BooleanResult will be in error state containing the result after mapping the exception with the given exception mapper function.
      Type Parameters:
      E - type of the error value after mapping a thrown exception
      Parameters:
      callable - the Callable to handle
      Returns:
      a BooleanResult either in success state containing the value from the Callable, or in error state containing the result after mapping the exception thrown by the Callable
      Throws:
      NullPointerException - if the given callable is null or returns null, or if the given exception mapper function is null or returns null
    • equals

      public boolean equals(Object o)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • toString

      public String toString()
      Overrides:
      toString in class Object