package org.springside.modules.utils.base;
import org.springside.modules.utils.base.annotation.Nullable;
/**
* 参数校验统一使用Apache Common Lange Validate, 补充一些缺少的.
*
* 为什么不用Guava的Preconditions? 无他,
*
* 一是少打几个字而已, 二是Validate的方法多,比如noNullElements()判断多个元素都不为空
*
* @see com.google.common.math.MathPreconditions
*
* @author calvin
*/
public class MoreValidate {
/**
* 校验为正数则返回该数字,否则抛出异常.
*/
public static int positive(@Nullable String role, int x) {
if (x <= 0) {
throw new IllegalArgumentException(role + " (" + x + ") must be > 0");
}
return x;
}
/**
* 校验为正数则返回该数字,否则抛出异常.
*/
public static Integer positive(@Nullable String role, Integer x) {
if (x.intValue() <= 0) {
throw new IllegalArgumentException(role + " (" + x + ") must be > 0");
}
return x;
}
/**
* 校验为正数则返回该数字,否则抛出异常.
*/
public static long positive(@Nullable String role, long x) {
if (x <= 0) {
throw new IllegalArgumentException(role + " (" + x + ") must be > 0");
}
return x;
}
/**
* 校验为正数则返回该数字,否则抛出异常.
*/
public static Long positive(@Nullable String role, Long x) {
if (x.longValue() <= 0) {
throw new IllegalArgumentException(role + " (" + x + ") must be > 0");
}
return x;
}
/**
* 校验为正数则返回该数字,否则抛出异常.
*/
public static double positive(@Nullable String role, double x) {
if (!(x > 0)) { // not x < 0, to work with NaN.
throw new IllegalArgumentException(role + " (" + x + ") must be >= 0");
}
return x;
}
/**
* 校验为正数则返回该数字,否则抛出异常.
*/
public static int nonNegative(@Nullable String role, int x) {
if (x < 0) {
throw new IllegalArgumentException(role + " (" + x + ") must be >= 0");
}
return x;
}
/**
* 校验为正数则返回该数字,否则抛出异常.
*/
public static Integer nonNegative(@Nullable String role, Integer x) {
if (x.intValue() < 0) {
throw new IllegalArgumentException(role + " (" + x + ") must be >= 0");
}
return x;
}
/**
* 校验为正数则返回该数字,否则抛出异常.
*/
public static long nonNegative(@Nullable String role, long x) {
if (x < 0) {
throw new IllegalArgumentException(role + " (" + x + ") must be >= 0");
}
return x;
}
/**
* 校验为正数则返回该数字,否则抛出异常.
*/
public static Long nonNegative(@Nullable String role, Long x) {
if (x.longValue() < 0) {
throw new IllegalArgumentException(role + " (" + x + ") must be >= 0");
}
return x;
}
/**
* 校验为正数则返回该数字,否则抛出异常.
*/
public static double nonNegative(@Nullable String role, double x) {
if (!(x >= 0)) { // not x < 0, to work with NaN.
throw new IllegalArgumentException(role + " (" + x + ") must be >= 0");
}
return x;
}
}