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

com.github.dakusui.valid8j.Validates Maven / Gradle / Ivy

package com.github.dakusui.valid8j;

import com.github.dakusui.pcond.validator.ExceptionComposer;

import java.util.function.Function;
import java.util.function.Predicate;

import static com.github.dakusui.pcond.validator.Validator.INSTANCE;

public enum Validates {
  ;
  static final Validator VALIDATOR = createValidator(com.github.dakusui.pcond.validator.Validator.INSTANCE.configuration().exceptionComposer().defaultForValidate());

  public static  T validate(T value, Predicate cond) {
    return VALIDATOR.validate(value, cond);
  }

  public static  T validate(T value, Predicate cond, Function exceptionFactory) {
    return VALIDATOR.validate(value, cond, exceptionFactory);
  }

  public static  T validateNonNull(T value) {
    return VALIDATOR.validateNonNull(value);
  }

  public static  T validateArgument(T value, Predicate cond) {
    return VALIDATOR.validateArgument(value, cond);
  }

  public static  T validateState(T value, Predicate cond) {
    return VALIDATOR.validateState(value, cond);
  }

  public static Validator createValidator(ExceptionComposer.ForValidate exceptionComposerForValidate) {
    return Validates.Validator.create(exceptionComposerForValidate);
  }

  interface Validator {
    ExceptionComposer.ForValidate exceptionComposerForValidate();


    default  T validate(T value, Predicate cond) {
      return INSTANCE.validate(value, cond, exceptionComposerForValidate());
    }

    default  T validate(T value, Predicate cond, Function exceptionFactory) {
      return INSTANCE.validate(value, cond, exceptionFactory::apply);
    }

    default  T validateNonNull(T value) {
      return INSTANCE.validateNonNull(value, exceptionComposerForValidate());
    }

    default  T validateArgument(T value, Predicate cond) {
      return INSTANCE.validateArgument(value, cond, exceptionComposerForValidate());
    }

    default  T validateState(T value, Predicate cond) {
      return INSTANCE.validateState(value, cond, exceptionComposerForValidate());
    }

    static Validator create(ExceptionComposer.ForValidate exceptionComposerForValidate) {
      return () -> exceptionComposerForValidate;
    }
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy