@ -18,6 +18,7 @@ package org.springframework.util;
@@ -18,6 +18,7 @@ package org.springframework.util;
import java.util.Collection ;
import java.util.Map ;
import java.util.function.Supplier ;
/ * *
* Assertion utility class that assists in validating arguments .
@ -56,12 +57,29 @@ import java.util.Map;
@@ -56,12 +57,29 @@ import java.util.Map;
public abstract class Assert {
/ * *
* Assert a boolean expression , throwing { @code IllegalArgumentException }
* if the test result is { @code false } .
* Assert a boolean expression , throwing an { @code IllegalArgumentException }
* if the expression evaluates to { @code false } .
* < pre class = "code" >
* Assert . isTrue ( i & gt ; 0 , ( ) - & gt ; "The value '" + i + "' must be greater than zero" ) ;
* < / pre >
* @param expression a boolean expression
* @param messageSupplier a supplier for the exception message to use if the
* assertion fails
* @throws IllegalArgumentException if { @code expression } is { @code false }
* /
public static void isTrue ( boolean expression , Supplier < String > messageSupplier ) {
if ( ! expression ) {
throw new IllegalArgumentException ( nullSafeGet ( messageSupplier ) ) ;
}
}
/ * *
* Assert a boolean expression , throwing an { @code IllegalArgumentException }
* if the expression evaluates to { @code false } .
* < pre class = "code" > Assert . isTrue ( i & gt ; 0 , "The value must be greater than zero" ) ; < / pre >
* @param expression a boolean expression
* @param message the exception message to use if the assertion fails
* @throws IllegalArgumentException if expression is { @code false }
* @throws IllegalArgumentException if { @code expression } is { @code false }
* /
public static void isTrue ( boolean expression , String message ) {
if ( ! expression ) {
@ -70,18 +88,34 @@ public abstract class Assert {
@@ -70,18 +88,34 @@ public abstract class Assert {
}
/ * *
* Assert a boolean expression , throwing { @code IllegalArgumentException }
* if the test result is { @code false } .
* Assert a boolean expression , throwing an { @code IllegalArgumentException }
* if the expression evaluates to { @code false } .
* < pre class = "code" > Assert . isTrue ( i & gt ; 0 ) ; < / pre >
* @param expression a boolean expression
* @throws IllegalArgumentException if expression is { @code false }
* @throws IllegalArgumentException if { @code expression } is { @code false }
* /
public static void isTrue ( boolean expression ) {
isTrue ( expression , "[Assertion failed] - this expression must be true" ) ;
}
/ * *
* Assert that an object is { @code null } .
* Assert that an object is { @code null } .
* < pre class = "code" >
* Assert . isNull ( value , ( ) - & gt ; "The value '" + value + "' must be null" ) ;
* < / pre >
* @param object the object to check
* @param messageSupplier a supplier for the exception message to use if the
* assertion fails
* @throws IllegalArgumentException if the object is not { @code null }
* /
public static void isNull ( Object object , Supplier < String > messageSupplier ) {
if ( object ! = null ) {
throw new IllegalArgumentException ( nullSafeGet ( messageSupplier ) ) ;
}
}
/ * *
* Assert that an object is { @code null } .
* < pre class = "code" > Assert . isNull ( value , "The value must be null" ) ; < / pre >
* @param object the object to check
* @param message the exception message to use if the assertion fails
@ -94,7 +128,7 @@ public abstract class Assert {
@@ -94,7 +128,7 @@ public abstract class Assert {
}
/ * *
* Assert that an object is { @code null } .
* Assert that an object is { @code null } .
* < pre class = "code" > Assert . isNull ( value ) ; < / pre >
* @param object the object to check
* @throws IllegalArgumentException if the object is not { @code null }
@ -104,7 +138,23 @@ public abstract class Assert {
@@ -104,7 +138,23 @@ public abstract class Assert {
}
/ * *
* Assert that an object is not { @code null } .
* Assert that an object is not { @code null } .
* < pre class = "code" >
* Assert . notNull ( clazz , ( ) - & gt ; "The class '" + clazz . getName ( ) + "' must not be null" ) ;
* < / pre >
* @param object the object to check
* @param messageSupplier a supplier for the exception message to use if the
* assertion fails
* @throws IllegalArgumentException if the object is { @code null }
* /
public static void notNull ( Object object , Supplier < String > messageSupplier ) {
if ( object = = null ) {
throw new IllegalArgumentException ( nullSafeGet ( messageSupplier ) ) ;
}
}
/ * *
* Assert that an object is not { @code null } .
* < pre class = "code" > Assert . notNull ( clazz , "The class must not be null" ) ; < / pre >
* @param object the object to check
* @param message the exception message to use if the assertion fails
@ -117,7 +167,7 @@ public abstract class Assert {
@@ -117,7 +167,7 @@ public abstract class Assert {
}
/ * *
* Assert that an object is not { @code null } .
* Assert that an object is not { @code null } .
* < pre class = "code" > Assert . notNull ( clazz ) ; < / pre >
* @param object the object to check
* @throws IllegalArgumentException if the object is { @code null }
@ -126,6 +176,24 @@ public abstract class Assert {
@@ -126,6 +176,24 @@ public abstract class Assert {
notNull ( object , "[Assertion failed] - this argument is required; it must not be null" ) ;
}
/ * *
* Assert that the given String is not empty ; that is ,
* it must not be { @code null } and not the empty String .
* < pre class = "code" >
* Assert . hasLength ( name , ( ) - & gt ; "Name for account '" + account . getId ( ) + "' must not be empty" ) ;
* < / pre >
* @param text the String to check
* @param messageSupplier a supplier for the exception message to use if the
* assertion fails
* @see StringUtils # hasLength
* @throws IllegalArgumentException if the text is empty
* /
public static void hasLength ( String text , Supplier < String > messageSupplier ) {
if ( ! StringUtils . hasLength ( text ) ) {
throw new IllegalArgumentException ( nullSafeGet ( messageSupplier ) ) ;
}
}
/ * *
* Assert that the given String is not empty ; that is ,
* it must not be { @code null } and not the empty String .
@ -155,7 +223,25 @@ public abstract class Assert {
@@ -155,7 +223,25 @@ public abstract class Assert {
}
/ * *
* Assert that the given String has valid text content ; that is , it must not
* Assert that the given String contains valid text content ; that is , it must not
* be { @code null } and must contain at least one non - whitespace character .
* < pre class = "code" >
* Assert . hasText ( name , ( ) - & gt ; "Name for account '" + account . getId ( ) + "' must not be empty" ) ;
* < / pre >
* @param text the String to check
* @param messageSupplier a supplier for the exception message to use if the
* assertion fails
* @see StringUtils # hasText
* @throws IllegalArgumentException if the text does not contain valid text content
* /
public static void hasText ( String text , Supplier < String > messageSupplier ) {
if ( ! StringUtils . hasText ( text ) ) {
throw new IllegalArgumentException ( nullSafeGet ( messageSupplier ) ) ;
}
}
/ * *
* Assert that the given String contains valid text content ; that is , it must not
* be { @code null } and must contain at least one non - whitespace character .
* < pre class = "code" > Assert . hasText ( name , "'name' must not be empty" ) ; < / pre >
* @param text the String to check
@ -170,7 +256,7 @@ public abstract class Assert {
@@ -170,7 +256,7 @@ public abstract class Assert {
}
/ * *
* Assert that the given String ha s valid text content ; that is , it must not
* Assert that the given String contain s valid text content ; that is , it must not
* be { @code null } and must contain at least one non - whitespace character .
* < pre class = "code" > Assert . hasText ( name , "'name' must not be empty" ) ; < / pre >
* @param text the String to check
@ -182,6 +268,24 @@ public abstract class Assert {
@@ -182,6 +268,24 @@ public abstract class Assert {
"[Assertion failed] - this String argument must have text; it must not be null, empty, or blank" ) ;
}
/ * *
* Assert that the given text does not contain the given substring .
* < pre class = "code" >
* Assert . doesNotContain ( name , forbidden , ( ) - & gt ; "Name must not contain '" + forbidden + "'" ) ;
* < / pre >
* @param textToSearch the text to search
* @param substring the substring to find within the text
* @param messageSupplier a supplier for the exception message to use if the
* assertion fails
* @throws IllegalArgumentException if the text contains the substring
* /
public static void doesNotContain ( String textToSearch , String substring , Supplier < String > messageSupplier ) {
if ( StringUtils . hasLength ( textToSearch ) & & StringUtils . hasLength ( substring ) & &
textToSearch . contains ( substring ) ) {
throw new IllegalArgumentException ( nullSafeGet ( messageSupplier ) ) ;
}
}
/ * *
* Assert that the given text does not contain the given substring .
* < pre class = "code" > Assert . doesNotContain ( name , "rod" , "Name must not contain 'rod'" ) ; < / pre >
@ -206,16 +310,33 @@ public abstract class Assert {
@@ -206,16 +310,33 @@ public abstract class Assert {
* /
public static void doesNotContain ( String textToSearch , String substring ) {
doesNotContain ( textToSearch , substring ,
"[Assertion failed] - this String argument must not contain the substring [" + substring + "]" ) ;
( ) - > "[Assertion failed] - this String argument must not contain the substring [" + substring + "]" ) ;
}
/ * *
* Assert that an array contains elements ; that is , it must not be
* { @code null } and must contain at least one element .
* < pre class = "code" >
* Assert . notEmpty ( array , ( ) - & gt ; "The " + arrayType + " array must contain elements" ) ;
* < / pre >
* @param array the array to check
* @param messageSupplier a supplier for the exception message to use if the
* assertion fails
* @throws IllegalArgumentException if the object array is { @code null } or contains no elements
* /
public static void notEmpty ( Object [ ] array , Supplier < String > messageSupplier ) {
if ( ObjectUtils . isEmpty ( array ) ) {
throw new IllegalArgumentException ( nullSafeGet ( messageSupplier ) ) ;
}
}
/ * *
* Assert that an array has elements ; that is , it must not be
* { @code null } and must have at least one element .
* < pre class = "code" > Assert . notEmpty ( array , "The array must have elements" ) ; < / pre >
* Assert that an array contain s elements ; that is , it must not be
* { @code null } and must contain at least one element .
* < pre class = "code" > Assert . notEmpty ( array , "The array must contain elements" ) ; < / pre >
* @param array the array to check
* @param message the exception message to use if the assertion fails
* @throws IllegalArgumentException if the object array is { @code null } or has no elements
* @throws IllegalArgumentException if the object array is { @code null } or contain s no elements
* /
public static void notEmpty ( Object [ ] array , String message ) {
if ( ObjectUtils . isEmpty ( array ) ) {
@ -224,20 +345,42 @@ public abstract class Assert {
@@ -224,20 +345,42 @@ public abstract class Assert {
}
/ * *
* Assert that an array ha s elements ; that is , it must not be
* { @code null } and must have at least one element .
* Assert that an array contain s elements ; that is , it must not be
* { @code null } and must contain at least one element .
* < pre class = "code" > Assert . notEmpty ( array ) ; < / pre >
* @param array the array to check
* @throws IllegalArgumentException if the object array is { @code null } or has no elements
* @throws IllegalArgumentException if the object array is { @code null } or
* contains no elements
* /
public static void notEmpty ( Object [ ] array ) {
notEmpty ( array , "[Assertion failed] - this array must not be empty: it must contain at least 1 element" ) ;
}
/ * *
* Assert that an array has no null elements .
* Note : Does not complain if the array is empty !
* < pre class = "code" > Assert . noNullElements ( array , "The array must have non-null elements" ) ; < / pre >
* Assert that an array contains no { @code null } elements .
* < p > Note : Does not complain if the array is empty !
* < pre class = "code" >
* Assert . noNullElements ( array , ( ) - & gt ; "The " + arrayType + " array must contain non-null elements" ) ;
* < / pre >
* @param array the array to check
* @param messageSupplier a supplier for the exception message to use if the
* assertion fails
* @throws IllegalArgumentException if the object array contains a { @code null } element
* /
public static void noNullElements ( Object [ ] array , Supplier < String > messageSupplier ) {
if ( array ! = null ) {
for ( Object element : array ) {
if ( element = = null ) {
throw new IllegalArgumentException ( nullSafeGet ( messageSupplier ) ) ;
}
}
}
}
/ * *
* Assert that an array contains no { @code null } elements .
* < p > Note : Does not complain if the array is empty !
* < pre class = "code" > Assert . noNullElements ( array , "The array must contain non-null elements" ) ; < / pre >
* @param array the array to check
* @param message the exception message to use if the assertion fails
* @throws IllegalArgumentException if the object array contains a { @code null } element
@ -253,8 +396,8 @@ public abstract class Assert {
@@ -253,8 +396,8 @@ public abstract class Assert {
}
/ * *
* Assert that an array has no null elements .
* Note : Does not complain if the array is empty !
* Assert that an array contains no { @code null } elements .
* < p > Note : Does not complain if the array is empty !
* < pre class = "code" > Assert . noNullElements ( array ) ; < / pre >
* @param array the array to check
* @throws IllegalArgumentException if the object array contains a { @code null } element
@ -264,12 +407,31 @@ public abstract class Assert {
@@ -264,12 +407,31 @@ public abstract class Assert {
}
/ * *
* Assert that a collection has elements ; that is , it must not be
* { @code null } and must have at least one element .
* < pre class = "code" > Assert . notEmpty ( collection , "Collection must have elements" ) ; < / pre >
* Assert that a collection contains elements ; that is , it must not be
* { @code null } and must contain at least one element .
* < pre class = "code" >
* Assert . notEmpty ( collection , ( ) - & gt ; "The " + collectionType + " collection must contain elements" ) ;
* < / pre >
* @param collection the collection to check
* @param messageSupplier a supplier for the exception message to use if the
* assertion fails
* @throws IllegalArgumentException if the collection is { @code null } or
* contains no elements
* /
public static void notEmpty ( Collection < ? > collection , Supplier < String > messageSupplier ) {
if ( CollectionUtils . isEmpty ( collection ) ) {
throw new IllegalArgumentException ( nullSafeGet ( messageSupplier ) ) ;
}
}
/ * *
* Assert that a collection contains elements ; that is , it must not be
* { @code null } and must contain at least one element .
* < pre class = "code" > Assert . notEmpty ( collection , "Collection must contain elements" ) ; < / pre >
* @param collection the collection to check
* @param message the exception message to use if the assertion fails
* @throws IllegalArgumentException if the collection is { @code null } or has no elements
* @throws IllegalArgumentException if the collection is { @code null } or
* contains no elements
* /
public static void notEmpty ( Collection < ? > collection , String message ) {
if ( CollectionUtils . isEmpty ( collection ) ) {
@ -278,11 +440,12 @@ public abstract class Assert {
@@ -278,11 +440,12 @@ public abstract class Assert {
}
/ * *
* Assert that a collection ha s elements ; that is , it must not be
* { @code null } and must have at least one element .
* < pre class = "code" > Assert . notEmpty ( collection , "Collection must have elements" ) ; < / pre >
* Assert that a collection contain s elements ; that is , it must not be
* { @code null } and must contain at least one element .
* < pre class = "code" > Assert . notEmpty ( collection , "Collection must contain elements" ) ; < / pre >
* @param collection the collection to check
* @throws IllegalArgumentException if the collection is { @code null } or has no elements
* @throws IllegalArgumentException if the collection is { @code null } or
* contains no elements
* /
public static void notEmpty ( Collection < ? > collection ) {
notEmpty ( collection ,
@ -290,12 +453,29 @@ public abstract class Assert {
@@ -290,12 +453,29 @@ public abstract class Assert {
}
/ * *
* Assert that a Map has entries ; that is , it must not be { @code null }
* and must have at least one entry .
* < pre class = "code" > Assert . notEmpty ( map , "Map must have entries" ) ; < / pre >
* Assert that a Map contains entries ; that is , it must not be { @code null }
* and must contain at least one entry .
* < pre class = "code" >
* Assert . notEmpty ( map , ( ) - & gt ; "The " + mapType + " map must contain entries" ) ;
* < / pre >
* @param map the map to check
* @param messageSupplier a supplier for the exception message to use if the
* assertion fails
* @throws IllegalArgumentException if the map is { @code null } or contains no entries
* /
public static void notEmpty ( Map < ? , ? > map , Supplier < String > messageSupplier ) {
if ( CollectionUtils . isEmpty ( map ) ) {
throw new IllegalArgumentException ( nullSafeGet ( messageSupplier ) ) ;
}
}
/ * *
* Assert that a Map contains entries ; that is , it must not be { @code null }
* and must contain at least one entry .
* < pre class = "code" > Assert . notEmpty ( map , "Map must contain entries" ) ; < / pre >
* @param map the map to check
* @param message the exception message to use if the assertion fails
* @throws IllegalArgumentException if the map is { @code null } or has no entries
* @throws IllegalArgumentException if the map is { @code null } or contain s no entries
* /
public static void notEmpty ( Map < ? , ? > map , String message ) {
if ( CollectionUtils . isEmpty ( map ) ) {
@ -304,11 +484,11 @@ public abstract class Assert {
@@ -304,11 +484,11 @@ public abstract class Assert {
}
/ * *
* Assert that a Map ha s entries ; that is , it must not be { @code null }
* and must have at least one entry .
* Assert that a Map contain s entries ; that is , it must not be { @code null }
* and must contain at least one entry .
* < pre class = "code" > Assert . notEmpty ( map ) ; < / pre >
* @param map the map to check
* @throws IllegalArgumentException if the map is { @code null } or ha s no entries
* @throws IllegalArgumentException if the map is { @code null } or contain s no entries
* /
public static void notEmpty ( Map < ? , ? > map ) {
notEmpty ( map , "[Assertion failed] - this map must not be empty; it must contain at least one entry" ) ;
@ -317,37 +497,61 @@ public abstract class Assert {
@@ -317,37 +497,61 @@ public abstract class Assert {
/ * *
* Assert that the provided object is an instance of the provided class .
* < pre class = "code" > Assert . instanceOf ( Foo . class , foo ) ; < / pre >
* @param clazz the required class
* @param type the type to check against
* @param obj the object to check
* @throws IllegalArgumentException if the object is not an instance of clazz
* @throws IllegalArgumentException if the object is not an instance of type
* @see Class # isInstance
* /
public static void isInstanceOf ( Class < ? > clazz , Object obj ) {
isInstanceOf ( clazz , obj , "" ) ;
public static void isInstanceOf ( Class < ? > type , Object obj ) {
isInstanceOf ( type , obj , "" ) ;
}
/ * *
* Assert that the provided object is an instance of the provided class .
* < pre class = "code" > Assert . instanceOf ( Foo . class , foo ) ; < / pre >
* < pre class = "code" >
* Assert . instanceOf ( Foo . class , foo , ( ) - & gt ; "Processing " + Foo . class . getSimpleName ( ) + ":" ) ;
* < / pre >
* @param type the type to check against
* @param obj the object to check
* @param messageSupplier 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 .
* @throws IllegalArgumentException if the object is not an instance of type
* @see Class # isInstance
* /
public static void isInstanceOf ( Class < ? > type , Object obj , Supplier < String > messageSupplier ) {
notNull ( type , "Type to check against must not be null" ) ;
if ( ! type . isInstance ( obj ) ) {
isInstanceCheckFailed ( type , obj , nullSafeGet ( messageSupplier ) ) ;
}
}
/ * *
* Assert that the provided object is an instance of the provided class .
* < pre class = "code" > Assert . instanceOf ( Foo . class , foo , "Processing Foo:" ) ; < / pre >
* @param type the type to check against
* @param obj the object to check
* @param message 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 ":" or "." so that the generated message looks OK when
* appended to it .
* @throws IllegalArgumentException if the object is not an instance of clazz
* @param message 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 .
* @throws IllegalArgumentException if the object is not an instance of type
* @see Class # isInstance
* /
public static void isInstanceOf ( Class < ? > type , Object obj , String message ) {
notNull ( type , "Type to check against must not be null" ) ;
if ( ! type . isInstance ( obj ) ) {
throw new IllegalArgumentException (
( StringUtils . hasLength ( message ) ? message + " " : "" ) +
"Object of class [" + ( obj ! = null ? obj . getClass ( ) . getName ( ) : "null" ) +
"] must be an instance of " + type ) ;
isInstanceCheckFailed ( type , obj , message ) ;
}
}
private static void isInstanceCheckFailed ( Class < ? > type , Object obj , String message ) {
throw new IllegalArgumentException (
( StringUtils . hasLength ( message ) ? message + " " : "" ) +
"Object of class [" + ( obj ! = null ? obj . getClass ( ) . getName ( ) : "null" ) +
"] must be an instance of " + type ) ;
}
/ * *
* Assert that { @code superType . isAssignableFrom ( subType ) } is { @code true } .
* < pre class = "code" > Assert . isAssignable ( Number . class , myClass ) ; < / pre >
@ -359,33 +563,77 @@ public abstract class Assert {
@@ -359,33 +563,77 @@ public abstract class Assert {
isAssignable ( superType , subType , "" ) ;
}
/ * *
* Assert that { @code superType . isAssignableFrom ( subType ) } is { @code true } .
* < pre class = "code" >
* Assert . isAssignable ( Number . class , myClass , ( ) - & gt ; "Processing " + myClass . getSimpleName ( ) + ":" ) ;
* < / pre >
* @param superType the super type to check against
* @param subType the sub type to check
* @param messageSupplier 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 .
* @throws IllegalArgumentException if the classes are not assignable
* /
public static void isAssignable ( Class < ? > superType , Class < ? > subType , Supplier < String > messageSupplier ) {
notNull ( superType , "Super type to check against must not be null" ) ;
if ( subType = = null | | ! superType . isAssignableFrom ( subType ) ) {
isAssignableCheckFailed ( superType , subType , nullSafeGet ( messageSupplier ) ) ;
}
}
/ * *
* Assert that { @code superType . isAssignableFrom ( subType ) } is { @code true } .
* < pre class = "code" > Assert . isAssignable ( Number . class , myClass ) ; < / pre >
* @param superType the super type to check against
* @param subType the sub type to check
* @param message 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 ":" or "." so that the generated message looks OK when
* appended to it .
* @param message 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 .
* @throws IllegalArgumentException if the classes are not assignable
* /
public static void isAssignable ( Class < ? > superType , Class < ? > subType , String message ) {
notNull ( superType , "Type to check against must not be null" ) ;
notNull ( superType , "Super t ype to check against must not be null" ) ;
if ( subType = = null | | ! superType . isAssignableFrom ( subType ) ) {
throw new IllegalArgumentException ( ( StringUtils . hasLength ( message ) ? message + " " : "" ) +
subType + " is not assignable to " + superType ) ;
isAssignableCheckFailed ( superType , subType , message ) ;
}
}
private static void isAssignableCheckFailed ( Class < ? > superType , Class < ? > subType , String message ) {
throw new IllegalArgumentException ( ( StringUtils . hasLength ( message ) ? message + " " : "" ) +
subType + " is not assignable to " + superType ) ;
}
/ * *
* Assert a boolean expression , throwing { @code IllegalStateException }
* if the test result is { @code false } . Call isTrue if you wish to
* throw IllegalArgumentException on an assertion failure .
* Assert a boolean expression , throwing an { @code IllegalStateException }
* if the expression evaluates to { @code false } .
* < p > Call { @link # isTrue } if you wish to throw an { @code IllegalArgumentException }
* on an assertion failure .
* < pre class = "code" >
* Assert . state ( id = = null ,
* ( ) - & gt ; "ID for " + entity . getName ( ) + " must not already be initialized" ) ;
* < / pre >
* @param expression a boolean expression
* @param messageSupplier a supplier for the exception message to use if the
* assertion fails
* @throws IllegalStateException if { @code expression } is { @code false }
* /
public static void state ( boolean expression , Supplier < String > messageSupplier ) {
if ( ! expression ) {
throw new IllegalStateException ( nullSafeGet ( messageSupplier ) ) ;
}
}
/ * *
* Assert a boolean expression , throwing an { @code IllegalStateException }
* if the expression evaluates to { @code false } .
* < p > Call { @link # isTrue } if you wish to throw an { @code IllegalArgumentException }
* on an assertion failure .
* < pre class = "code" > Assert . state ( id = = null , "The id property must not already be initialized" ) ; < / pre >
* @param expression a boolean expression
* @param message the exception message to use if the assertion fails
* @throws IllegalStateException if expression is { @code false }
* @throws IllegalStateException if { @code expression } is { @code false }
* /
public static void state ( boolean expression , String message ) {
if ( ! expression ) {
@ -394,16 +642,20 @@ public abstract class Assert {
@@ -394,16 +642,20 @@ public abstract class Assert {
}
/ * *
* Assert a boolean expression , throwing { @link IllegalStateException }
* if the test result is { @code false } .
* < p > Call { @link # isTrue ( boolean ) } if you wish to
* throw { @link IllegalArgumentException } on an assertion failure .
* Assert a boolean expression , throwing an { @link IllegalStateException }
* if the expression evaluates to { @code false } .
* < p > Call { @link # isTrue } if you wish to throw an { @code IllegalArgumentException }
* on an assertion failure .
* < pre class = "code" > Assert . state ( id = = null ) ; < / pre >
* @param expression a boolean expression
* @throws IllegalStateException if the supplied expression is { @code false }
* @throws IllegalStateException if { @code expression } is { @code false }
* /
public static void state ( boolean expression ) {
state ( expression , "[Assertion failed] - this state invariant must be true" ) ;
}
private static String nullSafeGet ( Supplier < String > messageSupplier ) {
return ( messageSupplier ! = null ? messageSupplier . get ( ) : null ) ;
}
}