This page describes a list of the built-in validators, and also shows how to build custom ones.

AttributePresenceValidator

This class provides a way to detect presence of attributes on an Validatable. The Validatable can be a simple object, or an ActiveJDBC Model.

Example, say you have a class:

public class Book extends ValidationSupport {
    private String title, isbn, authorFirstName, authorLastName;
    public Book() {
        validatePresenceOf("title", "authorFirstName");
    }
    //setters and getters below
}

You can check validations on it this way:

Book book = new Book();
book.setTitle("one flew over the cuckoo's nest");
System.out.println(book.isValid()); // will print false because the authorFirstName is not set.  

DateValidator

Validates the date format. Class definition:

public class Person extends ValidationSupport {
    private String firstName, lastName, dob, email;
    public Person(String firstName, String lastName, String dob, String email) {
        this.firstName = firstName;
        this.lastName = lastName;
        this.dob = dob;
        validateWith(new DateValidator("dob", "yyyy-MM-dd"));
    }
}

Example usage:

Person person = new Person("John", "Doe", "abx-22-02", null);
System.out.println(person.isValid()); // will print false because the dob format is invalid
System.out.println(person.errors().get("dob")); // will print: attribute dob does not conform to format: yyyy-MM-dd
        

EmailValidator

Validates that the email format is valid:

public class Person extends ValidationSupport {

    private String firstName, lastName, dob, email;

    public Person(String firstName, String lastName, String email) {
        this.firstName = firstName;
        this.lastName = lastName;
        this.email = email;
        validatePresenceOf("firstName", "lastName");
        validateWith(new EmailValidator("email"));
    }
}

Usage:

Person person = new Person("John", "Doe", "john#doe.com");
System.out.println(person.isValid()); // will print false because the email format is invalid
System.out.println(person.errors().get("email")); // will print: email has bad format

NumericValidator

Checks that a value is numeric (can be converted to a number).

Definition:


public class Group extends ValidationSupport {
    private String size;
    public Group(String size) {
        this.size = size;
        validateNumericalityOf("size");
    }
}

Usage:

Group group = new Group("1");
System.out.println(group.isValid()); // true

group = new Group("blah");
System.out.println(group.isValid()); // false
// System.out.println(group.errors().get("size")); // prints "value is not a number"

RangeValidator

Definition:

public class Box extends ValidationSupport {
    private int width;
    public Box(int width) {
        this.width = width;
        validateWith(new RangeValidator("width", 1, 10));
    }
}

Usage:

Box box = new Box(3); // valid! 
box = new Box(30); // invalid
// System.out.println(box.errors().get("width")); // prints "value should be within limits: > 1 and < 10"

RegexpValidator

public class Blog extends ValidationSupport {
    private String title;
    public Blog() {
        validateWith(new RegexpValidator("title", ".*G.*"));
    }
    public Blog(String title) {
        this();
        this.title = title;
    }
    public void setTitle(String title) {
        this.title = title;
    }
}

Usage:

Blog blog = new Blog("Helo");
System.out.println(blog.isValid());               // prints false
System.out.println(blog.errors().get("title"));   // prints: "value does not match given format");
blog.setTitle("Guns, Germs, and Steel");
System.out.println(blog.isValid());               // prints true

TimestampValidator

Validates presence and correct format of a string.

public class Person extends Model {
    static {
        //...
        validateWith(new TimestampValidator("dob", "yyyy-MM-dd"));
        //...
    }
    //...
}

This validator ensures that if an attribute dob is set with a String that is not following a format, it will fail. The usage is exacly the same as that of any other validator.

Converters

Converters are similar to validators, but they try to change the values they are responsible for during a validation process. For more, see: Converters.

Custom Validators

In case you missed those: Custom Validators


How to comment

The comment section below is to discuss documentation on this page.

If you have an issue, or discover bug, please follow instructions on the Support page