文件模板
BaskServer创建文件的时候可以指定模板。
模板文件的需要继承com.basksoft.core.NewFileTemplate.java的接口,并实现其中的方法。然后用【SPI】插件的方式注册。
参考步骤:
- 创建一个java类,实现NewFileTemplate接口。
- 在resources目录下创建META-INF/services/com.basksoft.core.NewFileTemplate文件,并写入该类全名。
- 在resources目录下创建report-template.xml文件,并写入该文件类型的XML内容。
这样我们在创建指定文件类型时,会自动调用该模板的content()方法,返回该文件类型的XML内容。
接口声明:
import com.basksoft.core.database.model.FileType;
public interface NewFileTemplate {
    /**
     * @return 返回当前新建文件模版的名称,控制台显示的名称
     */
    String name();
    /**
     * @return 返回模版的具体XML内容
     */
    String content();
    /**
     * @return 返回新建的文件类型
     */
    FileType type();
    /**
     * @return 适用的租户Id,返回null则适用于所有租户
     */
    String tenantId();
}
模板文件示例:
package com.basksoft.baskreport.demo.template;
import java.io.*;
import com.basksoft.core.NewFileTemplate;
import com.basksoft.core.database.model.FileType;
public class ReportNewFileTemplate implements NewFileTemplate {
    @Override
    public String name() {
        return "日报报表模版";
    }
    @Override
    public String content() {
        String text = "";
        String fileName = "report-template.xml";
        try {
            InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream(fileName);
            InputStreamReader reader = new InputStreamReader(inputStream);
            BufferedReader br = new BufferedReader(reader);
            String line;
            while((line = br.readLine()) != null){
                text+=line;
            }
            br.close();
            reader.close();
            inputStream.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
        return text;
    }
    @Override
    public FileType type() {
        return FileType.report;
    }
    @Override
    public String tenantId() {
        return "basksoft";
    }
}
