package org.lucares.utils; import java.text.MessageFormat; import java.util.Objects; public class Preconditions { public static void checkEven(final long value, final String message) { if (value % 2 != 0) { throw new IllegalStateException(message + ". Was: " + value); } } /** * * @param a * @param b * @param message formatted with {@link MessageFormat} * @param args */ public static void checkGreater(final long a, final long b, final String message, final Object... args) { if (a <= b) { throw new IllegalStateException(MessageFormat.format(message, args) + " Expected: " + a + " > " + b); } } /** * * @param a * @param b * @param message formatted with {@link MessageFormat} * @param args */ public static void checkGreaterOrEqual(final long a, final long b, final String message, final Object... args) { if (a < b) { throw new IllegalStateException(MessageFormat.format(message, args) + " Expected: " + a + " >= " + b); } } public static void checkEqual(final Object actual, final Object expected) { checkEqual(actual, expected, "expected {0} is equal to {1}", actual, expected); } /** * Check that the given values are equal. The check is done with * {@link Objects#equals(Object, Object)} * * @param actual the actual value * @param expected the expected value * @param message formatted with {@link MessageFormat} * @param args arguments for the message */ public static void checkEqual(final Object actual, final Object expected, final String message, final Object... args) { if (!Objects.equals(actual, expected)) { throw new IllegalStateException( MessageFormat.format(message, args) + " Expected: " + actual + " equals " + expected); } } }