package org.needle4j.common;
import static java.lang.String.format;
/**
* Utility class for checks and verifications. Inspired by guava/Preconditions,
* but without adding the external dependency.
*
* @author Jan Galinski, Holisticon AG
*/
public final class Preconditions {
private Preconditions() {
// avoid instantiation.
}
/**
* Throws an {@link IllegalStateException} with formatted message if
* condition is not met.
*
* @param condition
* a boolean condition that must be <code>true</code> to pass
* @param message
* text to use as exception message
* @param parameters
* optional parameters used in
* {@link String#format(String, Object...)}
*/
public static void checkState(final boolean condition, final String message, final Object... parameters) {
if (!condition) {
throw new IllegalStateException(format(message, parameters));
}
}
/**
* Throws an {@link IllegalArgumentException} with formatted message if
* condition is not met.
*
* @param condition
* a boolean condition that must be <code>true</code> to pass
* @param message
* text to use as exception message
* @param parameters
* optional parameters used in
* {@link String#format(String, Object...)}
*/
public static void checkArgument(final boolean condition, final String message, final Object... parameters) {
if (!condition) {
throw new IllegalArgumentException(format(message, parameters));
}
}
}