Skip to content

事件回调

开发场景中,偶尔会有一种需求是,需要监听到某个表创建、修改完毕了等需求,框架同样开放了相关的回调接口,如下:

配置已经注入完成,准备执行前的回调

java
/**
 * AutoTable准备好了,即将开始执行的回调
 */
public interface AutoTableReadyCallback {

    /**
     * 执行前,可以做一些自定义配置相关的初始化工作
     *
     * @param tableClasses 实体模型class
     */
    void ready(final Set<Class<?>> tableClasses);
}

建表后回调

java
/**
 * 建表回调
 */
@FunctionalInterface
public interface CreateTableFinishCallback {

    /**
     * 建表后回调
     *
     * @param databaseDialect 数据库方言
     * @param tableMetadata   表元数据
     */
    void afterCreateTable(String databaseDialect, final TableMetadata tableMetadata);
}

修改表后回调

java
/**
 * 修改表回调
 */
@FunctionalInterface
public interface ModifyTableFinishCallback {

    /**
     * 修改表后回调
     *
     * @param databaseDialect  数据库方言
     * @param tableMetadata    表元数据
     * @param compareTableInfo 对比表信息
     */
    void afterModifyTable(String databaseDialect, final TableMetadata tableMetadata, final CompareTableInfo compareTableInfo);
}

单个表执行前后回调

java
/**
 * 单个表执行前后回调
 */
public interface RunStateCallback {

    /**
     * 执行前
     *
     * @param tableClass 实体模型class
     */
    void before(final Class<?> tableClass);

    /**
     * 执行后
     *
     * @param tableClass 实体模型class
     */
    void after(final Class<?> tableClass);
}

验证模式:验证完回调

java
/**
 * 验证完回调
 */
@FunctionalInterface
public interface ValidateFinishCallback {

    /**
     * 验证完回调
     *
     * @param status           验证结果
     * @param databaseDialect  数据库方言
     * @param compareTableInfo 对比表信息
     */
    void validateFinish(boolean status, String databaseDialect, final CompareTableInfo compareTableInfo);
}

执行结束回调

java
/**
 * 执行结束回调
 */
@FunctionalInterface
public interface AutoTableFinishCallback {

    /**
     * 执行结束回调
     *
     * @param tableClasses 执行过的实体
     */
    void finish(final List<Class<?>> tableClasses);
}