argos/dmp-backend/core/src/main/java/eu/eudat/commons/validation/specification/NavigationDetailsSpecificat...

54 lines
1.1 KiB
Java

package eu.eudat.commons.validation.specification;
import eu.eudat.commons.validation.Validator;
import java.util.List;
import java.util.function.Supplier;
public class NavigationDetailsSpecificationBuilder implements NavigationDetailsSpecification {
private Supplier<Boolean> precondition;
private String key;
private List<?> details;
private Supplier<Validator> validator;
public NavigationDetailsSpecificationBuilder iff(Supplier<Boolean> value){
this.precondition = value;
return this;
}
public NavigationDetailsSpecificationBuilder on(String value){
this.key = value;
return this;
}
public NavigationDetailsSpecificationBuilder over(List<?> value){
this.details = value;
return this;
}
public NavigationDetailsSpecificationBuilder using(Supplier<Validator> value){
this.validator = value;
return this;
}
@Override
public Supplier<Boolean> getPrecondition() {
return precondition;
}
@Override
public String getKey() {
return key;
}
@Override
public List<?> getDetails() {
return details;
}
@Override
public Supplier<Validator> getValidator() {
return validator;
}
}