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

com.dream.generator.GeneratorHandler Maven / Gradle / Ivy

The newest version!
package com.dream.generator;

import java.io.InputStream;
import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * 代码生成配置
 */
public interface GeneratorHandler {
    /**
     * 作者名称
     *
     * @return 作者名称
     */
    String author();

    /**
     * 生成目录
     *
     * @return 生成目录
     */
    String sourceDir();

    /**
     * 生成时间
     *
     * @return 生成时间
     */
    default String dateTime() {
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
    }

    /**
     * 是否覆盖
     *
     * @param table 数据表
     * @return 是否覆盖
     */
    default boolean override(String table) {
        return false;
    }

    /**
     * 是否生成数据表代码
     *
     * @param table 数据表
     * @return 是否生成数据表代码
     */
    boolean support(String table);

    /**
     * 控制层全类名
     *
     * @param table 数据表
     * @return 控制层全类名
     */
    String controllerClassName(String table);

    /**
     * 接口服务全类名
     *
     * @param table 数据表
     * @return 接口服务全类名
     */
    String serviceClassName(String table);

    /**
     * 接口服务实现全类名
     *
     * @param table 数据表
     * @return 接口服务实现全类名
     */
    String serviceImplClassName(String table);

    /**
     * 实体映射全类名
     *
     * @param table 数据表
     * @return 实体映射全类名
     */
    String tableClassName(String table);

    /**
     * vo视图全类名(列表页字段)
     *
     * @param table 数据表
     * @return vo视图全类名(列表页字段)
     */
    String voClassName(String table);

    /**
     * bo视图全类名(编辑页字段)
     *
     * @param table 数据表
     * @return bo视图全类名(编辑页字段)
     */
    String boClassName(String table);

    /**
     * 查询视图全类名
     *
     * @param table 数据表
     * @return 查询视图全类名
     */
    String dtoClassName(String table);

    /**
     * 生成table模板
     *
     * @return table模板
     */
    default InputStream tableTemplate() {
        return getClass().getClassLoader().getResourceAsStream("./template/table.ftl");
    }

    /**
     * 生成vo模板
     *
     * @return vo模板
     */
    default InputStream voTemplate() {
        return getClass().getClassLoader().getResourceAsStream("./template/vo.ftl");
    }

    /**
     * 生成bo模板
     *
     * @return bo模板
     */
    default InputStream boTemplate() {
        return getClass().getClassLoader().getResourceAsStream("./template/bo.ftl");
    }

    /**
     * 生成dto模板
     *
     * @return dto模板
     */
    default InputStream dtoTemplate() {
        return getClass().getClassLoader().getResourceAsStream("./template/dto.ftl");
    }

    /**
     * 生成service模板
     *
     * @return service模板
     */
    default InputStream serviceTemplate() {
        return getClass().getClassLoader().getResourceAsStream("./template/service.ftl");
    }

    /**
     * 生成serviceImpl模板
     *
     * @return serviceImpl模板
     */
    default InputStream serviceImplTemplate() {
        return getClass().getClassLoader().getResourceAsStream("./template/serviceImpl.ftl");
    }

    /**
     * 生成controller模板
     *
     * @return controller模板
     */
    default InputStream controllerTemplate() {
        return getClass().getClassLoader().getResourceAsStream("./template/controller.ftl");
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy