/** * <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 predicate The predicate * @param describer A describer for the predicate * @param <T> The type of values * * @return value * * @throws PreconditionViolationException If the predicate is false */ public static <T> T checkPrecondition( final T value, final Predicate<T> predicate, final Function<T, String> describer) { final boolean ok; try { ok = predicate.test(value); } catch (final Throwable e) { throw failed(value, singleViolation(failedPredicate(e))); } return innerCheck(value, ok, 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 predicate The predicate * @param describer A describer for the predicate * @param <T> The type of values * * @return value * * @throws PreconditionViolationException If the predicate is false */ public static <T> T checkPrecondition( final T value, final Predicate<T> predicate, final Function<T, String> describer) { final boolean ok; try { ok = predicate.test(value); } catch (final Throwable e) { throw failed(value, singleViolation(failedPredicate(e))); } return innerCheck(value, ok, describer); }
/** * A {@code long} specialized version of {@link #checkInvariant(Object, * Predicate, Function)} * * @param value The value * @param predicate The predicate * @param describer The describer of the predicate * * @return value * * @throws InvariantViolationException If the predicate is false */ public static long checkInvariantL( final long value, final LongPredicate predicate, final LongFunction<String> describer) { final boolean ok; try { ok = predicate.test(value); } catch (final Throwable e) { throw failed( Long.valueOf(value), singleViolation(failedPredicate(e))); } return innerCheckInvariantL(value, ok, describer); }
/** * A {@code long} specialized version of {@link #checkPostcondition(Object, * Predicate, Function)} * * @param value The value * @param predicate The predicate * @param describer The describer of the predicate * * @return value * * @throws PostconditionViolationException If the predicate is false */ public static long checkPostconditionL( final long value, final LongPredicate predicate, final LongFunction<String> describer) { final boolean ok; try { ok = predicate.test(value); } catch (final Throwable e) { throw failed( Long.valueOf(value), singleViolation(failedPredicate(e))); } return innerCheckL(value, ok, describer); }
/** * A {@code double} specialized version of {@link #checkPrecondition(Object, * Predicate, Function)} * * @param value The value * @param predicate The predicate * @param describer The describer of the predicate * * @return value * * @throws PreconditionViolationException If the predicate is false */ public static double checkPreconditionD( final double value, final DoublePredicate predicate, final DoubleFunction<String> describer) { final boolean ok; try { ok = predicate.test(value); } catch (final Throwable e) { throw failed( Double.valueOf(value), singleViolation(failedPredicate(e))); } return innerCheckD(value, ok, describer); }
/** * A {@code long} specialized version of {@link #checkPrecondition(Object, * Predicate, Function)} * * @param value The value * @param predicate The predicate * @param describer The describer of the predicate * * @return value * * @throws PreconditionViolationException If the predicate is false */ public static long checkPreconditionL( final long value, final LongPredicate predicate, final LongFunction<String> describer) { final boolean ok; try { ok = predicate.test(value); } catch (final Throwable e) { throw failed( Long.valueOf(value), singleViolation(failedPredicate(e))); } return innerCheckL(value, ok, describer); }
/** * A {@code long} specialized version of {@link #checkInvariant(Object, * Predicate, Function)} * * @param value The value * @param predicate The predicate * @param describer The describer of the predicate * * @return value * * @throws InvariantViolationException If the predicate is false */ public static long checkInvariantL( final long value, final LongPredicate predicate, final LongFunction<String> describer) { final boolean ok; try { ok = predicate.test(value); } catch (final Throwable e) { throw failed( Long.valueOf(value), singleViolation(failedPredicate(e))); } return innerCheckInvariantL(value, ok, describer); }
/** * A {@code double} specialized version of {@link #checkInvariant(Object, * Predicate, Function)} * * @param value The value * @param predicate The predicate * @param describer The describer of the predicate * * @return value * * @throws InvariantViolationException If the predicate is false */ public static double checkInvariantD( final double value, final DoublePredicate predicate, final DoubleFunction<String> describer) { final boolean ok; try { ok = predicate.test(value); } catch (final Throwable e) { throw failed( Double.valueOf(value), singleViolation(failedPredicate(e))); } return innerCheckInvariantD(value, ok, describer); }
/** * A {@code double} specialized version of {@link #checkPrecondition(Object, * Predicate, Function)} * * @param value The value * @param predicate The predicate * @param describer The describer of the predicate * * @return value * * @throws PreconditionViolationException If the predicate is false */ public static double checkPreconditionD( final double value, final DoublePredicate predicate, final DoubleFunction<String> describer) { final boolean ok; try { ok = predicate.test(value); } catch (final Throwable e) { throw failed( Double.valueOf(value), singleViolation(failedPredicate(e))); } return innerCheckD(value, ok, describer); }
/** * A {@code double} specialized version of {@link #checkPostcondition(Object, * Predicate, Function)} * * @param value The value * @param predicate The predicate * @param describer The describer of the predicate * * @return value * * @throws PostconditionViolationException If the predicate is false */ public static double checkPostconditionD( final double value, final DoublePredicate predicate, final DoubleFunction<String> describer) { final boolean ok; try { ok = predicate.test(value); } catch (final Throwable e) { throw failed( Double.valueOf(value), singleViolation(failedPredicate(e))); } return innerCheckD(value, ok, describer); }
/** * An {@code int} specialized version of {@link #checkPostcondition(Object, * ContractConditionType)}. * * @param value The value * @param predicate The predicate * @param describer The describer for the predicate * * @return value * * @throws PostconditionViolationException If the predicate is false */ public static int checkPostconditionI( final int value, final IntPredicate predicate, final IntFunction<String> describer) { final boolean ok; try { ok = predicate.test(value); } catch (final Throwable e) { throw failed( Integer.valueOf(value), singleViolation(failedPredicate(e))); } return innerCheckI(value, ok, describer); }
/** * A {@code long} specialized version of {@link #checkPrecondition(Object, * Predicate, Function)} * * @param value The value * @param predicate The predicate * @param describer The describer of the predicate * * @return value * * @throws PreconditionViolationException If the predicate is false */ public static long checkPreconditionL( final long value, final LongPredicate predicate, final LongFunction<String> describer) { final boolean ok; try { ok = predicate.test(value); } catch (final Throwable e) { throw failed( Long.valueOf(value), singleViolation(failedPredicate(e))); } return innerCheckL(value, ok, describer); }
/** * An {@code int} specialized version of {@link #checkPostcondition(Object, * ContractConditionType)}. * * @param value The value * @param predicate The predicate * @param describer The describer for the predicate * * @return value * * @throws PostconditionViolationException If the predicate is false */ public static int checkPostconditionI( final int value, final IntPredicate predicate, final IntFunction<String> describer) { final boolean ok; try { ok = predicate.test(value); } catch (final Throwable e) { throw failed( Integer.valueOf(value), singleViolation(failedPredicate(e))); } return innerCheckI(value, ok, describer); }
static <T> Violations innerCheckAll( final T value, final ContractConditionType<T>[] conditions) { Violations violations = null; for (int index = 0; index < conditions.length; ++index) { final ContractConditionType<T> condition = conditions[index]; final Predicate<T> predicate = condition.predicate(); final boolean ok; final int count = conditions.length; try { ok = predicate.test(value); } catch (final Throwable e) { violations = maybeAllocate(violations, count); violations.messages()[index] = failedPredicate(e); violations.countUp(); continue; } if (!ok) { violations = maybeAllocate(violations, count); violations.messages()[index] = applyDescriberChecked(value, condition.describer()); violations.countUp(); } } return violations; }
static <T> Violations innerCheckAll( final T value, final ContractConditionType<T>[] conditions) { Violations violations = null; for (int index = 0; index < conditions.length; ++index) { final ContractConditionType<T> condition = conditions[index]; final Predicate<T> predicate = condition.predicate(); final boolean ok; final int count = conditions.length; try { ok = predicate.test(value); } catch (final Throwable e) { violations = maybeAllocate(violations, count); violations.messages()[index] = failedPredicate(e); violations.countUp(); continue; } if (!ok) { violations = maybeAllocate(violations, count); violations.messages()[index] = applyDescriberChecked(value, condition.describer()); violations.countUp(); } } return violations; }
static Violations innerCheckAllDouble( final double value, final ContractDoubleConditionType[] conditions) { Violations violations = null; for (int index = 0; index < conditions.length; ++index) { final ContractDoubleConditionType condition = conditions[index]; final DoublePredicate predicate = condition.predicate(); final boolean ok; final int count = conditions.length; try { ok = predicate.test(value); } catch (final Throwable e) { violations = maybeAllocate(violations, count); violations.messages()[index] = failedPredicate(e); violations.countUp(); continue; } if (!ok) { violations = maybeAllocate(violations, count); violations.messages()[index] = applyDescriberDChecked(value, condition.describer()); violations.countUp(); } } return violations; }
static Violations innerCheckAllInt( final int value, final ContractIntConditionType[] conditions) { Violations violations = null; for (int index = 0; index < conditions.length; ++index) { final ContractIntConditionType condition = conditions[index]; final IntPredicate predicate = condition.predicate(); final boolean ok; final int count = conditions.length; try { ok = predicate.test(value); } catch (final Throwable e) { violations = maybeAllocate(violations, count); violations.messages()[index] = failedPredicate(e); violations.countUp(); continue; } if (!ok) { violations = maybeAllocate(violations, count); violations.messages()[index] = applyDescriberIChecked(value, condition.describer()); violations.countUp(); } } return violations; }
static Violations innerCheckAllInt( final int value, final ContractIntConditionType[] conditions) { Violations violations = null; for (int index = 0; index < conditions.length; ++index) { final ContractIntConditionType condition = conditions[index]; final IntPredicate predicate = condition.predicate(); final boolean ok; final int count = conditions.length; try { ok = predicate.test(value); } catch (final Throwable e) { violations = maybeAllocate(violations, count); violations.messages()[index] = failedPredicate(e); violations.countUp(); continue; } if (!ok) { violations = maybeAllocate(violations, count); violations.messages()[index] = applyDescriberIChecked(value, condition.describer()); violations.countUp(); } } return violations; }
static Violations innerCheckAllLong( final long value, final ContractLongConditionType[] conditions) { Violations violations = null; for (int index = 0; index < conditions.length; ++index) { final ContractLongConditionType condition = conditions[index]; final LongPredicate predicate = condition.predicate(); final boolean ok; final int count = conditions.length; try { ok = predicate.test(value); } catch (final Throwable e) { violations = maybeAllocate(violations, count); violations.messages()[index] = failedPredicate(e); violations.countUp(); continue; } if (!ok) { violations = maybeAllocate(violations, count); violations.messages()[index] = applyDescriberLChecked(value, condition.describer()); violations.countUp(); } } return violations; }
static Violations innerCheckAllDouble( final double value, final ContractDoubleConditionType[] conditions) { Violations violations = null; for (int index = 0; index < conditions.length; ++index) { final ContractDoubleConditionType condition = conditions[index]; final DoublePredicate predicate = condition.predicate(); final boolean ok; final int count = conditions.length; try { ok = predicate.test(value); } catch (final Throwable e) { violations = maybeAllocate(violations, count); violations.messages()[index] = failedPredicate(e); violations.countUp(); continue; } if (!ok) { violations = maybeAllocate(violations, count); violations.messages()[index] = applyDescriberDChecked(value, condition.describer()); violations.countUp(); } } return violations; }