diff --git a/common-entity-generator/pom.xml b/common-entity-generator/pom.xml index c58beff4d80bad03c29f63aafdfacf4e959fd8cc..06547fbba014cce9f3be87c3c44a0a3b94acf35a 100644 --- a/common-entity-generator/pom.xml +++ b/common-entity-generator/pom.xml @@ -32,6 +32,10 @@ com.inspur.edp business-entity-generator-exception + + com.inspur.edp + metadata-service-dev-api + com.inspur.edp caf-generator diff --git a/common-entity-generator/src/main/java/com/inspur/edp/cef/generator/HandleAssemblyNameUtil.java b/common-entity-generator/src/main/java/com/inspur/edp/cef/generator/HandleAssemblyNameUtil.java new file mode 100644 index 0000000000000000000000000000000000000000..b1e3a4e96bfc49a4a7d4147ec5c29804b41a2b6e --- /dev/null +++ b/common-entity-generator/src/main/java/com/inspur/edp/cef/generator/HandleAssemblyNameUtil.java @@ -0,0 +1,41 @@ +package com.inspur.edp.cef.generator; + +import io.iec.edp.caf.commons.utils.StringUtils; + +/** + * 从business-entity-model拷贝而来 + * todo 后续可以统一,去除此代码 + */ +public class HandleAssemblyNameUtil { + + /** + * 根据 + * @param packagePrefix + * @param assemblyName + * @return + */ + public static String convertToJavaPackageName(String packagePrefix, String assemblyName) { + String namespace = assemblyName; + if(!StringUtils.isEmpty(packagePrefix)) + namespace = packagePrefix + "." + assemblyName; + + String[] list = namespace.split("\\."); + String result = ""; + + for (int i = 0; i < list.length; i++) { + String lowerCase = list[i].toLowerCase(); + if (i == 0) { + if (lowerCase.equals("inspur")) { + result = result.concat("com.inspur"); + continue; + } else { + result = result.concat(lowerCase); + continue; + } + } + result = result.concat("."); + result = result.concat(lowerCase); + } + return result; + } +} diff --git a/common-entity-generator/src/main/java/com/inspur/edp/cef/generator/MetadataProjectUtil.java b/common-entity-generator/src/main/java/com/inspur/edp/cef/generator/MetadataProjectUtil.java new file mode 100644 index 0000000000000000000000000000000000000000..15ffe10e84bdd76c234242be718b2efd5e060373 --- /dev/null +++ b/common-entity-generator/src/main/java/com/inspur/edp/cef/generator/MetadataProjectUtil.java @@ -0,0 +1,51 @@ +package com.inspur.edp.cef.generator; + +import com.inspur.edp.caf.db.dbaccess.DataValidator; +import com.inspur.edp.lcm.metadata.api.entity.GspProject; +import com.inspur.edp.lcm.metadata.api.service.GspProjectService; +import com.inspur.edp.lcm.metadata.api.service.MetadataProjectService; +import io.iec.edp.caf.commons.utils.SpringBeanUtils; +import io.iec.edp.caf.commons.utils.StringUtils; + +import java.io.IOException; + +/** + * 元数据工程工具类,提供工程namespace、包路径前缀等获取方法 + * todo 可以与business-entity-model中同名类统一 + */ +public class MetadataProjectUtil { + + /** + * 根据工程relativePath获取Java工程路径下java文件夹路径 + * 举例:D:\projects\Scm\OrderMrg\SaleOrder\bo-saleorder-back\java\code\comp\src\main\java + * @param relativePath + * @return + */ + public static String getJavaCompProjectPath(String relativePath) { + if(StringUtils.isEmpty(relativePath)) + return null; + + MetadataProjectService service = SpringBeanUtils.getBean(MetadataProjectService.class); + return service.getJavaCompProjectPath(relativePath); + } + + /** + * 根据工程路径,获取包路径前缀,默认为com + * @param relativePath + * @return + */ + public static String getPackagePrefix(String relativePath) { + DataValidator.checkForEmptyString(relativePath,"relativePath"); + + GspProjectService gspProjectService = SpringBeanUtils.getBean(GspProjectService.class); + try { + GspProject gspProject = gspProjectService.getGspProjectInfo(relativePath); + if (gspProject == null) { + throw new NullPointerException("GspProject is null"); + } + return gspProject.getPackagePrefix(); + } catch (IOException e) { + throw new RuntimeException(e); + } + } +} diff --git a/common-entity-variable-generator/src/main/java/com/inspur/edp/cef/variable/dtgenerator/vardtmGenerate/cmpgenerators/CommonDtmGenerator.java b/common-entity-variable-generator/src/main/java/com/inspur/edp/cef/variable/dtgenerator/vardtmGenerate/cmpgenerators/CommonDtmGenerator.java index c1c70ebd11121a5aa18a1d5fe73a1ee30b900642..03378fc52cf76c959290883b6fbdfdbe10530ce3 100644 --- a/common-entity-variable-generator/src/main/java/com/inspur/edp/cef/variable/dtgenerator/vardtmGenerate/cmpgenerators/CommonDtmGenerator.java +++ b/common-entity-variable-generator/src/main/java/com/inspur/edp/cef/variable/dtgenerator/vardtmGenerate/cmpgenerators/CommonDtmGenerator.java @@ -23,6 +23,7 @@ import com.inspur.edp.bef.component.detailcmpentity.udtdetermination.UDTDtmCompo import com.inspur.edp.cef.designtime.api.operation.CommonDetermination; import com.inspur.edp.cef.designtime.api.operation.CommonOperation; import com.inspur.edp.cef.generator.DotNetToJavaStringHelper; +import com.inspur.edp.cef.generator.HandleAssemblyNameUtil; import com.inspur.edp.cef.variable.dtgenerator.vardtmGenerate.JavaCompCodeNames; public class CommonDtmGenerator extends CommonOperationComponentGenerator @@ -60,7 +61,7 @@ public class CommonDtmGenerator extends CommonOperationComponentGenerator component.getUdtDtmMethod().setAssembly (this.assemblyName); String suffix=String.format("%1$s%2$s%3$s",this.model.getCode(),".", JavaCompCodeNames.DeterminationName); - String packageName=JavaModuleImportPackage(this.nameSpace); + String packageName=JavaModuleImportPackage(this.packagePrefix, this.nameSpace); packageName=String.format("%1$s%2$s",packageName,suffix.toLowerCase()); if (this.originalComponent!= null) { @@ -85,16 +86,8 @@ public class CommonDtmGenerator extends CommonOperationComponentGenerator return (connections); } - protected String JavaModuleImportPackage(String packageName) + protected String JavaModuleImportPackage(String packagePrefix, String packageName) { - String[] strArray = packageName.split("[.]",-1); - String str = "com."; - int i; - - for (i = 0; i < strArray.length; i++) - { - str += strArray[i].toLowerCase() + "."; - } - return str; + return HandleAssemblyNameUtil.convertToJavaPackageName(packagePrefix, packageName); } } diff --git a/common-entity-variable-generator/src/main/java/com/inspur/edp/cef/variable/dtgenerator/vardtmGenerate/cmpgenerators/CommonOperationComponentGenerator.java b/common-entity-variable-generator/src/main/java/com/inspur/edp/cef/variable/dtgenerator/vardtmGenerate/cmpgenerators/CommonOperationComponentGenerator.java index 3b81c8804ba4fa82b7bcf1d850ea8e2959bce225..011b6321c61830ca0c256277f74ab0e4ba608f18 100644 --- a/common-entity-variable-generator/src/main/java/com/inspur/edp/cef/variable/dtgenerator/vardtmGenerate/cmpgenerators/CommonOperationComponentGenerator.java +++ b/common-entity-variable-generator/src/main/java/com/inspur/edp/cef/variable/dtgenerator/vardtmGenerate/cmpgenerators/CommonOperationComponentGenerator.java @@ -20,6 +20,8 @@ import com.inspur.edp.bef.component.base.GspComponent; import com.inspur.edp.cef.designtime.api.operation.CommonOperation; import com.inspur.edp.cef.generator.DotNetToJavaStringHelper; import com.inspur.edp.cef.generator.exception.CefGenException; +import com.inspur.edp.cef.generator.MetadataProjectUtil; +import com.inspur.edp.cef.variable.dtgenerator.vardtmGenerate.CompCodeNames; import com.inspur.edp.cef.variable.dtgenerator.vardtmGenerate.JavaCompCodeNames; import com.inspur.edp.das.commonmodel.entity.GspCommonModel; import com.inspur.edp.lcm.metadata.api.entity.GspMetadata; @@ -51,7 +53,12 @@ public abstract class CommonOperationComponentGenerator protected GspComponent originalComponent; protected String bizObjectID; protected GspCommonModel model; - /** + /** + * 包路径前缀,默认值为com + */ + protected String packagePrefix; + + /** 生成构件元数据 @param operation UDT操作 @@ -60,13 +67,14 @@ public abstract class CommonOperationComponentGenerator @param assemblyName UDT程序集名称 */ @Deprecated - public String GenerateComponent(GspCommonModel model,CommonOperation operation, String path, String varEntityCode, String assemblyName, String defaultNamespace, String bizObjectID) + public String GenerateComponent(GspCommonModel model,CommonOperation operation, String path, String varEntityCode, String assemblyName, String defaultNamespace, String bizObjectID) { this.varEntityCode = varEntityCode; this.assemblyName = assemblyName; this.nameSpace = defaultNamespace; this.bizObjectID = bizObjectID; this.model=model; + this.packagePrefix = MetadataProjectUtil.getPackagePrefix(path); if (DotNetToJavaStringHelper.isNullOrEmpty(operation.getComponentId())) { GspMetadata component = createComponent(operation, path); //4、建立Action与元数据之间的关联关系 @@ -106,6 +114,7 @@ public abstract class CommonOperationComponentGenerator this.nameSpace = defaultNamespace; this.bizObjectID = bizObjectID; this.model=model; + this.packagePrefix = MetadataProjectUtil.getPackagePrefix(path); return createComponent(operation, path); } /** diff --git a/common-entity-variable-generator/src/main/java/com/inspur/edp/cef/variable/dtgenerator/vardtmGenerate/javageneratecmpcode/JavaBaseCommonCompCodeGenerator.java b/common-entity-variable-generator/src/main/java/com/inspur/edp/cef/variable/dtgenerator/vardtmGenerate/javageneratecmpcode/JavaBaseCommonCompCodeGenerator.java index cd221bfdc85947efdb21789dea77d677d21c4915..84636cc364111a50e51aa6cb51235c81da6fb601 100644 --- a/common-entity-variable-generator/src/main/java/com/inspur/edp/cef/variable/dtgenerator/vardtmGenerate/javageneratecmpcode/JavaBaseCommonCompCodeGenerator.java +++ b/common-entity-variable-generator/src/main/java/com/inspur/edp/cef/variable/dtgenerator/vardtmGenerate/javageneratecmpcode/JavaBaseCommonCompCodeGenerator.java @@ -19,6 +19,8 @@ package com.inspur.edp.cef.variable.dtgenerator.vardtmGenerate.javageneratecmpco import com.inspur.edp.bef.component.base.GspComponent; import com.inspur.edp.cef.designtime.api.operation.CommonOperation; import com.inspur.edp.cef.generator.exception.CefGenException; +import com.inspur.edp.cef.generator.HandleAssemblyNameUtil; +import com.inspur.edp.cef.generator.MetadataProjectUtil; import com.inspur.edp.cef.variable.dtgenerator.vardtmGenerate.JavaCompCodeNames; import com.inspur.edp.das.commonmodel.entity.GspCommonModel; import com.inspur.edp.lcm.metadata.api.IMetadataContent; @@ -43,6 +45,8 @@ public abstract class JavaBaseCommonCompCodeGenerator implements JavaIBaseCompCo protected abstract String getBaseClassName(); private String privatePath; + + private String packagePrefix; public final String getPath() { return privatePath; @@ -71,6 +75,7 @@ public abstract class JavaBaseCommonCompCodeGenerator implements JavaIBaseCompCo this.apiNamespace = gspCommonModel.getVariables().getGeneratedApiAssemblyInfo().getDefaultNamespace(); // 解析型 this.isInterpretation= SpringBeanUtils.getBean(MetadataProjectService.class).isInterpretation(path); + this.packagePrefix = MetadataProjectUtil.getPackagePrefix(path); } private String GetNameSpace(String baseNameSpace, String beName) @@ -126,7 +131,7 @@ public abstract class JavaBaseCommonCompCodeGenerator implements JavaIBaseCompCo { StringBuilder result = new StringBuilder(); ///#region package - nameSpace = ConvertJavaImportPackage(nameSpace); + nameSpace = ConvertJavaImportPackage(this.packagePrefix, nameSpace); result.append(JavaCompCodeNames.KeywordPackage).append(" ").append(nameSpace).append(";").append(getNewline()); ///#endregion @@ -184,18 +189,8 @@ public abstract class JavaBaseCommonCompCodeGenerator implements JavaIBaseCompCo protected void JavaGenerateField(StringBuilder result) { } - private String ConvertJavaImportPackage(String readPropertyValue_string) - { - String[] strArray = readPropertyValue_string.split("[.]", -1); - String str = "com."; - int i; - - for (i = 0; i < strArray.length - 1; i++) - { - str += strArray[i].toLowerCase() + "."; - } - str += strArray[i].toLowerCase(); - return str; + private String ConvertJavaImportPackage(String packagePrefix, String nameSpace) { + return HandleAssemblyNameUtil.convertToJavaPackageName(packagePrefix, nameSpace); } private void GenerateImport(StringBuilder result) diff --git a/pom.xml b/pom.xml index 55dcd8c6d5b85dc50927252d8f1a940d2c7b35eb..34df7fcfd2fc94e66213775f7cefa75c437bbd7f 100644 --- a/pom.xml +++ b/pom.xml @@ -89,6 +89,11 @@ lcm-metadata-api 0.1.40 + + com.inspur.edp + metadata-service-dev-api + 0.1.1 + com.inspur.edp lcm-metadata-common