src/main/java/org/valid4j/Assertive.java
public static <T> T require(T o, Matcher<?> matcher) {
    getProvider().requirePolicy().check(matcherContract(o, matcher));
    return o;
  }
public static <T> T require(T o, Matcher<?> matcher) {
    getProvider().requirePolicy().check(matcherContract(o, matcher));
    return o;
  }
Precondition that clients are required to fulfill.
Violations are considered to be programming errors,
on the clients part.

@param <T>     type of object to check
@param o       the object to check
@param matcher the matcher that the given object must satisfy
@return the validated object