package br.com.citframework.util;
import org.apache.commons.lang.StringUtils;
/**
* Utilit�rio pra facilitar asser��es e valida��es
*
* @author bruno.ribeiro - <a href="mailto:bruno.ribeiro@centrait.com.br">bruno.ribeiro@centrait.com.br</a>
* @since 02/10/2014
*
*/
public final class Assert {
private Assert() {}
private static final String DEFAULT_ASSERT_NULL_MESSAGE = "[ASSERTION FAILED] - The object must be null";
private static final String DEFAULT_ASSERT_NOT_NUL_MESSAGE = "[ASSERTION FAILED] - The object must not be null";
private static final String DEFATUL_ASSERT_TRUE_MESSAGE = "[ASSERTION FAILED] - This expression must be true";
/**
* Valida uma express�o booleana
*
* @param expression
* express�o a ser avaliada
* @author bruno.ribeiro - <a href="mailto:bruno.ribeiro@centrait.com.br">bruno.ribeiro@centrait.com.br</a>
* @since 02/10/2014
* @throws IllegalArgumentException
* se a express�o � {@code false}
*/
public static void isTrue(final boolean expression) {
isTrue(expression, DEFATUL_ASSERT_TRUE_MESSAGE);
}
/**
* Valida uma express�o booleana
*
* @param expression
* express�o a ser avaliada
* @param message
* message de erro a ser exibida
* @author bruno.ribeiro - <a href="mailto:bruno.ribeiro@centrait.com.br">bruno.ribeiro@centrait.com.br</a>
* @since 02/10/2014
* @throws IllegalArgumentException
* se a express�o � {@code false}
*/
public static void isTrue(final boolean expression, final String message) {
if (!expression) {
throw new IllegalArgumentException(message);
}
}
/**
* Valida se um objeto � nulo
*
* @param object
* objeto para valida��o
* @author bruno.ribeiro - <a href="mailto:bruno.ribeiro@centrait.com.br">bruno.ribeiro@centrait.com.br</a>
* @since 02/10/2014
* @throws IllegalArgumentException
* se o objeto n�o � nulo
*/
public static void isNull(final Object object) {
isNull(object, DEFAULT_ASSERT_NULL_MESSAGE);
}
/**
* Valida se um objeto � nulo
*
* @param object
* objeto para valida��o
* @param message
* message de erro a ser exibida
* @author bruno.ribeiro - <a href="mailto:bruno.ribeiro@centrait.com.br">bruno.ribeiro@centrait.com.br</a>
* @since 02/10/2014
* @throws IllegalArgumentException
* se o objeto n�o � nulo
*/
public static void isNull(final Object object, final String message) {
if (object != null) {
throw new IllegalArgumentException(message);
}
}
/**
* Valida se um objeto � n�o nulo
*
* @param object
* objeto para valida��o
* @author bruno.ribeiro - <a href="mailto:bruno.ribeiro@centrait.com.br">bruno.ribeiro@centrait.com.br</a>
* @since 02/10/2014
* @throws IllegalArgumentException
* se o objeto � nulo
*/
public static void notNull(final Object object) {
notNull(object, DEFAULT_ASSERT_NOT_NUL_MESSAGE);
}
/**
* Valida se um objeto � n�o nulo
*
* @param object
* objeto para valida��o
* @param message
* message de erro a ser exibida
* @author bruno.ribeiro - <a href="mailto:bruno.ribeiro@centrait.com.br">bruno.ribeiro@centrait.com.br</a>
* @since 02/10/2014
* @throws IllegalArgumentException
* se o objeto � nulo
*/
public static void notNull(final Object object, final String message) {
if (object == null) {
throw new IllegalArgumentException(message);
}
}
/**
* Valida se uma {@link String} � n�o nula e n�o vazia
*
* @param object
* objeto para valida��o
* @author bruno.ribeiro - <a href="mailto:bruno.ribeiro@centrait.com.br">bruno.ribeiro@centrait.com.br</a>
* @since 23/10/2014
*/
public static void notNullAndNotEmpty(final Object object) {
notNullAndNotEmpty(object, DEFAULT_ASSERT_NOT_NUL_MESSAGE);
}
/**
* Valida se uma {@link String} � n�o nula e n�o vazia
*
* @param object
* objeto para valida��o
* @param message
* message de erro a ser exibida
* @author bruno.ribeiro - <a href="mailto:bruno.ribeiro@centrait.com.br">bruno.ribeiro@centrait.com.br</a>
* @since 23/10/2014
* @throws IllegalArgumentException
* se o objeto � nulo e, se {@link String}, tamb�m vazio
*/
public static void notNullAndNotEmpty(final Object object, final String message) {
notNull(object, message);
if (object instanceof String) {
final String strObject = (String) object;
if (StringUtils.isBlank(strObject)) {
throw new IllegalArgumentException(message);
}
}
}
}