code: public static <T> T checkPrecondition(
      final T value,
      final boolean condition,
      final Function<T, String> describer)
    {
      return innerCheck(value, condition, describer);
    }
docs: <p>Evaluate the given {@code predicate} using {@code value} as input.</p>
  
  <p>The function throws {@link PreconditionViolationException} if the
  predicate is false.</p>
  
  @param value     The value
  @param condition The predicate
  @param describer A describer for the predicate
  @param <T>       The type of values
  
  @return value
  
  @throws PreconditionViolationException If the predicate is false