All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.hglteam.validation.MultistepValidationBuilderBase Maven / Gradle / Ivy

package org.hglteam.validation;

import java.util.ArrayList;
import java.util.List;
import java.util.function.Consumer;
import java.util.function.Function;
import java.util.function.Predicate;

public abstract class MultistepValidationBuilderBase> {
    protected final List> validations;

    protected MultistepValidationBuilderBase() {
        validations = new ArrayList<>();
    }

    public ValidationStepBuilder when(Predicate predicate) {
        return new ValidationStepBuilder(predicate);
    }

    public 

B onProperty(Function getter, Consumer> builderConfigurator) { this.validations.add(this.propertyValidator(getter, builderConfigurator)); return self(); } protected

Validation propertyValidator(Function getter, Consumer> builderConfigurator) { return t -> { var value = getter.apply(t); var builder = Validation.

builder(); builderConfigurator.accept(builder); builder.validate(value); }; } protected abstract B self(); public class ValidationStepBuilder { private Predicate predicate; private ValidationStepBuilder(Predicate condition) { this.predicate = condition; } public ValidationStepBuilder and(Predicate condition) { this.predicate = this.predicate.and(condition); return this; } public ValidationStepBuilder or(Predicate condition) { this.predicate = this.predicate.or(condition); return this; } public B then(Function exceptionFunction) { MultistepValidationBuilderBase.this .validations .add(SimpleValidation.builder() .predicate(this.predicate) .exceptionFunction(exceptionFunction) .build()); return MultistepValidationBuilderBase.this.self(); } } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy