forked from fanruan/easyexcel
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
152 lines
6.5 KiB
152 lines
6.5 KiB
4 years ago
|
package com.alibaba.excel.util;
|
||
|
|
||
|
import java.util.Objects;
|
||
|
|
||
|
/**
|
||
|
* Validate
|
||
|
*
|
||
|
* @author Jiaju Zhuang
|
||
|
*/
|
||
|
public class Validate {
|
||
|
|
||
|
private static final String DEFAULT_IS_TRUE_EX_MESSAGE = "The validated expression is false";
|
||
|
private static final String DEFAULT_IS_NULL_EX_MESSAGE = "The validated object is null";
|
||
|
|
||
|
/**
|
||
|
* <p>Validate that the argument condition is {@code 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.</p>
|
||
|
*
|
||
|
* <pre>Validate.isTrue(i > 0.0, "The value must be greater than zero: %d", i);</pre>
|
||
|
*
|
||
|
* <p>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.</p>
|
||
|
*
|
||
|
* @param expression the boolean expression to check
|
||
|
* @param message the {@link String#format(String, Object...)} exception message if invalid, not null
|
||
|
* @param value the value to append to the message when invalid
|
||
|
* @throws IllegalArgumentException if expression is {@code false}
|
||
|
* @see #isTrue(boolean)
|
||
|
* @see #isTrue(boolean, String, double)
|
||
|
* @see #isTrue(boolean, String, Object...)
|
||
|
*/
|
||
|
public static void isTrue(final boolean expression, final String message, final long value) {
|
||
|
if (!expression) {
|
||
|
throw new IllegalArgumentException(String.format(message, Long.valueOf(value)));
|
||
|
}
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* <p>Validate that the argument condition is {@code 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.</p>
|
||
|
*
|
||
|
* <pre>Validate.isTrue(d > 0.0, "The value must be greater than zero: %s", d);</pre>
|
||
|
*
|
||
|
* <p>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.</p>
|
||
|
*
|
||
|
* @param expression the boolean expression to check
|
||
|
* @param message the {@link String#format(String, Object...)} exception message if invalid, not null
|
||
|
* @param value the value to append to the message when invalid
|
||
|
* @throws IllegalArgumentException if expression is {@code false}
|
||
|
* @see #isTrue(boolean)
|
||
|
* @see #isTrue(boolean, String, long)
|
||
|
* @see #isTrue(boolean, String, Object...)
|
||
|
*/
|
||
|
public static void isTrue(final boolean expression, final String message, final double value) {
|
||
|
if (!expression) {
|
||
|
throw new IllegalArgumentException(String.format(message, Double.valueOf(value)));
|
||
|
}
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* <p>Validate that the argument condition is {@code 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.</p>
|
||
|
*
|
||
|
* <pre>
|
||
|
* 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");</pre>
|
||
|
*
|
||
|
* @param expression the boolean expression to check
|
||
|
* @param message the {@link String#format(String, Object...)} exception message if invalid, not null
|
||
|
* @param values the optional values for the formatted exception message, null array not recommended
|
||
|
* @throws IllegalArgumentException if expression is {@code false}
|
||
|
* @see #isTrue(boolean)
|
||
|
* @see #isTrue(boolean, String, long)
|
||
|
* @see #isTrue(boolean, String, double)
|
||
|
*/
|
||
|
public static void isTrue(final boolean expression, final String message, final Object... values) {
|
||
|
if (!expression) {
|
||
|
throw new IllegalArgumentException(String.format(message, values));
|
||
|
}
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* <p>Validate that the argument condition is {@code 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.</p>
|
||
|
*
|
||
|
* <pre>
|
||
|
* Validate.isTrue(i > 0);
|
||
|
* Validate.isTrue(myObject.isOk());</pre>
|
||
|
*
|
||
|
* <p>The message of the exception is "The validated expression is
|
||
|
* false".</p>
|
||
|
*
|
||
|
* @param expression the boolean expression to check
|
||
|
* @throws IllegalArgumentException if expression is {@code false}
|
||
|
* @see #isTrue(boolean, String, long)
|
||
|
* @see #isTrue(boolean, String, double)
|
||
|
* @see #isTrue(boolean, String, Object...)
|
||
|
*/
|
||
|
public static void isTrue(final boolean expression) {
|
||
|
if (!expression) {
|
||
|
throw new IllegalArgumentException(DEFAULT_IS_TRUE_EX_MESSAGE);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|
||
|
/**
|
||
|
* <p>Validate that the specified argument is not {@code null};
|
||
|
* otherwise throwing an exception.
|
||
|
*
|
||
|
* <pre>Validate.notNull(myObject, "The object must not be null");</pre>
|
||
|
*
|
||
|
* <p>The message of the exception is "The validated object is
|
||
|
* null".</p>
|
||
|
*
|
||
|
* @param <T> the object type
|
||
|
* @param object the object to check
|
||
|
* @return the validated object (never {@code null} for method chaining)
|
||
|
* @throws NullPointerException if the object is {@code null}
|
||
|
* @see #notNull(Object, String, Object...)
|
||
|
*/
|
||
|
public static <T> T notNull(final T object) {
|
||
|
return notNull(object, DEFAULT_IS_NULL_EX_MESSAGE);
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* <p>Validate that the specified argument is not {@code null};
|
||
|
* otherwise throwing an exception with the specified message.
|
||
|
*
|
||
|
* <pre>Validate.notNull(myObject, "The object must not be null");</pre>
|
||
|
*
|
||
|
* @param <T> the object type
|
||
|
* @param object the object to check
|
||
|
* @param message the {@link String#format(String, Object...)} exception message if invalid, not null
|
||
|
* @param values the optional values for the formatted exception message
|
||
|
* @return the validated object (never {@code null} for method chaining)
|
||
|
* @throws NullPointerException if the object is {@code null}
|
||
|
* @see #notNull(Object)
|
||
|
*/
|
||
|
public static <T> T notNull(final T object, final String message, final Object... values) {
|
||
|
return Objects.requireNonNull(object, () -> String.format(message, values));
|
||
|
}
|
||
|
}
|