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

net.lulihu.AssertBehavior Maven / Gradle / Ivy

package net.lulihu;

import net.lulihu.ObjectKit.ObjectKit;

/**
 * 断言模板方法
 */
public interface AssertBehavior {

    /**
     * 抛出新的异常
     *
     * @param errorMessage 异常消息
     */
    void newException(String errorMessage);

    /**
     * 抛出新的异常
     *
     * @param template 异常消息模板
     * @param args     模板替换参数
     */
    void newException(String template, Object... args);

    /**
     * 如果为true 则抛出异常
     *
     * @param boo              判断
     * @param exceptionMessage 异常信息
     */
    default AssertBehavior notTrue(boolean boo, String exceptionMessage) {
        if (boo) newException(exceptionMessage);
        return this;
    }

    /**
     * 如果为true 则抛出异常
     *
     * @param boo      判断
     * @param template 异常消息模板
     * @param args     模板替换参数
     */
    default AssertBehavior notTrue(boolean boo, String template, Object... args) {
        if (boo) newException(template, args);
        return this;
    }

    /**
     * 如果为true 则抛出异常
     *
     * @param obj              判断对象
     * @param exceptionMessage 异常信息
     */
    default AssertBehavior notNull(Object obj, String exceptionMessage) {
        return notTrue(obj == null, exceptionMessage);

    }

    /**
     * 不为null
     *
     * @param obj      判断对象
     * @param template 异常消息模板
     * @param args     模板替换参数
     */
    default AssertBehavior notNull(Object obj, String template, Object... args) {
        return notTrue(obj == null, template, args);
    }


    /**
     * 不为空
     *
     * 

* 空参数的定义如下
* 1、对象不为null * 2、String 不为"" or " "
* 3、List,Set,Map,Object[],int[],long[] 长度大于0 * * @param obj 判断对象 * @param template 异常消息模板 * @param args 模板替换参数 */ default AssertBehavior notEmpty(Object obj, String template, Object... args) { return notTrue(ObjectKit.hasEmpty(obj), template, args); } /** * 断言class文件存在 * * @param fullClassName class对象全类名 * @param errorMessage 异常消息 */ default AssertBehavior foundClass(String fullClassName, String errorMessage) { try { Class.forName(fullClassName, false, Thread.currentThread().getContextClassLoader()); } catch (ClassNotFoundException e) { newException(errorMessage); } return this; } /** * 断言class文件存在 * * @param fullClassName class对象全类名 * @param template 异常消息模板 * @param args 模板替换参数 */ default AssertBehavior foundClass(String fullClassName, String template, Object... args) { try { Class.forName(fullClassName, false, Thread.currentThread().getContextClassLoader()); } catch (ClassNotFoundException e) { newException(template, args); } return this; } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy