code: public static <T> T ensure(T reference, Predicate<T> predicate,
                                 @Nullable String message,
                                 @Nullable Object... args) {
          return check(reference, predicate, EnsureViolation.class, message, args);
      }
docs: 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 reference the reference to check
  @param predicate the predicate that the given reference must satisfy
  @param message   the fail message template
  @param args      the message template arguments
  @return the validated object
  @throws EnsureViolation if the <tt>predicate</tt> is <b>false</b>