public abstract class Assert
extends java.lang.Object
Useful for identifying programmer errors early and clearly at runtime.
For example, if the contract of a public method states it does not
allow null
arguments, Assert
can be used to validate that
contract. Doing this clearly indicates a contract violation when it
occurs and protects the class's invariants.
Typically used to validate method arguments rather than configuration properties, to check for cases that are usually programmer errors rather than configuration errors. In contrast to configuration initialization code, there is usually no point in falling back to defaults in such methods.
This class is similar to JUnit's assertion library. If an argument value is
deemed invalid, an IllegalArgumentException
is thrown (typically).
For example:
Assert.notNull(clazz, "The class must not be null"); Assert.isTrue(i > 0, "The value must be greater than zero");
Mainly for internal use within the framework; consider
Apache's Commons Lang
for a more comprehensive suite of String
utilities.
Constructor and Description |
---|
Assert() |
Modifier and Type | Method and Description |
---|---|
static void |
doesNotContain(java.lang.String textToSearch,
java.lang.String substring)
Assert that the given text does not contain the given substring.
|
static void |
doesNotContain(java.lang.String textToSearch,
java.lang.String substring,
java.lang.String message)
Assert that the given text does not contain the given substring.
|
static void |
doesNotContain(java.lang.String textToSearch,
java.lang.String substring,
java.util.function.Supplier<java.lang.String> messageSupplier)
Assert that the given text does not contain the given substring.
|
static void |
hasLength(java.lang.String text)
Assert that the given String is not empty; that is,
it must not be
null and not the empty String. |
static void |
hasLength(java.lang.String text,
java.lang.String message)
Assert that the given String is not empty; that is,
it must not be
null and not the empty String. |
static void |
hasLength(java.lang.String text,
java.util.function.Supplier<java.lang.String> messageSupplier)
Assert that the given String is not empty; that is,
it must not be
null and not the empty String. |
static void |
hasText(java.lang.String text)
Assert that the given String contains valid text content; that is, it must not
be
null and must contain at least one non-whitespace character. |
static void |
hasText(java.lang.String text,
java.lang.String message)
Assert that the given String contains valid text content; that is, it must not
be
null and must contain at least one non-whitespace character. |
static void |
hasText(java.lang.String text,
java.util.function.Supplier<java.lang.String> messageSupplier)
Assert that the given String contains valid text content; that is, it must not
be
null and must contain at least one non-whitespace character. |
static void |
isAssignable(java.lang.Class<?> superType,
java.lang.Class<?> subType)
Assert that
superType.isAssignableFrom(subType) is true . |
static void |
isAssignable(java.lang.Class<?> superType,
java.lang.Class<?> subType,
java.lang.String message)
Assert that
superType.isAssignableFrom(subType) is true . |
static void |
isAssignable(java.lang.Class<?> superType,
java.lang.Class<?> subType,
java.util.function.Supplier<java.lang.String> messageSupplier)
Assert that
superType.isAssignableFrom(subType) is true . |
private static void |
isAssignableCheckFailed(java.lang.Class<?> superType,
java.lang.Class<?> subType,
java.lang.String message) |
private static void |
isInstanceCheckFailed(java.lang.Class<?> type,
java.lang.Object obj,
java.lang.String message) |
static void |
isInstanceOf(java.lang.Class<?> type,
java.lang.Object obj)
Assert that the provided object is an instance of the provided class.
|
static void |
isInstanceOf(java.lang.Class<?> type,
java.lang.Object obj,
java.lang.String message)
Assert that the provided object is an instance of the provided class.
|
static void |
isInstanceOf(java.lang.Class<?> type,
java.lang.Object obj,
java.util.function.Supplier<java.lang.String> messageSupplier)
Assert that the provided object is an instance of the provided class.
|
static void |
isNull(java.lang.Object object)
Assert that an object is
null . |
static void |
isNull(java.lang.Object object,
java.lang.String message)
Assert that an object is
null . |
static void |
isNull(java.lang.Object object,
java.util.function.Supplier<java.lang.String> messageSupplier)
Assert that an object is
null . |
static void |
isTrue(boolean expression)
Assert a boolean expression, throwing an
IllegalArgumentException
if the expression evaluates to false . |
static void |
isTrue(boolean expression,
java.lang.String message)
Assert a boolean expression, throwing an
IllegalArgumentException
if the expression evaluates to false . |
static void |
isTrue(boolean expression,
java.util.function.Supplier<java.lang.String> messageSupplier)
Assert a boolean expression, throwing an
IllegalArgumentException
if the expression evaluates to false . |
static void |
noNullElements(java.lang.Object[] array)
Assert that an array contains no
null elements. |
static void |
noNullElements(java.lang.Object[] array,
java.lang.String message)
Assert that an array contains no
null elements. |
static void |
noNullElements(java.lang.Object[] array,
java.util.function.Supplier<java.lang.String> messageSupplier)
Assert that an array contains no
null elements. |
static void |
notEmpty(java.util.Collection<?> collection)
Assert that a collection contains elements; that is, it must not be
null and must contain at least one element. |
static void |
notEmpty(java.util.Collection<?> collection,
java.lang.String message)
Assert that a collection contains elements; that is, it must not be
null and must contain at least one element. |
static void |
notEmpty(java.util.Collection<?> collection,
java.util.function.Supplier<java.lang.String> messageSupplier)
Assert that a collection contains elements; that is, it must not be
null and must contain at least one element. |
static void |
notEmpty(java.util.Map<?,?> map)
Assert that a Map contains entries; that is, it must not be
null
and must contain at least one entry. |
static void |
notEmpty(java.util.Map<?,?> map,
java.lang.String message)
Assert that a Map contains entries; that is, it must not be
null
and must contain at least one entry. |
static void |
notEmpty(java.util.Map<?,?> map,
java.util.function.Supplier<java.lang.String> messageSupplier)
Assert that a Map contains entries; that is, it must not be
null
and must contain at least one entry. |
static void |
notEmpty(java.lang.Object[] array)
Assert that an array contains elements; that is, it must not be
null and must contain at least one element. |
static void |
notEmpty(java.lang.Object[] array,
java.lang.String message)
Assert that an array contains elements; that is, it must not be
null and must contain at least one element. |
static void |
notEmpty(java.lang.Object[] array,
java.util.function.Supplier<java.lang.String> messageSupplier)
Assert that an array contains elements; that is, it must not be
null and must contain at least one element. |
static void |
notNull(java.lang.Object object)
Assert that an object is not
null . |
static void |
notNull(java.lang.Object object,
java.lang.String message)
Assert that an object is not
null . |
static void |
notNull(java.lang.Object object,
java.util.function.Supplier<java.lang.String> messageSupplier)
Assert that an object is not
null . |
private static java.lang.String |
nullSafeGet(java.util.function.Supplier<java.lang.String> messageSupplier) |
static void |
state(boolean expression)
Assert a boolean expression, throwing an
IllegalStateException
if the expression evaluates to false . |
static void |
state(boolean expression,
java.lang.String message)
Assert a boolean expression, throwing an
IllegalStateException
if the expression evaluates to false . |
static void |
state(boolean expression,
java.util.function.Supplier<java.lang.String> messageSupplier)
Assert a boolean expression, throwing an
IllegalStateException
if the expression evaluates to false . |
public static void isTrue(boolean expression, java.util.function.Supplier<java.lang.String> messageSupplier)
IllegalArgumentException
if the expression evaluates to false
.
Assert.isTrue(i > 0, () -> "The value '" + i + "' must be greater than zero");
expression
- a boolean expressionmessageSupplier
- a supplier for the exception message to use if the
assertion failsjava.lang.IllegalArgumentException
- if expression
is false
public static void isTrue(boolean expression, java.lang.String message)
IllegalArgumentException
if the expression evaluates to false
.
Assert.isTrue(i > 0, "The value must be greater than zero");
expression
- a boolean expressionmessage
- the exception message to use if the assertion failsjava.lang.IllegalArgumentException
- if expression
is false
public static void isTrue(boolean expression)
IllegalArgumentException
if the expression evaluates to false
.
Assert.isTrue(i > 0);
expression
- a boolean expressionjava.lang.IllegalArgumentException
- if expression
is false
public static void isNull(java.lang.Object object, java.util.function.Supplier<java.lang.String> messageSupplier)
null
.
Assert.isNull(value, () -> "The value '" + value + "' must be null");
object
- the object to checkmessageSupplier
- a supplier for the exception message to use if the
assertion failsjava.lang.IllegalArgumentException
- if the object is not null
public static void isNull(java.lang.Object object, java.lang.String message)
null
.
Assert.isNull(value, "The value must be null");
object
- the object to checkmessage
- the exception message to use if the assertion failsjava.lang.IllegalArgumentException
- if the object is not null
public static void isNull(java.lang.Object object)
null
.
Assert.isNull(value);
object
- the object to checkjava.lang.IllegalArgumentException
- if the object is not null
public static void notNull(java.lang.Object object, java.util.function.Supplier<java.lang.String> messageSupplier)
null
.
Assert.notNull(clazz, () -> "The class '" + clazz.getName() + "' must not be null");
object
- the object to checkmessageSupplier
- a supplier for the exception message to use if the
assertion failsjava.lang.IllegalArgumentException
- if the object is null
public static void notNull(java.lang.Object object, java.lang.String message)
null
.
Assert.notNull(clazz, "The class must not be null");
object
- the object to checkmessage
- the exception message to use if the assertion failsjava.lang.IllegalArgumentException
- if the object is null
public static void notNull(java.lang.Object object)
null
.
Assert.notNull(clazz);
object
- the object to checkjava.lang.IllegalArgumentException
- if the object is null
public static void hasLength(java.lang.String text, java.util.function.Supplier<java.lang.String> messageSupplier)
null
and not the empty String.
Assert.hasLength(name, () -> "Name for account '" + account.getId() + "' must not be empty");
text
- the String to checkmessageSupplier
- a supplier for the exception message to use if the
assertion failsjava.lang.IllegalArgumentException
- if the text is emptyStringUtils.hasLength(java.lang.CharSequence)
public static void hasLength(java.lang.String text, java.lang.String message)
null
and not the empty String.
Assert.hasLength(name, "Name must not be empty");
text
- the String to checkmessage
- the exception message to use if the assertion failsjava.lang.IllegalArgumentException
- if the text is emptyStringUtils.hasLength(java.lang.CharSequence)
public static void hasLength(java.lang.String text)
null
and not the empty String.
Assert.hasLength(name);
text
- the String to checkjava.lang.IllegalArgumentException
- if the text is emptyStringUtils.hasLength(java.lang.CharSequence)
public static void hasText(java.lang.String text, java.util.function.Supplier<java.lang.String> messageSupplier)
null
and must contain at least one non-whitespace character.
Assert.hasText(name, () -> "Name for account '" + account.getId() + "' must not be empty");
text
- the String to checkmessageSupplier
- a supplier for the exception message to use if the
assertion failsjava.lang.IllegalArgumentException
- if the text does not contain valid text contentStringUtils.hasText(java.lang.CharSequence)
public static void hasText(java.lang.String text, java.lang.String message)
null
and must contain at least one non-whitespace character.
Assert.hasText(name, "'name' must not be empty");
text
- the String to checkmessage
- the exception message to use if the assertion failsjava.lang.IllegalArgumentException
- if the text does not contain valid text contentStringUtils.hasText(java.lang.CharSequence)
public static void hasText(java.lang.String text)
null
and must contain at least one non-whitespace character.
Assert.hasText(name, "'name' must not be empty");
text
- the String to checkjava.lang.IllegalArgumentException
- if the text does not contain valid text contentStringUtils.hasText(java.lang.CharSequence)
public static void doesNotContain(java.lang.String textToSearch, java.lang.String substring, java.util.function.Supplier<java.lang.String> messageSupplier)
Assert.doesNotContain(name, forbidden, () -> "Name must not contain '" + forbidden + "'");
textToSearch
- the text to searchsubstring
- the substring to find within the textmessageSupplier
- a supplier for the exception message to use if the
assertion failsjava.lang.IllegalArgumentException
- if the text contains the substringpublic static void doesNotContain(java.lang.String textToSearch, java.lang.String substring, java.lang.String message)
Assert.doesNotContain(name, "rod", "Name must not contain 'rod'");
textToSearch
- the text to searchsubstring
- the substring to find within the textmessage
- the exception message to use if the assertion failsjava.lang.IllegalArgumentException
- if the text contains the substringpublic static void doesNotContain(java.lang.String textToSearch, java.lang.String substring)
Assert.doesNotContain(name, "rod");
textToSearch
- the text to searchsubstring
- the substring to find within the textjava.lang.IllegalArgumentException
- if the text contains the substringpublic static void notEmpty(java.lang.Object[] array, java.util.function.Supplier<java.lang.String> messageSupplier)
null
and must contain at least one element.
Assert.notEmpty(array, () -> "The " + arrayType + " array must contain elements");
array
- the array to checkmessageSupplier
- a supplier for the exception message to use if the
assertion failsjava.lang.IllegalArgumentException
- if the object array is null
or contains no elementspublic static void notEmpty(java.lang.Object[] array, java.lang.String message)
null
and must contain at least one element.
Assert.notEmpty(array, "The array must contain elements");
array
- the array to checkmessage
- the exception message to use if the assertion failsjava.lang.IllegalArgumentException
- if the object array is null
or contains no elementspublic static void notEmpty(java.lang.Object[] array)
null
and must contain at least one element.
Assert.notEmpty(array);
array
- the array to checkjava.lang.IllegalArgumentException
- if the object array is null
or
contains no elementspublic static void noNullElements(java.lang.Object[] array, java.util.function.Supplier<java.lang.String> messageSupplier)
null
elements.
Note: Does not complain if the array is empty!
Assert.noNullElements(array, () -> "The " + arrayType + " array must contain non-null elements");
array
- the array to checkmessageSupplier
- a supplier for the exception message to use if the
assertion failsjava.lang.IllegalArgumentException
- if the object array contains a null
elementpublic static void noNullElements(java.lang.Object[] array, java.lang.String message)
null
elements.
Note: Does not complain if the array is empty!
Assert.noNullElements(array, "The array must contain non-null elements");
array
- the array to checkmessage
- the exception message to use if the assertion failsjava.lang.IllegalArgumentException
- if the object array contains a null
elementpublic static void noNullElements(java.lang.Object[] array)
null
elements.
Note: Does not complain if the array is empty!
Assert.noNullElements(array);
array
- the array to checkjava.lang.IllegalArgumentException
- if the object array contains a null
elementpublic static void notEmpty(java.util.Collection<?> collection, java.util.function.Supplier<java.lang.String> messageSupplier)
null
and must contain at least one element.
Assert.notEmpty(collection, () -> "The " + collectionType + " collection must contain elements");
collection
- the collection to checkmessageSupplier
- a supplier for the exception message to use if the
assertion failsjava.lang.IllegalArgumentException
- if the collection is null
or
contains no elementspublic static void notEmpty(java.util.Collection<?> collection, java.lang.String message)
null
and must contain at least one element.
Assert.notEmpty(collection, "Collection must contain elements");
collection
- the collection to checkmessage
- the exception message to use if the assertion failsjava.lang.IllegalArgumentException
- if the collection is null
or
contains no elementspublic static void notEmpty(java.util.Collection<?> collection)
null
and must contain at least one element.
Assert.notEmpty(collection, "Collection must contain elements");
collection
- the collection to checkjava.lang.IllegalArgumentException
- if the collection is null
or
contains no elementspublic static void notEmpty(java.util.Map<?,?> map, java.util.function.Supplier<java.lang.String> messageSupplier)
null
and must contain at least one entry.
Assert.notEmpty(map, () -> "The " + mapType + " map must contain entries");
map
- the map to checkmessageSupplier
- a supplier for the exception message to use if the
assertion failsjava.lang.IllegalArgumentException
- if the map is null
or contains no entriespublic static void notEmpty(java.util.Map<?,?> map, java.lang.String message)
null
and must contain at least one entry.
Assert.notEmpty(map, "Map must contain entries");
map
- the map to checkmessage
- the exception message to use if the assertion failsjava.lang.IllegalArgumentException
- if the map is null
or contains no entriespublic static void notEmpty(java.util.Map<?,?> map)
null
and must contain at least one entry.
Assert.notEmpty(map);
map
- the map to checkjava.lang.IllegalArgumentException
- if the map is null
or contains no entriespublic static void isInstanceOf(java.lang.Class<?> type, java.lang.Object obj)
Assert.instanceOf(Foo.class, foo);
type
- the type to check againstobj
- the object to checkjava.lang.IllegalArgumentException
- if the object is not an instance of typeClass.isInstance(java.lang.Object)
public static void isInstanceOf(java.lang.Class<?> type, java.lang.Object obj, java.util.function.Supplier<java.lang.String> messageSupplier)
Assert.instanceOf(Foo.class, foo, () -> "Processing " + Foo.class.getSimpleName() + ":");
type
- the type to check againstobj
- the object to checkmessageSupplier
- a supplier for the exception message to use if the
assertion fails; the message will be prepended to the message generated
by this method in order to provide further context. It should normally end
in ":" or "." so that the generated message looks OK when appended to it.java.lang.IllegalArgumentException
- if the object is not an instance of typeClass.isInstance(java.lang.Object)
public static void isInstanceOf(java.lang.Class<?> type, java.lang.Object obj, java.lang.String message)
Assert.instanceOf(Foo.class, foo, "Processing Foo:");
type
- the type to check againstobj
- the object to checkmessage
- a message which will be prepended to the message generated
by this method in order to provide further context. It should normally end
in ":" or "." so that the generated message looks OK when appended to it.java.lang.IllegalArgumentException
- if the object is not an instance of typeClass.isInstance(java.lang.Object)
private static void isInstanceCheckFailed(java.lang.Class<?> type, java.lang.Object obj, java.lang.String message)
public static void isAssignable(java.lang.Class<?> superType, java.lang.Class<?> subType)
superType.isAssignableFrom(subType)
is true
.
Assert.isAssignable(Number.class, myClass);
superType
- the super type to checksubType
- the sub type to checkjava.lang.IllegalArgumentException
- if the classes are not assignablepublic static void isAssignable(java.lang.Class<?> superType, java.lang.Class<?> subType, java.util.function.Supplier<java.lang.String> messageSupplier)
superType.isAssignableFrom(subType)
is true
.
Assert.isAssignable(Number.class, myClass, () -> "Processing " + myClass.getSimpleName() + ":");
superType
- the super type to check againstsubType
- the sub type to checkmessageSupplier
- a supplier for the exception message to use if the
assertion fails; the message will be prepended to the message generated
by this method in order to provide further context. It should normally end
in ":" or "." so that the generated message looks OK when appended to it.java.lang.IllegalArgumentException
- if the classes are not assignablepublic static void isAssignable(java.lang.Class<?> superType, java.lang.Class<?> subType, java.lang.String message)
superType.isAssignableFrom(subType)
is true
.
Assert.isAssignable(Number.class, myClass);
superType
- the super type to check againstsubType
- the sub type to checkmessage
- a message which will be prepended to the message generated
by this method in order to provide further context. It should normally end
in ":" or "." so that the generated message looks OK when appended to it.java.lang.IllegalArgumentException
- if the classes are not assignableprivate static void isAssignableCheckFailed(java.lang.Class<?> superType, java.lang.Class<?> subType, java.lang.String message)
public static void state(boolean expression, java.util.function.Supplier<java.lang.String> messageSupplier)
IllegalStateException
if the expression evaluates to false
.
Call isTrue(boolean, java.util.function.Supplier<java.lang.String>)
if you wish to throw an IllegalArgumentException
on an assertion failure.
Assert.state(id == null, () -> "ID for " + entity.getName() + " must not already be initialized");
expression
- a boolean expressionmessageSupplier
- a supplier for the exception message to use if the
assertion failsjava.lang.IllegalStateException
- if expression
is false
public static void state(boolean expression, java.lang.String message)
IllegalStateException
if the expression evaluates to false
.
Call isTrue(boolean, java.util.function.Supplier<java.lang.String>)
if you wish to throw an IllegalArgumentException
on an assertion failure.
Assert.state(id == null, "The id property must not already be initialized");
expression
- a boolean expressionmessage
- the exception message to use if the assertion failsjava.lang.IllegalStateException
- if expression
is false
public static void state(boolean expression)
IllegalStateException
if the expression evaluates to false
.
Call isTrue(boolean, java.util.function.Supplier<java.lang.String>)
if you wish to throw an IllegalArgumentException
on an assertion failure.
Assert.state(id == null);
expression
- a boolean expressionjava.lang.IllegalStateException
- if expression
is false
private static java.lang.String nullSafeGet(java.util.function.Supplier<java.lang.String> messageSupplier)