public static <T> T checkPrecondition(
    final T value,
    final boolean condition,
    final Function<T, String> describer)
  {
    return innerCheck(value, condition, describer);
  }
public static < T > T checkPrecondition ( final T value , final boolean condition , final Function < T , String > describer ) { return innerCheck ( value , condition , describer ) ; }
<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