diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/cpp/CodeGenerateCpp.java b/protocol/src/main/java/com/zfoo/protocol/serializer/cpp/CodeGenerateCpp.java index d114a8e8..387e7d46 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/cpp/CodeGenerateCpp.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/cpp/CodeGenerateCpp.java @@ -81,7 +81,8 @@ public class CodeGenerateCpp implements ICodeGenerate { @Override public void mergerProtocol(List registrations) throws IOException { - createTemplateFile(registrations); + createTemplateFile(); + var protocolManagerTemplate = ClassUtils.getFileFromClassPathToString("cpp/ProtocolManagerTemplate.h"); var protocol_imports = new StringBuilder(); @@ -104,14 +105,11 @@ public class CodeGenerateCpp implements ICodeGenerate { var protocol_registration = new StringBuilder(); for (var registration : GenerateProtocolFile.subProtocolFirst(registrations)) { var protocol_id = registration.protocolId(); - // protocol protocol_class.append(protocol_class(registration)).append(LS); - // registration protocol_registration.append(protocol_registration(registration)).append(LS); } - var protocolTemplate = ClassUtils.getFileFromClassPathToString("cpp/ProtocolsTemplate.h"); var formatProtocolTemplate = CodeTemplatePlaceholder.formatTemplate(protocolTemplate, Map.of( CodeTemplatePlaceholder.protocol_root_path, protocolOutputRootPath @@ -126,7 +124,8 @@ public class CodeGenerateCpp implements ICodeGenerate { @Override public void foldProtocol(List registrations) throws IOException { - createTemplateFile(registrations); + createTemplateFile(); + var protocolManagerTemplate = ClassUtils.getFileFromClassPathToString("cpp/ProtocolManagerTemplate.h"); var protocol_imports = new StringBuilder(); @@ -148,7 +147,6 @@ public class CodeGenerateCpp implements ICodeGenerate { for (var registration : registrations) { var protocol_id = registration.protocolId(); var protocol_name = registration.protocolConstructor().getDeclaringClass().getSimpleName(); - var protocolTemplate = ClassUtils.getFileFromClassPathToString("cpp/ProtocolTemplate.h"); var formatProtocolTemplate = CodeTemplatePlaceholder.formatTemplate(protocolTemplate, Map.of( CodeTemplatePlaceholder.protocol_root_path, protocolOutputRootPath @@ -157,7 +155,6 @@ public class CodeGenerateCpp implements ICodeGenerate { , CodeTemplatePlaceholder.protocol_class, protocol_class(registration) , CodeTemplatePlaceholder.protocol_registration, protocol_registration(registration) )); - var outputPath = StringUtils.format("{}/{}/{}.h", protocolOutputPath, GenerateProtocolPath.protocolPathPeriod(protocol_id), protocol_name); var file = new File(outputPath); FileUtils.writeStringToFile(file, formatProtocolTemplate, true); @@ -167,7 +164,8 @@ public class CodeGenerateCpp implements ICodeGenerate { @Override public void defaultProtocol(List registrations) throws IOException { - createTemplateFile(registrations); + createTemplateFile(); + var protocolManagerTemplate = ClassUtils.getFileFromClassPathToString("cpp/ProtocolManagerTemplate.h"); var protocol_imports = new StringBuilder(); @@ -185,9 +183,9 @@ public class CodeGenerateCpp implements ICodeGenerate { FileUtils.writeStringToFile(protocolManagerFile, formatProtocolManagerTemplate, true); logger.info("Generated C++ protocol manager file:[{}] is in path:[{}]", protocolManagerFile.getName(), protocolManagerFile.getAbsolutePath()); + for (var registration : registrations) { var protocol_name = registration.protocolConstructor().getDeclaringClass().getSimpleName(); - var protocolTemplate = ClassUtils.getFileFromClassPathToString("cpp/ProtocolTemplate.h"); var formatProtocolTemplate = CodeTemplatePlaceholder.formatTemplate(protocolTemplate, Map.of( CodeTemplatePlaceholder.protocol_root_path, protocolOutputRootPath @@ -196,7 +194,6 @@ public class CodeGenerateCpp implements ICodeGenerate { , CodeTemplatePlaceholder.protocol_class, protocol_class(registration) , CodeTemplatePlaceholder.protocol_registration, protocol_registration(registration) )); - var outputPath = StringUtils.format("{}/{}.h", protocolOutputPath, protocol_name); var file = new File(outputPath); FileUtils.writeStringToFile(file, formatProtocolTemplate, true); @@ -205,7 +202,7 @@ public class CodeGenerateCpp implements ICodeGenerate { } - public void createTemplateFile(List registrations) throws IOException { + public void createTemplateFile() throws IOException { var list = List.of("cpp/ByteBuffer.h"); for (var fileName : list) { diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/csharp/CodeGenerateCsharp.java b/protocol/src/main/java/com/zfoo/protocol/serializer/csharp/CodeGenerateCsharp.java index 067dc320..ece06bfb 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/csharp/CodeGenerateCsharp.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/csharp/CodeGenerateCsharp.java @@ -81,6 +81,8 @@ public class CodeGenerateCsharp implements ICodeGenerate { @Override public void mergerProtocol(List registrations) throws IOException { createProtocolManagerFile(registrations); + + var mergerProtocolPathMap = GenerateProtocolPath.mergerProtocolPathMap(); for (var entry : mergerProtocolPathMap.entrySet()) { var protocol_merger_name = StringUtils.capitalize(entry.getKey()); @@ -95,7 +97,6 @@ public class CodeGenerateCsharp implements ICodeGenerate { // registration protocol_registration.append(protocol_registration(registration)).append(LS); } - var protocolTemplate = ClassUtils.getFileFromClassPathToString("csharp/ProtocolTemplate.cs"); var formatProtocolTemplate = CodeTemplatePlaceholder.formatTemplate(protocolTemplate, Map.of( CodeTemplatePlaceholder.protocol_class, protocol_class.toString() @@ -112,6 +113,7 @@ public class CodeGenerateCsharp implements ICodeGenerate { public void foldProtocol(List registrations) throws IOException { createProtocolManagerFile(registrations); + for (var registration : registrations) { var protocolId = registration.protocolId(); var protocolClazzName = registration.protocolConstructor().getDeclaringClass().getSimpleName(); @@ -127,6 +129,7 @@ public class CodeGenerateCsharp implements ICodeGenerate { public void defaultProtocol(List registrations) throws IOException { createProtocolManagerFile(registrations); + for (var registration : registrations) { var protocol_name = registration.protocolConstructor().getDeclaringClass().getSimpleName(); var formatProtocolTemplate = formatProtocolTemplate(registration); diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/ecmascript/CodeGenerateEcmaScript.java b/protocol/src/main/java/com/zfoo/protocol/serializer/ecmascript/CodeGenerateEcmaScript.java index c745e963..7a94068e 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/ecmascript/CodeGenerateEcmaScript.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/ecmascript/CodeGenerateEcmaScript.java @@ -79,6 +79,7 @@ public class CodeGenerateEcmaScript implements ICodeGenerate { public void mergerProtocol(List registrations) throws IOException { createTemplateFile(); + var protocolManagerTemplate = ClassUtils.getFileFromClassPathToString("ecmascript/ProtocolManagerTemplate.mjs"); var protocol_imports = new StringBuilder(); var protocol_manager_registrations = new StringBuilder(); @@ -95,17 +96,16 @@ public class CodeGenerateEcmaScript implements ICodeGenerate { FileUtils.writeStringToFile(protocolManagerFile, formatProtocolManagerTemplate, true); logger.info("Generated ES protocol manager file:[{}] is in path:[{}]", protocolManagerFile.getName(), protocolManagerFile.getAbsolutePath()); + var protocol_class = new StringBuilder(); var protocol_registration = new StringBuilder(); for (var registration : registrations) { var protocol_id = registration.protocolId(); var protocol_name = registration.protocolConstructor().getDeclaringClass().getSimpleName(); - // protocol protocol_class.append(formatProtocolClassTemplate(registration)).append(LS); protocol_registration.append(StringUtils.format("Protocols.{} = {}", protocol_name, protocol_name)).append(LS); } - var protocolTemplate = ClassUtils.getFileFromClassPathToString("ecmascript/ProtocolsTemplate.mjs"); var formatProtocolTemplate = CodeTemplatePlaceholder.formatTemplate(protocolTemplate, Map.of( CodeTemplatePlaceholder.protocol_class, protocol_class.toString() @@ -121,6 +121,7 @@ public class CodeGenerateEcmaScript implements ICodeGenerate { public void foldProtocol(List registrations) throws IOException { createTemplateFile(); + // 生成ProtocolManager.mjs文件 var protocolManagerTemplate = ClassUtils.getFileFromClassPathToString("ecmascript/ProtocolManagerTemplate.mjs"); var protocol_imports = new StringBuilder(); @@ -138,6 +139,7 @@ public class CodeGenerateEcmaScript implements ICodeGenerate { FileUtils.writeStringToFile(protocolManagerFile, formatProtocolManagerTemplate, true); logger.info("Generated ES protocol manager file:[{}] is in path:[{}]", protocolManagerFile.getName(), protocolManagerFile.getAbsolutePath()); + for (var registration : registrations) { var protocol_id = registration.protocolId(); var protocol_name = registration.protocolConstructor().getDeclaringClass().getSimpleName(); @@ -153,6 +155,7 @@ public class CodeGenerateEcmaScript implements ICodeGenerate { public void defaultProtocol(List registrations) throws IOException { createTemplateFile(); + // 生成ProtocolManager.mjs文件 var protocolManagerTemplate = ClassUtils.getFileFromClassPathToString("ecmascript/ProtocolManagerTemplate.mjs"); var protocol_imports = new StringBuilder(); @@ -170,6 +173,7 @@ public class CodeGenerateEcmaScript implements ICodeGenerate { FileUtils.writeStringToFile(protocolManagerFile, formatProtocolManagerTemplate, true); logger.info("Generated ES protocol manager file:[{}] is in path:[{}]", protocolManagerFile.getName(), protocolManagerFile.getAbsolutePath()); + for (var registration : registrations) { var protocol_id = registration.protocolId(); var protocol_name = registration.protocolConstructor().getDeclaringClass().getSimpleName(); diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/javascript/CodeGenerateJavaScript.java b/protocol/src/main/java/com/zfoo/protocol/serializer/javascript/CodeGenerateJavaScript.java index 95c022ad..35eb0eef 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/javascript/CodeGenerateJavaScript.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/javascript/CodeGenerateJavaScript.java @@ -78,6 +78,7 @@ public class CodeGenerateJavaScript implements ICodeGenerate { public void mergerProtocol(List registrations) throws IOException { createTemplateFile(); + // 生成ProtocolManager.js文件 var protocolManagerTemplate = ClassUtils.getFileFromClassPathToString("javascript/ProtocolManagerTemplate.js"); var protocol_imports = new StringBuilder(); @@ -95,24 +96,21 @@ public class CodeGenerateJavaScript implements ICodeGenerate { FileUtils.writeStringToFile(protocolManagerFile, formatProtocolManagerTemplate, true); logger.info("Generated Javascript protocol manager file:[{}] is in path:[{}]", protocolManagerFile.getName(), protocolManagerFile.getAbsolutePath()); + var protocol_class = new StringBuilder(); var protocol_registration = new StringBuilder(); for (var registration : registrations) { var protocol_id = registration.protocolId(); - // protocol protocol_class.append(protocol_class(registration)).append(LS); - // registration protocol_registration.append(protocol_registration(registration)).append(LS); } - protocol_registration.append(LS); for (var registration : registrations) { var protocol_name = registration.protocolConstructor().getDeclaringClass().getSimpleName(); protocol_registration.append(StringUtils.format("Protocols.{} = {}", protocol_name, protocol_name)).append(LS); } - var protocolTemplate = ClassUtils.getFileFromClassPathToString("javascript/ProtocolsTemplate.js"); var formatProtocolTemplate = CodeTemplatePlaceholder.formatTemplate(protocolTemplate, Map.of( CodeTemplatePlaceholder.protocol_class, protocol_class.toString() @@ -128,6 +126,7 @@ public class CodeGenerateJavaScript implements ICodeGenerate { public void foldProtocol(List registrations) throws IOException { createTemplateFile(); + // 生成ProtocolManager.js文件 var protocolManagerTemplate = ClassUtils.getFileFromClassPathToString("javascript/ProtocolManagerTemplate.js"); var protocol_imports = new StringBuilder(); @@ -149,14 +148,12 @@ public class CodeGenerateJavaScript implements ICodeGenerate { for (var registration : registrations) { var protocol_id = registration.protocolId(); var protocol_name = registration.protocolConstructor().getDeclaringClass().getSimpleName(); - var protocolTemplate = ClassUtils.getFileFromClassPathToString("javascript/ProtocolTemplate.js"); var formatProtocolTemplate = CodeTemplatePlaceholder.formatTemplate(protocolTemplate, Map.of( CodeTemplatePlaceholder.protocol_name, protocol_name , CodeTemplatePlaceholder.protocol_class, protocol_class(registration) , CodeTemplatePlaceholder.protocol_registration, protocol_registration(registration) )); - var outputPath = StringUtils.format("{}/{}/{}.js", protocolOutputPath, GenerateProtocolPath.protocolPathPeriod(protocol_id), protocol_name); var file = new File(outputPath); FileUtils.writeStringToFile(file, formatProtocolTemplate, true); @@ -167,6 +164,8 @@ public class CodeGenerateJavaScript implements ICodeGenerate { @Override public void defaultProtocol(List registrations) throws IOException { createTemplateFile(); + + // 生成ProtocolManager.js文件 var protocolManagerTemplate = ClassUtils.getFileFromClassPathToString("javascript/ProtocolManagerTemplate.js"); var protocol_imports = new StringBuilder(); @@ -188,14 +187,12 @@ public class CodeGenerateJavaScript implements ICodeGenerate { for (var registration : registrations) { var protocol_id = registration.protocolId(); var protocol_name = registration.protocolConstructor().getDeclaringClass().getSimpleName(); - var protocolTemplate = ClassUtils.getFileFromClassPathToString("javascript/ProtocolTemplate.js"); var formatProtocolTemplate = CodeTemplatePlaceholder.formatTemplate(protocolTemplate, Map.of( CodeTemplatePlaceholder.protocol_name, protocol_name , CodeTemplatePlaceholder.protocol_class, protocol_class(registration) , CodeTemplatePlaceholder.protocol_registration, protocol_registration(registration) )); - var outputPath = StringUtils.format("{}/{}.js", protocolOutputPath, protocol_name); var file = new File(outputPath); FileUtils.writeStringToFile(file, formatProtocolTemplate, true); diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/lua/CodeGenerateLua.java b/protocol/src/main/java/com/zfoo/protocol/serializer/lua/CodeGenerateLua.java index bed4ded0..6eb93ae3 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/lua/CodeGenerateLua.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/lua/CodeGenerateLua.java @@ -78,6 +78,7 @@ public class CodeGenerateLua implements ICodeGenerate { public void mergerProtocol(List registrations) throws IOException { createTemplateFile(); + var protocol_imports = new StringBuilder(); var protocol_manager_registrations = new StringBuilder(); protocol_imports.append(StringUtils.format("local Protocols = require(\"{}.Protocols\")", protocolOutputRootPath)).append(LS); @@ -101,20 +102,16 @@ public class CodeGenerateLua implements ICodeGenerate { var protocol_registration = new StringBuilder(); for (var registration : registrations) { var protocol_id = registration.protocolId(); - // protocol protocol_class.append(protocol_class(registration)).append(LS); - // registration protocol_registration.append(protocol_registration(registration)).append(LS); } - protocol_registration.append(LS); for (var registration : registrations) { var protocol_name = registration.protocolConstructor().getDeclaringClass().getSimpleName(); protocol_registration.append(StringUtils.format("Protocols.{} = {}", protocol_name, protocol_name)).append(LS); } - var protocolTemplate = ClassUtils.getFileFromClassPathToString("lua/ProtocolsTemplate.lua"); var formatProtocolTemplate = CodeTemplatePlaceholder.formatTemplate(protocolTemplate, Map.of( CodeTemplatePlaceholder.protocol_class, protocol_class.toString() @@ -131,6 +128,7 @@ public class CodeGenerateLua implements ICodeGenerate { public void foldProtocol(List registrations) throws IOException { createTemplateFile(); + var protocol_imports = new StringBuilder(); var protocol_manager_registrations = new StringBuilder(); for (var registration : registrations) { @@ -140,7 +138,6 @@ public class CodeGenerateLua implements ICodeGenerate { protocol_imports.append(StringUtils.format("local {} = require(\"{}.{}.{}\")", protocol_name, protocolOutputRootPath, path.replace(StringUtils.SLASH, StringUtils.PERIOD), protocol_name)).append(LS); protocol_manager_registrations.append(StringUtils.format("protocols[{}] = {}", protocol_id, protocol_name)).append(LS); } - var protocolManagerTemplate = ClassUtils.getFileFromClassPathToString("lua/ProtocolManagerTemplate.lua"); var placeholderMap = Map.of( CodeTemplatePlaceholder.protocol_imports, protocol_imports.toString() @@ -167,6 +164,7 @@ public class CodeGenerateLua implements ICodeGenerate { public void defaultProtocol(List registrations) throws IOException { createTemplateFile(); + var protocol_imports = new StringBuilder(); var protocol_manager_registrations = new StringBuilder(); for (var registration : registrations) { diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/typescript/CodeGenerateTypeScript.java b/protocol/src/main/java/com/zfoo/protocol/serializer/typescript/CodeGenerateTypeScript.java index 554de299..ebd8c970 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/typescript/CodeGenerateTypeScript.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/typescript/CodeGenerateTypeScript.java @@ -81,9 +81,9 @@ public class CodeGenerateTypeScript implements ICodeGenerate { public void mergerProtocol(List registrations) throws IOException { createTemplateFile(); + // 生成ProtocolManager.ts文件 var protocolManagerTemplate = ClassUtils.getFileFromClassPathToString("typescript/ProtocolManagerTemplate.ts"); - var protocol_imports_manager = new StringBuilder(); var protocol_manager_registrations = new StringBuilder(); protocol_imports_manager.append("import Protocols from './Protocols';").append(LS); @@ -119,7 +119,6 @@ public class CodeGenerateTypeScript implements ICodeGenerate { protocol_class.append(formatProtocolTemplate).append(LS); protocol_registration.append(StringUtils.format("static {} = {}", protocol_name, protocol_name)).append(LS); } - var protocolTemplate = ClassUtils.getFileFromClassPathToString("typescript/ProtocolsTemplate.ts"); var formatProtocolTemplate = CodeTemplatePlaceholder.formatTemplate(protocolTemplate, Map.of( CodeTemplatePlaceholder.protocol_imports, protocol_imports_protocols.toString() @@ -136,9 +135,9 @@ public class CodeGenerateTypeScript implements ICodeGenerate { public void foldProtocol(List registrations) throws IOException { createTemplateFile(); + // 生成ProtocolManager.ts文件 var protocolManagerTemplate = ClassUtils.getFileFromClassPathToString("typescript/ProtocolManagerTemplate.ts"); - var protocol_imports = new StringBuilder(); var protocol_manager_registrations = new StringBuilder(); for (var registration : registrations) { @@ -154,11 +153,11 @@ public class CodeGenerateTypeScript implements ICodeGenerate { FileUtils.writeStringToFile(protocolManagerFile, formatProtocolManagerTemplate, true); logger.info("Generated TypeScript protocol manager file:[{}] is in path:[{}]", protocolManagerFile.getName(), protocolManagerFile.getAbsolutePath()); + for (var registration : registrations) { var protocol_id = registration.protocolId(); var protocol_name = registration.protocolConstructor().getDeclaringClass().getSimpleName(); var protocolTemplate = ClassUtils.getFileFromClassPathToString("typescript/ProtocolTemplate.ts"); - var formatProtocolTemplate = CodeTemplatePlaceholder.formatTemplate(protocolTemplate, Map.of( CodeTemplatePlaceholder.protocol_id, String.valueOf(protocol_id) , CodeTemplatePlaceholder.protocol_name, protocol_name @@ -168,7 +167,6 @@ public class CodeGenerateTypeScript implements ICodeGenerate { , CodeTemplatePlaceholder.protocol_write_serialization, protocol_write_serialization(registration) , CodeTemplatePlaceholder.protocol_read_deserialization, protocol_read_deserialization(registration) )); - var outputPath = StringUtils.format("{}/{}/{}.ts", protocolOutputPath, GenerateProtocolPath.protocolPathSlash(protocol_id), protocol_name); var file = new File(outputPath); FileUtils.writeStringToFile(file, formatProtocolTemplate, true); @@ -180,9 +178,9 @@ public class CodeGenerateTypeScript implements ICodeGenerate { public void defaultProtocol(List registrations) throws IOException { createTemplateFile(); + // 生成ProtocolManager.ts文件 var protocolManagerTemplate = ClassUtils.getFileFromClassPathToString("typescript/ProtocolManagerTemplate.ts"); - var protocol_imports = new StringBuilder(); var protocol_manager_registrations = new StringBuilder(); for (var registration : registrations) { @@ -191,7 +189,6 @@ public class CodeGenerateTypeScript implements ICodeGenerate { protocol_imports.append(StringUtils.format("import {} from './{}';", protocol_name, protocol_name)).append(LS); protocol_manager_registrations.append(StringUtils.format("protocols.set({}, {});", protocol_id, protocol_name)).append(LS); } - var placeholderMap = Map.of(CodeTemplatePlaceholder.protocol_imports, protocol_imports.toString() , CodeTemplatePlaceholder.protocol_manager_registrations, protocol_manager_registrations.toString()); var formatProtocolManagerTemplate = CodeTemplatePlaceholder.formatTemplate(protocolManagerTemplate, placeholderMap); @@ -199,11 +196,11 @@ public class CodeGenerateTypeScript implements ICodeGenerate { FileUtils.writeStringToFile(protocolManagerFile, formatProtocolManagerTemplate, true); logger.info("Generated TypeScript protocol manager file:[{}] is in path:[{}]", protocolManagerFile.getName(), protocolManagerFile.getAbsolutePath()); + for (var registration : registrations) { var protocol_id = registration.protocolId(); var protocol_name = registration.protocolConstructor().getDeclaringClass().getSimpleName(); var protocolTemplate = ClassUtils.getFileFromClassPathToString("typescript/ProtocolTemplate.ts"); - var formatProtocolTemplate = CodeTemplatePlaceholder.formatTemplate(protocolTemplate, Map.of( CodeTemplatePlaceholder.protocol_id, String.valueOf(protocol_id) , CodeTemplatePlaceholder.protocol_name, protocol_name @@ -213,7 +210,6 @@ public class CodeGenerateTypeScript implements ICodeGenerate { , CodeTemplatePlaceholder.protocol_write_serialization, protocol_write_serialization(registration) , CodeTemplatePlaceholder.protocol_read_deserialization, protocol_read_deserialization(registration) )); - var outputPath = StringUtils.format("{}/{}.ts", protocolOutputPath, protocol_name); var file = new File(outputPath); FileUtils.writeStringToFile(file, formatProtocolTemplate, true);