An lightweight utility library for validate objects.
- Java 8, or newer
This example show how validate instances of the Person class:
package com.example; import com.infinityrefactoring.lightvalidator.Validator; import com.infinityrefactoring.lightvalidator.Validators; public class Person { public static final Validator<Person> VALIDATOR = Validator.build(Person.class) .test("age", Person::getAge, Validators.isBetweenThan(1, 10)) .test("name", Person::getName, Validators.isNotNull()) .build(); private int age; private String name; public Integer getAge() { return age; } public String getName() { return name; } public void setAge(int age) { this.age = age; } public void setName(String name) { this.name = name; } }Running the validation:
package com.example; import java.util.Map; import java.util.Set; public class Main { public static void main(String[] args) { Person person = new Person(); System.out.println("Case 1:\n"); Map<String, Set<String>> constraintViolations1 = Person.VALIDATOR.validate(person); constraintViolations1.forEach((key, value) -> { System.out.println(key); value.forEach(m -> System.out.printf(" %s\n", m)); }); person.setAge(5); System.out.println("\nCase 2:\n"); Map<String, Set<String>> constraintViolations2 = Person.VALIDATOR.validate(person); constraintViolations2.forEach((key, value) -> { System.out.println(key); value.forEach(m -> System.out.printf(" %s\n", m)); }); } }InfinityRefactoring/light-validator is provided and distributed under the Apache Software License 2.0.
Refer to LICENSE for more information.