T - Input typeR - Return typeE - Error typepublic class CumulativeValidator<T,R,E>
extends java.lang.Object
| Constructor and Description |
|---|
CumulativeValidator() |
| Modifier and Type | Method and Description |
|---|---|
ValidationResults<R,E> |
accumulate()
Accumulate validation results.
|
ValidationResults<R,E> |
accumulate(T input)
Accumulate validation results
|
ValidationResults<R,E> |
accumulateUntilFail(T input)
Run the accumulation until first fail
|
CumulativeValidator<T,R,E> |
add(<any> validation)
Add a FunctionalJava Validation to this CumulativeValidation
|
CumulativeValidator<T,R,E> |
isValid(java.util.function.Predicate<T> valid,
E error,
R result)
Add another validation to this cumulative validator
|
static <T,R,E> CumulativeValidator<T,R,E> |
of(<any> validation)
Static factory method
Construct a CumulativeValidator from the supplied FunctionalJava validation object
|
static <T,R,E> CumulativeValidator<T,R,E> |
of(java.util.function.Predicate<T> valid,
E error,
R result)
Static factory method
Construct a CumulativeValidator that checks for the supplied condition returns the supplied
error if it doesn't hold or the supplied result if it does.
|
public CumulativeValidator<T,R,E> isValid(java.util.function.Predicate<T> valid, E error, R result)
CumulativeValidator<User,String,String> validator = CumulativeValidator.of((User user)->user.age>18, "too young", "age ok")
ValidationResults<String,String> results = validator.isValid(user->user.email!=null, "user email null","email ok")
.accumulate(new User(10,"email@email.com"));
assertThat(results.getResults().size(),equalTo(2));
}valid - Validation Predicate to checkerror - Error to return if validation predicate failsresult - Result to return if validation predicate succeedspublic ValidationResults<R,E> accumulate()
public ValidationResults<R,E> accumulate(T input)
ValidationResults<String,String> results = CumulativeValidator.of((User user)->user.age>18, "too young", "age ok")
.isValid(user->user.email!=null, "user email null","email ok")
.accumulate(new User(10,"email@email.com"));
assertThat(results.getResults().size(),equalTo(2));
input - Value to perform validation checks withpublic ValidationResults<R,E> accumulateUntilFail(T input)
ValidationResults<String,String> results = CumulativeValidator.of((User user)->user.age>18, "too young", "age ok")
.add(Validator.of((User user)->user.email!=null, "user email null","email ok"))
.accumulateUntilFail(new User(10,"email@email.com"));
assertThat(results.getResults().size(),equalTo(1));
input - Value to perform validation checks withpublic CumulativeValidator<T,R,E> add(<any> validation)
User user = new User(10,"email@email.com");
ValidationResults<String,String> results = CumulativeValidator.of(emailOk(user))
.add(user.age>18 ? Validation.success("age ok") : Validation.fail("too young"))
.accumulate();
validation - FunctionalJava Validation to addpublic static <T,R,E> CumulativeValidator<T,R,E> of(java.util.function.Predicate<T> valid, E error, R result)
ValidationResults<String,String> results = CumulativeValidator.of((User user)->user.age>18, "too young", "age ok")
.isValid(user->user.email!=null, "user email null","email ok")
.accumulate(new User(10,"email@email.com"));
assertThat(results.getResults().size(),equalTo(2));
valid - Validation Predicate to checkerror - Error to return if validation predicate failsresult - Result to return if validation predicate succeedspublic static <T,R,E> CumulativeValidator<T,R,E> of(<any> validation)
User user = new User(10,"email@email.com");
ValidationResults<String,String> results = CumulativeValidator.of(emailOk(user))
.add(ageOk(user))
.accumulate();
public Validation<String,String> emailOk(User u){
if(u.email!=null)
return Validation.success("email ok");
return Validation.fail("no email");
}
public Validation<String,String> ageOk(User u){
if(u.age>18)
return Validation.success("age ok");
return Validation.fail("too young");
}
validation - FuncitonalJava validation