Assert (Spring Framework 3.2.1.RELEASE API)
Date: 2013-01-24

org.springframework.util

## Class Assert

- java.lang.Object
- - org.springframework.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.

  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.
  Since:
    1.1.2
  Author:
    Keith Donald, Juergen Hoeller, Colin Sampaleanu, Rob Harrop

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `Assert()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and 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 be `null` 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 be `null` and not the empty String.
    `static void` | `hasText(String text)` Assert that the given String has valid text content; that is, it must not be `null` 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 be `null` and must contain at least one non-whitespace character.
    `static void` | `isAssignable(Class superType, Class subType)` Assert that `superType.isAssignableFrom(subType)` is `true`.
    `static void` | `isAssignable(Class superType, Class subType, String message)` Assert that `superType.isAssignableFrom(subType)` is `true`.
    `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 is `null` .
    `static void` | `isNull(Object object, String message)` Assert that an object is `null` .
    `static void` | `isTrue(boolean expression)` Assert a boolean expression, throwing `IllegalArgumentException` if the test result is `false`.
    `static void` | `isTrue(boolean expression, String message)` Assert a boolean expression, throwing `IllegalArgumentException` if the test result is `false`.
    `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(Collection collection)` Assert that a collection has elements; that is, it must not be `null` 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 be `null` and must have at least one element.
    `static void` | `notEmpty(Map map)` Assert that a Map has entries; that is, it must not be `null` 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 be `null` and must have at least one entry.
    `static void` | `notEmpty(Object[] array)` Assert that an array has elements; that is, it must not be `null` 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 be `null` and must have at least one element.
    `static void` | `notNull(Object object)` Assert that an object is not `null` .
    `static void` | `notNull(Object object, String message)` Assert that an object is not `null` .
    `static void` | `state(boolean expression)` Assert a boolean expression, throwing `IllegalStateException` if the test result is `false`.
    `static void` | `state(boolean expression, String message)` Assert a boolean expression, throwing `IllegalStateException` if the test result is `false`.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### Assert

          public Assert()

  - ### Method Detail

    - #### isTrue

          public static void isTrue(boolean expression,
                    String message)

      Assert a boolean expression, throwing `IllegalArgumentException` if the test result is `false`.

          Assert.isTrue(i > 0, "The value must be greater than zero");

      Parameters:
        `expression` - a boolean expression
        `message` - the exception message to use if the assertion fails
      Throws:
        `IllegalArgumentException` - if expression is `false`

    - #### isTrue

          public static void isTrue(boolean expression)

      Assert a boolean expression, throwing `IllegalArgumentException` if the test result is `false`.

          Assert.isTrue(i > 0);

      Parameters:
        `expression` - a boolean expression
      Throws:
        `IllegalArgumentException` - if expression is `false`

    - #### isNull

          public static void isNull(Object object,
                    String message)

      Assert that an object is `null` .

          Assert.isNull(value, "The value must be null");

      Parameters:
        `object` - the object to check
        `message` - the exception message to use if the assertion fails
      Throws:
        `IllegalArgumentException` - if the object is not `null`

    - #### isNull

          public static void isNull(Object object)

      Assert that an object is `null` .

          Assert.isNull(value);

      Parameters:
        `object` - the object to check
      Throws:
        `IllegalArgumentException` - if the object is not `null`

    - #### notNull

          public static void notNull(Object object,
                     String message)

      Assert that an object is not `null` .

          Assert.notNull(clazz, "The class must not be null");

      Parameters:
        `object` - the object to check
        `message` - the exception message to use if the assertion fails
      Throws:
        `IllegalArgumentException` - if the object is `null`

    - #### notNull

          public static void notNull(Object object)

      Assert that an object is not `null` .

          Assert.notNull(clazz);

      Parameters:
        `object` - the object to check
      Throws:
        `IllegalArgumentException` - if the object is `null`

    - #### hasLength

          public static void hasLength(String text,
                       String message)

      Assert that the given String is not empty; that is, it must not be `null` and not the empty String.

          Assert.hasLength(name, "Name must not be empty");

      Parameters:
        `text` - the String to check
        `message` - the exception message to use if the assertion fails
      See Also:
        `StringUtils.hasLength(java.lang.CharSequence)`

    - #### hasLength

          public static void hasLength(String text)

      Assert that the given String is not empty; that is, it must not be `null` and not the empty String.

          Assert.hasLength(name);

      Parameters:
        `text` - the String to check
      See Also:
        `StringUtils.hasLength(java.lang.CharSequence)`

    - #### hasText

          public static void hasText(String text,
                     String message)

      Assert that the given String has valid text content; that is, it must not be `null` and must contain at least one non-whitespace character.

          Assert.hasText(name, "'name' must not be empty");

      Parameters:
        `text` - the String to check
        `message` - the exception message to use if the assertion fails
      See Also:
        `StringUtils.hasText(java.lang.CharSequence)`

    - #### hasText

          public static void hasText(String text)

      Assert that the given String has valid text content; that is, it must not be `null` 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.CharSequence)`

    - #### 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 search
        `substring` - the substring to find within the text
        `message` - 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 search
        `substring` - 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 be `null` and must have at least one element.

          Assert.notEmpty(array, "The array must have elements");

      Parameters:
        `array` - the array to check
        `message` - the exception message to use if the assertion fails
      Throws:
        `IllegalArgumentException` - if the object array is `null` or has no elements

    - #### notEmpty

          public static void notEmpty(Object[] array)

      Assert that an array has elements; that is, it must not be `null` and must have at least one element.

          Assert.notEmpty(array);

      Parameters:
        `array` - the array to check
      Throws:
        `IllegalArgumentException` - if the object array is `null` 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 check
        `message` - the exception message to use if the assertion fails
      Throws:
        `IllegalArgumentException` - if the object array contains a `null` 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 a `null` element

    - #### notEmpty

          public static void notEmpty(Collection collection,
                      String message)

      Assert that a collection has elements; that is, it must not be `null` and must have at least one element.

          Assert.notEmpty(collection, "Collection must have elements");

      Parameters:
        `collection` - the collection to check
        `message` - the exception message to use if the assertion fails
      Throws:
        `IllegalArgumentException` - if the collection is `null` or has no elements

    - #### notEmpty

          public static void notEmpty(Collection collection)

      Assert that a collection has elements; that is, it must not be `null` 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 is `null` or has no elements

    - #### notEmpty

          public static void notEmpty(Map map,
                      String message)

      Assert that a Map has entries; that is, it must not be `null` and must have at least one entry.

          Assert.notEmpty(map, "Map must have entries");

      Parameters:
        `map` - the map to check
        `message` - the exception message to use if the assertion fails
      Throws:
        `IllegalArgumentException` - if the map is `null` or has no entries

    - #### notEmpty

          public static void notEmpty(Map map)

      Assert that a Map has entries; that is, it must not be `null` and must have at least one entry.

          Assert.notEmpty(map);

      Parameters:
        `map` - the map to check
      Throws:
        `IllegalArgumentException` - if the map is `null` 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 class
        `obj` - 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 against
        `obj` - the object to check
        `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 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 that `superType.isAssignableFrom(subType)` is `true`.

          Assert.isAssignable(Number.class, myClass);

      Parameters:
        `superType` - the super type to check
        `subType` - 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 that `superType.isAssignableFrom(subType)` is `true`.

          Assert.isAssignable(Number.class, myClass);

      Parameters:
        `superType` - the super type to check against
        `subType` - the sub type to check
        `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 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, throwing `IllegalStateException` if the test result is `false`. 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 expression
        `message` - the exception message to use if the assertion fails
      Throws:
        `IllegalStateException` - if expression is `false`

    - #### state

          public static void state(boolean expression)

      Assert a boolean expression, throwing `IllegalStateException` if the test result is `false`.

      Call `isTrue(boolean)` if you wish to throw `IllegalArgumentException` on an assertion failure.

          Assert.state(id == null);

      Parameters:
        `expression` - a boolean expression
      Throws:
        `IllegalStateException` - if the supplied expression is `false`