public class

Validate

extends Object
java.lang.Object
   ↳ com.c2call.sdk.pub.util.Validate

Class Overview

This class assists in validating arguments. The validation methods are based along the following principles:

  • An invalid null argument causes a NullPointerException.
  • A non-null argument causes an IllegalArgumentException.
  • An invalid index into an array/collection/map/string causes an IndexOutOfBoundsException.

All exceptions messages are format strings as defined by the Java platform. For example:

 Validate.isTrue(i > 0, "The value must be greater than zero: %d", i);
 Validate.notNull(surname, "The surname must not be %s", null);
 

#ThreadSafe#

See Also
  • java.lang.String#format(String, Object...)

Summary

Public Constructors
Validate()
Constructor.
Public Methods
static <T> void exclusiveBetween(T start, T end, Comparable<T> value)

Validate that the specified argument object fall between the two exclusive values specified; otherwise, throws an exception.

static <T> void exclusiveBetween(T start, T end, Comparable<T> value, String message, Object... values)

Validate that the specified argument object fall between the two exclusive values specified; otherwise, throws an exception with the specified message.

static <T> void inclusiveBetween(T start, T end, Comparable<T> value)

Validate that the specified argument object fall between the two inclusive values specified; otherwise, throws an exception.

static <T> void inclusiveBetween(T start, T end, Comparable<T> value, String message, Object... values)

Validate that the specified argument object fall between the two inclusive values specified; otherwise, throws an exception with the specified message.

static void isAssignableFrom(Class<?> superType, Class<?> type)
Validates that the argument can be converted to the specified class, if not, throws an exception.
static void isAssignableFrom(Class<?> superType, Class<?> type, String message, Object... values)
Validates that the argument can be converted to the specified class, if not throws an exception.
static void isInstanceOf(Class<?> type, Object obj, String message, Object... values)

Validate that the argument is an instance of the specified class; otherwise throwing an exception with the specified message.

static void isInstanceOf(Class<?> type, Object obj)
Validates that the argument is an instance of the specified class, if not throws an exception.
static void isTrue(boolean expression)

Validate that the argument condition is true; otherwise throwing an exception.

static void isTrue(boolean expression, String message, long value)

Validate that the argument condition is true; otherwise throwing an exception with the specified message.

static void isTrue(boolean expression, String message, double value)

Validate that the argument condition is true; otherwise throwing an exception with the specified message.

static void isTrue(boolean expression, String message, Object... values)

Validate that the argument condition is true; otherwise throwing an exception with the specified message.

static void matchesPattern(CharSequence input, String pattern, String message, Object... values)

Validate that the specified argument character sequence matches the specified regular expression pattern; otherwise throwing an exception with the specified message.

static void matchesPattern(CharSequence input, String pattern)

Validate that the specified argument character sequence matches the specified regular expression pattern; otherwise throwing an exception.

static <T extends Iterable<?>> T noNullElements(T iterable, String message, Object... values)

Validate that the specified argument iterable is neither null nor contains any elements that are null; otherwise throwing an exception with the specified message.

static <T> T[] noNullElements(T[] array)

Validate that the specified argument array is neither null nor contains any elements that are null; otherwise throwing an exception.

static <T extends Iterable<?>> T noNullElements(T iterable)

Validate that the specified argument iterable is neither null nor contains any elements that are null; otherwise throwing an exception.

static <T> T[] noNullElements(T[] array, String message, Object... values)

Validate that the specified argument array is neither null nor contains any elements that are null; otherwise throwing an exception with the specified message.

static <T extends CharSequence> T notBlank(T chars, String message, Object... values)

Validate that the specified argument character sequence is neither null, a length of zero (no characters), empty nor whitespace; otherwise throwing an exception with the specified message.

static <T extends CharSequence> T notBlank(T chars)

Validate that the specified argument character sequence is neither null, a length of zero (no characters), empty nor whitespace; otherwise throwing an exception.

static <T> T[] notEmpty(T[] array)

Validate that the specified argument array is neither null nor a length of zero (no elements); otherwise throwing an exception.

static <T> T[] notEmpty(T[] array, String message, Object... values)

Validate that the specified argument array is neither null nor a length of zero (no elements); otherwise throwing an exception with the specified message.

static <T extends CharSequence> T notEmpty(T chars, String message, Object... values)

Validate that the specified argument character sequence is neither null nor a length of zero (no characters); otherwise throwing an exception with the specified message.

static <T extends CharSequence> T notEmpty(T chars)

Validate that the specified argument character sequence is neither null nor a length of zero (no characters); otherwise throwing an exception with the specified message.

static <T> T notNull(T object, String message, Object... values)

Validate that the specified argument is not null; otherwise throwing an exception with the specified message.

static <T> T notNull(T object)

Validate that the specified argument is not null; otherwise throwing an exception.

static <T> T[] validIndex(T[] array, int index)

Validates that the index is within the bounds of the argument array; otherwise throwing an exception.

static <T extends CharSequence> T validIndex(T chars, int index)

Validates that the index is within the bounds of the argument character sequence; otherwise throwing an exception.

static <T> T[] validIndex(T[] array, int index, String message, Object... values)

Validates that the index is within the bounds of the argument array; otherwise throwing an exception with the specified message.

static <T extends CharSequence> T validIndex(T chars, int index, String message, Object... values)

Validates that the index is within the bounds of the argument character sequence; otherwise throwing an exception with the specified message.

static void validState(boolean expression, String message, Object... values)

Validate that the stateful condition is true; otherwise throwing an exception with the specified message.

static void validState(boolean expression)

Validate that the stateful condition is true; otherwise throwing an exception.

[Expand]
Inherited Methods
From class java.lang.Object

Public Constructors

public Validate ()

Constructor. This class should not normally be instantiated.

Public Methods

public static void exclusiveBetween (T start, T end, Comparable<T> value)

Validate that the specified argument object fall between the two exclusive values specified; otherwise, throws an exception.

Validate.inclusiveBetween(0, 2, 1);

Parameters
start the exclusive start value, not null
end the exclusive end value, not null
value the object to validate, not null
Throws
IllegalArgumentException if the value falls out of the boundaries
See Also
  • #exclusiveBetween(Object, Object, Comparable, String, Object...)

public static void exclusiveBetween (T start, T end, Comparable<T> value, String message, Object... values)

Validate that the specified argument object fall between the two exclusive values specified; otherwise, throws an exception with the specified message.

Validate.inclusiveBetween(0, 2, 1, "Not in boundaries");

Parameters
start the exclusive start value, not null
end the exclusive end value, not null
value the object to validate, not null
message the String#format(String, Object...) exception message if invalid, not null
values the optional values for the formatted exception message, null array not recommended
Throws
IllegalArgumentException if the value falls out of the boundaries

public static void inclusiveBetween (T start, T end, Comparable<T> value)

Validate that the specified argument object fall between the two inclusive values specified; otherwise, throws an exception.

Validate.inclusiveBetween(0, 2, 1);

Parameters
start the inclusive start value, not null
end the inclusive end value, not null
value the object to validate, not null
Throws
IllegalArgumentException if the value falls out of the boundaries
See Also
  • #inclusiveBetween(Object, Object, Comparable, String, Object...)

public static void inclusiveBetween (T start, T end, Comparable<T> value, String message, Object... values)

Validate that the specified argument object fall between the two inclusive values specified; otherwise, throws an exception with the specified message.

Validate.inclusiveBetween(0, 2, 1, "Not in boundaries");

Parameters
start the inclusive start value, not null
end the inclusive end value, not null
value the object to validate, not null
message the String#format(String, Object...) exception message if invalid, not null
values the optional values for the formatted exception message, null array not recommended
Throws
IllegalArgumentException if the value falls out of the boundaries

public static void isAssignableFrom (Class<?> superType, Class<?> type)

Validates that the argument can be converted to the specified class, if not, throws an exception.

This method is useful when validating that there will be no casting errors.

Validate.isAssignableFrom(SuperClass.class, object.getClass());

The message format of the exception is "Cannot assign {type} to {superType}"

Parameters
superType the class the class must be validated against, not null
type the class to check, not null
Throws
IllegalArgumentException if type argument is not assignable to the specified superType
See Also
  • #isAssignableFrom(Class, Class, String, Object...)

public static void isAssignableFrom (Class<?> superType, Class<?> type, String message, Object... values)

Validates that the argument can be converted to the specified class, if not throws an exception.

This method is useful when validating if there will be no casting errors.

Validate.isAssignableFrom(SuperClass.class, object.getClass());

The message of the exception is "The validated object can not be converted to the" followed by the name of the class and "class"

Parameters
superType the class the class must be validated against, not null
type the class to check, not null
message the String#format(String, Object...) exception message if invalid, not null
values the optional values for the formatted exception message, null array not recommended
Throws
IllegalArgumentException if argument can not be converted to the specified class

public static void isInstanceOf (Class<?> type, Object obj, String message, Object... values)

Validate that the argument is an instance of the specified class; otherwise throwing an exception with the specified message. This method is useful when validating according to an arbitrary class

Validate.isInstanceOf(OkClass.classs, object, "Wrong class, object is of class %s",
   object.getClass().getName());

Parameters
type the class the object must be validated against, not null
obj the object to check, null throws an exception
message the String#format(String, Object...) exception message if invalid, not null
values the optional values for the formatted exception message, null array not recommended
Throws
IllegalArgumentException if argument is not of specified class

public static void isInstanceOf (Class<?> type, Object obj)

Validates that the argument is an instance of the specified class, if not throws an exception.

This method is useful when validating according to an arbitrary class

Validate.isInstanceOf(OkClass.class, object);

The message of the exception is "Expected type: {type}, actual: {obj_type}"

Parameters
type the class the object must be validated against, not null
obj the object to check, null throws an exception
Throws
IllegalArgumentException if argument is not of specified class
See Also
  • #isInstanceOf(Class, Object, String, Object...)

public static void isTrue (boolean expression)

Validate that the argument condition is true; otherwise throwing an exception. This method is useful when validating according to an arbitrary boolean expression, such as validating a primitive number or using your own custom validation expression.

 Validate.isTrue(i > 0);
 Validate.isTrue(myObject.isOk());

The message of the exception is "The validated expression is false".

Parameters
expression the boolean expression to check
Throws
IllegalArgumentException if expression is false
See Also

public static void isTrue (boolean expression, String message, long value)

Validate that the argument condition is true; otherwise throwing an exception with the specified message. This method is useful when validating according to an arbitrary boolean expression, such as validating a primitive number or using your own custom validation expression.

Validate.isTrue(i > 0.0, "The value must be greater than zero: %d", i);

For performance reasons, the long value is passed as a separate parameter and appended to the exception message only in the case of an error.

Parameters
expression the boolean expression to check
message the String#format(String, Object...) exception message if invalid, not null
value the value to append to the message when invalid
Throws
IllegalArgumentException if expression is false
See Also

public static void isTrue (boolean expression, String message, double value)

Validate that the argument condition is true; otherwise throwing an exception with the specified message. This method is useful when validating according to an arbitrary boolean expression, such as validating a primitive number or using your own custom validation expression.

Validate.isTrue(d > 0.0, "The value must be greater than zero: %s", d);

For performance reasons, the double value is passed as a separate parameter and appended to the exception message only in the case of an error.

Parameters
expression the boolean expression to check
message the String#format(String, Object...) exception message if invalid, not null
value the value to append to the message when invalid
Throws
IllegalArgumentException if expression is false
See Also

public static void isTrue (boolean expression, String message, Object... values)

Validate that the argument condition is true; otherwise throwing an exception with the specified message. This method is useful when validating according to an arbitrary boolean expression, such as validating a primitive number or using your own custom validation expression.

 Validate.isTrue(i >= min && i <= max, "The value must be between %d and %d", min, max);
 Validate.isTrue(myObject.isOk(), "The object is not okay");

Parameters
expression the boolean expression to check
message the String#format(String, Object...) exception message if invalid, not null
values the optional values for the formatted exception message, null array not recommended
Throws
IllegalArgumentException if expression is false

public static void matchesPattern (CharSequence input, String pattern, String message, Object... values)

Validate that the specified argument character sequence matches the specified regular expression pattern; otherwise throwing an exception with the specified message.

Validate.matchesPattern("hi", "[a-z]*", "%s does not match %s", "hi" "[a-z]*");

The syntax of the pattern is the one used in the Pattern class.

Parameters
input the character sequence to validate, not null
pattern the regular expression pattern, not null
message the String#format(String, Object...) exception message if invalid, not null
values the optional values for the formatted exception message, null array not recommended
Throws
IllegalArgumentException if the character sequence does not match the pattern

public static void matchesPattern (CharSequence input, String pattern)

Validate that the specified argument character sequence matches the specified regular expression pattern; otherwise throwing an exception.

Validate.matchesPattern("hi", "[a-z]*");

The syntax of the pattern is the one used in the Pattern class.

Parameters
input the character sequence to validate, not null
pattern the regular expression pattern, not null
Throws
IllegalArgumentException if the character sequence does not match the pattern
See Also
  • #matchesPattern(CharSequence, String, String, Object...)

public static T noNullElements (T iterable, String message, Object... values)

Validate that the specified argument iterable is neither null nor contains any elements that are null; otherwise throwing an exception with the specified message.

Validate.noNullElements(myCollection, "The collection contains null at position %d");

If the iterable is null, then the message in the exception is "The validated object is null".

If the iterable has a null element, then the iteration index of the invalid element is appended to the values argument.

Parameters
iterable the iterable to check, validated not null by this method
message the String#format(String, Object...) exception message if invalid, not null
values the optional values for the formatted exception message, null array not recommended
Returns
  • the validated iterable (never null method for chaining)
Throws
NullPointerException if the array is null
IllegalArgumentException if an element is null

public static T[] noNullElements (T[] array)

Validate that the specified argument array is neither null nor contains any elements that are null; otherwise throwing an exception.

Validate.noNullElements(myArray);

If the array is null, then the message in the exception is "The validated object is null".

If the array has a null element, then the message in the exception is "The validated array contains null element at index: " followed by the index.

Parameters
array the array to check, validated not null by this method
Returns
  • the validated array (never null method for chaining)
Throws
NullPointerException if the array is null
IllegalArgumentException if an element is null
See Also
  • #noNullElements(Object[], String, Object...)

public static T noNullElements (T iterable)

Validate that the specified argument iterable is neither null nor contains any elements that are null; otherwise throwing an exception.

Validate.noNullElements(myCollection);

If the iterable is null, then the message in the exception is "The validated object is null".

If the array has a null element, then the message in the exception is "The validated iterable contains null element at index: " followed by the index.

Parameters
iterable the iterable to check, validated not null by this method
Returns
  • the validated iterable (never null method for chaining)
Throws
NullPointerException if the array is null
IllegalArgumentException if an element is null
See Also
  • #noNullElements(Iterable, String, Object...)

public static T[] noNullElements (T[] array, String message, Object... values)

Validate that the specified argument array is neither null nor contains any elements that are null; otherwise throwing an exception with the specified message.

Validate.noNullElements(myArray, "The array contain null at position %d");

If the array is null, then the message in the exception is "The validated object is null".

If the array has a null element, then the iteration index of the invalid element is appended to the values argument.

Parameters
array the array to check, validated not null by this method
message the String#format(String, Object...) exception message if invalid, not null
values the optional values for the formatted exception message, null array not recommended
Returns
  • the validated array (never null method for chaining)
Throws
NullPointerException if the array is null
IllegalArgumentException if an element is null

public static T notBlank (T chars, String message, Object... values)

Validate that the specified argument character sequence is neither null, a length of zero (no characters), empty nor whitespace; otherwise throwing an exception with the specified message.

Validate.notBlank(myString, "The string must not be blank");

Parameters
chars the character sequence to check, validated not null by this method
message the String#format(String, Object...) exception message if invalid, not null
values the optional values for the formatted exception message, null array not recommended
Returns
  • the validated character sequence (never null method for chaining)
Throws
NullPointerException if the character sequence is null
IllegalArgumentException if the character sequence is blank

public static T notBlank (T chars)

Validate that the specified argument character sequence is neither null, a length of zero (no characters), empty nor whitespace; otherwise throwing an exception.

Validate.notBlank(myString);

The message in the exception is "The validated character sequence is blank".

Parameters
chars the character sequence to check, validated not null by this method
Returns
  • the validated character sequence (never null method for chaining)
Throws
NullPointerException if the character sequence is null
IllegalArgumentException if the character sequence is blank
See Also
  • #notBlank(CharSequence, String, Object...)

public static T[] notEmpty (T[] array)

Validate that the specified argument array is neither null nor a length of zero (no elements); otherwise throwing an exception.

Validate.notEmpty(myArray);

The message in the exception is "The validated array is empty".

Parameters
array the array to check, validated not null by this method
Returns
  • the validated array (never null method for chaining)
Throws
NullPointerException if the array is null
IllegalArgumentException if the array is empty
See Also
  • #notEmpty(Object[], String, Object...)

public static T[] notEmpty (T[] array, String message, Object... values)

Validate that the specified argument array is neither null nor a length of zero (no elements); otherwise throwing an exception with the specified message.

Validate.notEmpty(myArray, "The array must not be empty");

Parameters
array the array to check, validated not null by this method
message the String#format(String, Object...) exception message if invalid, not null
values the optional values for the formatted exception message, null array not recommended
Returns
  • the validated array (never null method for chaining)
Throws
NullPointerException if the array is null
IllegalArgumentException if the array is empty

public static T notEmpty (T chars, String message, Object... values)

Validate that the specified argument character sequence is neither null nor a length of zero (no characters); otherwise throwing an exception with the specified message.

Validate.notEmpty(myString, "The string must not be empty");

Parameters
chars the character sequence to check, validated not null by this method
message the String#format(String, Object...) exception message if invalid, not null
values the optional values for the formatted exception message, null array not recommended
Returns
  • the validated character sequence (never null method for chaining)
Throws
NullPointerException if the character sequence is null
IllegalArgumentException if the character sequence is empty

public static T notEmpty (T chars)

Validate that the specified argument character sequence is neither null nor a length of zero (no characters); otherwise throwing an exception with the specified message.

Validate.notEmpty(myString);

The message in the exception is "The validated character sequence is empty".

Parameters
chars the character sequence to check, validated not null by this method
Returns
  • the validated character sequence (never null method for chaining)
Throws
NullPointerException if the character sequence is null
IllegalArgumentException if the character sequence is empty
See Also
  • #notEmpty(CharSequence, String, Object...)

public static T notNull (T object, String message, Object... values)

Validate that the specified argument is not null; otherwise throwing an exception with the specified message.

Validate.notNull(myObject, "The object must not be null");

Parameters
object the object to check
message the String#format(String, Object...) exception message if invalid, not null
values the optional values for the formatted exception message
Returns
  • the validated object (never null for method chaining)
Throws
NullPointerException if the object is null
See Also

public static T notNull (T object)

Validate that the specified argument is not null; otherwise throwing an exception.

Validate.notNull(myObject, "The object must not be null");

The message of the exception is "The validated object is null".

Parameters
object the object to check
Returns
  • the validated object (never null for method chaining)
Throws
NullPointerException if the object is null
See Also
  • #notNull(Object, String, Object...)

public static T[] validIndex (T[] array, int index)

Validates that the index is within the bounds of the argument array; otherwise throwing an exception.

Validate.validIndex(myArray, 2);

If the array is null, then the message of the exception is "The validated object is null".

If the index is invalid, then the message of the exception is "The validated array index is invalid: " followed by the index.

Parameters
array the array to check, validated not null by this method
index the index to check
Returns
  • the validated array (never null for method chaining)
Throws
NullPointerException if the array is null
IndexOutOfBoundsException if the index is invalid
See Also
  • #validIndex(Object[], int, String, Object...)

public static T validIndex (T chars, int index)

Validates that the index is within the bounds of the argument character sequence; otherwise throwing an exception.

Validate.validIndex(myStr, 2);

If the character sequence is null, then the message of the exception is "The validated object is null".

If the index is invalid, then the message of the exception is "The validated character sequence index is invalid: " followed by the index.

Parameters
chars the character sequence to check, validated not null by this method
index the index to check
Returns
  • the validated character sequence (never null for method chaining)
Throws
NullPointerException if the character sequence is null
IndexOutOfBoundsException if the index is invalid
See Also
  • #validIndex(CharSequence, int, String, Object...)

public static T[] validIndex (T[] array, int index, String message, Object... values)

Validates that the index is within the bounds of the argument array; otherwise throwing an exception with the specified message.

Validate.validIndex(myArray, 2, "The array index is invalid: ");

If the array is null, then the message of the exception is "The validated object is null".

Parameters
array the array to check, validated not null by this method
index the index to check
message the String#format(String, Object...) exception message if invalid, not null
values the optional values for the formatted exception message, null array not recommended
Returns
  • the validated array (never null for method chaining)
Throws
NullPointerException if the array is null
IndexOutOfBoundsException if the index is invalid

public static T validIndex (T chars, int index, String message, Object... values)

Validates that the index is within the bounds of the argument character sequence; otherwise throwing an exception with the specified message.

Validate.validIndex(myStr, 2, "The string index is invalid: ");

If the character sequence is null, then the message of the exception is "The validated object is null".

Parameters
chars the character sequence to check, validated not null by this method
index the index to check
message the String#format(String, Object...) exception message if invalid, not null
values the optional values for the formatted exception message, null array not recommended
Returns
  • the validated character sequence (never null for method chaining)
Throws
NullPointerException if the character sequence is null
IndexOutOfBoundsException if the index is invalid

public static void validState (boolean expression, String message, Object... values)

Validate that the stateful condition is true; otherwise throwing an exception with the specified message. This method is useful when validating according to an arbitrary boolean expression, such as validating a primitive number or using your own custom validation expression.

Validate.validState(this.isOk(), "The state is not OK: %s", myObject);

Parameters
expression the boolean expression to check
message the String#format(String, Object...) exception message if invalid, not null
values the optional values for the formatted exception message, null array not recommended
Throws
IllegalStateException if expression is false

public static void validState (boolean expression)

Validate that the stateful condition is true; otherwise throwing an exception. This method is useful when validating according to an arbitrary boolean expression, such as validating a primitive number or using your own custom validation expression.

 Validate.validState(field > 0);
 Validate.validState(this.isOk());

The message of the exception is "The validated state is false".

Parameters
expression the boolean expression to check
Throws
IllegalStateException if expression is false
See Also
  • #validState(boolean, String, Object...)