forked from lxm_tools/screw
扩展Execute类,新增execute(DatabaseQuery query)方法;用户通过继承AbstractDatabaseQuery类,可自定义数据来源,实现自动生成数据库模板
This commit is contained in:
@@ -23,13 +23,13 @@ import cn.smallbun.screw.core.engine.TemplateEngine;
|
||||
import cn.smallbun.screw.core.exception.BuilderException;
|
||||
import cn.smallbun.screw.core.metadata.model.DataModel;
|
||||
import cn.smallbun.screw.core.process.DataModelProcess;
|
||||
import cn.smallbun.screw.core.query.DatabaseQuery;
|
||||
import cn.smallbun.screw.core.util.ExceptionUtils;
|
||||
|
||||
/**
|
||||
* 文档生成
|
||||
*
|
||||
* @author SanLi
|
||||
* Created by qinggang.zuo@gmail.com / 2689170096@qq.com on 2020/4/1 22:51
|
||||
* @author SanLi Created by qinggang.zuo@gmail.com / 2689170096@qq.com on 2020/4/1 22:51
|
||||
*/
|
||||
public class DocumentationExecute extends AbstractExecute {
|
||||
|
||||
@@ -42,6 +42,22 @@ public class DocumentationExecute extends AbstractExecute {
|
||||
*
|
||||
* @throws BuilderException BuilderException
|
||||
*/
|
||||
@Override
|
||||
public void execute(DatabaseQuery query) throws BuilderException {
|
||||
try {
|
||||
long start = System.currentTimeMillis();
|
||||
//处理数据
|
||||
DataModel dataModel = new DataModelProcess(config).process(query);
|
||||
//产生文档
|
||||
TemplateEngine produce = new EngineFactory(config.getEngineConfig()).newInstance();
|
||||
produce.produce(dataModel, getDocName(dataModel.getDatabase()));
|
||||
logger.debug("database document generation complete time consuming:{}ms",
|
||||
System.currentTimeMillis() - start);
|
||||
} catch (Exception e) {
|
||||
throw ExceptionUtils.mpe(e);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void execute() throws BuilderException {
|
||||
try {
|
||||
|
||||
@@ -17,15 +17,22 @@
|
||||
*/
|
||||
package cn.smallbun.screw.core.execute;
|
||||
|
||||
import cn.smallbun.screw.core.query.DatabaseQuery;
|
||||
|
||||
/**
|
||||
* 执行文档生成
|
||||
*
|
||||
* @author SanLi
|
||||
* Created by qinggang.zuo@gmail.com / 2689170096@qq.com on 2020/4/1 22:38
|
||||
* @author SanLi Created by qinggang.zuo@gmail.com / 2689170096@qq.com on 2020/4/1 22:38
|
||||
*/
|
||||
public interface Execute {
|
||||
/**
|
||||
* 执行生成
|
||||
*/
|
||||
void execute();
|
||||
|
||||
/**
|
||||
* 执行生成
|
||||
* @param query 自定义查询器
|
||||
*/
|
||||
void execute(DatabaseQuery query);
|
||||
}
|
||||
|
||||
@@ -17,6 +17,10 @@
|
||||
*/
|
||||
package cn.smallbun.screw.core.process;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import cn.smallbun.screw.core.Configuration;
|
||||
import cn.smallbun.screw.core.metadata.Column;
|
||||
import cn.smallbun.screw.core.metadata.Database;
|
||||
@@ -29,11 +33,10 @@ import cn.smallbun.screw.core.query.DatabaseQuery;
|
||||
import cn.smallbun.screw.core.query.DatabaseQueryFactory;
|
||||
import cn.smallbun.screw.core.util.StringUtils;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import static cn.smallbun.screw.core.constant.DefaultConstants.*;
|
||||
import static cn.smallbun.screw.core.constant.DefaultConstants.N;
|
||||
import static cn.smallbun.screw.core.constant.DefaultConstants.Y;
|
||||
import static cn.smallbun.screw.core.constant.DefaultConstants.ZERO;
|
||||
import static cn.smallbun.screw.core.constant.DefaultConstants.ZERO_DECIMAL_DIGITS;
|
||||
|
||||
/**
|
||||
* 数据模型处理
|
||||
@@ -61,6 +64,18 @@ public class DataModelProcess extends AbstractProcess {
|
||||
public DataModel process() {
|
||||
//获取query对象
|
||||
DatabaseQuery query = new DatabaseQueryFactory(config.getDataSource()).newInstance();
|
||||
|
||||
return this.process(query);
|
||||
}
|
||||
|
||||
/**
|
||||
* 处理
|
||||
*
|
||||
* @return {@link DataModel}
|
||||
*/
|
||||
@Override
|
||||
public DataModel process(DatabaseQuery query) {
|
||||
//获取query对象
|
||||
DataModel model = new DataModel();
|
||||
//Title
|
||||
model.setTitle(config.getTitle());
|
||||
|
||||
@@ -17,15 +17,15 @@
|
||||
*/
|
||||
package cn.smallbun.screw.core.process;
|
||||
|
||||
import cn.smallbun.screw.core.metadata.model.DataModel;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
import cn.smallbun.screw.core.metadata.model.DataModel;
|
||||
import cn.smallbun.screw.core.query.DatabaseQuery;
|
||||
|
||||
/**
|
||||
* 构建
|
||||
*
|
||||
* @author SanLi
|
||||
* Created by qinggang.zuo@gmail.com / 2689170096@qq.com on 2020/3/22 21:08
|
||||
* @author SanLi Created by qinggang.zuo@gmail.com / 2689170096@qq.com on 2020/3/22 21:08
|
||||
*/
|
||||
public interface Process extends Serializable {
|
||||
/**
|
||||
@@ -35,4 +35,12 @@ public interface Process extends Serializable {
|
||||
* @throws Exception Exception
|
||||
*/
|
||||
DataModel process() throws Exception;
|
||||
|
||||
/**
|
||||
* 自定义处理
|
||||
* @param query 自定义查询器
|
||||
* @return {@link DataModel}
|
||||
* @throws Exception Exception
|
||||
*/
|
||||
DataModel process(DatabaseQuery query) throws Exception;
|
||||
}
|
||||
|
||||
@@ -19,6 +19,7 @@ package cn.smallbun.screw.extension.pojo.execute;
|
||||
|
||||
import cn.smallbun.screw.core.exception.ScrewException;
|
||||
import cn.smallbun.screw.core.execute.Execute;
|
||||
import cn.smallbun.screw.core.query.DatabaseQuery;
|
||||
import cn.smallbun.screw.core.util.ExceptionUtils;
|
||||
import cn.smallbun.screw.core.util.StringUtils;
|
||||
import cn.smallbun.screw.extension.pojo.PojoConfiguration;
|
||||
@@ -89,6 +90,11 @@ public class PojoExecute implements Execute {
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void execute(DatabaseQuery query) {
|
||||
|
||||
}
|
||||
|
||||
private String validate(PojoConfiguration config) {
|
||||
StringBuilder error = new StringBuilder();
|
||||
String separator = System.lineSeparator();
|
||||
|
||||
Reference in New Issue
Block a user