Class Assert
- java.lang.Object
-
- yakworks.util.Assert
-
public abstract class Assert extends java.lang.ObjectAssertion utility class that assists in validating arguments.Useful for identifying programmer errors early and clearly at runtime.
For example, if the contract of a public method states it does not allow
nullarguments,Assertcan 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
IllegalArgumentExceptionis 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; for a more comprehensive suite of assertion utilities consider
org.apache.commons.lang3.Validatefrom Apache Commons Lang, Google Guava's Preconditions, or similar third-party libraries.- Since:
- 1.1.2
-
-
Constructor Summary
Constructors Constructor Description Assert()
-
Method Summary
All Methods Static Methods Concrete Methods Deprecated Methods Modifier and Type Method Description static voiddoesNotContain(java.lang.String textToSearch, java.lang.String substring)Deprecated.as of 4.3.7, in favor ofdoesNotContain(String, String, String)static voiddoesNotContain(java.lang.String textToSearch, java.lang.String substring, java.lang.String message)Assert that the given text does not contain the given substring.static voiddoesNotContain(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 voidhasLength(java.lang.String text)Deprecated.as of 4.3.7, in favor ofhasLength(String, String)static voidhasLength(java.lang.String text, java.lang.String message)Assert that the given String is not empty; that is, it must not benulland not the empty String.static voidhasLength(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 benulland not the empty String.static voidhasText(java.lang.String text)Deprecated.as of 4.3.7, in favor ofhasText(String, String)static voidhasText(java.lang.String text, java.lang.String message)Assert that the given String contains valid text content; that is, it must not benulland must contain at least one non-whitespace character.static voidhasText(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 benulland must contain at least one non-whitespace character.static voidisAssignable(java.lang.Class<?> superType, java.lang.Class<?> subType)Assert thatsuperType.isAssignableFrom(subType)istrue.static voidisAssignable(java.lang.Class<?> superType, java.lang.Class<?> subType, java.lang.String message)Assert thatsuperType.isAssignableFrom(subType)istrue.static voidisAssignable(java.lang.Class<?> superType, java.lang.Class<?> subType, java.util.function.Supplier<java.lang.String> messageSupplier)Assert thatsuperType.isAssignableFrom(subType)istrue.static voidisInstanceOf(java.lang.Class<?> type, java.lang.Object obj)Assert that the provided object is an instance of the provided class.static voidisInstanceOf(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 voidisInstanceOf(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 voidisNull(java.lang.Object object)Deprecated.as of 4.3.7, in favor ofisNull(Object, String)static voidisNull(java.lang.Object object, java.lang.String message)Assert that an object isnull.static voidisNull(java.lang.Object object, java.util.function.Supplier<java.lang.String> messageSupplier)Assert that an object isnull.static voidisTrue(boolean expression)Deprecated.as of 4.3.7, in favor ofisTrue(boolean, String)static voidisTrue(boolean expression, java.lang.String message)Assert a boolean expression, throwing anIllegalArgumentExceptionif the expression evaluates tofalse.static voidisTrue(boolean expression, java.util.function.Supplier<java.lang.String> messageSupplier)Assert a boolean expression, throwing anIllegalArgumentExceptionif the expression evaluates tofalse.static voidnoNullElements(java.lang.Object[] array)Deprecated.as of 4.3.7, in favor ofnoNullElements(Object[], String)static voidnoNullElements(java.lang.Object[] array, java.lang.String message)Assert that an array contains nonullelements.static voidnoNullElements(java.lang.Object[] array, java.util.function.Supplier<java.lang.String> messageSupplier)Assert that an array contains nonullelements.static voidnoNullElements(java.util.Collection<?> collection, java.lang.String message)Assert that a collection contains nonullelements.static voidnoNullElements(java.util.Collection<?> collection, java.util.function.Supplier<java.lang.String> messageSupplier)Assert that a collection contains nonullelements.static voidnotEmpty(java.lang.Object[] array)Deprecated.as of 4.3.7, in favor ofnotEmpty(Object[], String)static voidnotEmpty(java.lang.Object[] array, java.lang.String message)Assert that an array contains elements; that is, it must not benulland must contain at least one element.static voidnotEmpty(java.lang.Object[] array, java.util.function.Supplier<java.lang.String> messageSupplier)Assert that an array contains elements; that is, it must not benulland must contain at least one element.static voidnotEmpty(java.util.Collection<?> collection)Deprecated.as of 4.3.7, in favor ofnotEmpty(Collection, String)static voidnotEmpty(java.util.Collection<?> collection, java.lang.String message)Assert that a collection contains elements; that is, it must not benulland must contain at least one element.static voidnotEmpty(java.util.Collection<?> collection, java.util.function.Supplier<java.lang.String> messageSupplier)Assert that a collection contains elements; that is, it must not benulland must contain at least one element.static voidnotEmpty(java.util.Map<?,?> map)Deprecated.as of 4.3.7, in favor ofnotEmpty(Map, String)static voidnotEmpty(java.util.Map<?,?> map, java.lang.String message)Assert that a Map contains entries; that is, it must not benulland must contain at least one entry.static voidnotEmpty(java.util.Map<?,?> map, java.util.function.Supplier<java.lang.String> messageSupplier)Assert that a Map contains entries; that is, it must not benulland must contain at least one entry.static voidnotNull(java.lang.Object object)Deprecated.as of 4.3.7, in favor ofnotNull(Object, String)static voidnotNull(java.lang.Object object, java.lang.String message)Assert that an object is notnull.static voidnotNull(java.lang.Object object, java.util.function.Supplier<java.lang.String> messageSupplier)Assert that an object is notnull.static voidstate(boolean expression)Deprecated.as of 4.3.7, in favor ofstate(boolean, String)static voidstate(boolean expression, java.lang.String message)Assert a boolean expression, throwing anIllegalStateExceptionif the expression evaluates tofalse.static voidstate(boolean expression, java.util.function.Supplier<java.lang.String> messageSupplier)Assert a boolean expression, throwing anIllegalStateExceptionif the expression evaluates tofalse.
-
-
-
Method Detail
-
state
public static void state(boolean expression, java.lang.String message)Assert a boolean expression, throwing anIllegalStateExceptionif the expression evaluates tofalse.Call
isTrue(boolean, java.lang.String)if you wish to throw anIllegalArgumentExceptionon 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:
java.lang.IllegalStateException- ifexpressionisfalse
-
state
public static void state(boolean expression, java.util.function.Supplier<java.lang.String> messageSupplier)Assert a boolean expression, throwing anIllegalStateExceptionif the expression evaluates tofalse.Call
isTrue(boolean, java.lang.String)if you wish to throw anIllegalArgumentExceptionon an assertion failure.Assert.state(entity.getId() == null, () -> "ID for entity " + entity.getName() + " must not already be initialized");- Parameters:
expression- a boolean expressionmessageSupplier- a supplier for the exception message to use if the assertion fails- Throws:
java.lang.IllegalStateException- ifexpressionisfalse- Since:
- 5.0
-
state
@Deprecated public static void state(boolean expression)
Deprecated.as of 4.3.7, in favor ofstate(boolean, String)Assert a boolean expression, throwing anIllegalStateExceptionif the expression evaluates tofalse.
-
isTrue
public static void isTrue(boolean expression, java.lang.String message)Assert a boolean expression, throwing anIllegalArgumentExceptionif the expression evaluates tofalse.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:
java.lang.IllegalArgumentException- ifexpressionisfalse
-
isTrue
public static void isTrue(boolean expression, java.util.function.Supplier<java.lang.String> messageSupplier)Assert a boolean expression, throwing anIllegalArgumentExceptionif the expression evaluates tofalse.Assert.isTrue(i > 0, () -> "The value '" + i + "' must be greater than zero");
- Parameters:
expression- a boolean expressionmessageSupplier- a supplier for the exception message to use if the assertion fails- Throws:
java.lang.IllegalArgumentException- ifexpressionisfalse- Since:
- 5.0
-
isTrue
@Deprecated public static void isTrue(boolean expression)
Deprecated.as of 4.3.7, in favor ofisTrue(boolean, String)Assert a boolean expression, throwing anIllegalArgumentExceptionif the expression evaluates tofalse.
-
isNull
public static void isNull(@Nullable java.lang.Object object, java.lang.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:
java.lang.IllegalArgumentException- if the object is notnull
-
isNull
public static void isNull(@Nullable java.lang.Object object, java.util.function.Supplier<java.lang.String> messageSupplier)Assert that an object isnull.Assert.isNull(value, () -> "The value '" + value + "' must be null");
- Parameters:
object- the object to checkmessageSupplier- a supplier for the exception message to use if the assertion fails- Throws:
java.lang.IllegalArgumentException- if the object is notnull- Since:
- 5.0
-
isNull
@Deprecated public static void isNull(@Nullable java.lang.Object object)Deprecated.as of 4.3.7, in favor ofisNull(Object, String)Assert that an object isnull.
-
notNull
public static void notNull(@Nullable java.lang.Object object, java.lang.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:
java.lang.IllegalArgumentException- if the object isnull
-
notNull
public static void notNull(@Nullable java.lang.Object object, java.util.function.Supplier<java.lang.String> messageSupplier)Assert that an object is notnull.Assert.notNull(entity.getId(), () -> "ID for entity " + entity.getName() + " must not be null");- Parameters:
object- the object to checkmessageSupplier- a supplier for the exception message to use if the assertion fails- Throws:
java.lang.IllegalArgumentException- if the object isnull- Since:
- 5.0
-
notNull
@Deprecated public static void notNull(@Nullable java.lang.Object object)Deprecated.as of 4.3.7, in favor ofnotNull(Object, String)Assert that an object is notnull.
-
hasLength
public static void hasLength(@Nullable java.lang.String text, java.lang.String message)Assert that the given String is not empty; that is, it must not benulland 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- Throws:
java.lang.IllegalArgumentException- if the text is empty- See Also:
StringUtils.hasLength(java.lang.CharSequence)
-
hasLength
public static void hasLength(@Nullable 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 benulland not the empty String.Assert.hasLength(account.getName(), () -> "Name for account '" + account.getId() + "' must not be empty");- Parameters:
text- the String to checkmessageSupplier- a supplier for the exception message to use if the assertion fails- Throws:
java.lang.IllegalArgumentException- if the text is empty- Since:
- 5.0
- See Also:
StringUtils.hasLength(java.lang.CharSequence)
-
hasLength
@Deprecated public static void hasLength(@Nullable java.lang.String text)Deprecated.as of 4.3.7, in favor ofhasLength(String, String)Assert that the given String is not empty; that is, it must not benulland not the empty String.
-
hasText
public static void hasText(@Nullable java.lang.String text, java.lang.String message)Assert that the given String contains valid text content; that is, it must not benulland 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- Throws:
java.lang.IllegalArgumentException- if the text does not contain valid text content- See Also:
StringUtils.hasText(java.lang.CharSequence)
-
hasText
public static void hasText(@Nullable 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 benulland must contain at least one non-whitespace character.Assert.hasText(account.getName(), () -> "Name for account '" + account.getId() + "' must not be empty");- Parameters:
text- the String to checkmessageSupplier- a supplier for the exception message to use if the assertion fails- Throws:
java.lang.IllegalArgumentException- if the text does not contain valid text content- Since:
- 5.0
- See Also:
StringUtils.hasText(java.lang.CharSequence)
-
hasText
@Deprecated public static void hasText(@Nullable java.lang.String text)Deprecated.as of 4.3.7, in favor ofhasText(String, String)Assert that the given String contains valid text content; that is, it must not benulland must contain at least one non-whitespace character.
-
doesNotContain
public static void doesNotContain(@Nullable java.lang.String textToSearch, java.lang.String substring, java.lang.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- Throws:
java.lang.IllegalArgumentException- if the text contains the substring
-
doesNotContain
public static void doesNotContain(@Nullable 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.Assert.doesNotContain(name, forbidden, () -> "Name must not contain '" + forbidden + "'");
- Parameters:
textToSearch- the text to searchsubstring- the substring to find within the textmessageSupplier- a supplier for the exception message to use if the assertion fails- Throws:
java.lang.IllegalArgumentException- if the text contains the substring- Since:
- 5.0
-
doesNotContain
@Deprecated public static void doesNotContain(@Nullable java.lang.String textToSearch, java.lang.String substring)Deprecated.as of 4.3.7, in favor ofdoesNotContain(String, String, String)Assert that the given text does not contain the given substring.
-
notEmpty
public static void notEmpty(@Nullable java.lang.Object[] array, java.lang.String message)Assert that an array contains elements; that is, it must not benulland must contain at least one element.Assert.notEmpty(array, "The array must contain elements");
- Parameters:
array- the array to checkmessage- the exception message to use if the assertion fails- Throws:
java.lang.IllegalArgumentException- if the object array isnullor contains no elements
-
notEmpty
public static void notEmpty(@Nullable java.lang.Object[] array, java.util.function.Supplier<java.lang.String> messageSupplier)Assert that an array contains elements; that is, it must not benulland must contain at least one element.Assert.notEmpty(array, () -> "The " + arrayType + " array must contain elements");
- Parameters:
array- the array to checkmessageSupplier- a supplier for the exception message to use if the assertion fails- Throws:
java.lang.IllegalArgumentException- if the object array isnullor contains no elements- Since:
- 5.0
-
notEmpty
@Deprecated public static void notEmpty(@Nullable java.lang.Object[] array)Deprecated.as of 4.3.7, in favor ofnotEmpty(Object[], String)Assert that an array contains elements; that is, it must not benulland must contain at least one element.
-
noNullElements
public static void noNullElements(@Nullable java.lang.Object[] array, java.lang.String message)Assert that an array contains nonullelements.Note: Does not complain if the array is empty!
Assert.noNullElements(array, "The array must contain non-null elements");
- Parameters:
array- the array to checkmessage- the exception message to use if the assertion fails- Throws:
java.lang.IllegalArgumentException- if the object array contains anullelement
-
noNullElements
public static void noNullElements(@Nullable java.lang.Object[] array, java.util.function.Supplier<java.lang.String> messageSupplier)Assert that an array contains nonullelements.Note: Does not complain if the array is empty!
Assert.noNullElements(array, () -> "The " + arrayType + " array must contain non-null elements");
- Parameters:
array- the array to checkmessageSupplier- a supplier for the exception message to use if the assertion fails- Throws:
java.lang.IllegalArgumentException- if the object array contains anullelement- Since:
- 5.0
-
noNullElements
@Deprecated public static void noNullElements(@Nullable java.lang.Object[] array)Deprecated.as of 4.3.7, in favor ofnoNullElements(Object[], String)Assert that an array contains nonullelements.
-
notEmpty
public static void notEmpty(@Nullable java.util.Collection<?> collection, java.lang.String message)Assert that a collection contains elements; that is, it must not benulland must contain at least one element.Assert.notEmpty(collection, "Collection must contain elements");
- Parameters:
collection- the collection to checkmessage- the exception message to use if the assertion fails- Throws:
java.lang.IllegalArgumentException- if the collection isnullor contains no elements
-
notEmpty
public static void notEmpty(@Nullable java.util.Collection<?> collection, java.util.function.Supplier<java.lang.String> messageSupplier)Assert that a collection contains elements; that is, it must not benulland must contain at least one element.Assert.notEmpty(collection, () -> "The " + collectionType + " collection must contain elements");
- Parameters:
collection- the collection to checkmessageSupplier- a supplier for the exception message to use if the assertion fails- Throws:
java.lang.IllegalArgumentException- if the collection isnullor contains no elements- Since:
- 5.0
-
notEmpty
@Deprecated public static void notEmpty(@Nullable java.util.Collection<?> collection)Deprecated.as of 4.3.7, in favor ofnotEmpty(Collection, String)Assert that a collection contains elements; that is, it must not benulland must contain at least one element.
-
noNullElements
public static void noNullElements(@Nullable java.util.Collection<?> collection, java.lang.String message)Assert that a collection contains nonullelements.Note: Does not complain if the collection is empty!
Assert.noNullElements(collection, "Collection must contain non-null elements");
- Parameters:
collection- the collection to checkmessage- the exception message to use if the assertion fails- Throws:
java.lang.IllegalArgumentException- if the collection contains anullelement- Since:
- 5.2
-
noNullElements
public static void noNullElements(@Nullable java.util.Collection<?> collection, java.util.function.Supplier<java.lang.String> messageSupplier)Assert that a collection contains nonullelements.Note: Does not complain if the collection is empty!
Assert.noNullElements(collection, () -> "Collection " + collectionName + " must contain non-null elements");
- Parameters:
collection- the collection to checkmessageSupplier- a supplier for the exception message to use if the assertion fails- Throws:
java.lang.IllegalArgumentException- if the collection contains anullelement- Since:
- 5.2
-
notEmpty
public static void notEmpty(@Nullable java.util.Map<?,?> map, java.lang.String message)Assert that a Map contains entries; that is, it must not benulland must contain at least one entry.Assert.notEmpty(map, "Map must contain entries");
- Parameters:
map- the map to checkmessage- the exception message to use if the assertion fails- Throws:
java.lang.IllegalArgumentException- if the map isnullor contains no entries
-
notEmpty
public static void notEmpty(@Nullable java.util.Map<?,?> map, java.util.function.Supplier<java.lang.String> messageSupplier)Assert that a Map contains entries; that is, it must not benulland must contain at least one entry.Assert.notEmpty(map, () -> "The " + mapType + " map must contain entries");
- Parameters:
map- the map to checkmessageSupplier- a supplier for the exception message to use if the assertion fails- Throws:
java.lang.IllegalArgumentException- if the map isnullor contains no entries- Since:
- 5.0
-
notEmpty
@Deprecated public static void notEmpty(@Nullable java.util.Map<?,?> map)Deprecated.as of 4.3.7, in favor ofnotEmpty(Map, String)Assert that a Map contains entries; that is, it must not benulland must contain at least one entry.
-
isInstanceOf
public static void isInstanceOf(java.lang.Class<?> type, @Nullable java.lang.Object obj, java.lang.String message)Assert that the provided object is an instance of the provided class.Assert.instanceOf(Foo.class, foo, "Foo expected");
- Parameters:
type- the type to check againstobj- the object to checkmessage- a message which will be prepended to provide further context. If it is empty or ends in ":" or ";" or "," or ".", a full exception message will be appended. If it ends in a space, the name of the offending object's type will be appended. In any other case, a ":" with a space and the name of the offending object's type will be appended.- Throws:
java.lang.IllegalArgumentException- if the object is not an instance of type
-
isInstanceOf
public static void isInstanceOf(java.lang.Class<?> type, @Nullable java.lang.Object obj, java.util.function.Supplier<java.lang.String> messageSupplier)Assert that the provided object is an instance of the provided class.Assert.instanceOf(Foo.class, foo, () -> "Processing " + Foo.class.getSimpleName() + ":");
- Parameters:
type- the type to check againstobj- the object to checkmessageSupplier- a supplier for the exception message to use if the assertion fails. SeeisInstanceOf(Class, Object, String)for details.- Throws:
java.lang.IllegalArgumentException- if the object is not an instance of type- Since:
- 5.0
-
isInstanceOf
public static void isInstanceOf(java.lang.Class<?> type, @Nullable java.lang.Object obj)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 check- Throws:
java.lang.IllegalArgumentException- if the object is not an instance of type
-
isAssignable
public static void isAssignable(java.lang.Class<?> superType, @Nullable java.lang.Class<?> subType, java.lang.String message)Assert thatsuperType.isAssignableFrom(subType)istrue.Assert.isAssignable(Number.class, myClass, "Number expected");
- Parameters:
superType- the supertype to check againstsubType- the subtype to checkmessage- a message which will be prepended to provide further context. If it is empty or ends in ":" or ";" or "," or ".", a full exception message will be appended. If it ends in a space, the name of the offending subtype will be appended. In any other case, a ":" with a space and the name of the offending subtype will be appended.- Throws:
java.lang.IllegalArgumentException- if the classes are not assignable
-
isAssignable
public static void isAssignable(java.lang.Class<?> superType, @Nullable java.lang.Class<?> subType, java.util.function.Supplier<java.lang.String> messageSupplier)Assert thatsuperType.isAssignableFrom(subType)istrue.Assert.isAssignable(Number.class, myClass, () -> "Processing " + myAttributeName + ":");
- Parameters:
superType- the supertype to check againstsubType- the subtype to checkmessageSupplier- a supplier for the exception message to use if the assertion fails. SeeisAssignable(Class, Class, String)for details.- Throws:
java.lang.IllegalArgumentException- if the classes are not assignable- Since:
- 5.0
-
isAssignable
public static void isAssignable(java.lang.Class<?> superType, java.lang.Class<?> subType)Assert thatsuperType.isAssignableFrom(subType)istrue.Assert.isAssignable(Number.class, myClass);
- Parameters:
superType- the supertype to checksubType- the subtype to check- Throws:
java.lang.IllegalArgumentException- if the classes are not assignable
-
-