Skip to content

Commit 32ec250

Browse files
author
杨利兵
committed
删除Setting相关内容
1 parent 31443c8 commit 32ec250

File tree

15 files changed

+177
-137
lines changed

15 files changed

+177
-137
lines changed

src/main/java/com/yanglb/codegen/core/GenFactory.java

Lines changed: 21 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -26,39 +26,37 @@ public class GenFactory<T> {
2626
private GenFactory() {
2727

2828
}
29-
30-
/**
31-
* 创建生成器
32-
* @param paramaModel 参数模型
33-
* @return IGenerator
34-
* @throws CodeGenException
35-
*/
36-
public static IGenerator createGenerator(ParamaModel paramaModel) throws CodeGenException{
37-
IGenerator generator = null;
38-
try {
39-
GenFactory<IGenerator> factory = new GenFactory<IGenerator>();
40-
generator = factory.createFromProperties(Conf.CATEGORY_GENERATOR, paramaModel.getCmd());
41-
generator.init(paramaModel);
42-
} catch (Exception e) {
43-
throw new CodeGenException(Resources.getString("E_010"));
44-
}
45-
return generator;
46-
}
29+
//
30+
// /**
31+
// * 创建生成器
32+
// * @param paramaModel 参数模型
33+
// * @return IGenerator
34+
// * @throws CodeGenException
35+
// */
36+
// public static IGenerator createGenerator(ParamaModel paramaModel) throws CodeGenException{
37+
// IGenerator generator = null;
38+
// try {
39+
// generator = createByName(paramaModel.getCmdModel().getGenerator());
40+
// generator.init(paramaModel);
41+
// } catch (Exception e) {
42+
// throw new CodeGenException(Resources.getString("E_010"));
43+
// }
44+
// return generator;
45+
// }
4746

4847
/**
4948
* 根据配置文件中配置的名字创建
5049
* @param <T> 创建接口类型
51-
* @param name 名称
5250
* @return T的接口实例
5351
* @throws CodeGenException 错误信息
5452
*/
55-
public static <T> T createByName(String category, String name) throws CodeGenException {
53+
public static <T> T createByName(String className) throws CodeGenException {
5654
T result = null;
5755
try {
5856
GenFactory<T> factory = new GenFactory<T>();
59-
result = factory.createFromProperties(category, name);
57+
result = factory.create(className);
6058
} catch (Exception e) {
61-
throw new CodeGenException(String.format(Resources.getString("E_011"), name, e.getMessage()));
59+
throw new CodeGenException(String.format(Resources.getString("E_011"), className, e.getMessage()));
6260
}
6361
return result;
6462
}
@@ -71,26 +69,11 @@ public static <T> T createByName(String category, String name) throws CodeGenExc
7169
* @throws IllegalAccessException
7270
* @throws ClassNotFoundException
7371
*/
74-
@SuppressWarnings("unchecked")
75-
protected T create(String implName)
72+
protected T create(String implName)
7673
throws InstantiationException, IllegalAccessException, ClassNotFoundException {
7774
T instance = null;
7875
if (implName.startsWith(".")) implName = "com.yanglb.codegen" + implName;
7976
instance = (T) Class.forName(implName).newInstance();
8077
return instance;
8178
}
82-
83-
/**
84-
* 根据配置文件创建
85-
* @param key
86-
* @return
87-
* @throws InstantiationException
88-
* @throws IllegalAccessException
89-
* @throws ClassNotFoundException
90-
*/
91-
protected T createFromProperties(String category, String key)
92-
throws InstantiationException, IllegalAccessException, ClassNotFoundException {
93-
String className = Conf.getString(category, key);
94-
return this.create(className);
95-
}
9679
}

src/main/java/com/yanglb/codegen/core/generator/BaseGenerator.java

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -56,8 +56,7 @@ protected void printInfo() {
5656
* 初始化
5757
* @param paramaModel
5858
*/
59-
@Override
60-
public void init(ParamaModel paramaModel) {
59+
protected void init(ParamaModel paramaModel) {
6160
this.paramaModel = paramaModel;
6261
this.supportOptions = new ArrayList<OptionModel>();
6362
this.settingMap = new HashMap<String, String>();
@@ -66,13 +65,15 @@ public void init(ParamaModel paramaModel) {
6665
}
6766

6867
@Override
69-
public final void invoke() throws CodeGenException, ParamaCheckException {
70-
this.onCheck();
68+
public final void invoke(ParamaModel paramaModel) throws CodeGenException, ParamaCheckException {
69+
init(paramaModel);
70+
71+
onCheck();
7172

72-
this.printInfo();
73+
printInfo();
7374

7475
// 生成代码
75-
this.onGeneration();
76+
onGeneration();
7677
}
7778

7879
@Override

src/main/java/com/yanglb/codegen/core/generator/IGenerator.java

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -23,18 +23,12 @@
2323
import com.yanglb.codegen.exceptions.ParamaCheckException;
2424

2525
public interface IGenerator {
26-
27-
/**
28-
* 初始化
29-
* @param paramaModel 参数模型
30-
*/
31-
void init(ParamaModel paramaModel);
32-
3326
/**
3427
* 执行生成工作
28+
* @param paramaModel 参数模型
3529
* @throws CodeGenException 出错信息
3630
*/
37-
void invoke() throws CodeGenException, ParamaCheckException;
31+
void invoke(ParamaModel paramaModel) throws CodeGenException, ParamaCheckException;
3832

3933
/**
4034
* 取得该生成器支持的选项

src/main/java/com/yanglb/codegen/core/generator/impl/DdlGeneratorImpl.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,23 +36,23 @@ protected void onGeneration() throws CodeGenException {
3636
super.onGeneration();
3737

3838
// 读取DB信息表
39-
IReader<DdlModel> ddlReader = GenFactory.createByName(Conf.CATEGORY_READER, SupportGen.Reader.ddl.name());
39+
IReader<DdlModel> ddlReader = GenFactory.createByName(paramaModel.getCmdModel().getReader());
4040
List<DdlModel> list = ddlReader.reader(this.paramaModel.getFile(), this.paramaModel.getSheets());
4141
if(list.size() == 0) {
4242
throw new CodeGenException(Resources.getString("E_003"));
4343
}
4444

4545
// 转换为可写入的Model(单个文件)
4646
String trans = paramaModel.getCmd();
47-
ITranslator<List<DdlModel>> translator = GenFactory.createByName(Conf.CATEGORY_TRANSLATOR, trans);
47+
ITranslator<List<DdlModel>> translator = GenFactory.createByName(paramaModel.getCmdModel().getTranslator());
4848
WritableModel writableModel = translator.translate(settingMap, this.paramaModel, list);
4949

5050
// 默认使用UTF-8编码
5151
SupportGen.Writer supportWriter = SupportGen.Writer.utf8;
5252
if (writableModel.getEncode() == "ascii") supportWriter = SupportGen.Writer.ascii;
5353

5454
// 写入到文件中
55-
IWriter writer = GenFactory.createByName(Conf.CATEGORY_WRITER, supportWriter.name());
55+
IWriter writer = GenFactory.createByName(Conf.getString(Conf.CATEGORY_WRITER, supportWriter.name()));
5656
writer.writer(writableModel);
5757
}
5858
}

src/main/java/com/yanglb/codegen/core/generator/impl/DmlGeneratorImpl.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,22 +36,22 @@ protected void onGeneration() throws CodeGenException {
3636
super.onGeneration();
3737

3838
// 读取DML信息表
39-
IReader<DdlModel> ddlReader = GenFactory.createByName(Conf.CATEGORY_READER, SupportGen.Reader.dml.name());
39+
IReader<DdlModel> ddlReader = GenFactory.createByName(paramaModel.getCmdModel().getReader());
4040
List<DdlModel> list = ddlReader.reader(this.paramaModel.getFile(), this.paramaModel.getSheets());
4141
if(list.size() == 0) {
4242
throw new CodeGenException(Resources.getString("E_003"));
4343
}
4444

4545
// 转换为可写入的Model(单个文件)
46-
ITranslator<List<DdlModel>> translator = GenFactory.createByName(Conf.CATEGORY_TRANSLATOR, "dml");
46+
ITranslator<List<DdlModel>> translator = GenFactory.createByName(paramaModel.getCmdModel().getTranslator());
4747
WritableModel writableModel = translator.translate(settingMap, this.paramaModel, list);
4848

4949
// 默认使用UTF-8编码
5050
SupportGen.Writer supportWriter = SupportGen.Writer.utf8;
5151
if (writableModel.getEncode() == "ascii") supportWriter = SupportGen.Writer.ascii;
5252

5353
// 写入到文件中
54-
IWriter writer = GenFactory.createByName(Conf.CATEGORY_WRITER, supportWriter.name());
54+
IWriter writer = GenFactory.createByName(Conf.getString(Conf.CATEGORY_WRITER, supportWriter.name()));
5555
writer.writer(writableModel);
5656
}
5757
}

src/main/java/com/yanglb/codegen/core/generator/impl/MsgGeneratorImpl.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ protected void onGeneration() throws CodeGenException {
3737
super.onGeneration();
3838

3939
// 读取DB信息表
40-
ITableReader tableReader = GenFactory.createByName(Conf.CATEGORY_READER, SupportGen.Reader.table.name());
40+
ITableReader tableReader = GenFactory.createByName(paramaModel.getCmdModel().getReader());
4141
tableReader.setStartPoint(3, 2);
4242
List<TableModel> list = tableReader.reader(this.paramaModel.getFile(), this.paramaModel.getSheets());
4343
if(list.size() == 0) {
@@ -55,15 +55,15 @@ protected void onGeneration() throws CodeGenException {
5555
String trans = paramaModel.getCmd();
5656

5757
// 转换为可写入的Model(单个文件)
58-
ITranslator<List<TableModel>> translator = GenFactory.createByName(Conf.CATEGORY_TRANSLATOR, trans);
58+
ITranslator<List<TableModel>> translator = GenFactory.createByName(paramaModel.getCmdModel().getTranslator());
5959
WritableModel writableModel = translator.translate(settingMap, paramaModel, list);
6060

6161
// 默认使用UTF-8编码
6262
SupportGen.Writer supportWriter = SupportGen.Writer.utf8;
6363
if (writableModel.getEncode() == "ascii") supportWriter = SupportGen.Writer.ascii;
6464

6565
// 写入到文件中
66-
IWriter writer = GenFactory.createByName(Conf.CATEGORY_WRITER, supportWriter.name());
66+
IWriter writer = GenFactory.createByName(Conf.getString(Conf.CATEGORY_WRITER, supportWriter.name()));
6767
writer.writer(writableModel);
6868
}
6969
}
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
package com.yanglb.codegen.core.model;
2+
3+
import java.util.Map;
4+
5+
public class CmdModel {
6+
private String parser;
7+
private String generator;
8+
private String reader;
9+
private String translator;
10+
11+
public CmdModel() {
12+
}
13+
public CmdModel(Map<String, String> values){
14+
parser = values.get("parser");
15+
generator = values.get("generator");
16+
reader = values.get("reader");
17+
translator = values.get("translator");
18+
}
19+
20+
public String getParser() {
21+
return parser;
22+
}
23+
24+
public void setParser(String parser) {
25+
this.parser = parser;
26+
}
27+
28+
public String getGenerator() {
29+
return generator;
30+
}
31+
32+
public void setGenerator(String generator) {
33+
this.generator = generator;
34+
}
35+
36+
public String getReader() {
37+
return reader;
38+
}
39+
40+
public void setReader(String reader) {
41+
this.reader = reader;
42+
}
43+
44+
public String getTranslator() {
45+
return translator;
46+
}
47+
48+
public void setTranslator(String translator) {
49+
this.translator = translator;
50+
}
51+
}

src/main/java/com/yanglb/codegen/core/model/ParamaModel.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ public class ParamaModel {
2121
private String cmd;
2222
private String file;
2323
CommandLine options;
24+
CmdModel cmdModel;
2425

2526
public String[] getSheets() {
2627
return options.getOptionValues("sheets");
@@ -55,4 +56,12 @@ public CommandLine getOptions() {
5556
public void setOptions(CommandLine options) {
5657
this.options = options;
5758
}
59+
60+
public CmdModel getCmdModel() {
61+
return cmdModel;
62+
}
63+
64+
public void setCmdModel(CmdModel cmdModel) {
65+
this.cmdModel = cmdModel;
66+
}
5867
}

src/main/java/com/yanglb/codegen/core/reader/impl/DdlReaderImpl.java

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,6 @@
3232
import com.yanglb.codegen.support.SupportGen;
3333

3434
public class DdlReaderImpl extends BaseModelReader<DdlModel> {
35-
3635
/**
3736
* 读取DB定义Sheet
3837
* @throws CodeGenException
@@ -48,9 +47,7 @@ protected DdlModel onReader(XSSFSheet sheet) throws CodeGenException {
4847
model.setAuthor(this.getCellStringValue(row.getCell(4)));
4948
model.setVersion(this.getCellStringValue(row.getCell(6)));
5049
model.setDescription(this.getCellStringValue(row.getCell(8)));
51-
// model.setIndex(this.getCellStringValue(row.getCell(8)));
52-
// model.setForeign(this.getCellStringValue(row.getCell(12)));
53-
50+
5451
row = sheet.getRow(2);
5552
model.setName(this.getCellStringValue(row.getCell(2)));
5653
model.setResponsibility(this.getCellStringValue(row.getCell(4)));
@@ -71,7 +68,7 @@ private List<DdlDetail> readerTable(XSSFSheet sheet) throws CodeGenException {
7168
List<DdlDetail> result = null;
7269

7370
// 通过 TableReader读取表格内容
74-
ITableReader tableReader = GenFactory.createByName(Conf.CATEGORY_READER, "table");
71+
ITableReader tableReader = GenFactory.createByName(Conf.getString(Conf.CATEGORY_READER, "table"));
7572
tableReader.setStartPoint(6, 2);
7673
TableModel tableModel = tableReader.reader(sheet);
7774

src/main/java/com/yanglb/codegen/core/reader/impl/DmlReaderImpl.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ protected DmlModel onReader(XSSFSheet sheet) throws CodeGenException {
6262
*/
6363
private TableModel readerTable(XSSFSheet sheet) throws CodeGenException {
6464
// 通过 TableReader读取表格内容
65-
ITableReader tableReader = GenFactory.createByName(Conf.CATEGORY_READER, "table");
65+
ITableReader tableReader = GenFactory.createByName(Conf.getString(Conf.CATEGORY_READER, "table"));
6666
tableReader.setStartPoint(7, 2);
6767
return tableReader.reader(sheet);
6868
}

0 commit comments

Comments
 (0)