package cn.com.tenlion.freemarker.util;

import java.util.HashMap;
import java.util.Map;

/**
 * 生成模板文件的参数对象
 */
public class TemplateCreateData<T> {

    /**
     *  不能为空 模板编码
     */
    private String templateCode;

    /**
     * 每次生成是否产生新的文件
     */
    private Boolean createNewFile = false;

    /**
     * 可以为空 自定义模板数据对象 . 可调用 HashMapUtil.beanToMap(obj); 将对象快速转为Map再传入
     */
    private Map<String, Object> templateDataMap = new HashMap<String, Object>();

    /**
     * 自定义动态输出路径  例如 text + File.separator + 2020 + File.separator + 06 + File.separator + 17 + File.separator 。如果为空，则默认使用 年\月\日\ 路径进行存储 , 底层会自动在前面拼接模板配置好的 存储路径
     */
    private String outFilePath;

    /**
     * 自定义输出文件名称  例如 test.html , test.doc , test.xls 。 如果为空， 则默认使用 businessId.配置的文件类型
     */
    private String outFileName;

    /**
     * 可以为空 数据关联的 调用方业务表唯一ID , 用于后期查询使用
     */
    private String businessId;

    /**
     * 可以为空 数据关联的业务表的查询内容放入 , 方便后期查询
     */
    private String businessContent;

    public String getTemplateCode() {
        return templateCode == null ? "" : templateCode;
    }

    public void setTemplateCode(String templateCode) {
        this.templateCode = templateCode;
    }

    public Map<String, Object> getTemplateDataMap() {
        return templateDataMap;
    }

    public void setTemplateDataMap(Map<String, Object> templateDataMap) {
        this.templateDataMap = templateDataMap;
    }

    public String getOutFilePath() {
        return outFilePath == null ? "" : outFilePath;
    }

    public void setOutFilePath(String outFilePath) {
        this.outFilePath = outFilePath;
    }

    public String getOutFileName() {
        return outFileName == null ? "" : outFileName;
    }

    public void setOutFileName(String outFileName) {
        this.outFileName = outFileName;
    }

    public String getBusinessContent() {
        return businessContent == null ? "" : businessContent;
    }

    public void setBusinessContent(String businessContent) {
        this.businessContent = businessContent;
    }

    public String getBusinessId() {
        return businessId == null ? "" : businessId;
    }

    public void setBusinessId(String businessId) {
        this.businessId = businessId;
    }

    public Boolean getCreateNewFile() {
        return createNewFile;
    }

    public void setCreateNewFile(Boolean createNewFile) {
        this.createNewFile = createNewFile;
    }
}
