Class Assert
- java.lang.Object
-
- org.apache.shiro.util.Assert
-
public abstract class Assert extends Object
Assertion utility class that assists in validating arguments. Useful for identifying programmer errors early and clearly at runtime. Usage also reduces a program's cyclomatic complexity.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 config initialization code, there is usally 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 Jakarta's Commons Lang >= 2.0 for a more comprehensive suite of assertion utilities. Gratefully borrowed from the Spring Framework, also Apache 2.0 licensed- Since:
- 1.3
- Author:
- Keith Donald, Juergen Hoeller, Colin Sampaleanu, Rob Harrop
-
-
Constructor Summary
Constructors Constructor Description Assert()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static void
doesNotContain(String textToSearch, String substring)
Assert that the given text does not contain the given substring.static void
doesNotContain(String textToSearch, String substring, String message)
Assert that the given text does not contain the given substring.static void
hasLength(String text)
Assert that the given String is not empty; that is, it must not benull
and not the empty String.static void
hasLength(String text, String message)
Assert that the given String is not empty; that is, it must not benull
and not the empty String.static void
hasText(String text)
Assert that the given String has valid text content; that is, it must not benull
and must contain at least one non-whitespace character.static void
hasText(String text, String message)
Assert that the given String has valid text content; that is, it must not benull
and must contain at least one non-whitespace character.static void
isAssignable(Class superType, Class subType)
Assert thatsuperType.isAssignableFrom(subType)
istrue
.static void
isAssignable(Class superType, Class subType, String message)
Assert thatsuperType.isAssignableFrom(subType)
istrue
.static void
isInstanceOf(Class clazz, Object obj)
Assert that the provided object is an instance of the provided class.static void
isInstanceOf(Class type, Object obj, String message)
Assert that the provided object is an instance of the provided class.static void
isNull(Object object)
Assert that an object isnull
.static void
isNull(Object object, String message)
Assert that an object isnull
.static void
isTrue(boolean expression)
Assert a boolean expression, throwingIllegalArgumentException
if the test result isfalse
.static void
isTrue(boolean expression, String message)
Assert a boolean expression, throwingIllegalArgumentException
if the test result isfalse
.static void
noNullElements(Object[] array)
Assert that an array has no null elements.static void
noNullElements(Object[] array, String message)
Assert that an array has no null elements.static void
notEmpty(Object[] array)
Assert that an array has elements; that is, it must not benull
and must have at least one element.static void
notEmpty(Object[] array, String message)
Assert that an array has elements; that is, it must not benull
and must have at least one element.static void
notEmpty(Collection collection)
Assert that a collection has elements; that is, it must not benull
and must have at least one element.static void
notEmpty(Collection collection, String message)
Assert that a collection has elements; that is, it must not benull
and must have at least one element.static void
notEmpty(Map map)
Assert that a Map has entries; that is, it must not benull
and must have at least one entry.static void
notEmpty(Map map, String message)
Assert that a Map has entries; that is, it must not benull
and must have at least one entry.static void
notNull(Object object)
Assert that an object is notnull
.static void
notNull(Object object, String message)
Assert that an object is notnull
.static void
state(boolean expression)
Assert a boolean expression, throwingIllegalStateException
if the test result isfalse
.static void
state(boolean expression, String message)
Assert a boolean expression, throwingIllegalStateException
if the test result isfalse
.
-
-
-
Constructor Detail
-
Assert
public Assert()
-
-
Method Detail
-
isTrue
public static void isTrue(boolean expression, String message)
Assert a boolean expression, throwingIllegalArgumentException
if the test result isfalse
.Assert.isTrue(i > 0, "The value must be greater than zero");
- Parameters:
expression
- a boolean expressionmessage
- the exception message to use if the assertion fails- Throws:
IllegalArgumentException
- if expression isfalse
-
isTrue
public static void isTrue(boolean expression)
Assert a boolean expression, throwingIllegalArgumentException
if the test result isfalse
.Assert.isTrue(i > 0);
- Parameters:
expression
- a boolean expression- Throws:
IllegalArgumentException
- if expression isfalse
-
isNull
public static void isNull(Object object, String message)
Assert that an object isnull
.Assert.isNull(value, "The value must be null");
- Parameters:
object
- the object to checkmessage
- the exception message to use if the assertion fails- Throws:
IllegalArgumentException
- if the object is notnull
-
isNull
public static void isNull(Object object)
Assert that an object isnull
.Assert.isNull(value);
- Parameters:
object
- the object to check- Throws:
IllegalArgumentException
- if the object is notnull
-
notNull
public static void notNull(Object object, String message)
Assert that an object is notnull
.Assert.notNull(clazz, "The class must not be null");
- Parameters:
object
- the object to checkmessage
- the exception message to use if the assertion fails- Throws:
IllegalArgumentException
- if the object isnull
-
notNull
public static void notNull(Object object)
Assert that an object is notnull
.Assert.notNull(clazz);
- Parameters:
object
- the object to check- Throws:
IllegalArgumentException
- if the object isnull
-
hasLength
public static void hasLength(String text, String message)
Assert that the given String is not empty; that is, it must not benull
and not the empty String.Assert.hasLength(name, "Name must not be empty");
- Parameters:
text
- the String to checkmessage
- the exception message to use if the assertion fails- See Also:
StringUtils.hasLength(java.lang.String)
-
hasLength
public static void hasLength(String text)
Assert that the given String is not empty; that is, it must not benull
and not the empty String.Assert.hasLength(name);
- Parameters:
text
- the String to check- See Also:
StringUtils.hasLength(java.lang.String)
-
hasText
public static void hasText(String text, String message)
Assert that the given String has valid text content; that is, it must not benull
and must contain at least one non-whitespace character.Assert.hasText(name, "'name' must not be empty");
- Parameters:
text
- the String to checkmessage
- the exception message to use if the assertion fails- See Also:
StringUtils.hasText(java.lang.String)
-
hasText
public static void hasText(String text)
Assert that the given String has valid text content; that is, it must not benull
and must contain at least one non-whitespace character.Assert.hasText(name, "'name' must not be empty");
- Parameters:
text
- the String to check- See Also:
StringUtils.hasText(java.lang.String)
-
doesNotContain
public static void doesNotContain(String textToSearch, String substring, String message)
Assert that the given text does not contain the given substring.Assert.doesNotContain(name, "rod", "Name must not contain 'rod'");
- Parameters:
textToSearch
- the text to searchsubstring
- the substring to find within the textmessage
- the exception message to use if the assertion fails
-
doesNotContain
public static void doesNotContain(String textToSearch, String substring)
Assert that the given text does not contain the given substring.Assert.doesNotContain(name, "rod");
- Parameters:
textToSearch
- the text to searchsubstring
- the substring to find within the text
-
notEmpty
public static void notEmpty(Object[] array, String message)
Assert that an array has elements; that is, it must not benull
and must have at least one element.Assert.notEmpty(array, "The array must have elements");
- Parameters:
array
- the array to checkmessage
- the exception message to use if the assertion fails- Throws:
IllegalArgumentException
- if the object array isnull
or has no elements
-
notEmpty
public static void notEmpty(Object[] array)
Assert that an array has elements; that is, it must not benull
and must have at least one element.Assert.notEmpty(array);
- Parameters:
array
- the array to check- Throws:
IllegalArgumentException
- if the object array isnull
or has no elements
-
noNullElements
public static void noNullElements(Object[] array, String message)
Assert that an array has no null elements. Note: Does not complain if the array is empty!Assert.noNullElements(array, "The array must have non-null elements");
- Parameters:
array
- the array to checkmessage
- the exception message to use if the assertion fails- Throws:
IllegalArgumentException
- if the object array contains anull
element
-
noNullElements
public static void noNullElements(Object[] array)
Assert that an array has no null elements. Note: Does not complain if the array is empty!Assert.noNullElements(array);
- Parameters:
array
- the array to check- Throws:
IllegalArgumentException
- if the object array contains anull
element
-
notEmpty
public static void notEmpty(Collection collection, String message)
Assert that a collection has elements; that is, it must not benull
and must have at least one element.Assert.notEmpty(collection, "Collection must have elements");
- Parameters:
collection
- the collection to checkmessage
- the exception message to use if the assertion fails- Throws:
IllegalArgumentException
- if the collection isnull
or has no elements
-
notEmpty
public static void notEmpty(Collection collection)
Assert that a collection has elements; that is, it must not benull
and must have at least one element.Assert.notEmpty(collection, "Collection must have elements");
- Parameters:
collection
- the collection to check- Throws:
IllegalArgumentException
- if the collection isnull
or has no elements
-
notEmpty
public static void notEmpty(Map map, String message)
Assert that a Map has entries; that is, it must not benull
and must have at least one entry.Assert.notEmpty(map, "Map must have entries");
- Parameters:
map
- the map to checkmessage
- the exception message to use if the assertion fails- Throws:
IllegalArgumentException
- if the map isnull
or has no entries
-
notEmpty
public static void notEmpty(Map map)
Assert that a Map has entries; that is, it must not benull
and must have at least one entry.Assert.notEmpty(map);
- Parameters:
map
- the map to check- Throws:
IllegalArgumentException
- if the map isnull
or has no entries
-
isInstanceOf
public static void isInstanceOf(Class clazz, Object obj)
Assert that the provided object is an instance of the provided class.Assert.instanceOf(Foo.class, foo);
- Parameters:
clazz
- the required classobj
- the object to check- Throws:
IllegalArgumentException
- if the object is not an instance of clazz- See Also:
Class.isInstance(java.lang.Object)
-
isInstanceOf
public static void isInstanceOf(Class type, Object obj, String message)
Assert that the provided object is an instance of the provided class.Assert.instanceOf(Foo.class, foo);
- Parameters:
type
- the type to check againstobj
- the object to checkmessage
- a message which will be prepended to the message produced by the function itself, and which may be used to provide context. It should normally end in a ": " or ". " so that the function generate message looks ok when prepended to it.- Throws:
IllegalArgumentException
- if the object is not an instance of clazz- See Also:
Class.isInstance(java.lang.Object)
-
isAssignable
public static void isAssignable(Class superType, Class subType)
Assert thatsuperType.isAssignableFrom(subType)
istrue
.Assert.isAssignable(Number.class, myClass);
- Parameters:
superType
- the super type to checksubType
- the sub type to check- Throws:
IllegalArgumentException
- if the classes are not assignable
-
isAssignable
public static void isAssignable(Class superType, Class subType, String message)
Assert thatsuperType.isAssignableFrom(subType)
istrue
.Assert.isAssignable(Number.class, myClass);
- Parameters:
superType
- the super type to check againstsubType
- the sub type to checkmessage
- a message which will be prepended to the message produced by the function itself, and which may be used to provide context. It should normally end in a ": " or ". " so that the function generate message looks ok when prepended to it.- Throws:
IllegalArgumentException
- if the classes are not assignable
-
state
public static void state(boolean expression, String message)
Assert a boolean expression, throwingIllegalStateException
if the test result isfalse
. Call isTrue if you wish to throw IllegalArgumentException on an assertion failure.Assert.state(id == null, "The id property must not already be initialized");
- Parameters:
expression
- a boolean expressionmessage
- the exception message to use if the assertion fails- Throws:
IllegalStateException
- if expression isfalse
-
state
public static void state(boolean expression)
Assert a boolean expression, throwingIllegalStateException
if the test result isfalse
.Call
isTrue(boolean)
if you wish to throwIllegalArgumentException
on an assertion failure.Assert.state(id == null);
- Parameters:
expression
- a boolean expression- Throws:
IllegalStateException
- if the supplied expression isfalse
-
-