Package com.github.tonivade.purefun.type
Interface Validation<E,T>
- Type Parameters:
E- type of the error when invalidT- type of the value when valid
- All Superinterfaces:
Bindable<Validation<E,,?>, T> Kind<Validation<E,,?>, T> Mappable<Validation<E,,?>, T> ValidationOf<E,T>
- All Known Implementing Classes:
Validation.Invalid,Validation.Valid
public sealed interface Validation<E,T>
extends ValidationOf<E,T>, Bindable<Validation<E,?>,T>
permits Validation.Valid<E,T>, Validation.Invalid<E,T>
This type represents the validity or not of a value. There are two possible values:
Validation.valid(value): when the value is validValidation.invalid(error): when the value is invalid
You can combine different values using mapN methods. Only when all values are valid, the final method is invoked, otherwise a combination of all errors is returned
-
Nested Class Summary
Nested ClassesModifier and TypeInterfaceDescriptionstatic final recordstatic final classstatic final record -
Method Summary
Modifier and TypeMethodDescriptiondefault <R> Validation<Validation.Result<E>, R> ap(Validation<Validation.Result<E>, Function1<? super T, ? extends R>> other) default <U,R> Validation <U, R> default Option<Validation<E, T>> default Option<Validation<E, T>> default Validation<E, T> filterOrElse(Matcher1<? super T> matcher, Producer<? extends Kind<Validation<E, ?>, T>> orElse) default <R> Validation<E, R> default <U> Uget()Returns the valid value if available.getError()Returns the invalid value if available.default Tdefault Tdefault Tdefault TgetOrElseThrow(Function1<? super E, ? extends X> mapper) static <E,T> Validation <E, T> invalid(E error) static <E,T> Validation <Validation.Result<E>, T> invalidOf(E error, E... errors) booleanbooleanisValid()default <R> Validation<E, R> default <U> Validation<U, T> static <E,T1, T2, R>
Validation<Validation.Result<E>, R> mapN(Validation<E, T1> validation1, Validation<E, T2> validation2, Function2<? super T1, ? super T2, ? extends R> mapper) static <E,T1, T2, T3, R>
Validation<Validation.Result<E>, R> mapN(Validation<E, T1> validation1, Validation<E, T2> validation2, Validation<E, T3> validation3, Function3<? super T1, ? super T2, ? super T3, ? extends R> mapper) static <E,T1, T2, T3, T4, R>
Validation<Validation.Result<E>, R> mapN(Validation<E, T1> validation1, Validation<E, T2> validation2, Validation<E, T3> validation3, Validation<E, T4> validation4, Function4<? super T1, ? super T2, ? super T3, ? super T4, ? extends R> mapper) static <E,T1, T2, T3, T4, T5, R>
Validation<Validation.Result<E>, R> mapN(Validation<E, T1> validation1, Validation<E, T2> validation2, Validation<E, T3> validation3, Validation<E, T4> validation4, Validation<E, T5> validation5, Function5<? super T1, ? super T2, ? super T3, ? super T4, ? super T5, ? extends R> mapper) default Validation<E, T> default Validation<E, T> orElse(Kind<Validation<E, ?>, T> orElse) static Validation<String, Integer> requireGreaterThan(Integer value, int x) static Validation<String, Integer> requireGreaterThanOrEqual(Integer value, int x) static Validation<String, Integer> requireLowerThan(Integer value, int x) static Validation<String, Integer> requireLowerThanOrEqual(Integer value, int x) static Validation<String, String> requireNonEmpty(String value) static Validation<String, Integer> requireNonEquals(Integer value, int x) static <T> Validation<String, T> requireNonNull(T value) static Validation<String, Integer> requirePositive(Integer value) static <E,T, R> Validation <E, R> select(Validation<E, Either<T, R>> validation, Validation<E, Function1<? super T, ? extends R>> apply) toEither()static <E,T> Validation <E, T> valid(T value)
-
Method Details
-
valid
-
invalid
-
invalidOf
-
isValid
boolean isValid() -
isInvalid
boolean isInvalid() -
get
T get()Returns the valid value if available. If not, it throwsNoSuchElementException- Returns:
- the valid value
- Throws:
NoSuchElementException- if value is not available
-
getError
E getError()Returns the invalid value if available. If not, it throwsNoSuchElementException- Returns:
- the invalid value
- Throws:
NoSuchElementException- if value is not available
-
map
-
mapError
-
bimap
default <U,R> Validation<U,R> bimap(Function1<? super E, ? extends U> error, Function1<? super T, ? extends R> mapper) -
flatMap
default <R> Validation<E,R> flatMap(Function1<? super T, ? extends Kind<Validation<E, ?>, ? extends R>> mapper) -
filter
-
filterNot
-
filterOrElse
default Validation<E,T> filterOrElse(Matcher1<? super T> matcher, Producer<? extends Kind<Validation<E, ?>, T>> orElse) -
or
-
orElse
-
getOrElse
-
getOrElseNull
-
getOrElse
-
getOrElseThrow
-
getOrElseThrow
- Throws:
X
-
fold
-
ap
default <R> Validation<Validation.Result<E>,R> ap(Validation<Validation.Result<E>, Function1<? super T, ? extends R>> other) -
toEither
-
select
static <E,T, Validation<E,R> R> select(Validation<E, Either<T, R>> validation, Validation<E, Function1<? super T, ? extends R>> apply) -
mapN
static <E,T1, Validation<Validation.Result<E>,T2, R> R> mapN(Validation<E, T1> validation1, Validation<E, T2> validation2, Function2<? super T1, ? super T2, ? extends R> mapper) -
mapN
static <E,T1, Validation<Validation.Result<E>,T2, T3, R> R> mapN(Validation<E, T1> validation1, Validation<E, T2> validation2, Validation<E, T3> validation3, Function3<? super T1, ? super T2, ? super T3, ? extends R> mapper) -
mapN
static <E,T1, Validation<Validation.Result<E>,T2, T3, T4, R> R> mapN(Validation<E, T1> validation1, Validation<E, T2> validation2, Validation<E, T3> validation3, Validation<E, T4> validation4, Function4<? super T1, ? super T2, ? super T3, ? super T4, ? extends R> mapper) -
mapN
static <E,T1, Validation<Validation.Result<E>,T2, T3, T4, T5, R> R> mapN(Validation<E, T1> validation1, Validation<E, T2> validation2, Validation<E, T3> validation3, Validation<E, T4> validation4, Validation<E, T5> validation5, Function5<? super T1, ? super T2, ? super T3, ? super T4, ? super T5, ? extends R> mapper) -
requireNonNull
-
requireNonEmpty
-
requireNonEquals
-
requirePositive
-
requireGreaterThan
-
requireGreaterThanOrEqual
-
requireLowerThan
-
requireLowerThanOrEqual
-