public final class Validate extends Object
This class assists in validating arguments. The validation methods are based along the following principles:
null
argument causes a NullPointerException
.null
argument causes an IllegalArgumentException
.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);
This class's source was modified from the Apache commons-lang library: https://github.com/apache/commons-lang/
#ThreadSafe#
String.format(String, Object...)
Modifier and Type | Method and Description |
---|---|
static double |
exclusiveBetween(double start,
double end,
double value,
String message)
Validate that the specified primitive value falls between the two
exclusive values specified; otherwise, throws an exception with the
specified message.
|
static long |
exclusiveBetween(long start,
long end,
long value,
String message)
Validate that the specified primitive value falls between the two
exclusive values specified; otherwise, throws an exception with the
specified message.
|
static <T extends Comparable<U>,U> |
exclusiveBetween(U start,
U end,
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> T |
getOrDefault(T param,
Supplier<T> defaultValue)
Returns the param if non null, otherwise gets a default value from the provided
Supplier . |
static double |
inclusiveBetween(double start,
double end,
double value,
String message)
Validate that the specified primitive value falls between the two
inclusive values specified; otherwise, throws an exception with the
specified message.
|
static long |
inclusiveBetween(long start,
long end,
long value,
String message)
Validate that the specified primitive value falls between the two
inclusive values specified; otherwise, throws an exception with the
specified message.
|
static <T extends Comparable<U>,U> |
inclusiveBetween(U start,
U end,
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 <T> Class<? extends T> |
isAssignableFrom(Class<T> superType,
Class<?> type,
String message,
Object... values)
Validates that the argument can be converted to the specified class, if not throws an exception.
|
static <T,U> U |
isInstanceOf(Class<U> type,
T 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 Duration |
isNotNegative(Duration duration,
String fieldName)
Asserts that the given duration is positive (non-negative and non-zero).
|
static int |
isNotNegative(int num,
String fieldName) |
static Duration |
isPositive(Duration duration,
String fieldName)
Asserts that the given duration is positive (non-negative and non-zero).
|
static int |
isPositive(int num,
String fieldName)
Asserts that the given number is positive (non-negative and non-zero).
|
static long |
isPositive(long num,
String fieldName)
Asserts that the given number is positive (non-negative and non-zero).
|
static Duration |
isPositiveOrNull(Duration duration,
String fieldName)
Asserts that the given duration is positive (non-negative and non-zero) or null.
|
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 |
mutuallyExclusive(String message,
Object... objs)
Verify that only one of the objects is non null.
|
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 Iterable<?>> |
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 extends CharSequence> |
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> 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> |
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 Collection<?>> |
notEmpty(T collection,
String message,
Object... values)
Validate that the specified argument collection is neither
null
nor a size of zero (no elements); otherwise throwing an exception
with the specified message. |
static <T extends Map<?,?>> |
notEmpty(T map,
String message,
Object... values)
Validate that the specified argument map is neither
null
nor a size of zero (no elements); 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 extends CharSequence> |
paramNotBlank(T chars,
String paramName)
Validate that the specified char sequence is neither
null , a length of zero (no characters), empty nor
whitespace; otherwise throwing an exception with the specified
message. |
static <T> T |
paramNotNull(T object,
String paramName)
Validate that the specified field/param is not
null ;
otherwise throwing an exception with a precanned message that includes the parameter name. |
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 <T> T |
validState(T object,
Predicate<T> test,
String message,
Object... values)
Validate the stateful predicate is true for the given object and return the object;
otherwise throw an exception with the specified message.
|
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");
expression
- the boolean expression to checkmessage
- the String.format(String, Object...)
exception message if invalid, not nullvalues
- the optional values for the formatted exception message, null array not recommendedIllegalArgumentException
- if expression is false
public 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.
Validate.notNull(myObject, "The object must not be null");
T
- the object typeobject
- the object to checkmessage
- the String.format(String, Object...)
exception message if invalid, not nullvalues
- the optional values for the formatted exception messagenull
for method chaining)NullPointerException
- if the object is null
public static <T> T paramNotNull(T object, String paramName)
Validate that the specified field/param is not null
;
otherwise throwing an exception with a precanned message that includes the parameter name.
Validate.paramNotNull(myObject, "myObject");
T
- the object typeobject
- the object to checkparamName
- The name of the param or field being checked.null
for method chaining)NullPointerException
- if the object is null
public static <T extends CharSequence> T paramNotBlank(T chars, String paramName)
Validate that the specified char sequence is neither
null
, a length of zero (no characters), empty nor
whitespace; otherwise throwing an exception with the specified
message.
Validate.paramNotBlank(myCharSequence, "myCharSequence");
T
- the char sequence typechars
- the character sequence to checkparamName
- The name of the param or field being checked.null
for method chaining)NullPointerException
- if the char sequence is null
public static <T> T validState(T object, Predicate<T> test, String message, Object... values)
Validate the stateful predicate is true for the given object and return the object; otherwise throw an exception with the specified message.
String value = Validate.validState(someString, s -> s.length() == 0, "must be blank got: %s", someString);
T
- the object typeobject
- the object to checktest
- the predicate to apply, will return true if the object is validmessage
- the String.format(String, Object...)
exception message if invalid, not nullvalues
- the optional values for the formatted exception messageNullPointerException
- if the object is null
public 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.
Validate.notEmpty(myArray, "The array must not be empty");
T
- the array typearray
- the array to check, validated not null by this methodmessage
- the String.format(String, Object...)
exception message if invalid, not nullvalues
- the optional values for the formatted exception message, null array not recommendednull
method for chaining)NullPointerException
- if the array is null
IllegalArgumentException
- if the array is emptypublic static <T extends Collection<?>> T notEmpty(T collection, String message, Object... values)
Validate that the specified argument collection is neither null
nor a size of zero (no elements); otherwise throwing an exception
with the specified message.
Validate.notEmpty(myCollection, "The collection must not be empty");
T
- the collection typecollection
- the collection to check, validated not null by this methodmessage
- the String.format(String, Object...)
exception message if invalid, not nullvalues
- the optional values for the formatted exception message, null array not recommendednull
method for chaining)NullPointerException
- if the collection is null
IllegalArgumentException
- if the collection is emptypublic static <T extends Map<?,?>> T notEmpty(T map, String message, Object... values)
Validate that the specified argument map is neither null
nor a size of zero (no elements); otherwise throwing an exception
with the specified message.
Validate.notEmpty(myMap, "The map must not be empty");
T
- the map typemap
- the map to check, validated not null by this methodmessage
- the String.format(String, Object...)
exception message if invalid, not nullvalues
- the optional values for the formatted exception message, null array not recommendednull
method for chaining)NullPointerException
- if the map is null
IllegalArgumentException
- if the map is emptypublic 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.
Validate.notEmpty(myString, "The string must not be empty");
T
- the character sequence typechars
- the character sequence to check, validated not null by this methodmessage
- the String.format(String, Object...)
exception message if invalid, not nullvalues
- the optional values for the formatted exception message, null array not recommendednull
method for chaining)NullPointerException
- if the character sequence is null
IllegalArgumentException
- if the character sequence is emptypublic 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.
Validate.notBlank(myString, "The string must not be blank");
T
- the character sequence typechars
- the character sequence to check, validated not null by this methodmessage
- the String.format(String, Object...)
exception message if invalid, not nullvalues
- the optional values for the formatted exception message, null array not recommendednull
method for chaining)NullPointerException
- if the character sequence is null
IllegalArgumentException
- if the character sequence is blankpublic 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.
Validate.noNullElements(myArray, "The array is null or contains null.");
T
- the array typearray
- the array to check, validated not null by this methodmessage
- the String.format(String, Object...)
exception message if invalid, not nullvalues
- the optional values for the formatted exception messagenull
method for chaining)NullPointerException
- if the array is null
IllegalArgumentException
- if an element is null
public 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.
Validate.noNullElements(myCollection, "The collection is null or contains null.");
T
- the iterable typeiterable
- the iterable to check, validated not null by this methodmessage
- the String.format(String, Object...)
exception message if invalid, not nullvalues
- the optional values for the formatted exception message.null
method for chaining)NullPointerException
- if the array is null
IllegalArgumentException
- if an element is null
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);
expression
- the boolean expression to checkmessage
- the String.format(String, Object...)
exception message if invalid, not nullvalues
- the optional values for the formatted exception message, null array not recommendedIllegalStateException
- if expression is false
public static <T extends Comparable<U>,U> T inclusiveBetween(U start, U end, 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");
T
- the type of the argument objectstart
- the inclusive start value, not nullend
- the inclusive end value, not nullvalue
- the object to validate, not nullmessage
- the String.format(String, Object...)
exception message if invalid, not nullvalues
- the optional values for the formatted exception message, null array not recommendedIllegalArgumentException
- if the value falls outside the boundariespublic static long inclusiveBetween(long start, long end, long value, String message)
Validate.inclusiveBetween(0, 2, 1, "Not in range");
start
- the inclusive start valueend
- the inclusive end valuevalue
- the value to validatemessage
- the exception message if invalid, not nullIllegalArgumentException
- if the value falls outside the boundariespublic static double inclusiveBetween(double start, double end, double value, String message)
Validate.inclusiveBetween(0.1, 2.1, 1.1, "Not in range");
start
- the inclusive start valueend
- the inclusive end valuevalue
- the value to validatemessage
- the exception message if invalid, not nullIllegalArgumentException
- if the value falls outside the boundariespublic static <T extends Comparable<U>,U> T exclusiveBetween(U start, U end, 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.exclusiveBetween(0, 2, 1, "Not in boundaries");
T
- the type of the argument objectstart
- the exclusive start value, not nullend
- the exclusive end value, not nullvalue
- the object to validate, not nullmessage
- the String.format(String, Object...)
exception message if invalid, not nullvalues
- the optional values for the formatted exception message, null array not recommendedIllegalArgumentException
- if the value falls outside the boundariespublic static long exclusiveBetween(long start, long end, long value, String message)
Validate.exclusiveBetween(0, 2, 1, "Not in range");
start
- the exclusive start valueend
- the exclusive end valuevalue
- the value to validatemessage
- the exception message if invalid, not nullIllegalArgumentException
- if the value falls outside the boundariespublic static double exclusiveBetween(double start, double end, double value, String message)
Validate.exclusiveBetween(0.1, 2.1, 1.1, "Not in range");
start
- the exclusive start valueend
- the exclusive end valuevalue
- the value to validatemessage
- the exception message if invalid, not nullIllegalArgumentException
- if the value falls outside the boundariespublic static <T,U> U isInstanceOf(Class<U> type, T 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.class, object, "Wrong class, object is of class %s", object.getClass().getName());
type
- the class the object must be validated against, not nullobj
- the object to check, null throws an exceptionmessage
- the String.format(String, Object...)
exception message if invalid, not nullvalues
- the optional values for the formatted exception message, null array not recommendedIllegalArgumentException
- if argument is not of specified classpublic static <T> Class<? extends T> isAssignableFrom(Class<T> superType, Class<?> type, String message, Object... values)
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"
superType
- the class the class must be validated against, not nulltype
- the class to check, not nullmessage
- the String.format(String, Object...)
exception message if invalid, not nullvalues
- the optional values for the formatted exception message, null array not recommendedIllegalArgumentException
- if argument can not be converted to the specified classpublic static int isPositive(int num, String fieldName)
num
- Number to validatefieldName
- Field name to display in exception message if not positive.public static long isPositive(long num, String fieldName)
num
- Number to validatefieldName
- Field name to display in exception message if not positive.public static int isNotNegative(int num, String fieldName)
public static Duration isPositive(Duration duration, String fieldName)
duration
- Number to validatefieldName
- Field name to display in exception message if not positive.public static Duration isPositiveOrNull(Duration duration, String fieldName)
duration
- Number to validatefieldName
- Field name to display in exception message if not positive.public static Duration isNotNegative(Duration duration, String fieldName)
duration
- Number to validatefieldName
- Field name to display in exception message if not positive.public static <T> T getOrDefault(T param, Supplier<T> defaultValue)
Supplier
.T
- Type of value.param
- Param to return if non null.defaultValue
- Supplier of default value.public static void mutuallyExclusive(String message, Object... objs)
message
- Error message if more than one object is non-null.objs
- Objects to validate.IllegalArgumentException
- if more than one of the objects was non-null.Copyright © 2019. All rights reserved.