All Downloads are FREE. Search and download functionalities are using the official Maven repository.

top.zeimao77.product.util.AssertUtil Maven / Gradle / Ivy

package top.zeimao77.product.util;

import top.zeimao77.product.exception.BaseServiceRunException;

import static top.zeimao77.product.exception.ExceptionCodeDefinition.APPERR;

import java.util.function.Consumer;
import java.util.regex.Pattern;

/**
 * 断言工具
 */
public class AssertUtil {

    private AssertUtil(){}

    /**
     * 断言为真
     * @param expression 断言表达式
     * @param message 异常返回的信息
     */
    public static void assertTrue(boolean expression,String message) {
       assertTrue(expression,APPERR,message);
    }

    public static void assertTrue(boolean expression,String format,Object...args) {
        assertTrue(expression,APPERR,format,args);
    }

    /**
     *
     * @param expression 断言表达式
     * @param code 错误编码
     * @param message 消息
     */
    public static void assertTrue(boolean expression,Integer code,String message) {
        if(!expression)
            throw new BaseServiceRunException(code,message);
    }

    /**
     * 使用这个函数可以减少不必要的错误消息字符串拼接
     * @param expression 断言表达式
     * @param code 错误编码
     * @param format 错误消息格式
     * @param args 错误消息参数
     */
    public static void assertTrue(boolean expression,Integer code,String format,Object... args) {
        if(!expression) {
            String message = String.format(format,args);
            throw new BaseServiceRunException(code,message);
        }
    }

    /**
     * 判断对象不为null或空字符串
     * @param obj 对象
     * @return 判断结果
     */
    public static boolean isNotEmpty(Object obj) {
        return obj != null && !"".equals(obj.toString());
    }

    public static  void ifNotEmpty(T obj, Consumer con) {
        if(isNotEmpty(obj))
            con.accept(obj);
    }

    /**
     * 校验通配 支持?表示一个字符,*表示任意多个字符
     * @param str 匹配的字符串
     * @param pattern  通配字符串  例如:a?c
     * @return 是否匹配成功
     */
    public static boolean match(String str,String pattern){
        String patternstr = null;
        patternstr = pattern.replaceAll("\\?",".");
        patternstr = patternstr.replaceAll("\\*",".*");
        Pattern p = Pattern.compile(patternstr);
        return p.matcher(str).matches();
    }

    /**
     * 判断对象为null 或者 空字符串
     * @param obj 对象
     * @return 判断结果
     */
    public static boolean isEmpty(Object obj) {
        return obj == null || obj.toString().isEmpty();
    }

    /**
     * 判断对象为空或空字串 去除头尾空字符
     * @param obj 对象
     * @return 判断结果
     */
    public static boolean isBlack(CharSequence obj) {
        return obj == null || obj.toString().trim().isEmpty();
    }

    public static  void ifNotBlack(T obj,Consumer con) {
        if(!isBlack(obj))
            con.accept(obj);
    }

    /**
     * 断言对象不为null 或者 空字符串
     * @param obj 对象
     * @param message 异常信息
     */
    public static void notEmpty(Object obj,String message) {
        if(isEmpty(obj))
            throw new BaseServiceRunException(APPERR,message);
    }

    /**
     * 断言对象不为null
     * @param obj 对象
     * @param message 异常信息
     */
    public static void notNull(Object obj,String message) {
        if(obj == null)
            throw new BaseServiceRunException(APPERR,message);
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy