From 93b34127fcfc953f6158a4c87124337142c3b397 Mon Sep 17 00:00:00 2001 From: godotg Date: Wed, 29 May 2024 14:53:31 +0800 Subject: [PATCH] ref[Python]: refactor generate python protocol --- .../generate/GenerateProtocolPath.java | 42 ------------------- .../serializer/cpp/CodeGenerateCpp.java | 2 +- .../serializer/csharp/CodeGenerateCsharp.java | 5 +-- .../ecmascript/CodeGenerateEcmaScript.java | 6 +-- .../serializer/gdscript/GenerateGdUtils.java | 8 ++-- .../javascript/CodeGenerateJavaScript.java | 2 +- .../typescript/CodeGenerateTypeScript.java | 2 +- 7 files changed, 11 insertions(+), 56 deletions(-) diff --git a/protocol/src/main/java/com/zfoo/protocol/generate/GenerateProtocolPath.java b/protocol/src/main/java/com/zfoo/protocol/generate/GenerateProtocolPath.java index 71ee288a..694e6d71 100644 --- a/protocol/src/main/java/com/zfoo/protocol/generate/GenerateProtocolPath.java +++ b/protocol/src/main/java/com/zfoo/protocol/generate/GenerateProtocolPath.java @@ -43,48 +43,6 @@ public abstract class GenerateProtocolPath { protocolPathMap = null; } - public static String protocolAbsolutePath(short protocolId, CodeLanguage language) { - var path = protocolPathSlash(protocolId); - var name = EnhanceObjectProtocolSerializer.getProtocolClassSimpleName(protocolId); - if (StringUtils.isBlank(path)) { - path = name; - } else { - path = StringUtils.format("{}/{}", path, name); - } - - switch (language) { - case Cpp: - break; - case Go: - break; - case JavaScript: - break; - case EcmaScript: - break; - case TypeScript: - break; - case CSharp: - break; - case Protobuf: - break; - case Lua: - break; - case GdScript: - break; - case Python: - if (StringUtils.isBlank(protocolPathSlash(protocolId))) { - path = StringUtils.PERIOD; - } else { - path = StringUtils.substringBeforeLast(path, StringUtils.SLASH); - path = path.replaceAll(StringUtils.SLASH, StringUtils.PERIOD); - } - break; - case Enhance: - break; - } - return path; - } - /** * 获取协议生成的路径 */ 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 387e7d46..01487621 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 @@ -133,7 +133,7 @@ public class CodeGenerateCpp implements ICodeGenerate { for (var registration : registrations) { var protocol_id = registration.protocolId(); var protocol_name = registration.protocolConstructor().getDeclaringClass().getSimpleName(); - protocol_imports.append(StringUtils.format("#include \"{}/{}.h\"", protocolOutputRootPath, GenerateProtocolPath.protocolAbsolutePath(protocol_id, CodeLanguage.Cpp))).append(LS); + protocol_imports.append(StringUtils.format("#include \"{}/{}/{}.h\"", protocolOutputRootPath, GenerateProtocolPath.protocolPathSlash(protocol_id), protocol_name)).append(LS); protocol_manager_registrations.append(StringUtils.format("protocols[{}] = new {}Registration();", protocol_id, protocol_name)).append(LS); } var placeholderMap = Map.of(CodeTemplatePlaceholder.protocol_imports, protocol_imports.toString() 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 ece06bfb..ee9ffc7c 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 @@ -207,9 +207,8 @@ public class CodeGenerateCsharp implements ICodeGenerate { for (var protocol : protocolList) { var protocolId = protocol.protocolId(); var protocolName = protocol.protocolConstructor().getDeclaringClass().getSimpleName(); - var path = GenerateProtocolPath.protocolAbsolutePath(protocolId, CodeLanguage.CSharp); - csBuilder.append(StringUtils.format("protocols[{}] = new {}Registration();", protocolId, protocolName, path)).append(LS); - csBuilder.append(StringUtils.format("protocolIdMap[typeof({})] = {};", protocolName, protocolId, path)).append(LS); + csBuilder.append(StringUtils.format("protocols[{}] = new {}Registration();", protocolId, protocolName, protocolName)).append(LS); + csBuilder.append(StringUtils.format("protocolIdMap[typeof({})] = {};", protocolName, protocolId, protocolName)).append(LS); } return csBuilder.toString(); } 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 7a94068e..b86cdac5 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 @@ -109,7 +109,7 @@ public class CodeGenerateEcmaScript implements ICodeGenerate { var protocolTemplate = ClassUtils.getFileFromClassPathToString("ecmascript/ProtocolsTemplate.mjs"); var formatProtocolTemplate = CodeTemplatePlaceholder.formatTemplate(protocolTemplate, Map.of( CodeTemplatePlaceholder.protocol_class, protocol_class.toString() - , CodeTemplatePlaceholder.protocol_registration, protocol_registration.toString() + , CodeTemplatePlaceholder.protocol_registration, protocol_registration.toString() )); var outputPath = StringUtils.format("{}/Protocols.mjs", protocolOutputPath); var file = new File(outputPath); @@ -129,7 +129,7 @@ public class CodeGenerateEcmaScript implements ICodeGenerate { for (var protocol : registrations) { var protocol_id = protocol.protocolId(); var protocol_name = protocol.protocolConstructor().getDeclaringClass().getSimpleName(); - protocol_imports.append(StringUtils.format("import {} from './{}.mjs';", protocol_name, GenerateProtocolPath.protocolAbsolutePath(protocol.protocolId(), CodeLanguage.EcmaScript))).append(LS); + protocol_imports.append(StringUtils.format("import {} from './{}/{}.mjs';", protocol_name, GenerateProtocolPath.protocolPathSlash(protocol.protocolId()), 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() @@ -163,7 +163,7 @@ public class CodeGenerateEcmaScript implements ICodeGenerate { for (var protocol : registrations) { var protocol_id = protocol.protocolId(); var protocol_name = protocol.protocolConstructor().getDeclaringClass().getSimpleName(); - protocol_imports.append(StringUtils.format("import {} from './{}.mjs';", protocol_name, protocol_name)).append(LS); + protocol_imports.append(StringUtils.format("import {} from './{}.mjs';", 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() diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/gdscript/GenerateGdUtils.java b/protocol/src/main/java/com/zfoo/protocol/serializer/gdscript/GenerateGdUtils.java index 709c62b3..ddc0b0fc 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/gdscript/GenerateGdUtils.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/gdscript/GenerateGdUtils.java @@ -96,8 +96,7 @@ public abstract class GenerateGdUtils { for (var protocol : protocolList) { var protocolId = protocol.protocolId(); var name = protocol.protocolConstructor().getDeclaringClass().getSimpleName(); - var path = GenerateProtocolPath.protocolAbsolutePath(protocolId, CodeLanguage.GdScript); - importBuilder.append(StringUtils.format("const {} = preload(\"res://{}/{}.gd\")", name, protocolOutputRootPath, path)).append(LS); + importBuilder.append(StringUtils.format("const {} = preload(\"res://{}/{}/{}.gd\")", name, protocolOutputRootPath, GenerateProtocolPath.protocolPathSlash(protocolId), name)).append(LS); initList.add(StringUtils.format("{}{}: {}", TAB_ASCII, protocolId, name)); } var initProtocols = StringUtils.joinWith(StringUtils.COMMA + LS, initList.toArray()); @@ -140,8 +139,7 @@ public abstract class GenerateGdUtils { var gdBuilder = new StringBuilder(); for (var subProtocolId : subProtocols) { var name = EnhanceObjectProtocolSerializer.getProtocolClassSimpleName(subProtocolId); - var path = GenerateProtocolPath.protocolAbsolutePath(subProtocolId, CodeLanguage.GdScript); - gdBuilder.append(StringUtils.format("const {} = preload(\"res://{}/{}.gd\")", name, protocolOutputRootPath, path)).append(LS); + gdBuilder.append(StringUtils.format("const {} = preload(\"res://{}/{}/{}.gd\")", name, protocolOutputRootPath, GenerateProtocolPath.protocolPathSlash(protocolId), name)).append(LS); } return gdBuilder.toString(); } @@ -159,7 +157,7 @@ public abstract class GenerateGdUtils { var fieldName = field.getName(); // 生成注释 var fieldNotes = GenerateProtocolNote.fieldNotes(protocolId, fieldName, CodeLanguage.GdScript); - for(var fieldNote : fieldNotes) { + for (var fieldNote : fieldNotes) { gdBuilder.append(fieldNote).append(LS); } var fieldType = gdSerializer(fieldRegistration.serializer()).fieldType(field, fieldRegistration); 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 35eb0eef..06dd6909 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 @@ -134,7 +134,7 @@ public class CodeGenerateJavaScript implements ICodeGenerate { for (var registration : registrations) { var protocol_id = registration.protocolId(); var protocol_name = registration.protocolConstructor().getDeclaringClass().getSimpleName(); - protocol_imports.append(StringUtils.format("import {} from './{}.js';", protocol_name, GenerateProtocolPath.protocolAbsolutePath(registration.protocolId(), CodeLanguage.JavaScript))).append(LS); + protocol_imports.append(StringUtils.format("import {} from './{}/{}.js';", protocol_name, GenerateProtocolPath.protocolPathSlash(registration.protocolId()), 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() 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 ebd8c970..09bcd6c6 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 @@ -143,7 +143,7 @@ public class CodeGenerateTypeScript implements ICodeGenerate { for (var registration : registrations) { var protocol_id = registration.protocolId(); var protocol_name = registration.protocolConstructor().getDeclaringClass().getSimpleName(); - protocol_imports.append(StringUtils.format("import {} from './{}';", protocol_name, GenerateProtocolPath.protocolAbsolutePath(protocol_id, CodeLanguage.TypeScript))).append(LS); + protocol_imports.append(StringUtils.format("import {} from './{}/{}';", protocol_name, GenerateProtocolPath.protocolPathSlash(protocol_id), 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()