提交 30c6f92b 编写于 作者: sq3536's avatar sq3536

push

上级 503b9474
...@@ -41,8 +41,6 @@ public class DefaultGenerator implements Generator { ...@@ -41,8 +41,6 @@ public class DefaultGenerator implements Generator {
private static final String METADATA_DIR = ".ibizlab-generator"; private static final String METADATA_DIR = ".ibizlab-generator";
protected CodegenConfig config; protected CodegenConfig config;
private String basePath;
private String contextPath;
private Map<String, String> generatorPropertyDefaults = new HashMap<>(); private Map<String, String> generatorPropertyDefaults = new HashMap<>();
protected TemplateProcessor templateProcessor = null; protected TemplateProcessor templateProcessor = null;
......
...@@ -7,6 +7,7 @@ import cn.ibizlab.codegen.utils.DataObject; ...@@ -7,6 +7,7 @@ import cn.ibizlab.codegen.utils.DataObject;
import lombok.Getter; import lombok.Getter;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import lombok.Setter; import lombok.Setter;
import lombok.experimental.Accessors;
import org.springframework.util.StringUtils; import org.springframework.util.StringUtils;
import java.util.ArrayList; import java.util.ArrayList;
...@@ -17,6 +18,7 @@ import java.util.Map; ...@@ -17,6 +18,7 @@ import java.util.Map;
@Getter @Getter
@Setter @Setter
@NoArgsConstructor @NoArgsConstructor
@Accessors(chain = true)
@JsonIgnoreProperties(value = "handler") @JsonIgnoreProperties(value = "handler")
public class EntityModel { public class EntityModel {
......
...@@ -3,6 +3,7 @@ package cn.ibizlab.codegen.model; ...@@ -3,6 +3,7 @@ package cn.ibizlab.codegen.model;
import cn.ibizlab.codegen.CodegenConstants; import cn.ibizlab.codegen.CodegenConstants;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonInclude;
import org.springframework.util.StringUtils;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
...@@ -13,6 +14,8 @@ import java.util.Map; ...@@ -13,6 +14,8 @@ import java.util.Map;
public class CliData extends DataObj public class CliData extends DataObj
{ {
private static CliData EMPTY = new CliData().setOptions(new ArrayList<>());
public CliData set(String key, Object value) public CliData set(String key, Object value)
{ {
...@@ -30,7 +33,7 @@ public class CliData extends DataObj ...@@ -30,7 +33,7 @@ public class CliData extends DataObj
} }
private List<CliOption> options; private List<CliOption> options=new ArrayList<>();
public List<CliOption> getOptions() public List<CliOption> getOptions()
{ {
...@@ -44,21 +47,34 @@ public class CliData extends DataObj ...@@ -44,21 +47,34 @@ public class CliData extends DataObj
} }
public CliData addOption(CliOption option) { public CliData addOption(CliOption option) {
if(this.options==null)
this.options=new ArrayList<>();
this.options.add(option); this.options.add(option);
if(!StringUtils.isEmpty(option.getCliSubType()))
addSubTypeOption(option);
return this;
}
List<CliOption> subTypes=null; public CliData addSubTypeOption(CliOption option) {
CliData subData=null;
Object sub=this.get(option.getCliSubType()); Object sub=this.get(option.getCliSubType());
if(sub==null) if(sub==null)
{ {
subTypes=new ArrayList<>(); subData=new CliData();
this.set(option.getCliSubType(),subTypes); this.set(option.getCliSubType(),subData);
} }
else else
subTypes=(List<CliOption>)sub; subData=(CliData)sub;
subTypes.add(option); subData.getOptions().add(option);
return this; return this;
} }
public CliData getSubData(String subType)
{
if(this.containsKey(subType))
return (CliData)this.get(subType);
return EMPTY;
}
} }
package cn.ibizlab.codegen.model; package cn.ibizlab.codegen.model;
import cn.ibizlab.codegen.templating.TemplateFileType;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonInclude;
import cn.ibizlab.codegen.CodegenConstants; import cn.ibizlab.codegen.CodegenConstants;
import org.springframework.util.Assert;
import org.springframework.util.StringUtils;
import java.util.Map; import java.util.Map;
...@@ -10,15 +13,41 @@ import java.util.Map; ...@@ -10,15 +13,41 @@ import java.util.Map;
@JsonIgnoreProperties(ignoreUnknown = true) @JsonIgnoreProperties(ignoreUnknown = true)
public class CliOption extends DataObj public class CliOption extends DataObj
{ {
public CliOption setCliSubType(String type)
private TemplateFileType templateFileType;
public CliOption setTemplateFileType(TemplateFileType templateFileType)
{
this.templateFileType=templateFileType;
return this;
}
public TemplateFileType getTemplateFileType()
{
return this.templateFileType;
}
private String cliSubType;
public CliOption setCliSubType(String cliSubType)
{ {
this.set("_cli-sub-type",type); this.cliSubType=cliSubType;
return this; return this;
} }
public String getCliSubType() public String getCliSubType()
{ {
return this.getStringValue("_cli-sub-type","default"); return this.cliSubType;
}
public CliOption baseData(Object baseData,String name)
{
Assert.notNull(templateFileType,"模板类型为空");
this.set(templateFileType.name(),baseData);
this.set(templateFileType.value(),name);
if(!StringUtils.isEmpty(this.cliSubType))
this.set(templateFileType.value()+"#"+this.cliSubType,name);
return this;
} }
public CliOption set(String key, Object value) public CliOption set(String key, Object value)
...@@ -37,7 +66,7 @@ public class CliOption extends DataObj ...@@ -37,7 +66,7 @@ public class CliOption extends DataObj
} }
public String getProjectName(){ public String getProjectName(){
return this.getStringValue("projectName",this.getStringValue("system_id",this.getStringValue("system",this.getStringValue("system_name")))); return this.getStringValue(CodegenConstants.PROJECT_NAME,this.getStringValue("system_id",this.getStringValue("system",this.getStringValue("system_name"))));
} }
public CliOption setProjectName(String projectName) public CliOption setProjectName(String projectName)
...@@ -51,7 +80,7 @@ public class CliOption extends DataObj ...@@ -51,7 +80,7 @@ public class CliOption extends DataObj
} }
public String getPackageName(){ public String getPackageName(){
return this.getStringValue("packageName","cn.ibizlab"); return this.getStringValue(CodegenConstants.PACKAGE_NAME,"cn.ibizlab");
} }
public CliOption setPackageName(String packageName) public CliOption setPackageName(String packageName)
......
...@@ -42,10 +42,12 @@ public class ModelStorage { ...@@ -42,10 +42,12 @@ public class ModelStorage {
public CliOption newCliOption() public CliOption newCliOption(TemplateFileType type)
{ {
CliOption opt=new CliOption(); CliOption opt=new CliOption();
opt.putAll(config.getAdditionalProperties()); opt.putAll(config.getAdditionalProperties());
opt.setTemplateFileType(type);
IPSSystem ipsSystem=dynamicService.getPSSystem(); IPSSystem ipsSystem=dynamicService.getPSSystem();
if(StringUtils.isEmpty(config.getAdditionalProperties().get(CodegenConstants.PROJECT_NAME))) if(StringUtils.isEmpty(config.getAdditionalProperties().get(CodegenConstants.PROJECT_NAME)))
opt.setProjectName(ipsSystem.getCodeName().toLowerCase()).toString(); opt.setProjectName(ipsSystem.getCodeName().toLowerCase()).toString();
...@@ -53,6 +55,7 @@ public class ModelStorage { ...@@ -53,6 +55,7 @@ public class ModelStorage {
opt.setProjectDesc(ipsSystem.getName().toLowerCase()).toString(); opt.setProjectDesc(ipsSystem.getName().toLowerCase()).toString();
if(StringUtils.isEmpty(config.getAdditionalProperties().get(CodegenConstants.PACKAGE_NAME))) if(StringUtils.isEmpty(config.getAdditionalProperties().get(CodegenConstants.PACKAGE_NAME)))
opt.setPackageName(ipsSystem.getCodeName().toLowerCase()).toString(); opt.setPackageName(ipsSystem.getCodeName().toLowerCase()).toString();
opt.set("system",ipsSystem);
return opt; return opt;
} }
...@@ -89,7 +92,7 @@ public class ModelStorage { ...@@ -89,7 +92,7 @@ public class ModelStorage {
if(dynamicService.getPSSystem().getAllPSSysServiceAPIs()!=null) if(dynamicService.getPSSystem().getAllPSSysServiceAPIs()!=null)
{ {
dynamicService.getPSSystem().getAllPSSysServiceAPIs().forEach(item->{ dynamicService.getPSSystem().getAllPSSysServiceAPIs().forEach(item->{
CliOption opt=newCliOption().set(TemplateFileType.api.toString(),item).set(TemplateFileType.api.value(),item.getCodeName().toLowerCase()); CliOption opt=newCliOption(TemplateFileType.api).baseData(item,item.getCodeName().toLowerCase());
rt.addOption(opt); rt.addOption(opt);
}); });
} }
...@@ -99,7 +102,7 @@ public class ModelStorage { ...@@ -99,7 +102,7 @@ public class ModelStorage {
if(dynamicService.getPSSystem().getAllPSApps()!=null) if(dynamicService.getPSSystem().getAllPSApps()!=null)
{ {
dynamicService.getPSSystem().getAllPSApps().forEach(item->{ dynamicService.getPSSystem().getAllPSApps().forEach(item->{
CliOption opt=newCliOption().set(TemplateFileType.app.toString(),item).set(TemplateFileType.app.value(),item.getCodeName().toLowerCase()); CliOption opt=newCliOption(TemplateFileType.app).baseData(item,item.getCodeName().toLowerCase());
rt.addOption(opt); rt.addOption(opt);
}); });
} }
...@@ -110,7 +113,7 @@ public class ModelStorage { ...@@ -110,7 +113,7 @@ public class ModelStorage {
if(api.getPSDEServiceAPIs()!=null) if(api.getPSDEServiceAPIs()!=null)
{ {
api.getPSDEServiceAPIs().forEach(item->{ api.getPSDEServiceAPIs().forEach(item->{
CliOption opt=newCliOption().set(TemplateFileType.serviceApi.toString(),item).set(TemplateFileType.serviceApi.value(),item.getCodeName()); CliOption opt=newCliOption(TemplateFileType.serviceApi).baseData(item,item.getCodeName());
rt.addOption(opt); rt.addOption(opt);
}); });
} }
...@@ -120,25 +123,26 @@ public class ModelStorage { ...@@ -120,25 +123,26 @@ public class ModelStorage {
{ {
dynamicService.getPSSystem().getAllPSDataEntities().forEach(item->{ dynamicService.getPSSystem().getAllPSDataEntities().forEach(item->{
PojoSchema pojoSchema=this.getEntitySchema(item.getName()); PojoSchema pojoSchema=this.getEntitySchema(item.getName());
CliOption opt=newCliOption().setModule(pojoSchema.getModule()).setCliSubType(pojoSchema.getStorageMode()) CliOption opt=newCliOption(TemplateFileType.entity).setCliSubType(pojoSchema.getStorageMode()).setModule(pojoSchema.getModule())
.set(TemplateFileType.entity.toString(),pojoSchema).set(TemplateFileType.entity.value(),item.getCodeName()); .baseData(pojoSchema,item.getCodeName());
rt.addOption(opt); rt.addOption(opt);
}); });
} }
else if(type.equals(TemplateFileType.module)) else if(type.equals(TemplateFileType.module))
{ {
dynamicService.getPSSystem().getAllPSSystemModules().forEach(item->{ dynamicService.getPSSystem().getAllPSSystemModules().forEach(item->{
CliOption opt=newCliOption() CliOption opt=newCliOption(TemplateFileType.module)
.set(TemplateFileType.module.toString(),item).set(TemplateFileType.module.value(),item.getCodeName()); .baseData(item,item.getCodeName());
rt.addOption(opt); rt.addOption(opt);
}); });
} }
else if(type.equals(TemplateFileType.supportingFiles)) else if(type.equals(TemplateFileType.supportingFiles))
{ {
CliOption opt=newCliOption(); CliOption opt=newCliOption(TemplateFileType.supportingFiles)
opt.set(TemplateFileType.app.value(),getTemplateData(TemplateFileType.app)); .set(TemplateFileType.app.value(),getTemplateData(TemplateFileType.app))
opt.set(TemplateFileType.api.value(),getTemplateData(TemplateFileType.api)); .set(TemplateFileType.api.value(),getTemplateData(TemplateFileType.api))
opt.set(TemplateFileType.module.value(),getTemplateData(TemplateFileType.module)); .set(TemplateFileType.module.value(),getTemplateData(TemplateFileType.module));
rt.addOption(opt); rt.addOption(opt);
} }
templateData.put(type,rt); templateData.put(type,rt);
......
...@@ -13,6 +13,8 @@ import java.nio.file.Paths; ...@@ -13,6 +13,8 @@ import java.nio.file.Paths;
import java.nio.file.Path; import java.nio.file.Path;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@Getter @Getter
@Setter @Setter
...@@ -23,7 +25,7 @@ public class TemplateDefinition { ...@@ -23,7 +25,7 @@ public class TemplateDefinition {
protected TemplateFileType templateType; protected TemplateFileType templateType;
private String subType="default"; private String subType;
protected CliData templateDatas; protected CliData templateDatas;
...@@ -32,7 +34,11 @@ public class TemplateDefinition { ...@@ -32,7 +34,11 @@ public class TemplateDefinition {
this.templateFile = templateFile; this.templateFile = templateFile;
this.templateType = getType(Paths.get(this.templateFile)); this.templateType = getType(Paths.get(this.templateFile));
this.templateDatas= ModelStorage.getInstance().getTemplateData(this.templateType); CliData data=ModelStorage.getInstance().getTemplateData(this.templateType);
if(StringUtils.isEmpty(subType))
this.templateDatas = data;
else
this.templateDatas = data.getSubData(subType);
} }
...@@ -46,10 +52,20 @@ public class TemplateDefinition { ...@@ -46,10 +52,20 @@ public class TemplateDefinition {
String fileName=path.getFileName().toString(); String fileName=path.getFileName().toString();
for(TemplateFileType type:TemplateFileType.values()) for(TemplateFileType type:TemplateFileType.values())
{ {
if(fileName.indexOf("{{"+type.name()+"}}")>=0 Pattern p = Pattern.compile("\\{\\{([^}]*)\\}\\}");
||fileName.indexOf("{{"+type.value()+"}}")>=0) Matcher m = p.matcher(fileName);
return type; while (m.find()) {
String[] pairs=m.group(1).split("#");
if(type.name().equalsIgnoreCase(pairs[0])
||type.value().equalsIgnoreCase(pairs[0])) {
if(pairs.length>1&&(!StringUtils.isEmpty(pairs[1])))
this.setSubType(pairs[1]);
return type;
}
}
} }
return getType(path.getParent()); return getType(path.getParent());
} }
} }
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册