public static <T> T ensure(T o, Matcher<?> matcher) {
    getProvider().ensurePolicy().check(matcherContract(o, matcher));
    return o;
  }
public static <T> T ensure(T o, Matcher<?> matcher) {
    getProvider().ensurePolicy().check(matcherContract(o, matcher));
    return o;
  }
public static < T > T ensure ( T o , Matcher < ? > matcher ) { getProvider ( ) . ensurePolicy ( ) . check ( matcherContract ( o , matcher ) ) ; return o ; }
Postcondition that supplier are supposed to ensure.
Violations are considered to be programming errors,
on the suppliers 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
Postcondition that supplier are supposed to ensure . Violations are considered to be programming errors on the suppliers part .