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;
  }
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
Precondition that clients are required to fulfill . Violations are considered to be programming errors on the clients part .