From d04c03d6b0261f33bff8140f9e431a8b2d547bbb Mon Sep 17 00:00:00 2001 From: godotg Date: Mon, 27 May 2024 11:44:07 +0800 Subject: [PATCH] ref[javascript]: refactor generate Javascript protocol --- .../generate/GenerateProtocolFile.java | 14 +- .../protocol/registration/EnhanceUtils.java | 2 +- .../registration/ProtocolAnalysis.java | 3 - .../protocol/serializer/CodeLanguage.java | 3 +- .../serializer/CutDownArraySerializer.java | 4 +- .../serializer/CutDownListSerializer.java | 4 +- .../serializer/CutDownMapSerializer.java | 4 +- .../serializer/CutDownSetSerializer.java | 4 +- .../serializer/cpp/CodeGenerateCpp.java | 12 +- .../serializer/cpp/CppArraySerializer.java | 12 +- .../serializer/cpp/CppBooleanSerializer.java | 2 +- .../serializer/cpp/CppByteSerializer.java | 2 +- .../serializer/cpp/CppDoubleSerializer.java | 2 +- .../serializer/cpp/CppFloatSerializer.java | 2 +- .../serializer/cpp/CppIntSerializer.java | 2 +- .../serializer/cpp/CppListSerializer.java | 8 +- .../serializer/cpp/CppLongSerializer.java | 2 +- .../serializer/cpp/CppMapSerializer.java | 10 +- .../cpp/CppObjectProtocolSerializer.java | 4 +- .../serializer/cpp/CppSetSerializer.java | 8 +- .../serializer/cpp/CppShortSerializer.java | 2 +- .../serializer/cpp/CppStringSerializer.java | 2 +- .../serializer/csharp/CodeGenerateCsharp.java | 7 +- .../serializer/csharp/CsArraySerializer.java | 12 +- .../csharp/CsBooleanSerializer.java | 2 +- .../serializer/csharp/CsByteSerializer.java | 2 +- .../serializer/csharp/CsDoubleSerializer.java | 2 +- .../serializer/csharp/CsFloatSerializer.java | 2 +- .../serializer/csharp/CsIntSerializer.java | 2 +- .../serializer/csharp/CsListSerializer.java | 12 +- .../serializer/csharp/CsLongSerializer.java | 2 +- .../serializer/csharp/CsMapSerializer.java | 12 +- .../csharp/CsObjectProtocolSerializer.java | 2 +- .../serializer/csharp/CsSetSerializer.java | 8 +- .../serializer/csharp/CsShortSerializer.java | 2 +- .../serializer/csharp/CsStringSerializer.java | 2 +- .../enhance/EnhanceArraySerializer.java | 16 +- .../enhance/EnhanceBooleanSerializer.java | 4 +- .../enhance/EnhanceByteSerializer.java | 4 +- .../enhance/EnhanceDoubleSerializer.java | 4 +- .../enhance/EnhanceFloatSerializer.java | 4 +- .../enhance/EnhanceIntSerializer.java | 4 +- .../enhance/EnhanceListSerializer.java | 14 +- .../enhance/EnhanceLongSerializer.java | 4 +- .../enhance/EnhanceMapSerializer.java | 18 +- .../EnhanceObjectProtocolSerializer.java | 4 +- .../enhance/EnhanceSetSerializer.java | 14 +- .../enhance/EnhanceShortSerializer.java | 4 +- .../enhance/EnhanceStringSerializer.java | 4 +- .../serializer/es/EsArraySerializer.java | 8 +- .../serializer/es/EsBooleanSerializer.java | 2 +- .../serializer/es/EsByteSerializer.java | 2 +- .../serializer/es/EsDoubleSerializer.java | 2 +- .../serializer/es/EsFloatSerializer.java | 2 +- .../serializer/es/EsIntSerializer.java | 2 +- .../serializer/es/EsListSerializer.java | 8 +- .../serializer/es/EsLongSerializer.java | 2 +- .../serializer/es/EsMapSerializer.java | 10 +- .../es/EsObjectProtocolSerializer.java | 2 +- .../serializer/es/EsSetSerializer.java | 8 +- .../serializer/es/EsShortSerializer.java | 2 +- .../serializer/es/EsStringSerializer.java | 2 +- .../serializer/es/GenerateEsUtils.java | 6 +- .../gdscript/GdArraySerializer.java | 8 +- .../gdscript/GdBooleanSerializer.java | 2 +- .../serializer/gdscript/GdByteSerializer.java | 2 +- .../gdscript/GdDoubleSerializer.java | 2 +- .../gdscript/GdFloatSerializer.java | 2 +- .../serializer/gdscript/GdIntSerializer.java | 2 +- .../serializer/gdscript/GdListSerializer.java | 8 +- .../serializer/gdscript/GdLongSerializer.java | 2 +- .../serializer/gdscript/GdMapSerializer.java | 10 +- .../gdscript/GdObjectProtocolSerializer.java | 2 +- .../serializer/gdscript/GdSetSerializer.java | 8 +- .../gdscript/GdShortSerializer.java | 2 +- .../gdscript/GdStringSerializer.java | 2 +- .../serializer/gdscript/GenerateGdUtils.java | 6 +- .../serializer/go/GenerateGoUtils.java | 5 +- .../serializer/go/GoArraySerializer.java | 14 +- .../serializer/go/GoBooleanSerializer.java | 3 +- .../serializer/go/GoByteSerializer.java | 3 +- .../serializer/go/GoDoubleSerializer.java | 2 +- .../serializer/go/GoFloatSerializer.java | 2 +- .../serializer/go/GoIntSerializer.java | 2 +- .../serializer/go/GoListSerializer.java | 12 +- .../serializer/go/GoLongSerializer.java | 2 +- .../serializer/go/GoMapSerializer.java | 12 +- .../go/GoObjectProtocolSerializer.java | 2 +- .../serializer/go/GoSetSerializer.java | 12 +- .../serializer/go/GoShortSerializer.java | 2 +- .../serializer/go/GoStringSerializer.java | 2 +- .../javascript/CodeGenerateJavascript.java | 309 ++++++++++++++++++ .../javascript/GenerateJsUtils.java | 199 ----------- .../javascript/JsArraySerializer.java | 12 +- .../javascript/JsBooleanSerializer.java | 2 +- .../javascript/JsByteSerializer.java | 2 +- .../javascript/JsDoubleSerializer.java | 2 +- .../javascript/JsFloatSerializer.java | 2 +- .../javascript/JsIntSerializer.java | 2 +- .../javascript/JsListSerializer.java | 12 +- .../javascript/JsLongSerializer.java | 2 +- .../javascript/JsMapSerializer.java | 18 +- .../JsObjectProtocolSerializer.java | 2 +- .../javascript/JsSetSerializer.java | 12 +- .../javascript/JsShortSerializer.java | 2 +- .../javascript/JsStringSerializer.java | 2 +- .../serializer/lua/CodeGenerateLua.java | 10 +- .../serializer/lua/LuaArraySerializer.java | 10 +- .../serializer/lua/LuaBooleanSerializer.java | 2 +- .../serializer/lua/LuaByteSerializer.java | 2 +- .../serializer/lua/LuaDoubleSerializer.java | 2 +- .../serializer/lua/LuaFloatSerializer.java | 2 +- .../serializer/lua/LuaIntSerializer.java | 2 +- .../serializer/lua/LuaListSerializer.java | 10 +- .../serializer/lua/LuaLongSerializer.java | 2 +- .../serializer/lua/LuaMapSerializer.java | 10 +- .../lua/LuaObjectProtocolSerializer.java | 2 +- .../serializer/lua/LuaSetSerializer.java | 10 +- .../serializer/lua/LuaShortSerializer.java | 2 +- .../serializer/lua/LuaStringSerializer.java | 2 +- .../serializer/python/GeneratePyUtils.java | 5 +- .../serializer/python/PyArraySerializer.java | 9 +- .../python/PyBooleanSerializer.java | 3 +- .../serializer/python/PyByteSerializer.java | 3 +- .../serializer/python/PyDoubleSerializer.java | 3 +- .../serializer/python/PyFloatSerializer.java | 3 +- .../serializer/python/PyIntSerializer.java | 3 +- .../serializer/python/PyListSerializer.java | 9 +- .../serializer/python/PyLongSerializer.java | 3 +- .../serializer/python/PyMapSerializer.java | 11 +- .../python/PyObjectProtocolSerializer.java | 3 +- .../serializer/python/PySetSerializer.java | 9 +- .../serializer/python/PyShortSerializer.java | 3 +- .../serializer/python/PyStringSerializer.java | 3 +- .../typescript/GenerateTsUtils.java | 6 +- .../typescript/TsArraySerializer.java | 8 +- .../typescript/TsBooleanSerializer.java | 2 +- .../typescript/TsByteSerializer.java | 2 +- .../typescript/TsDoubleSerializer.java | 2 +- .../typescript/TsFloatSerializer.java | 2 +- .../typescript/TsIntSerializer.java | 2 +- .../typescript/TsListSerializer.java | 8 +- .../typescript/TsLongSerializer.java | 2 +- .../typescript/TsMapSerializer.java | 10 +- .../TsObjectProtocolSerializer.java | 2 +- .../typescript/TsSetSerializer.java | 8 +- .../typescript/TsShortSerializer.java | 2 +- .../typescript/TsStringSerializer.java | 2 +- .../resources/es/ProtocolManagerTemplate.mjs | 2 +- .../javascript/ProtocolClassTemplate.js | 4 + .../javascript/ProtocolManagerTemplate.js | 6 +- .../ProtocolRegistrationTemplate.js | 27 ++ .../resources/javascript/ProtocolTemplate.js | 35 +- .../resources/javascript/ProtocolsTemplate.js | 7 + .../resources/lua/ProtocolManagerTemplate.lua | 2 +- .../typescript/ProtocolManagerTemplate.ts | 5 +- 156 files changed, 702 insertions(+), 628 deletions(-) create mode 100644 protocol/src/main/java/com/zfoo/protocol/serializer/javascript/CodeGenerateJavascript.java delete mode 100644 protocol/src/main/java/com/zfoo/protocol/serializer/javascript/GenerateJsUtils.java create mode 100644 protocol/src/main/resources/javascript/ProtocolClassTemplate.js create mode 100644 protocol/src/main/resources/javascript/ProtocolRegistrationTemplate.js create mode 100644 protocol/src/main/resources/javascript/ProtocolsTemplate.js diff --git a/protocol/src/main/java/com/zfoo/protocol/generate/GenerateProtocolFile.java b/protocol/src/main/java/com/zfoo/protocol/generate/GenerateProtocolFile.java index ad4c6ff2..a57ad485 100644 --- a/protocol/src/main/java/com/zfoo/protocol/generate/GenerateProtocolFile.java +++ b/protocol/src/main/java/com/zfoo/protocol/generate/GenerateProtocolFile.java @@ -22,7 +22,6 @@ import com.zfoo.protocol.serializer.CodeLanguage; import com.zfoo.protocol.serializer.es.GenerateEsUtils; import com.zfoo.protocol.serializer.gdscript.GenerateGdUtils; import com.zfoo.protocol.serializer.go.GenerateGoUtils; -import com.zfoo.protocol.serializer.javascript.GenerateJsUtils; import com.zfoo.protocol.serializer.python.GeneratePyUtils; import com.zfoo.protocol.serializer.typescript.GenerateTsUtils; import com.zfoo.protocol.util.FileUtils; @@ -32,7 +31,6 @@ import com.zfoo.protocol.util.StringUtils; import java.io.IOException; import java.lang.reflect.Field; import java.util.*; -import java.util.concurrent.atomic.AtomicInteger; import java.util.function.Predicate; import static com.zfoo.protocol.util.StringUtils.TAB; @@ -49,7 +47,7 @@ public abstract class GenerateProtocolFile { */ public static Predicate generateProtocolFilter = registration -> true; - public static AtomicInteger index = new AtomicInteger(); + public static int localVariableId = 0; public static StringBuilder addTab(StringBuilder builder, int deep) { builder.append(TAB.repeat(Math.max(0, deep))); @@ -131,16 +129,6 @@ public abstract class GenerateProtocolFile { } } - - // 生成Javascript协议 - if (generateLanguages.contains(CodeLanguage.JavaScript)) { - GenerateJsUtils.init(generateOperation); - for (var protocolRegistration : generateProtocols) { - GenerateJsUtils.createJsProtocolFile((ProtocolRegistration) protocolRegistration); - } - GenerateJsUtils.createProtocolManager(generateProtocols); - } - // 生成Javascript协议 if (generateLanguages.contains(CodeLanguage.ES)) { GenerateEsUtils.init(generateOperation); diff --git a/protocol/src/main/java/com/zfoo/protocol/registration/EnhanceUtils.java b/protocol/src/main/java/com/zfoo/protocol/registration/EnhanceUtils.java index d6dc4c49..57e0c984 100644 --- a/protocol/src/main/java/com/zfoo/protocol/registration/EnhanceUtils.java +++ b/protocol/src/main/java/com/zfoo/protocol/registration/EnhanceUtils.java @@ -107,7 +107,7 @@ public abstract class EnhanceUtils { * @return 返回类的名称格式:EnhanceUtilsProtocolRegistration1 */ public static IProtocolRegistration createProtocolRegistration(ProtocolRegistration registration) throws NotFoundException, CannotCompileException, NoSuchMethodException, IllegalAccessException, InvocationTargetException, InstantiationException { - GenerateProtocolFile.index.set(0); + GenerateProtocolFile.localVariableId = 0; var classPool = ClassPool.getDefault(); var protocolId = registration.getId(); diff --git a/protocol/src/main/java/com/zfoo/protocol/registration/ProtocolAnalysis.java b/protocol/src/main/java/com/zfoo/protocol/registration/ProtocolAnalysis.java index 4be7a8df..4d6f0ee6 100644 --- a/protocol/src/main/java/com/zfoo/protocol/registration/ProtocolAnalysis.java +++ b/protocol/src/main/java/com/zfoo/protocol/registration/ProtocolAnalysis.java @@ -25,10 +25,8 @@ import com.zfoo.protocol.generate.GenerateProtocolFile; import com.zfoo.protocol.generate.GenerateProtocolNote; import com.zfoo.protocol.generate.GenerateProtocolPath; import com.zfoo.protocol.registration.field.*; -import com.zfoo.protocol.serializer.cpp.CodeGenerateCpp; import com.zfoo.protocol.serializer.gdscript.GenerateGdUtils; import com.zfoo.protocol.serializer.go.GenerateGoUtils; -import com.zfoo.protocol.serializer.javascript.GenerateJsUtils; import com.zfoo.protocol.serializer.python.GeneratePyUtils; import com.zfoo.protocol.serializer.reflect.*; import com.zfoo.protocol.serializer.typescript.GenerateTsUtils; @@ -399,7 +397,6 @@ public class ProtocolAnalysis { GenerateProtocolNote.clear(); GenerateProtocolPath.clear(); GenerateGoUtils.clear(); - GenerateJsUtils.clear(); GenerateTsUtils.clear(); GenerateGdUtils.clear(); GeneratePyUtils.clear(); diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/CodeLanguage.java b/protocol/src/main/java/com/zfoo/protocol/serializer/CodeLanguage.java index 7b8c53f3..c2cedfd3 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/CodeLanguage.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/CodeLanguage.java @@ -14,6 +14,7 @@ package com.zfoo.protocol.serializer; import com.zfoo.protocol.serializer.cpp.CodeGenerateCpp; import com.zfoo.protocol.serializer.csharp.CodeGenerateCsharp; +import com.zfoo.protocol.serializer.javascript.CodeGenerateJavascript; import com.zfoo.protocol.serializer.lua.CodeGenerateLua; /** @@ -30,7 +31,7 @@ public enum CodeLanguage { Go(1 << 2, null), - JavaScript(1 << 3, null), + JavaScript(1 << 3, CodeGenerateJavascript.class), ES(1 << 4, null), diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/CutDownArraySerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/CutDownArraySerializer.java index eb373de3..162e28f8 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/CutDownArraySerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/CutDownArraySerializer.java @@ -508,7 +508,7 @@ public class CutDownArraySerializer implements ICutDownSerializer { var arrayField = (ArrayField) fieldRegistration; var arrayName = getArrayClassName(arrayField); - var array = "array" + GenerateProtocolFile.index.getAndIncrement(); + var array = "array" + GenerateProtocolFile.localVariableId++; var flag = true; switch (arrayName) { @@ -1031,7 +1031,7 @@ public class CutDownArraySerializer implements ICutDownSerializer { if (flag) { return array; } else { - GenerateProtocolFile.index.getAndDecrement(); + GenerateProtocolFile.localVariableId--; return null; } } diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/CutDownListSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/CutDownListSerializer.java index 167cd50e..25ad6cde 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/CutDownListSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/CutDownListSerializer.java @@ -311,7 +311,7 @@ public class CutDownListSerializer implements ICutDownSerializer { @Override public String readObject(StringBuilder builder, Field field, IFieldRegistration fieldRegistration, CodeLanguage language) { var listField = (ListField) fieldRegistration; - var list = "list" + GenerateProtocolFile.index.getAndIncrement(); + var list = "list" + GenerateProtocolFile.localVariableId++; var flag = true; var listName = getListClassName(listField); @@ -613,7 +613,7 @@ public class CutDownListSerializer implements ICutDownSerializer { if (flag) { return list; } else { - GenerateProtocolFile.index.getAndDecrement(); + GenerateProtocolFile.localVariableId--; return null; } } diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/CutDownMapSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/CutDownMapSerializer.java index cb87d06e..b3fd4e36 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/CutDownMapSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/CutDownMapSerializer.java @@ -369,7 +369,7 @@ public class CutDownMapSerializer implements ICutDownSerializer { var keySerializer = keyRegistration.serializer(); var valueSerializer = valueRegistration.serializer(); - var map = "map" + GenerateProtocolFile.index.getAndIncrement(); + var map = "map" + GenerateProtocolFile.localVariableId++; if (keyRegistration instanceof BaseField) { if (keySerializer == IntSerializer.INSTANCE) { @@ -730,7 +730,7 @@ public class CutDownMapSerializer implements ICutDownSerializer { } } } - GenerateProtocolFile.index.getAndDecrement(); + GenerateProtocolFile.localVariableId--; return null; } } diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/CutDownSetSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/CutDownSetSerializer.java index 2fabe4a5..74b9bd7f 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/CutDownSetSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/CutDownSetSerializer.java @@ -327,7 +327,7 @@ public class CutDownSetSerializer implements ICutDownSerializer { @Override public String readObject(StringBuilder builder, Field field, IFieldRegistration fieldRegistration, CodeLanguage language) { var setField = (SetField) fieldRegistration; - var set = "set" + GenerateProtocolFile.index.getAndIncrement(); + var set = "set" + GenerateProtocolFile.localVariableId++; var flag = true; var setName = getSetClassName(setField); @@ -629,7 +629,7 @@ public class CutDownSetSerializer implements ICutDownSerializer { if (flag) { return set; } else { - GenerateProtocolFile.index.getAndDecrement(); + GenerateProtocolFile.localVariableId--; return null; } } 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 13bdffa8..3e6fed80 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 @@ -103,7 +103,6 @@ public class CodeGenerateCpp implements ICodeGenerate { var protocol_class = new StringBuilder(); var protocol_registration = new StringBuilder(); for (var registration : GenerateProtocolFile.subProtocolFirst(registrations)) { - GenerateProtocolFile.index.set(0); var protocol_id = registration.protocolId(); // protocol @@ -116,7 +115,7 @@ public class CodeGenerateCpp implements ICodeGenerate { var protocolTemplate = ClassUtils.getFileFromClassPathToString("cpp/ProtocolsTemplate.h"); var formatProtocolTemplate = CodeTemplatePlaceholder.formatTemplate(protocolTemplate, Map.of( CodeTemplatePlaceholder.protocol_root_path, protocolOutputRootPath - ,CodeTemplatePlaceholder.protocol_class, protocol_class.toString() + , CodeTemplatePlaceholder.protocol_class, protocol_class.toString() , CodeTemplatePlaceholder.protocol_registration, protocol_registration.toString() )); var outputPath = StringUtils.format("{}/Protocols.h", protocolOutputPath); @@ -153,7 +152,7 @@ public class CodeGenerateCpp implements ICodeGenerate { var protocolTemplate = ClassUtils.getFileFromClassPathToString("cpp/ProtocolTemplate.h"); var formatProtocolTemplate = CodeTemplatePlaceholder.formatTemplate(protocolTemplate, Map.of( CodeTemplatePlaceholder.protocol_root_path, protocolOutputRootPath - ,CodeTemplatePlaceholder.protocol_name, protocol_name + , CodeTemplatePlaceholder.protocol_name, protocol_name , CodeTemplatePlaceholder.protocol_imports, protocol_imports_fold(registration) , CodeTemplatePlaceholder.protocol_class, protocol_class(registration) , CodeTemplatePlaceholder.protocol_registration, protocol_registration(registration) @@ -192,7 +191,7 @@ public class CodeGenerateCpp implements ICodeGenerate { var protocolTemplate = ClassUtils.getFileFromClassPathToString("cpp/ProtocolTemplate.h"); var formatProtocolTemplate = CodeTemplatePlaceholder.formatTemplate(protocolTemplate, Map.of( CodeTemplatePlaceholder.protocol_root_path, protocolOutputRootPath - ,CodeTemplatePlaceholder.protocol_name, protocol_name + , CodeTemplatePlaceholder.protocol_name, protocol_name , CodeTemplatePlaceholder.protocol_imports, protocol_imports_default(registration) , CodeTemplatePlaceholder.protocol_class, protocol_class(registration) , CodeTemplatePlaceholder.protocol_registration, protocol_registration(registration) @@ -236,8 +235,7 @@ public class CodeGenerateCpp implements ICodeGenerate { var protocolRegistrationTemplate = ClassUtils.getFileFromClassPathToString("cpp/ProtocolRegistrationTemplate.h"); var placeholderMap = Map.of( - CodeTemplatePlaceholder.protocol_note, GenerateProtocolNote.protocol_note(protocol_id, CodeLanguage.Cpp) - , CodeTemplatePlaceholder.protocol_name, protocol_class_name + CodeTemplatePlaceholder.protocol_name, protocol_class_name , CodeTemplatePlaceholder.protocol_id, String.valueOf(protocol_id) , CodeTemplatePlaceholder.protocol_write_serialization, protocol_write_serialization(registration) , CodeTemplatePlaceholder.protocol_read_deserialization, protocol_read_deserialization(registration) @@ -298,6 +296,7 @@ public class CodeGenerateCpp implements ICodeGenerate { } private String protocol_write_serialization(ProtocolRegistration registration) { + GenerateProtocolFile.localVariableId = 0; var fields = registration.getFields(); var fieldRegistrations = registration.getFieldRegistrations(); var cppBuilder = new StringBuilder(); @@ -325,6 +324,7 @@ public class CodeGenerateCpp implements ICodeGenerate { private String protocol_read_deserialization(ProtocolRegistration registration) { + GenerateProtocolFile.localVariableId = 0; var fields = registration.getFields(); var fieldRegistrations = registration.getFieldRegistrations(); diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/cpp/CppArraySerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/cpp/CppArraySerializer.java index 6a7b5437..b53390f6 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/cpp/CppArraySerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/cpp/CppArraySerializer.java @@ -46,16 +46,16 @@ public class CppArraySerializer implements ICppSerializer { ArrayField arrayField = (ArrayField) fieldRegistration; - String length = "length" + GenerateProtocolFile.index.getAndIncrement(); + String length = "length" + GenerateProtocolFile.localVariableId++; builder.append(StringUtils.format("int32_t {} = {}.size();", length, objectStr)).append(LS); GenerateProtocolFile.addTab(builder, deep); builder.append(StringUtils.format("buffer.writeInt({});", length)).append(LS); - String i = "i" + GenerateProtocolFile.index.getAndIncrement(); + String i = "i" + GenerateProtocolFile.localVariableId++; GenerateProtocolFile.addTab(builder, deep); builder.append(StringUtils.format("for (auto {} = 0; {} < {}; {}++) {", i, i, length, i)).append(LS); GenerateProtocolFile.addTab(builder, deep + 1); - String element = "element" + GenerateProtocolFile.index.getAndIncrement(); + String element = "element" + GenerateProtocolFile.localVariableId++; builder.append(StringUtils.format("{} {} = {}[{}];", CodeGenerateCpp.toCppClassName(arrayField.getType().getSimpleName()), element, objectStr, i)).append(LS); CodeGenerateCpp.cppSerializer(arrayField.getArrayElementRegistration().serializer()) @@ -75,12 +75,12 @@ public class CppArraySerializer implements ICppSerializer { var arrayField = (ArrayField) fieldRegistration; - var result = "result" + GenerateProtocolFile.index.getAndIncrement(); + var result = "result" + GenerateProtocolFile.localVariableId++; var typeName = CodeGenerateCpp.toCppClassName(arrayField.getType().getSimpleName()); - var i = "index" + GenerateProtocolFile.index.getAndIncrement(); - var size = "size" + GenerateProtocolFile.index.getAndIncrement(); + var i = "index" + GenerateProtocolFile.localVariableId++; + var size = "size" + GenerateProtocolFile.localVariableId++; builder.append(StringUtils.format("int32_t {} = buffer.readInt();", size)).append(LS); GenerateProtocolFile.addTab(builder, deep); diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/cpp/CppBooleanSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/cpp/CppBooleanSerializer.java index a4c9593c..90b7c3b9 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/cpp/CppBooleanSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/cpp/CppBooleanSerializer.java @@ -40,7 +40,7 @@ public class CppBooleanSerializer implements ICppSerializer { @Override public String readObject(StringBuilder builder, int deep, Field field, IFieldRegistration fieldRegistration) { - String result = "result" + GenerateProtocolFile.index.getAndIncrement(); + String result = "result" + GenerateProtocolFile.localVariableId++; GenerateProtocolFile.addTab(builder, deep); builder.append(StringUtils.format("bool {} = buffer.readBool();", result)).append(LS); diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/cpp/CppByteSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/cpp/CppByteSerializer.java index 2c06e08e..ba68ec0d 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/cpp/CppByteSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/cpp/CppByteSerializer.java @@ -40,7 +40,7 @@ public class CppByteSerializer implements ICppSerializer { @Override public String readObject(StringBuilder builder, int deep, Field field, IFieldRegistration fieldRegistration) { - String result = "result" + GenerateProtocolFile.index.getAndIncrement(); + String result = "result" + GenerateProtocolFile.localVariableId++; GenerateProtocolFile.addTab(builder, deep); builder.append(StringUtils.format("int8_t {} = buffer.readByte();", result)).append(LS); diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/cpp/CppDoubleSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/cpp/CppDoubleSerializer.java index 5fd4ac9e..e79bdc3a 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/cpp/CppDoubleSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/cpp/CppDoubleSerializer.java @@ -40,7 +40,7 @@ public class CppDoubleSerializer implements ICppSerializer { @Override public String readObject(StringBuilder builder, int deep, Field field, IFieldRegistration fieldRegistration) { - String result = "result" + GenerateProtocolFile.index.getAndIncrement(); + String result = "result" + GenerateProtocolFile.localVariableId++; GenerateProtocolFile.addTab(builder, deep); builder.append(StringUtils.format("double {} = buffer.readDouble();", result)).append(LS); diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/cpp/CppFloatSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/cpp/CppFloatSerializer.java index 4fa2c56a..142f231d 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/cpp/CppFloatSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/cpp/CppFloatSerializer.java @@ -40,7 +40,7 @@ public class CppFloatSerializer implements ICppSerializer { @Override public String readObject(StringBuilder builder, int deep, Field field, IFieldRegistration fieldRegistration) { - String result = "result" + GenerateProtocolFile.index.getAndIncrement(); + String result = "result" + GenerateProtocolFile.localVariableId++; GenerateProtocolFile.addTab(builder, deep); builder.append(StringUtils.format("float {} = buffer.readFloat();", result)).append(LS); diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/cpp/CppIntSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/cpp/CppIntSerializer.java index affc4e79..d1e19369 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/cpp/CppIntSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/cpp/CppIntSerializer.java @@ -40,7 +40,7 @@ public class CppIntSerializer implements ICppSerializer { @Override public String readObject(StringBuilder builder, int deep, Field field, IFieldRegistration fieldRegistration) { - String result = "result" + GenerateProtocolFile.index.getAndIncrement(); + String result = "result" + GenerateProtocolFile.localVariableId++; GenerateProtocolFile.addTab(builder, deep); builder.append(StringUtils.format("int32_t {} = buffer.readInt();", result)).append(LS); diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/cpp/CppListSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/cpp/CppListSerializer.java index d8d0e6c6..5c96ef3d 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/cpp/CppListSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/cpp/CppListSerializer.java @@ -50,7 +50,7 @@ public class CppListSerializer implements ICppSerializer { GenerateProtocolFile.addTab(builder, deep); - String i = "i" + GenerateProtocolFile.index.getAndIncrement(); + String i = "i" + GenerateProtocolFile.localVariableId++; builder.append(StringUtils.format("for (auto {} : {}) {", i, objectStr)).append(LS); CodeGenerateCpp.cppSerializer(listField.getListElementRegistration().serializer()) @@ -70,11 +70,11 @@ public class CppListSerializer implements ICppSerializer { var listField = (ListField) fieldRegistration; - var result = "result" + GenerateProtocolFile.index.getAndIncrement(); + var result = "result" + GenerateProtocolFile.localVariableId++; var typeName = CodeGenerateCpp.toCppClassName(listField.getType().toString()); - var i = "index" + GenerateProtocolFile.index.getAndIncrement(); - var size = "size" + GenerateProtocolFile.index.getAndIncrement(); + var i = "index" + GenerateProtocolFile.localVariableId++; + var size = "size" + GenerateProtocolFile.localVariableId++; builder.append(StringUtils.format("int32_t {} = buffer.readInt();", size)).append(LS); GenerateProtocolFile.addTab(builder, deep); diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/cpp/CppLongSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/cpp/CppLongSerializer.java index 9648b186..874e5d09 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/cpp/CppLongSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/cpp/CppLongSerializer.java @@ -40,7 +40,7 @@ public class CppLongSerializer implements ICppSerializer { @Override public String readObject(StringBuilder builder, int deep, Field field, IFieldRegistration fieldRegistration) { - String result = "result" + GenerateProtocolFile.index.getAndIncrement(); + String result = "result" + GenerateProtocolFile.localVariableId++; GenerateProtocolFile.addTab(builder, deep); builder.append(StringUtils.format("auto {} = buffer.readLong();", result)).append(LS); diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/cpp/CppMapSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/cpp/CppMapSerializer.java index a697560f..3dac4a55 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/cpp/CppMapSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/cpp/CppMapSerializer.java @@ -47,8 +47,8 @@ public class CppMapSerializer implements ICppSerializer { MapField mapField = (MapField) fieldRegistration; builder.append(StringUtils.format("buffer.writeInt({}.size());", objectStr)).append(LS); - String key = "keyElement" + GenerateProtocolFile.index.getAndIncrement(); - String value = "valueElement" + GenerateProtocolFile.index.getAndIncrement(); + String key = "keyElement" + GenerateProtocolFile.localVariableId++; + String value = "valueElement" + GenerateProtocolFile.localVariableId++; GenerateProtocolFile.addTab(builder, deep); builder.append(StringUtils.format("for (auto&[{}, {}] : {}) {", key, value, objectStr)).append(LS); @@ -73,18 +73,18 @@ public class CppMapSerializer implements ICppSerializer { } MapField mapField = (MapField) fieldRegistration; - String result = "result" + GenerateProtocolFile.index.getAndIncrement(); + String result = "result" + GenerateProtocolFile.localVariableId++; var typeName = CodeGenerateCpp.toCppClassName(mapField.getType().toString()); - String size = "size" + GenerateProtocolFile.index.getAndIncrement(); + String size = "size" + GenerateProtocolFile.localVariableId++; builder.append(StringUtils.format("int32_t {} = buffer.readInt();", size)).append(LS); GenerateProtocolFile.addTab(builder, deep); builder.append(StringUtils.format("{} {};", typeName, result)).append(LS); - String i = "index" + GenerateProtocolFile.index.getAndIncrement(); + String i = "index" + GenerateProtocolFile.localVariableId++; GenerateProtocolFile.addTab(builder, deep); builder.append(StringUtils.format("for (auto {} = 0; {} < {}; {}++) {", i, i, size, i)).append(LS); diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/cpp/CppObjectProtocolSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/cpp/CppObjectProtocolSerializer.java index e6a28c9a..2a1187db 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/cpp/CppObjectProtocolSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/cpp/CppObjectProtocolSerializer.java @@ -55,8 +55,8 @@ public class CppObjectProtocolSerializer implements ICppSerializer { @Override public String readObject(StringBuilder builder, int deep, Field field, IFieldRegistration fieldRegistration) { ObjectProtocolField objectProtocolField = (ObjectProtocolField) fieldRegistration; - String uniquePtr = "result" + GenerateProtocolFile.index.getAndIncrement(); - String ptr = "result" + GenerateProtocolFile.index.getAndIncrement(); + String uniquePtr = "result" + GenerateProtocolFile.localVariableId++; + String ptr = "result" + GenerateProtocolFile.localVariableId++; var protocolSimpleName = EnhanceObjectProtocolSerializer.getProtocolClassSimpleName(objectProtocolField.getProtocolId()); diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/cpp/CppSetSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/cpp/CppSetSerializer.java index 1507ca9c..a41d62c7 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/cpp/CppSetSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/cpp/CppSetSerializer.java @@ -48,7 +48,7 @@ public class CppSetSerializer implements ICppSerializer { builder.append(StringUtils.format("buffer.writeInt({}.size());", objectStr)).append(LS); - String element = "i" + GenerateProtocolFile.index.getAndIncrement(); + String element = "i" + GenerateProtocolFile.localVariableId++; GenerateProtocolFile.addTab(builder, deep); builder.append(StringUtils.format("for (auto {} : {}) {", element, objectStr)).append(LS); @@ -68,12 +68,12 @@ public class CppSetSerializer implements ICppSerializer { } SetField setField = (SetField) fieldRegistration; - var result = "result" + GenerateProtocolFile.index.getAndIncrement(); + var result = "result" + GenerateProtocolFile.localVariableId++; var typeName = CodeGenerateCpp.toCppClassName(setField.getType().toString()); - var i = "index" + GenerateProtocolFile.index.getAndIncrement(); - var size = "size" + GenerateProtocolFile.index.getAndIncrement(); + var i = "index" + GenerateProtocolFile.localVariableId++; + var size = "size" + GenerateProtocolFile.localVariableId++; builder.append(StringUtils.format("int32_t {} = buffer.readInt();", size)).append(LS); GenerateProtocolFile.addTab(builder, deep); // unity里不支持HashSet的初始化大小 diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/cpp/CppShortSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/cpp/CppShortSerializer.java index 7bbe221e..1be2763a 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/cpp/CppShortSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/cpp/CppShortSerializer.java @@ -40,7 +40,7 @@ public class CppShortSerializer implements ICppSerializer { @Override public String readObject(StringBuilder builder, int deep, Field field, IFieldRegistration fieldRegistration) { - String result = "result" + GenerateProtocolFile.index.getAndIncrement(); + String result = "result" + GenerateProtocolFile.localVariableId++; GenerateProtocolFile.addTab(builder, deep); builder.append(StringUtils.format("auto {} = buffer.readShort();", result)).append(LS); diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/cpp/CppStringSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/cpp/CppStringSerializer.java index 4a1776c0..4b436a60 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/cpp/CppStringSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/cpp/CppStringSerializer.java @@ -40,7 +40,7 @@ public class CppStringSerializer implements ICppSerializer { @Override public String readObject(StringBuilder builder, int deep, Field field, IFieldRegistration fieldRegistration) { - String result = "result" + GenerateProtocolFile.index.getAndIncrement(); + String result = "result" + GenerateProtocolFile.localVariableId++; GenerateProtocolFile.addTab(builder, deep); builder.append(StringUtils.format("auto {} = buffer.readString();", result)).append(LS); 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 26f9d59f..3c143af1 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 @@ -19,7 +19,6 @@ import com.zfoo.protocol.generate.GenerateOperation; import com.zfoo.protocol.generate.GenerateProtocolFile; import com.zfoo.protocol.generate.GenerateProtocolNote; import com.zfoo.protocol.generate.GenerateProtocolPath; -import com.zfoo.protocol.registration.IProtocolRegistration; import com.zfoo.protocol.registration.ProtocolRegistration; import com.zfoo.protocol.registration.field.IFieldRegistration; import com.zfoo.protocol.serializer.CodeLanguage; @@ -89,8 +88,6 @@ public class CodeGenerateCsharp implements ICodeGenerate { var protocol_class = new StringBuilder(); var protocol_registration = new StringBuilder(); for (var protocol_id : protocolIds) { - GenerateProtocolFile.index.set(0); - var registration = (ProtocolRegistration) ProtocolManager.getProtocol(protocol_id); // protocol protocol_class.append(protocol_class(registration)).append(LS); @@ -163,8 +160,6 @@ public class CodeGenerateCsharp implements ICodeGenerate { private String formatProtocolTemplate(ProtocolRegistration registration) { - GenerateProtocolFile.index.set(0); - var protocolTemplate = ClassUtils.getFileFromClassPathToString("csharp/ProtocolTemplate.cs"); return CodeTemplatePlaceholder.formatTemplate(protocolTemplate, Map.of( CodeTemplatePlaceholder.protocol_class, protocol_class(registration) @@ -240,6 +235,7 @@ public class CodeGenerateCsharp implements ICodeGenerate { private String protocol_write_serialization(ProtocolRegistration registration) { + GenerateProtocolFile.localVariableId = 0; var fields = registration.getFields(); var fieldRegistrations = registration.getFieldRegistrations(); var csBuilder = new StringBuilder(); @@ -262,6 +258,7 @@ public class CodeGenerateCsharp implements ICodeGenerate { private String protocol_read_deserialization(ProtocolRegistration registration) { + GenerateProtocolFile.localVariableId = 0; var fields = registration.getFields(); var fieldRegistrations = registration.getFieldRegistrations(); var csBuilder = new StringBuilder(); diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/csharp/CsArraySerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/csharp/CsArraySerializer.java index f3204031..b437e54e 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/csharp/CsArraySerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/csharp/CsArraySerializer.java @@ -53,17 +53,17 @@ public class CsArraySerializer implements ICsSerializer { GenerateProtocolFile.addTab(builder, deep + 1); builder.append(StringUtils.format("buffer.WriteInt({}.Length);", objectStr)).append(LS); GenerateProtocolFile.addTab(builder, deep + 1); - String length = "length" + GenerateProtocolFile.index.getAndIncrement(); + String length = "length" + GenerateProtocolFile.localVariableId++; builder.append(StringUtils.format("int {} = {}.Length;", length, objectStr)).append(LS); - String i = "i" + GenerateProtocolFile.index.getAndIncrement(); + String i = "i" + GenerateProtocolFile.localVariableId++; GenerateProtocolFile.addTab(builder, deep + 1); builder.append(StringUtils.format("for (int {} = 0; {} < {}; {}++)", i, i, length, i)).append(LS); GenerateProtocolFile.addTab(builder, deep + 1); builder.append("{").append(LS); GenerateProtocolFile.addTab(builder, deep + 2); - String element = "element" + GenerateProtocolFile.index.getAndIncrement(); + String element = "element" + GenerateProtocolFile.localVariableId++; builder.append(StringUtils.format("{} {} = {}[{}];", CodeGenerateCsharp.toCsClassName(arrayField.getType().getSimpleName()), element, objectStr, i)).append(LS); CodeGenerateCsharp.csSerializer(arrayField.getArrayElementRegistration().serializer()) @@ -85,12 +85,12 @@ public class CsArraySerializer implements ICsSerializer { var arrayField = (ArrayField) fieldRegistration; - var result = "result" + GenerateProtocolFile.index.getAndIncrement(); + var result = "result" + GenerateProtocolFile.localVariableId++; var typeName = CodeGenerateCsharp.toCsClassName(arrayField.getType().getSimpleName()); - var i = "index" + GenerateProtocolFile.index.getAndIncrement(); - var size = "size" + GenerateProtocolFile.index.getAndIncrement(); + var i = "index" + GenerateProtocolFile.localVariableId++; + var size = "size" + GenerateProtocolFile.localVariableId++; builder.append(StringUtils.format("int {} = buffer.ReadInt();", size)).append(LS); GenerateProtocolFile.addTab(builder, deep); diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/csharp/CsBooleanSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/csharp/CsBooleanSerializer.java index bf4f4a47..0cdbf680 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/csharp/CsBooleanSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/csharp/CsBooleanSerializer.java @@ -34,7 +34,7 @@ public class CsBooleanSerializer implements ICsSerializer { @Override public String readObject(StringBuilder builder, int deep, Field field, IFieldRegistration fieldRegistration) { - String result = "result" + GenerateProtocolFile.index.getAndIncrement(); + String result = "result" + GenerateProtocolFile.localVariableId++; GenerateProtocolFile.addTab(builder, deep); builder.append(StringUtils.format("bool {} = buffer.ReadBool();", result)).append(LS); diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/csharp/CsByteSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/csharp/CsByteSerializer.java index c910dfdd..78f53249 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/csharp/CsByteSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/csharp/CsByteSerializer.java @@ -34,7 +34,7 @@ public class CsByteSerializer implements ICsSerializer { @Override public String readObject(StringBuilder builder, int deep, Field field, IFieldRegistration fieldRegistration) { - String result = "result" + GenerateProtocolFile.index.getAndIncrement(); + String result = "result" + GenerateProtocolFile.localVariableId++; GenerateProtocolFile.addTab(builder, deep); builder.append(StringUtils.format("byte {} = buffer.ReadByte();", result)).append(LS); diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/csharp/CsDoubleSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/csharp/CsDoubleSerializer.java index 71b00717..09a7bb61 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/csharp/CsDoubleSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/csharp/CsDoubleSerializer.java @@ -34,7 +34,7 @@ public class CsDoubleSerializer implements ICsSerializer { @Override public String readObject(StringBuilder builder, int deep, Field field, IFieldRegistration fieldRegistration) { - String result = "result" + GenerateProtocolFile.index.getAndIncrement(); + String result = "result" + GenerateProtocolFile.localVariableId++; GenerateProtocolFile.addTab(builder, deep); builder.append(StringUtils.format("double {} = buffer.ReadDouble();", result)).append(LS); diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/csharp/CsFloatSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/csharp/CsFloatSerializer.java index f01da2ea..516a2715 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/csharp/CsFloatSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/csharp/CsFloatSerializer.java @@ -34,7 +34,7 @@ public class CsFloatSerializer implements ICsSerializer { @Override public String readObject(StringBuilder builder, int deep, Field field, IFieldRegistration fieldRegistration) { - String result = "result" + GenerateProtocolFile.index.getAndIncrement(); + String result = "result" + GenerateProtocolFile.localVariableId++; GenerateProtocolFile.addTab(builder, deep); builder.append(StringUtils.format("float {} = buffer.ReadFloat();", result)).append(LS); diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/csharp/CsIntSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/csharp/CsIntSerializer.java index 2a7152fc..9ad29a4d 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/csharp/CsIntSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/csharp/CsIntSerializer.java @@ -34,7 +34,7 @@ public class CsIntSerializer implements ICsSerializer { @Override public String readObject(StringBuilder builder, int deep, Field field, IFieldRegistration fieldRegistration) { - String result = "result" + GenerateProtocolFile.index.getAndIncrement(); + String result = "result" + GenerateProtocolFile.localVariableId++; GenerateProtocolFile.addTab(builder, deep); builder.append(StringUtils.format("int {} = buffer.ReadInt();", result)).append(LS); diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/csharp/CsListSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/csharp/CsListSerializer.java index c10acabb..ef398e48 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/csharp/CsListSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/csharp/CsListSerializer.java @@ -54,17 +54,17 @@ public class CsListSerializer implements ICsSerializer { builder.append(StringUtils.format("buffer.WriteInt({}.Count);", objectStr)).append(LS); GenerateProtocolFile.addTab(builder, deep + 1); - String length = "length" + GenerateProtocolFile.index.getAndIncrement(); + String length = "length" + GenerateProtocolFile.localVariableId++; builder.append(StringUtils.format("int {} = {}.Count;", length, objectStr)).append(LS); GenerateProtocolFile.addTab(builder, deep + 1); - String i = "i" + GenerateProtocolFile.index.getAndIncrement(); + String i = "i" + GenerateProtocolFile.localVariableId++; builder.append(StringUtils.format("for (int {} = 0; {} < {}; {}++)", i, i, length, i)).append(LS); GenerateProtocolFile.addTab(builder, deep + 1); builder.append("{").append(LS); GenerateProtocolFile.addTab(builder, deep + 2); - String element = "element" + GenerateProtocolFile.index.getAndIncrement(); + String element = "element" + GenerateProtocolFile.localVariableId++; builder.append(StringUtils.format("var {} = {}[{}];", element, objectStr, i)).append(LS); CodeGenerateCsharp.csSerializer(listField.getListElementRegistration().serializer()) @@ -85,12 +85,12 @@ public class CsListSerializer implements ICsSerializer { } var listField = (ListField) fieldRegistration; - var result = "result" + GenerateProtocolFile.index.getAndIncrement(); + var result = "result" + GenerateProtocolFile.localVariableId++; var typeName = CodeGenerateCsharp.toCsClassName(listField.getType().toString()); - var i = "index" + GenerateProtocolFile.index.getAndIncrement(); - var size = "size" + GenerateProtocolFile.index.getAndIncrement(); + var i = "index" + GenerateProtocolFile.localVariableId++; + var size = "size" + GenerateProtocolFile.localVariableId++; builder.append(StringUtils.format("int {} = buffer.ReadInt();", size)).append(LS); GenerateProtocolFile.addTab(builder, deep); diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/csharp/CsLongSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/csharp/CsLongSerializer.java index e86d0520..4279b0ed 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/csharp/CsLongSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/csharp/CsLongSerializer.java @@ -34,7 +34,7 @@ public class CsLongSerializer implements ICsSerializer { @Override public String readObject(StringBuilder builder, int deep, Field field, IFieldRegistration fieldRegistration) { - String result = "result" + GenerateProtocolFile.index.getAndIncrement(); + String result = "result" + GenerateProtocolFile.localVariableId++; GenerateProtocolFile.addTab(builder, deep); builder.append(StringUtils.format("long {} = buffer.ReadLong();", result)).append(LS); diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/csharp/CsMapSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/csharp/CsMapSerializer.java index 4343141d..b1cf9362 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/csharp/CsMapSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/csharp/CsMapSerializer.java @@ -56,7 +56,7 @@ public class CsMapSerializer implements ICsSerializer { builder.append(StringUtils.format("buffer.WriteInt({}.Count);", objectStr)).append(LS); - String i = "i" + GenerateProtocolFile.index.getAndIncrement(); + String i = "i" + GenerateProtocolFile.localVariableId++; GenerateProtocolFile.addTab(builder, deep + 1); builder.append(StringUtils.format("foreach (var {} in {})", i, objectStr)).append(LS); @@ -65,8 +65,8 @@ public class CsMapSerializer implements ICsSerializer { builder.append("{").append(LS); GenerateProtocolFile.addTab(builder, deep + 2); - String key = "keyElement" + GenerateProtocolFile.index.getAndIncrement(); - String value = "valueElement" + GenerateProtocolFile.index.getAndIncrement(); + String key = "keyElement" + GenerateProtocolFile.localVariableId++; + String value = "valueElement" + GenerateProtocolFile.localVariableId++; builder.append(StringUtils.format("var {} = {}.Key;", key, i)).append(LS); GenerateProtocolFile.addTab(builder, deep + 2); @@ -92,11 +92,11 @@ public class CsMapSerializer implements ICsSerializer { } MapField mapField = (MapField) fieldRegistration; - String result = "result" + GenerateProtocolFile.index.getAndIncrement(); + String result = "result" + GenerateProtocolFile.localVariableId++; var typeName = CodeGenerateCsharp.toCsClassName(mapField.getType().toString()); - String size = "size" + GenerateProtocolFile.index.getAndIncrement(); + String size = "size" + GenerateProtocolFile.localVariableId++; builder.append(StringUtils.format("int {} = buffer.ReadInt();", size)).append(LS); GenerateProtocolFile.addTab(builder, deep); @@ -108,7 +108,7 @@ public class CsMapSerializer implements ICsSerializer { GenerateProtocolFile.addTab(builder, deep); builder.append("{").append(LS); - String i = "index" + GenerateProtocolFile.index.getAndIncrement(); + String i = "index" + GenerateProtocolFile.localVariableId++; GenerateProtocolFile.addTab(builder, deep + 1); builder.append(StringUtils.format("for (var {} = 0; {} < {}; {}++)", i, i, size, i)).append(LS); GenerateProtocolFile.addTab(builder, deep + 1); diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/csharp/CsObjectProtocolSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/csharp/CsObjectProtocolSerializer.java index f22633c9..5882d5b1 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/csharp/CsObjectProtocolSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/csharp/CsObjectProtocolSerializer.java @@ -40,7 +40,7 @@ public class CsObjectProtocolSerializer implements ICsSerializer { @Override public String readObject(StringBuilder builder, int deep, Field field, IFieldRegistration fieldRegistration) { ObjectProtocolField objectProtocolField = (ObjectProtocolField) fieldRegistration; - String result = "result" + GenerateProtocolFile.index.getAndIncrement(); + String result = "result" + GenerateProtocolFile.localVariableId++; var protocolSimpleName = EnhanceObjectProtocolSerializer.getProtocolClassSimpleName(objectProtocolField.getProtocolId()); diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/csharp/CsSetSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/csharp/CsSetSerializer.java index 8395f4f4..f42716dc 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/csharp/CsSetSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/csharp/CsSetSerializer.java @@ -54,7 +54,7 @@ public class CsSetSerializer implements ICsSerializer { GenerateProtocolFile.addTab(builder, deep + 1); builder.append(StringUtils.format("buffer.WriteInt({}.Count);", objectStr)).append(LS); - String element = "i" + GenerateProtocolFile.index.getAndIncrement(); + String element = "i" + GenerateProtocolFile.localVariableId++; GenerateProtocolFile.addTab(builder, deep + 1); builder.append(StringUtils.format("foreach (var {} in {})", element, objectStr)).append(LS); GenerateProtocolFile.addTab(builder, deep + 1); @@ -78,12 +78,12 @@ public class CsSetSerializer implements ICsSerializer { } SetField setField = (SetField) fieldRegistration; - var result = "result" + GenerateProtocolFile.index.getAndIncrement(); + var result = "result" + GenerateProtocolFile.localVariableId++; var typeName = CodeGenerateCsharp.toCsClassName(setField.getType().toString()); - var i = "index" + GenerateProtocolFile.index.getAndIncrement(); - var size = "size" + GenerateProtocolFile.index.getAndIncrement(); + var i = "index" + GenerateProtocolFile.localVariableId++; + var size = "size" + GenerateProtocolFile.localVariableId++; builder.append(StringUtils.format("int {} = buffer.ReadInt();", size)).append(LS); GenerateProtocolFile.addTab(builder, deep); // unity里不支持HashSet的初始化大小 diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/csharp/CsShortSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/csharp/CsShortSerializer.java index 15e49ca4..fddc20db 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/csharp/CsShortSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/csharp/CsShortSerializer.java @@ -34,7 +34,7 @@ public class CsShortSerializer implements ICsSerializer { @Override public String readObject(StringBuilder builder, int deep, Field field, IFieldRegistration fieldRegistration) { - String result = "result" + GenerateProtocolFile.index.getAndIncrement(); + String result = "result" + GenerateProtocolFile.localVariableId++; GenerateProtocolFile.addTab(builder, deep); builder.append(StringUtils.format("short {} = buffer.ReadShort();", result)).append(LS); diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/csharp/CsStringSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/csharp/CsStringSerializer.java index 9deae2de..e2cde54e 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/csharp/CsStringSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/csharp/CsStringSerializer.java @@ -34,7 +34,7 @@ public class CsStringSerializer implements ICsSerializer { @Override public String readObject(StringBuilder builder, int deep, Field field, IFieldRegistration fieldRegistration) { - String result = "result" + GenerateProtocolFile.index.getAndIncrement(); + String result = "result" + GenerateProtocolFile.localVariableId++; GenerateProtocolFile.addTab(builder, deep); builder.append(StringUtils.format("string {} = buffer.ReadString();", result)).append(LS); diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/enhance/EnhanceArraySerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/enhance/EnhanceArraySerializer.java index 0bab0d4d..0723c116 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/enhance/EnhanceArraySerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/enhance/EnhanceArraySerializer.java @@ -37,16 +37,16 @@ public class EnhanceArraySerializer implements IEnhanceSerializer { var arrayField = (ArrayField) fieldRegistration; var arrayName = CutDownArraySerializer.getInstance().getArrayClassName(arrayField); - var array = "array" + GenerateProtocolFile.index.getAndIncrement(); - var length = "length" + GenerateProtocolFile.index.getAndIncrement(); + var array = "array" + GenerateProtocolFile.localVariableId++; + var length = "length" + GenerateProtocolFile.localVariableId++; builder.append(StringUtils.format("{}[] {} = {};", arrayName, array, objectStr)); builder.append(StringUtils.format("int {} = ArrayUtils.length({});", length, array)); builder.append(StringUtils.format("{}.writeInt($1,{});", EnhanceUtils.byteBufUtils, length)); - var i = "i" + GenerateProtocolFile.index.getAndIncrement(); + var i = "i" + GenerateProtocolFile.localVariableId++; builder.append(StringUtils.format("for(int {}=0; {}<{}; {}++){", i, i, length, i)); - var element = "element" + GenerateProtocolFile.index.getAndIncrement(); + var element = "element" + GenerateProtocolFile.localVariableId++; builder.append(StringUtils.format("{} {} = {}[{}];", arrayName, element, array, i)); EnhanceUtils.enhanceSerializer(arrayField.getArrayElementRegistration().serializer()) @@ -65,13 +65,13 @@ public class EnhanceArraySerializer implements IEnhanceSerializer { var arrayField = (ArrayField) fieldRegistration; var arrayName = CutDownArraySerializer.getInstance().getArrayClassName(arrayField); - var array = "array" + GenerateProtocolFile.index.getAndIncrement(); - var length = "length" + GenerateProtocolFile.index.getAndIncrement(); + var array = "array" + GenerateProtocolFile.localVariableId++; + var length = "length" + GenerateProtocolFile.localVariableId++; builder.append(StringUtils.format("int {} = {}.readInt($1);", length, EnhanceUtils.byteBufUtils)); builder.append(StringUtils.format("{}[] {} = new {}[{}];", arrayName, array, arrayName, length)); - var i = "i" + GenerateProtocolFile.index.getAndIncrement(); + var i = "i" + GenerateProtocolFile.localVariableId++; builder.append(StringUtils.format("for(int {}=0; {} < {}; {}++){", i, i, length, i)); var readObject = EnhanceUtils.enhanceSerializer(arrayField.getArrayElementRegistration().serializer()) .readObject(builder, field, arrayField.getArrayElementRegistration()); @@ -83,7 +83,7 @@ public class EnhanceArraySerializer implements IEnhanceSerializer { public String defaultValue(StringBuilder builder, Field field, IFieldRegistration fieldRegistration) { var arrayField = (ArrayField) fieldRegistration; var arrayName = CutDownArraySerializer.getInstance().getArrayClassName(arrayField); - var array = "array" + GenerateProtocolFile.index.getAndIncrement(); + var array = "array" + GenerateProtocolFile.localVariableId++; builder.append(StringUtils.format("{}[] {} = new {}[0];", arrayName, array, arrayName)); return array; } diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/enhance/EnhanceBooleanSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/enhance/EnhanceBooleanSerializer.java index 7d1c1fd1..f4123152 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/enhance/EnhanceBooleanSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/enhance/EnhanceBooleanSerializer.java @@ -36,7 +36,7 @@ public class EnhanceBooleanSerializer implements IEnhanceSerializer { @Override public String readObject(StringBuilder builder, Field field, IFieldRegistration fieldRegistration) { - var result = "result" + GenerateProtocolFile.index.getAndIncrement(); + var result = "result" + GenerateProtocolFile.localVariableId++; if (isPrimitiveField(field)) { builder.append(StringUtils.format("boolean {} = {}.readBoolean($1);", result, EnhanceUtils.byteBufUtils)); } else { @@ -47,7 +47,7 @@ public class EnhanceBooleanSerializer implements IEnhanceSerializer { @Override public String defaultValue(StringBuilder builder, Field field, IFieldRegistration fieldRegistration) { - var result = "result" + GenerateProtocolFile.index.getAndIncrement(); + var result = "result" + GenerateProtocolFile.localVariableId++; if (isPrimitiveField(field)) { builder.append(StringUtils.format("boolean {} = false;", result)); } else { diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/enhance/EnhanceByteSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/enhance/EnhanceByteSerializer.java index b7f3dd34..3eb327bf 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/enhance/EnhanceByteSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/enhance/EnhanceByteSerializer.java @@ -36,7 +36,7 @@ public class EnhanceByteSerializer implements IEnhanceSerializer { @Override public String readObject(StringBuilder builder, Field field, IFieldRegistration fieldRegistration) { - var result = "result" + GenerateProtocolFile.index.getAndIncrement(); + var result = "result" + GenerateProtocolFile.localVariableId++; if (isPrimitiveField(field)) { builder.append(StringUtils.format("byte {} = {}.readByte($1);", result, EnhanceUtils.byteBufUtils)); } else { @@ -47,7 +47,7 @@ public class EnhanceByteSerializer implements IEnhanceSerializer { @Override public String defaultValue(StringBuilder builder, Field field, IFieldRegistration fieldRegistration) { - var result = "result" + GenerateProtocolFile.index.getAndIncrement(); + var result = "result" + GenerateProtocolFile.localVariableId++; if (isPrimitiveField(field)) { builder.append(StringUtils.format("byte {} = 0;", result)); } else { diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/enhance/EnhanceDoubleSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/enhance/EnhanceDoubleSerializer.java index 3c5b1149..8bf8e18a 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/enhance/EnhanceDoubleSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/enhance/EnhanceDoubleSerializer.java @@ -36,7 +36,7 @@ public class EnhanceDoubleSerializer implements IEnhanceSerializer { @Override public String readObject(StringBuilder builder, Field field, IFieldRegistration fieldRegistration) { - var result = "result" + GenerateProtocolFile.index.getAndIncrement(); + var result = "result" + GenerateProtocolFile.localVariableId++; if (isPrimitiveField(field)) { builder.append(StringUtils.format("double {} = {}.readDouble($1);", result, EnhanceUtils.byteBufUtils)); } else { @@ -47,7 +47,7 @@ public class EnhanceDoubleSerializer implements IEnhanceSerializer { @Override public String defaultValue(StringBuilder builder, Field field, IFieldRegistration fieldRegistration) { - var result = "result" + GenerateProtocolFile.index.getAndIncrement(); + var result = "result" + GenerateProtocolFile.localVariableId++; if (isPrimitiveField(field)) { builder.append(StringUtils.format("double {} = 0D;", result)); } else { diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/enhance/EnhanceFloatSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/enhance/EnhanceFloatSerializer.java index 67128659..8e31eeef 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/enhance/EnhanceFloatSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/enhance/EnhanceFloatSerializer.java @@ -36,7 +36,7 @@ public class EnhanceFloatSerializer implements IEnhanceSerializer { @Override public String readObject(StringBuilder builder, Field field, IFieldRegistration fieldRegistration) { - var result = "result" + GenerateProtocolFile.index.getAndIncrement(); + var result = "result" + GenerateProtocolFile.localVariableId++; if (isPrimitiveField(field)) { builder.append(StringUtils.format("float {} = {}.readFloat($1);", result, EnhanceUtils.byteBufUtils)); } else { @@ -47,7 +47,7 @@ public class EnhanceFloatSerializer implements IEnhanceSerializer { @Override public String defaultValue(StringBuilder builder, Field field, IFieldRegistration fieldRegistration) { - var result = "result" + GenerateProtocolFile.index.getAndIncrement(); + var result = "result" + GenerateProtocolFile.localVariableId++; if (isPrimitiveField(field)) { builder.append(StringUtils.format("float {} = 0F;", result)); } else { diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/enhance/EnhanceIntSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/enhance/EnhanceIntSerializer.java index 2e878f72..75da72cb 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/enhance/EnhanceIntSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/enhance/EnhanceIntSerializer.java @@ -36,7 +36,7 @@ public class EnhanceIntSerializer implements IEnhanceSerializer { @Override public String readObject(StringBuilder builder, Field field, IFieldRegistration fieldRegistration) { - var result = "result" + GenerateProtocolFile.index.getAndIncrement(); + var result = "result" + GenerateProtocolFile.localVariableId++; if (isPrimitiveField(field)) { builder.append(StringUtils.format("int {} = {}.readInt($1);", result, EnhanceUtils.byteBufUtils)); } else { @@ -47,7 +47,7 @@ public class EnhanceIntSerializer implements IEnhanceSerializer { @Override public String defaultValue(StringBuilder builder, Field field, IFieldRegistration fieldRegistration) { - var result = "result" + GenerateProtocolFile.index.getAndIncrement(); + var result = "result" + GenerateProtocolFile.localVariableId++; if (isPrimitiveField(field)) { builder.append(StringUtils.format("int {} = 0;", result)); } else { diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/enhance/EnhanceListSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/enhance/EnhanceListSerializer.java index 7c4485ee..bc3c7670 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/enhance/EnhanceListSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/enhance/EnhanceListSerializer.java @@ -36,16 +36,16 @@ public class EnhanceListSerializer implements IEnhanceSerializer { var listField = (ListField) fieldRegistration; - var list = "list" + GenerateProtocolFile.index.getAndIncrement(); + var list = "list" + GenerateProtocolFile.localVariableId++; builder.append(StringUtils.format("List {} = (List){};", list, objectStr)); builder.append(StringUtils.format("{}.writeInt($1, CollectionUtils.size({}));", EnhanceUtils.byteBufUtils, list)); - var iterator = "iterator" + GenerateProtocolFile.index.getAndIncrement(); + var iterator = "iterator" + GenerateProtocolFile.localVariableId++; builder.append(StringUtils.format("Iterator {} = CollectionUtils.iterator({});", iterator, list)); builder.append(StringUtils.format("while({}.hasNext()){", iterator)); - var element = "element" + GenerateProtocolFile.index.getAndIncrement(); + var element = "element" + GenerateProtocolFile.localVariableId++; builder.append(StringUtils.format("Object {}={}.next();", element, iterator)); EnhanceUtils.enhanceSerializer(listField.getListElementRegistration().serializer()) .writeObject(builder, element, field, listField.getListElementRegistration()); @@ -61,14 +61,14 @@ public class EnhanceListSerializer implements IEnhanceSerializer { } var listField = (ListField) fieldRegistration; - var list = "list" + GenerateProtocolFile.index.getAndIncrement(); + var list = "list" + GenerateProtocolFile.localVariableId++; - var size = "size" + GenerateProtocolFile.index.getAndIncrement(); + var size = "size" + GenerateProtocolFile.localVariableId++; builder.append(StringUtils.format("int {}={}.readInt($1);", size, EnhanceUtils.byteBufUtils)); builder.append(StringUtils.format("List {} = CollectionUtils.newList({});", list, size)); - var i = "i" + GenerateProtocolFile.index.getAndIncrement(); + var i = "i" + GenerateProtocolFile.localVariableId++; builder.append(StringUtils.format("for(int {}=0; {}<{}; {}++){", i, i, size, i)); var readObject = EnhanceUtils.enhanceSerializer(listField.getListElementRegistration().serializer()).readObject(builder, field, listField.getListElementRegistration()); @@ -79,7 +79,7 @@ public class EnhanceListSerializer implements IEnhanceSerializer { @Override public String defaultValue(StringBuilder builder, Field field, IFieldRegistration fieldRegistration) { var listField = (ListField) fieldRegistration; - var list = "list" + GenerateProtocolFile.index.getAndIncrement(); + var list = "list" + GenerateProtocolFile.localVariableId++; builder.append(StringUtils.format("List {} = CollectionUtils.newList(0);", list)); return list; } diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/enhance/EnhanceLongSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/enhance/EnhanceLongSerializer.java index 73327d3a..7caf8fc8 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/enhance/EnhanceLongSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/enhance/EnhanceLongSerializer.java @@ -36,7 +36,7 @@ public class EnhanceLongSerializer implements IEnhanceSerializer { @Override public String readObject(StringBuilder builder, Field field, IFieldRegistration fieldRegistration) { - var result = "result" + GenerateProtocolFile.index.getAndIncrement(); + var result = "result" + GenerateProtocolFile.localVariableId++; if (isPrimitiveField(field)) { builder.append(StringUtils.format("long {} = {}.readLong($1);", result, EnhanceUtils.byteBufUtils)); } else { @@ -47,7 +47,7 @@ public class EnhanceLongSerializer implements IEnhanceSerializer { @Override public String defaultValue(StringBuilder builder, Field field, IFieldRegistration fieldRegistration) { - var result = "result" + GenerateProtocolFile.index.getAndIncrement(); + var result = "result" + GenerateProtocolFile.localVariableId++; if (isPrimitiveField(field)) { builder.append(StringUtils.format("long {} = 0;", result)); } else { diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/enhance/EnhanceMapSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/enhance/EnhanceMapSerializer.java index d10e2fee..fdbe4cf0 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/enhance/EnhanceMapSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/enhance/EnhanceMapSerializer.java @@ -41,21 +41,21 @@ public class EnhanceMapSerializer implements IEnhanceSerializer { var keySerializer = keyRegistration.serializer(); var valueSerializer = valueRegistration.serializer(); - var map = "map" + GenerateProtocolFile.index.getAndIncrement(); + var map = "map" + GenerateProtocolFile.localVariableId++; builder.append(StringUtils.format("Map {} = (Map){};", map, objectStr)); builder.append(StringUtils.format("{}.writeInt($1, CollectionUtils.size({}));", EnhanceUtils.byteBufUtils, map)); - var iterator = "iterator" + GenerateProtocolFile.index.getAndIncrement(); + var iterator = "iterator" + GenerateProtocolFile.localVariableId++; builder.append(StringUtils.format("Iterator {} = CollectionUtils.iterator({});", iterator, map)); builder.append(StringUtils.format("while({}.hasNext()) {", iterator)); - var entry = "entry" + GenerateProtocolFile.index.getAndIncrement(); + var entry = "entry" + GenerateProtocolFile.localVariableId++; builder.append(StringUtils.format("{} {}=({}){}.next();", Map.Entry.class.getCanonicalName(), entry, Map.Entry.class.getCanonicalName(), iterator)); - var key = "key" + GenerateProtocolFile.index.getAndIncrement(); + var key = "key" + GenerateProtocolFile.localVariableId++; builder.append(StringUtils.format("Object {} = {}.getKey();", key, entry)); - var value = "value" + GenerateProtocolFile.index.getAndIncrement(); + var value = "value" + GenerateProtocolFile.localVariableId++; builder.append(StringUtils.format("Object {} = {}.getValue();", value, entry)); EnhanceUtils.enhanceSerializer(keyRegistration.serializer()).writeObject(builder, key, field, keyRegistration); @@ -75,13 +75,13 @@ public class EnhanceMapSerializer implements IEnhanceSerializer { var keyRegistration = mapField.getMapKeyRegistration(); var valueRegistration = mapField.getMapValueRegistration(); - var map = "map" + GenerateProtocolFile.index.getAndIncrement(); + var map = "map" + GenerateProtocolFile.localVariableId++; - var size = "size" + GenerateProtocolFile.index.getAndIncrement(); + var size = "size" + GenerateProtocolFile.localVariableId++; builder.append(StringUtils.format("int {}={}.readInt($1);", size, EnhanceUtils.byteBufUtils)); builder.append(StringUtils.format("Map {} = CollectionUtils.newMap({});", map, size)); - var i = "i" + GenerateProtocolFile.index.getAndIncrement(); + var i = "i" + GenerateProtocolFile.localVariableId++; builder.append(StringUtils.format("for(int {}=0; {}<{}; {}++){", i, i, size, i)); var keyObject = EnhanceUtils.enhanceSerializer(keyRegistration.serializer()).readObject(builder, field, keyRegistration); @@ -94,7 +94,7 @@ public class EnhanceMapSerializer implements IEnhanceSerializer { @Override public String defaultValue(StringBuilder builder, Field field, IFieldRegistration fieldRegistration) { var mapField = (MapField) fieldRegistration; - var map = "map" + GenerateProtocolFile.index.getAndIncrement(); + var map = "map" + GenerateProtocolFile.localVariableId++; builder.append(StringUtils.format("Map {} = CollectionUtils.newMap(0);", map)); return map; } diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/enhance/EnhanceObjectProtocolSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/enhance/EnhanceObjectProtocolSerializer.java index 3cc3ff4f..e2f5282c 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/enhance/EnhanceObjectProtocolSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/enhance/EnhanceObjectProtocolSerializer.java @@ -38,7 +38,7 @@ public class EnhanceObjectProtocolSerializer implements IEnhanceSerializer { @Override public String readObject(StringBuilder builder, Field field, IFieldRegistration fieldRegistration) { var objectProtocolField = (ObjectProtocolField) fieldRegistration; - var result = "result" + GenerateProtocolFile.index.getAndIncrement(); + var result = "result" + GenerateProtocolFile.localVariableId++; var protocolName = getProtocolClassCanonicalName(objectProtocolField.getProtocolId()); builder.append(StringUtils.format("{} {} = ({}){}.read($1);", protocolName, result, protocolName, EnhanceUtils.getProtocolRegistrationFieldNameByProtocolId(objectProtocolField.getProtocolId()))); return result; @@ -47,7 +47,7 @@ public class EnhanceObjectProtocolSerializer implements IEnhanceSerializer { @Override public String defaultValue(StringBuilder builder, Field field, IFieldRegistration fieldRegistration) { var objectProtocolField = (ObjectProtocolField) fieldRegistration; - var result = "result" + GenerateProtocolFile.index.getAndIncrement(); + var result = "result" + GenerateProtocolFile.localVariableId++; var protocolName = getProtocolClassCanonicalName(objectProtocolField.getProtocolId()); builder.append(StringUtils.format("{} {} = null;", protocolName, result)); return result; diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/enhance/EnhanceSetSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/enhance/EnhanceSetSerializer.java index bd3c43cd..a3cac331 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/enhance/EnhanceSetSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/enhance/EnhanceSetSerializer.java @@ -35,16 +35,16 @@ public class EnhanceSetSerializer implements IEnhanceSerializer { } var setField = (SetField) fieldRegistration; - var set = "set" + GenerateProtocolFile.index.getAndIncrement(); + var set = "set" + GenerateProtocolFile.localVariableId++; builder.append(StringUtils.format("Set {} = (Set){};", set, objectStr)); builder.append(StringUtils.format("{}.writeInt($1, CollectionUtils.size({}));", EnhanceUtils.byteBufUtils, set)); - var iterator = "iterator" + GenerateProtocolFile.index.getAndIncrement(); + var iterator = "iterator" + GenerateProtocolFile.localVariableId++; builder.append(StringUtils.format("Iterator {} = CollectionUtils.iterator({});", iterator, set)); builder.append(StringUtils.format("while({}.hasNext()) {", iterator)); - var element = "element" + GenerateProtocolFile.index.getAndIncrement(); + var element = "element" + GenerateProtocolFile.localVariableId++; builder.append(StringUtils.format("Object {}={}.next();", element, iterator)); EnhanceUtils.enhanceSerializer(setField.getSetElementRegistration().serializer()) .writeObject(builder, element, field, setField.getSetElementRegistration()); @@ -60,13 +60,13 @@ public class EnhanceSetSerializer implements IEnhanceSerializer { } var setField = (SetField) fieldRegistration; - var set = "set" + GenerateProtocolFile.index.getAndIncrement(); + var set = "set" + GenerateProtocolFile.localVariableId++; - var size = "size" + GenerateProtocolFile.index.getAndIncrement(); + var size = "size" + GenerateProtocolFile.localVariableId++; builder.append(StringUtils.format("int {} = {}.readInt($1);", size, EnhanceUtils.byteBufUtils)); builder.append(StringUtils.format("Set {} = CollectionUtils.newSet({});", set, size)); - var i = "i" + GenerateProtocolFile.index.getAndIncrement(); + var i = "i" + GenerateProtocolFile.localVariableId++; builder.append(StringUtils.format("for(int {}=0; {}<{}; {}++){", i, i, size, i)); var readObject = EnhanceUtils.enhanceSerializer(setField.getSetElementRegistration().serializer()).readObject(builder, field, setField.getSetElementRegistration()); @@ -77,7 +77,7 @@ public class EnhanceSetSerializer implements IEnhanceSerializer { @Override public String defaultValue(StringBuilder builder, Field field, IFieldRegistration fieldRegistration) { var setField = (SetField) fieldRegistration; - var set = "set" + GenerateProtocolFile.index.getAndIncrement(); + var set = "set" + GenerateProtocolFile.localVariableId++; builder.append(StringUtils.format("Set {} = CollectionUtils.newSet(0);", set)); return set; } diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/enhance/EnhanceShortSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/enhance/EnhanceShortSerializer.java index 3fb9e619..9ac7fd69 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/enhance/EnhanceShortSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/enhance/EnhanceShortSerializer.java @@ -36,7 +36,7 @@ public class EnhanceShortSerializer implements IEnhanceSerializer { @Override public String readObject(StringBuilder builder, Field field, IFieldRegistration fieldRegistration) { - var result = "result" + GenerateProtocolFile.index.getAndIncrement(); + var result = "result" + GenerateProtocolFile.localVariableId++; if (isPrimitiveField(field)) { builder.append(StringUtils.format("short {} = {}.readShort($1);", result, EnhanceUtils.byteBufUtils)); } else { @@ -47,7 +47,7 @@ public class EnhanceShortSerializer implements IEnhanceSerializer { @Override public String defaultValue(StringBuilder builder, Field field, IFieldRegistration fieldRegistration) { - var result = "result" + GenerateProtocolFile.index.getAndIncrement(); + var result = "result" + GenerateProtocolFile.localVariableId++; if (isPrimitiveField(field)) { builder.append(StringUtils.format("short {} = 0;", result)); } else { diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/enhance/EnhanceStringSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/enhance/EnhanceStringSerializer.java index bbbcfb2a..23f0a94d 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/enhance/EnhanceStringSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/enhance/EnhanceStringSerializer.java @@ -32,14 +32,14 @@ public class EnhanceStringSerializer implements IEnhanceSerializer { @Override public String readObject(StringBuilder builder, Field field, IFieldRegistration fieldRegistration) { - var result = "result" + GenerateProtocolFile.index.getAndIncrement(); + var result = "result" + GenerateProtocolFile.localVariableId++; builder.append(StringUtils.format("String {} = {}.readString($1);", result, EnhanceUtils.byteBufUtils)); return result; } @Override public String defaultValue(StringBuilder builder, Field field, IFieldRegistration fieldRegistration) { - var result = "result" + GenerateProtocolFile.index.getAndIncrement(); + var result = "result" + GenerateProtocolFile.localVariableId++; builder.append(StringUtils.format("String {} = \"\";", result)); return result; } diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/es/EsArraySerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/es/EsArraySerializer.java index 025de2fd..c2f0dbc9 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/es/EsArraySerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/es/EsArraySerializer.java @@ -54,7 +54,7 @@ public class EsArraySerializer implements IEsSerializer { GenerateProtocolFile.addTab(builder, deep + 1); builder.append(StringUtils.format("buffer.writeInt({}.length);", objectStr)).append(LS); - String element = "element" + GenerateProtocolFile.index.getAndIncrement(); + String element = "element" + GenerateProtocolFile.localVariableId++; GenerateProtocolFile.addTab(builder, deep + 1); builder.append(StringUtils.format("{}.forEach({} => {", objectStr, element)).append(LS); GenerateEsUtils.esSerializer(arrayField.getArrayElementRegistration().serializer()) @@ -74,12 +74,12 @@ public class EsArraySerializer implements IEsSerializer { } ArrayField arrayField = (ArrayField) fieldRegistration; - String result = "result" + GenerateProtocolFile.index.getAndIncrement(); + String result = "result" + GenerateProtocolFile.localVariableId++; builder.append(StringUtils.format("const {} = [];", result)).append(LS); - String i = "index" + GenerateProtocolFile.index.getAndIncrement(); - String size = "size" + GenerateProtocolFile.index.getAndIncrement(); + String i = "index" + GenerateProtocolFile.localVariableId++; + String size = "size" + GenerateProtocolFile.localVariableId++; GenerateProtocolFile.addTab(builder, deep); builder.append(StringUtils.format("const {} = buffer.readInt();", size)).append(LS); diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/es/EsBooleanSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/es/EsBooleanSerializer.java index 6f26f204..39974929 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/es/EsBooleanSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/es/EsBooleanSerializer.java @@ -39,7 +39,7 @@ public class EsBooleanSerializer implements IEsSerializer { @Override public String readObject(StringBuilder builder, int deep, Field field, IFieldRegistration fieldRegistration) { - String result = "result" + GenerateProtocolFile.index.getAndIncrement(); + String result = "result" + GenerateProtocolFile.localVariableId++; GenerateProtocolFile.addTab(builder, deep); builder.append(StringUtils.format("const {} = buffer.readBoolean(); ", result)).append(LS); return result; diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/es/EsByteSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/es/EsByteSerializer.java index d075f16a..cbe32c91 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/es/EsByteSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/es/EsByteSerializer.java @@ -39,7 +39,7 @@ public class EsByteSerializer implements IEsSerializer { @Override public String readObject(StringBuilder builder, int deep, Field field, IFieldRegistration fieldRegistration) { - String result = "result" + GenerateProtocolFile.index.getAndIncrement(); + String result = "result" + GenerateProtocolFile.localVariableId++; GenerateProtocolFile.addTab(builder, deep); builder.append(StringUtils.format("const {} = buffer.readByte();", result)).append(LS); return result; diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/es/EsDoubleSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/es/EsDoubleSerializer.java index f96f1065..74b51f80 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/es/EsDoubleSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/es/EsDoubleSerializer.java @@ -39,7 +39,7 @@ public class EsDoubleSerializer implements IEsSerializer { @Override public String readObject(StringBuilder builder, int deep, Field field, IFieldRegistration fieldRegistration) { - String result = "result" + GenerateProtocolFile.index.getAndIncrement(); + String result = "result" + GenerateProtocolFile.localVariableId++; GenerateProtocolFile.addTab(builder, deep); builder.append(StringUtils.format("const {} = buffer.readDouble();", result)).append(LS); return result; diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/es/EsFloatSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/es/EsFloatSerializer.java index 6bfdb533..d42259eb 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/es/EsFloatSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/es/EsFloatSerializer.java @@ -39,7 +39,7 @@ public class EsFloatSerializer implements IEsSerializer { @Override public String readObject(StringBuilder builder, int deep, Field field, IFieldRegistration fieldRegistration) { - String result = "result" + GenerateProtocolFile.index.getAndIncrement(); + String result = "result" + GenerateProtocolFile.localVariableId++; GenerateProtocolFile.addTab(builder, deep); builder.append(StringUtils.format("const {} = buffer.readFloat();", result)).append(LS); return result; diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/es/EsIntSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/es/EsIntSerializer.java index 1cb73907..6a48297f 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/es/EsIntSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/es/EsIntSerializer.java @@ -39,7 +39,7 @@ public class EsIntSerializer implements IEsSerializer { @Override public String readObject(StringBuilder builder, int deep, Field field, IFieldRegistration fieldRegistration) { - String result = "result" + GenerateProtocolFile.index.getAndIncrement(); + String result = "result" + GenerateProtocolFile.localVariableId++; GenerateProtocolFile.addTab(builder, deep); builder.append(StringUtils.format("const {} = buffer.readInt();", result)).append(LS); return result; diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/es/EsListSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/es/EsListSerializer.java index a258d0a8..073bd566 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/es/EsListSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/es/EsListSerializer.java @@ -53,7 +53,7 @@ public class EsListSerializer implements IEsSerializer { GenerateProtocolFile.addTab(builder, deep + 1); builder.append(StringUtils.format("buffer.writeInt({}.length);", objectStr)).append(LS); - String element = "element" + GenerateProtocolFile.index.getAndIncrement(); + String element = "element" + GenerateProtocolFile.localVariableId++; GenerateProtocolFile.addTab(builder, deep + 1); builder.append(StringUtils.format("{}.forEach({} => {", objectStr, element)).append(LS); GenerateEsUtils.esSerializer(listField.getListElementRegistration().serializer()) @@ -73,19 +73,19 @@ public class EsListSerializer implements IEsSerializer { } ListField listField = (ListField) fieldRegistration; - String result = "result" + GenerateProtocolFile.index.getAndIncrement(); + String result = "result" + GenerateProtocolFile.localVariableId++; builder.append(StringUtils.format("const {} = [];", result)).append(LS); GenerateProtocolFile.addTab(builder, deep); - String size = "size" + GenerateProtocolFile.index.getAndIncrement(); + String size = "size" + GenerateProtocolFile.localVariableId++; builder.append(StringUtils.format("const {} = buffer.readInt();", size)).append(LS); GenerateProtocolFile.addTab(builder, deep); builder.append(StringUtils.format("if ({} > 0) {", size)).append(LS); GenerateProtocolFile.addTab(builder, deep + 1); - String i = "index" + GenerateProtocolFile.index.getAndIncrement(); + String i = "index" + GenerateProtocolFile.localVariableId++; builder.append(StringUtils.format("for (let {} = 0; {} < {}; {}++) {", i, i, size, i)).append(LS); String readObject = GenerateEsUtils.esSerializer(listField.getListElementRegistration().serializer()) .readObject(builder, deep + 2, field, listField.getListElementRegistration()); diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/es/EsLongSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/es/EsLongSerializer.java index 95c1c629..60cd4a10 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/es/EsLongSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/es/EsLongSerializer.java @@ -39,7 +39,7 @@ public class EsLongSerializer implements IEsSerializer { @Override public String readObject(StringBuilder builder, int deep, Field field, IFieldRegistration fieldRegistration) { - String result = "result" + GenerateProtocolFile.index.getAndIncrement(); + String result = "result" + GenerateProtocolFile.localVariableId++; GenerateProtocolFile.addTab(builder, deep); builder.append(StringUtils.format("const {} = buffer.readLong();", result)).append(LS); return result; diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/es/EsMapSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/es/EsMapSerializer.java index b10ed49f..748b9182 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/es/EsMapSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/es/EsMapSerializer.java @@ -53,8 +53,8 @@ public class EsMapSerializer implements IEsSerializer { GenerateProtocolFile.addTab(builder, deep + 1); builder.append(StringUtils.format("buffer.writeInt({}.size);", objectStr)).append(LS); - String key = "key" + GenerateProtocolFile.index.getAndIncrement(); - String value = "value" + GenerateProtocolFile.index.getAndIncrement(); + String key = "key" + GenerateProtocolFile.localVariableId++; + String value = "value" + GenerateProtocolFile.localVariableId++; GenerateProtocolFile.addTab(builder, deep + 1); builder.append(StringUtils.format("{}.forEach(({}, {}) => {", objectStr, value, key)).append(LS); @@ -77,18 +77,18 @@ public class EsMapSerializer implements IEsSerializer { } MapField mapField = (MapField) fieldRegistration; - String result = "result" + GenerateProtocolFile.index.getAndIncrement(); + String result = "result" + GenerateProtocolFile.localVariableId++; builder.append(StringUtils.format("const {} = new Map();", result)).append(LS); GenerateProtocolFile.addTab(builder, deep); - String size = "size" + GenerateProtocolFile.index.getAndIncrement(); + String size = "size" + GenerateProtocolFile.localVariableId++; builder.append(StringUtils.format("const {} = buffer.readInt();", size)).append(LS); GenerateProtocolFile.addTab(builder, deep); builder.append(StringUtils.format("if ({} > 0) {", size)).append(LS); - String i = "index" + GenerateProtocolFile.index.getAndIncrement(); + String i = "index" + GenerateProtocolFile.localVariableId++; GenerateProtocolFile.addTab(builder, deep + 1); builder.append(StringUtils.format("for (let {} = 0; {} < {}; {}++) {", i, i, size, i)).append(LS); diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/es/EsObjectProtocolSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/es/EsObjectProtocolSerializer.java index ae12a855..42aa4356 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/es/EsObjectProtocolSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/es/EsObjectProtocolSerializer.java @@ -46,7 +46,7 @@ public class EsObjectProtocolSerializer implements IEsSerializer { @Override public String readObject(StringBuilder builder, int deep, Field field, IFieldRegistration fieldRegistration) { ObjectProtocolField objectProtocolField = (ObjectProtocolField) fieldRegistration; - var result = "result" + GenerateProtocolFile.index.getAndIncrement(); + var result = "result" + GenerateProtocolFile.localVariableId++; GenerateProtocolFile.addTab(builder, deep); builder.append(StringUtils.format("const {} = buffer.readPacket({});", result, objectProtocolField.getProtocolId())).append(LS); return result; diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/es/EsSetSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/es/EsSetSerializer.java index b611649b..bf680258 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/es/EsSetSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/es/EsSetSerializer.java @@ -54,7 +54,7 @@ public class EsSetSerializer implements IEsSerializer { GenerateProtocolFile.addTab(builder, deep + 1); builder.append(StringUtils.format("buffer.writeInt({}.size);", objectStr)).append(LS); - String element = "element" + GenerateProtocolFile.index.getAndIncrement(); + String element = "element" + GenerateProtocolFile.localVariableId++; GenerateProtocolFile.addTab(builder, deep + 1); builder.append(StringUtils.format("{}.forEach({} => {", objectStr, element)).append(LS); GenerateEsUtils.esSerializer(setField.getSetElementRegistration().serializer()) @@ -74,19 +74,19 @@ public class EsSetSerializer implements IEsSerializer { } SetField setField = (SetField) fieldRegistration; - String result = "result" + GenerateProtocolFile.index.getAndIncrement(); + String result = "result" + GenerateProtocolFile.localVariableId++; builder.append(StringUtils.format("const {} = new Set();", result)).append(LS); GenerateProtocolFile.addTab(builder, deep); - String size = "size" + GenerateProtocolFile.index.getAndIncrement(); + String size = "size" + GenerateProtocolFile.localVariableId++; builder.append(StringUtils.format("const {} = buffer.readInt();", size)).append(LS); GenerateProtocolFile.addTab(builder, deep); builder.append(StringUtils.format("if ({} > 0) {", size)).append(LS); GenerateProtocolFile.addTab(builder, deep + 1); - String i = "index" + GenerateProtocolFile.index.getAndIncrement(); + String i = "index" + GenerateProtocolFile.localVariableId++; builder.append(StringUtils.format("for (let {} = 0; {} < {}; {}++) {", i, i, size, i)).append(LS); String readObject = GenerateEsUtils.esSerializer(setField.getSetElementRegistration().serializer()) .readObject(builder, deep + 2, field, setField.getSetElementRegistration()); diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/es/EsShortSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/es/EsShortSerializer.java index 3c99e89c..021368a5 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/es/EsShortSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/es/EsShortSerializer.java @@ -39,7 +39,7 @@ public class EsShortSerializer implements IEsSerializer { @Override public String readObject(StringBuilder builder, int deep, Field field, IFieldRegistration fieldRegistration) { - String result = "result" + GenerateProtocolFile.index.getAndIncrement(); + String result = "result" + GenerateProtocolFile.localVariableId++; GenerateProtocolFile.addTab(builder, deep); builder.append(StringUtils.format("const {} = buffer.readShort();", result)).append(LS); return result; diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/es/EsStringSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/es/EsStringSerializer.java index f336baef..5dfd03a7 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/es/EsStringSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/es/EsStringSerializer.java @@ -39,7 +39,7 @@ public class EsStringSerializer implements IEsSerializer { @Override public String readObject(StringBuilder builder, int deep, Field field, IFieldRegistration fieldRegistration) { - String result = "result" + GenerateProtocolFile.index.getAndIncrement(); + String result = "result" + GenerateProtocolFile.localVariableId++; GenerateProtocolFile.addTab(builder, deep); builder.append(StringUtils.format("const {} = buffer.readString();", result)).append(LS); return result; diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/es/GenerateEsUtils.java b/protocol/src/main/java/com/zfoo/protocol/serializer/es/GenerateEsUtils.java index ea9c805d..6391f975 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/es/GenerateEsUtils.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/es/GenerateEsUtils.java @@ -18,7 +18,6 @@ import com.zfoo.protocol.generate.GenerateOperation; import com.zfoo.protocol.generate.GenerateProtocolFile; import com.zfoo.protocol.generate.GenerateProtocolNote; import com.zfoo.protocol.generate.GenerateProtocolPath; -import com.zfoo.protocol.registration.IProtocolRegistration; import com.zfoo.protocol.registration.ProtocolRegistration; import com.zfoo.protocol.serializer.CodeLanguage; import com.zfoo.protocol.serializer.reflect.*; @@ -109,9 +108,6 @@ public abstract class GenerateEsUtils { } public static void createEsProtocolFile(ProtocolRegistration registration) throws IOException { - // 初始化index - GenerateProtocolFile.index.set(0); - var protocolId = registration.protocolId(); var registrationConstructor = registration.getConstructor(); var protocolClazzName = registrationConstructor.getDeclaringClass().getSimpleName(); @@ -157,6 +153,7 @@ public abstract class GenerateEsUtils { } private static String writeObject(ProtocolRegistration registration) { + GenerateProtocolFile.localVariableId = 0; var fields = registration.getFields(); var fieldRegistrations = registration.getFieldRegistrations(); var jsBuilder = new StringBuilder(); @@ -178,6 +175,7 @@ public abstract class GenerateEsUtils { } private static String readObject(ProtocolRegistration registration) { + GenerateProtocolFile.localVariableId = 0; var fields = registration.getFields(); var fieldRegistrations = registration.getFieldRegistrations(); var jsBuilder = new StringBuilder(); diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/gdscript/GdArraySerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/gdscript/GdArraySerializer.java index 326b6791..6a8c4381 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/gdscript/GdArraySerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/gdscript/GdArraySerializer.java @@ -64,7 +64,7 @@ public class GdArraySerializer implements IGdSerializer { GenerateProtocolFile.addTabAscii(builder, deep + 1); builder.append(StringUtils.format("buffer.writeInt({}.size())", objectStr)).append(LS); - String element = "element" + GenerateProtocolFile.index.getAndIncrement(); + String element = "element" + GenerateProtocolFile.localVariableId++; GenerateProtocolFile.addTabAscii(builder, deep + 1); builder.append(StringUtils.format("for {} in {}:", element, objectStr)).append(LS); GenerateGdUtils.gdSerializer(arrayField.getArrayElementRegistration().serializer()) @@ -80,12 +80,12 @@ public class GdArraySerializer implements IGdSerializer { } ArrayField arrayField = (ArrayField) fieldRegistration; - String result = "result" + GenerateProtocolFile.index.getAndIncrement(); + String result = "result" + GenerateProtocolFile.localVariableId++; builder.append(StringUtils.format("var {} = []", result)).append(LS); - String i = "index" + GenerateProtocolFile.index.getAndIncrement(); - String size = "size" + GenerateProtocolFile.index.getAndIncrement(); + String i = "index" + GenerateProtocolFile.localVariableId++; + String size = "size" + GenerateProtocolFile.localVariableId++; GenerateProtocolFile.addTabAscii(builder, deep); builder.append(StringUtils.format("var {} = buffer.readInt()", size)).append(LS); diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/gdscript/GdBooleanSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/gdscript/GdBooleanSerializer.java index 732c901a..ae7152f9 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/gdscript/GdBooleanSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/gdscript/GdBooleanSerializer.java @@ -40,7 +40,7 @@ public class GdBooleanSerializer implements IGdSerializer { @Override public String readObject(StringBuilder builder, int deep, Field field, IFieldRegistration fieldRegistration) { - String result = "result" + GenerateProtocolFile.index.getAndIncrement(); + String result = "result" + GenerateProtocolFile.localVariableId++; GenerateProtocolFile.addTabAscii(builder, deep); builder.append(StringUtils.format("var {} = buffer.readBool() ", result)).append(LS); diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/gdscript/GdByteSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/gdscript/GdByteSerializer.java index 4279ac4b..fca63ac5 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/gdscript/GdByteSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/gdscript/GdByteSerializer.java @@ -40,7 +40,7 @@ public class GdByteSerializer implements IGdSerializer { @Override public String readObject(StringBuilder builder, int deep, Field field, IFieldRegistration fieldRegistration) { - String result = "result" + GenerateProtocolFile.index.getAndIncrement(); + String result = "result" + GenerateProtocolFile.localVariableId++; GenerateProtocolFile.addTabAscii(builder, deep); builder.append(StringUtils.format("var {} = buffer.readByte()", result)).append(LS); diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/gdscript/GdDoubleSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/gdscript/GdDoubleSerializer.java index c0c08c0f..a6ee1e93 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/gdscript/GdDoubleSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/gdscript/GdDoubleSerializer.java @@ -40,7 +40,7 @@ public class GdDoubleSerializer implements IGdSerializer { @Override public String readObject(StringBuilder builder, int deep, Field field, IFieldRegistration fieldRegistration) { - String result = "result" + GenerateProtocolFile.index.getAndIncrement(); + String result = "result" + GenerateProtocolFile.localVariableId++; GenerateProtocolFile.addTabAscii(builder, deep); builder.append(StringUtils.format("var {} = buffer.readDouble()", result)).append(LS); diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/gdscript/GdFloatSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/gdscript/GdFloatSerializer.java index c9fc8197..17242961 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/gdscript/GdFloatSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/gdscript/GdFloatSerializer.java @@ -40,7 +40,7 @@ public class GdFloatSerializer implements IGdSerializer { @Override public String readObject(StringBuilder builder, int deep, Field field, IFieldRegistration fieldRegistration) { - String result = "result" + GenerateProtocolFile.index.getAndIncrement(); + String result = "result" + GenerateProtocolFile.localVariableId++; GenerateProtocolFile.addTabAscii(builder, deep); builder.append(StringUtils.format("var {} = buffer.readFloat()", result)).append(LS); diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/gdscript/GdIntSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/gdscript/GdIntSerializer.java index f36e1265..6966bd47 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/gdscript/GdIntSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/gdscript/GdIntSerializer.java @@ -39,7 +39,7 @@ public class GdIntSerializer implements IGdSerializer { @Override public String readObject(StringBuilder builder, int deep, Field field, IFieldRegistration fieldRegistration) { - String result = "result" + GenerateProtocolFile.index.getAndIncrement(); + String result = "result" + GenerateProtocolFile.localVariableId++; GenerateProtocolFile.addTabAscii(builder, deep); builder.append(StringUtils.format("var {} = buffer.readInt()", result)).append(LS); diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/gdscript/GdListSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/gdscript/GdListSerializer.java index 7a3d6497..d53b6fbf 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/gdscript/GdListSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/gdscript/GdListSerializer.java @@ -55,7 +55,7 @@ public class GdListSerializer implements IGdSerializer { GenerateProtocolFile.addTabAscii(builder, deep + 1); builder.append(StringUtils.format("buffer.writeInt({}.size())", objectStr)).append(LS); - String element = "element" + GenerateProtocolFile.index.getAndIncrement(); + String element = "element" + GenerateProtocolFile.localVariableId++; GenerateProtocolFile.addTabAscii(builder, deep + 1); builder.append(StringUtils.format("for {} in {}:", element, objectStr)).append(LS); GenerateGdUtils.gdSerializer(listField.getListElementRegistration().serializer()) @@ -71,12 +71,12 @@ public class GdListSerializer implements IGdSerializer { } ListField listField = (ListField) fieldRegistration; - String result = "result" + GenerateProtocolFile.index.getAndIncrement(); + String result = "result" + GenerateProtocolFile.localVariableId++; builder.append(StringUtils.format("var {} = []", result)).append(LS); - String i = "index" + GenerateProtocolFile.index.getAndIncrement(); - String size = "size" + GenerateProtocolFile.index.getAndIncrement(); + String i = "index" + GenerateProtocolFile.localVariableId++; + String size = "size" + GenerateProtocolFile.localVariableId++; GenerateProtocolFile.addTabAscii(builder, deep); builder.append(StringUtils.format("var {} = buffer.readInt()", size)).append(LS); diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/gdscript/GdLongSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/gdscript/GdLongSerializer.java index 4d60b383..906c3bf9 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/gdscript/GdLongSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/gdscript/GdLongSerializer.java @@ -39,7 +39,7 @@ public class GdLongSerializer implements IGdSerializer { @Override public String readObject(StringBuilder builder, int deep, Field field, IFieldRegistration fieldRegistration) { - String result = "result" + GenerateProtocolFile.index.getAndIncrement(); + String result = "result" + GenerateProtocolFile.localVariableId++; GenerateProtocolFile.addTabAscii(builder, deep); builder.append(StringUtils.format("var {} = buffer.readLong()", result)).append(LS); diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/gdscript/GdMapSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/gdscript/GdMapSerializer.java index e6cc4f81..040f9a7d 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/gdscript/GdMapSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/gdscript/GdMapSerializer.java @@ -52,8 +52,8 @@ public class GdMapSerializer implements IGdSerializer { GenerateProtocolFile.addTabAscii(builder, deep + 1); builder.append(StringUtils.format("buffer.writeInt({}.size())", objectStr)).append(LS); - String key = "key" + GenerateProtocolFile.index.getAndIncrement(); - String value = "value" + GenerateProtocolFile.index.getAndIncrement(); + String key = "key" + GenerateProtocolFile.localVariableId++; + String value = "value" + GenerateProtocolFile.localVariableId++; GenerateProtocolFile.addTabAscii(builder, deep + 1); builder.append(StringUtils.format("for {} in {}:", key, objectStr)).append(LS); @@ -74,18 +74,18 @@ public class GdMapSerializer implements IGdSerializer { } MapField mapField = (MapField) fieldRegistration; - String result = "result" + GenerateProtocolFile.index.getAndIncrement(); + String result = "result" + GenerateProtocolFile.localVariableId++; builder.append(StringUtils.format("var {} = {}", result)).append(LS); GenerateProtocolFile.addTabAscii(builder, deep); - String size = "size" + GenerateProtocolFile.index.getAndIncrement(); + String size = "size" + GenerateProtocolFile.localVariableId++; builder.append(StringUtils.format("var {} = buffer.readInt()", size)).append(LS); GenerateProtocolFile.addTabAscii(builder, deep); builder.append(StringUtils.format("if ({} > 0):", size)).append(LS); - String i = "index" + GenerateProtocolFile.index.getAndIncrement(); + String i = "index" + GenerateProtocolFile.localVariableId++; GenerateProtocolFile.addTabAscii(builder, deep + 1); builder.append(StringUtils.format("for {} in range({}):", i, size)).append(LS); diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/gdscript/GdObjectProtocolSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/gdscript/GdObjectProtocolSerializer.java index a1943d29..5f66558e 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/gdscript/GdObjectProtocolSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/gdscript/GdObjectProtocolSerializer.java @@ -44,7 +44,7 @@ public class GdObjectProtocolSerializer implements IGdSerializer { @Override public String readObject(StringBuilder builder, int deep, Field field, IFieldRegistration fieldRegistration) { ObjectProtocolField objectProtocolField = (ObjectProtocolField) fieldRegistration; - var result = "result" + GenerateProtocolFile.index.getAndIncrement(); + var result = "result" + GenerateProtocolFile.localVariableId++; GenerateProtocolFile.addTabAscii(builder, deep); builder.append(StringUtils.format("var {} = buffer.readPacket({})", result, objectProtocolField.getProtocolId())).append(LS); return result; diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/gdscript/GdSetSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/gdscript/GdSetSerializer.java index 142910ca..245e677e 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/gdscript/GdSetSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/gdscript/GdSetSerializer.java @@ -55,7 +55,7 @@ public class GdSetSerializer implements IGdSerializer { GenerateProtocolFile.addTabAscii(builder, deep + 1); builder.append(StringUtils.format("buffer.writeInt({}.size())", objectStr)).append(LS); - String element = "element" + GenerateProtocolFile.index.getAndIncrement(); + String element = "element" + GenerateProtocolFile.localVariableId++; GenerateProtocolFile.addTabAscii(builder, deep + 1); builder.append(StringUtils.format("for {} in {}:", element, objectStr)).append(LS); GenerateGdUtils.gdSerializer(setField.getSetElementRegistration().serializer()) @@ -71,12 +71,12 @@ public class GdSetSerializer implements IGdSerializer { } SetField setField = (SetField) fieldRegistration; - String result = "result" + GenerateProtocolFile.index.getAndIncrement(); + String result = "result" + GenerateProtocolFile.localVariableId++; builder.append(StringUtils.format("var {} = []", result)).append(LS); - String i = "index" + GenerateProtocolFile.index.getAndIncrement(); - String size = "size" + GenerateProtocolFile.index.getAndIncrement(); + String i = "index" + GenerateProtocolFile.localVariableId++; + String size = "size" + GenerateProtocolFile.localVariableId++; GenerateProtocolFile.addTabAscii(builder, deep); builder.append(StringUtils.format("var {} = buffer.readInt()", size)).append(LS); diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/gdscript/GdShortSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/gdscript/GdShortSerializer.java index f21c778f..9bb59364 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/gdscript/GdShortSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/gdscript/GdShortSerializer.java @@ -40,7 +40,7 @@ public class GdShortSerializer implements IGdSerializer { @Override public String readObject(StringBuilder builder, int deep, Field field, IFieldRegistration fieldRegistration) { - String result = "result" + GenerateProtocolFile.index.getAndIncrement(); + String result = "result" + GenerateProtocolFile.localVariableId++; GenerateProtocolFile.addTabAscii(builder, deep); builder.append(StringUtils.format("var {} = buffer.readShort()", result)).append(LS); diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/gdscript/GdStringSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/gdscript/GdStringSerializer.java index b9f43acf..06666dd9 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/gdscript/GdStringSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/gdscript/GdStringSerializer.java @@ -39,7 +39,7 @@ public class GdStringSerializer implements IGdSerializer { @Override public String readObject(StringBuilder builder, int deep, Field field, IFieldRegistration fieldRegistration) { - String result = "result" + GenerateProtocolFile.index.getAndIncrement(); + String result = "result" + GenerateProtocolFile.localVariableId++; GenerateProtocolFile.addTabAscii(builder, deep); builder.append(StringUtils.format("var {} = buffer.readString()", result)).append(LS); return result; 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 729cf75f..25eeda06 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 @@ -19,7 +19,6 @@ import com.zfoo.protocol.generate.GenerateOperation; import com.zfoo.protocol.generate.GenerateProtocolFile; import com.zfoo.protocol.generate.GenerateProtocolNote; import com.zfoo.protocol.generate.GenerateProtocolPath; -import com.zfoo.protocol.registration.IProtocolRegistration; import com.zfoo.protocol.registration.ProtocolAnalysis; import com.zfoo.protocol.registration.ProtocolRegistration; import com.zfoo.protocol.registration.field.IFieldRegistration; @@ -109,9 +108,6 @@ public abstract class GenerateGdUtils { } public static void createGdProtocolFile(ProtocolRegistration registration) throws IOException { - // 初始化index - GenerateProtocolFile.index.set(0); - var protocolId = registration.protocolId(); var registrationConstructor = registration.getConstructor(); var protocolClazzName = registrationConstructor.getDeclaringClass().getSimpleName(); @@ -225,6 +221,7 @@ public abstract class GenerateGdUtils { } private static String writeObject(ProtocolRegistration registration) { + GenerateProtocolFile.localVariableId = 0; var fields = registration.getFields(); var fieldRegistrations = registration.getFieldRegistrations(); var gdBuilder = new StringBuilder(); @@ -246,6 +243,7 @@ public abstract class GenerateGdUtils { } private static String readObject(ProtocolRegistration registration) { + GenerateProtocolFile.localVariableId = 0; var fields = registration.getFields(); var fieldRegistrations = registration.getFieldRegistrations(); var gdBuilder = new StringBuilder(); diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/go/GenerateGoUtils.java b/protocol/src/main/java/com/zfoo/protocol/serializer/go/GenerateGoUtils.java index a8e6d4ae..333bde08 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/go/GenerateGoUtils.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/go/GenerateGoUtils.java @@ -18,7 +18,6 @@ import com.zfoo.protocol.collection.ArrayUtils; import com.zfoo.protocol.generate.GenerateOperation; import com.zfoo.protocol.generate.GenerateProtocolFile; import com.zfoo.protocol.generate.GenerateProtocolNote; -import com.zfoo.protocol.registration.IProtocolRegistration; import com.zfoo.protocol.registration.ProtocolRegistration; import com.zfoo.protocol.registration.field.IFieldRegistration; import com.zfoo.protocol.serializer.CodeLanguage; @@ -106,8 +105,6 @@ public abstract class GenerateGoUtils { } public static void createGoProtocolFile(ProtocolRegistration registration) throws IOException { - GenerateProtocolFile.index.set(0); - var protocolId = registration.protocolId(); var registrationConstructor = registration.getConstructor(); var protocolClazzName = registrationConstructor.getDeclaringClass().getSimpleName(); @@ -161,6 +158,7 @@ public abstract class GenerateGoUtils { } private static String writeObject(ProtocolRegistration registration) { + GenerateProtocolFile.localVariableId = 0; var fields = registration.getFields(); var fieldRegistrations = registration.getFieldRegistrations(); var goBuilder = new StringBuilder(); @@ -182,6 +180,7 @@ public abstract class GenerateGoUtils { } private static String readObject(ProtocolRegistration registration) { + GenerateProtocolFile.localVariableId = 0; var fields = registration.getFields(); var fieldRegistrations = registration.getFieldRegistrations(); var goBuilder = new StringBuilder(); diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/go/GoArraySerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/go/GoArraySerializer.java index 3df12408..9196be6c 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/go/GoArraySerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/go/GoArraySerializer.java @@ -14,10 +14,8 @@ package com.zfoo.protocol.serializer.go; import com.zfoo.protocol.generate.GenerateProtocolFile; -import com.zfoo.protocol.model.Pair; import com.zfoo.protocol.registration.field.ArrayField; import com.zfoo.protocol.registration.field.IFieldRegistration; -import com.zfoo.protocol.registration.field.MapField; import com.zfoo.protocol.serializer.CodeLanguage; import com.zfoo.protocol.serializer.CutDownArraySerializer; import com.zfoo.protocol.util.StringUtils; @@ -57,15 +55,15 @@ public class GoArraySerializer implements IGoSerializer { GenerateProtocolFile.addTab(builder, deep + 1); builder.append(StringUtils.format("buffer.WriteInt(len({}))", objectStr)).append(LS); GenerateProtocolFile.addTab(builder, deep + 1); - String length = "length" + GenerateProtocolFile.index.getAndIncrement(); + String length = "length" + GenerateProtocolFile.localVariableId++; builder.append(StringUtils.format("var {} = len({})", length, objectStr)).append(LS); - String i = "i" + GenerateProtocolFile.index.getAndIncrement(); + String i = "i" + GenerateProtocolFile.localVariableId++; GenerateProtocolFile.addTab(builder, deep + 1); builder.append(StringUtils.format("for {} := 0; {} < {}; {}++ {", i, i, length, i)).append(LS); GenerateProtocolFile.addTab(builder, deep + 2); - String element = "element" + GenerateProtocolFile.index.getAndIncrement(); + String element = "element" + GenerateProtocolFile.localVariableId++; builder.append(StringUtils.format("var {} = {}[{}]", element, objectStr, i)).append(LS); GenerateGoUtils.goSerializer(arrayField.getArrayElementRegistration().serializer()) @@ -87,12 +85,12 @@ public class GoArraySerializer implements IGoSerializer { var arrayField = (ArrayField) fieldRegistration; - var result = "result" + GenerateProtocolFile.index.getAndIncrement(); + var result = "result" + GenerateProtocolFile.localVariableId++; var typeName = fieldType(field, fieldRegistration); - var i = "index" + GenerateProtocolFile.index.getAndIncrement(); - var size = "size" + GenerateProtocolFile.index.getAndIncrement(); + var i = "index" + GenerateProtocolFile.localVariableId++; + var size = "size" + GenerateProtocolFile.localVariableId++; builder.append(StringUtils.format("var {} = buffer.ReadInt()", size)).append(LS); GenerateProtocolFile.addTab(builder, deep); diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/go/GoBooleanSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/go/GoBooleanSerializer.java index bf948a4b..85ed7b9b 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/go/GoBooleanSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/go/GoBooleanSerializer.java @@ -14,7 +14,6 @@ package com.zfoo.protocol.serializer.go; import com.zfoo.protocol.generate.GenerateProtocolFile; -import com.zfoo.protocol.model.Pair; import com.zfoo.protocol.registration.field.IFieldRegistration; import com.zfoo.protocol.util.StringUtils; @@ -40,7 +39,7 @@ public class GoBooleanSerializer implements IGoSerializer { @Override public String readObject(StringBuilder builder, int deep, Field field, IFieldRegistration fieldRegistration) { - String result = "result" + GenerateProtocolFile.index.getAndIncrement(); + String result = "result" + GenerateProtocolFile.localVariableId++; GenerateProtocolFile.addTab(builder, deep); builder.append(StringUtils.format("var {} = buffer.ReadBool()", result)).append(LS); diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/go/GoByteSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/go/GoByteSerializer.java index 80128db3..c5762560 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/go/GoByteSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/go/GoByteSerializer.java @@ -14,7 +14,6 @@ package com.zfoo.protocol.serializer.go; import com.zfoo.protocol.generate.GenerateProtocolFile; -import com.zfoo.protocol.model.Pair; import com.zfoo.protocol.registration.field.IFieldRegistration; import com.zfoo.protocol.util.StringUtils; @@ -40,7 +39,7 @@ public class GoByteSerializer implements IGoSerializer { @Override public String readObject(StringBuilder builder, int deep, Field field, IFieldRegistration fieldRegistration) { - String result = "result" + GenerateProtocolFile.index.getAndIncrement(); + String result = "result" + GenerateProtocolFile.localVariableId++; GenerateProtocolFile.addTab(builder, deep); builder.append(StringUtils.format("var {} = buffer.ReadByte()", result)).append(LS); diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/go/GoDoubleSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/go/GoDoubleSerializer.java index 106d1ae4..f3b697f8 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/go/GoDoubleSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/go/GoDoubleSerializer.java @@ -39,7 +39,7 @@ public class GoDoubleSerializer implements IGoSerializer { @Override public String readObject(StringBuilder builder, int deep, Field field, IFieldRegistration fieldRegistration) { - String result = "result" + GenerateProtocolFile.index.getAndIncrement(); + String result = "result" + GenerateProtocolFile.localVariableId++; GenerateProtocolFile.addTab(builder, deep); builder.append(StringUtils.format("var {} = buffer.ReadDouble()", result)).append(LS); diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/go/GoFloatSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/go/GoFloatSerializer.java index e95ba036..adcd385a 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/go/GoFloatSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/go/GoFloatSerializer.java @@ -39,7 +39,7 @@ public class GoFloatSerializer implements IGoSerializer { @Override public String readObject(StringBuilder builder, int deep, Field field, IFieldRegistration fieldRegistration) { - String result = "result" + GenerateProtocolFile.index.getAndIncrement(); + String result = "result" + GenerateProtocolFile.localVariableId++; GenerateProtocolFile.addTab(builder, deep); builder.append(StringUtils.format("var {} = buffer.ReadFloat()", result)).append(LS); diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/go/GoIntSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/go/GoIntSerializer.java index 05079b5f..5db76ffd 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/go/GoIntSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/go/GoIntSerializer.java @@ -39,7 +39,7 @@ public class GoIntSerializer implements IGoSerializer { @Override public String readObject(StringBuilder builder, int deep, Field field, IFieldRegistration fieldRegistration) { - String result = "result" + GenerateProtocolFile.index.getAndIncrement(); + String result = "result" + GenerateProtocolFile.localVariableId++; GenerateProtocolFile.addTab(builder, deep); builder.append(StringUtils.format("var {} = buffer.ReadInt()", result)).append(LS); diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/go/GoListSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/go/GoListSerializer.java index 96a5df70..c969e816 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/go/GoListSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/go/GoListSerializer.java @@ -56,15 +56,15 @@ public class GoListSerializer implements IGoSerializer { builder.append(StringUtils.format("buffer.WriteInt(len({}))", objectStr)).append(LS); GenerateProtocolFile.addTab(builder, deep + 1); - String length = "length" + GenerateProtocolFile.index.getAndIncrement(); + String length = "length" + GenerateProtocolFile.localVariableId++; builder.append(StringUtils.format("var {} = len({})", length, objectStr)).append(LS); GenerateProtocolFile.addTab(builder, deep + 1); - String i = "i" + GenerateProtocolFile.index.getAndIncrement(); + String i = "i" + GenerateProtocolFile.localVariableId++; builder.append(StringUtils.format("for {} := 0; {} < {}; {}++ {", i, i, length, i)).append(LS); GenerateProtocolFile.addTab(builder, deep + 2); - String element = "element" + GenerateProtocolFile.index.getAndIncrement(); + String element = "element" + GenerateProtocolFile.localVariableId++; builder.append(StringUtils.format("var {} = {}[{}]", element, objectStr, i)).append(LS); GenerateGoUtils.goSerializer(listField.getListElementRegistration().serializer()) @@ -85,12 +85,12 @@ public class GoListSerializer implements IGoSerializer { } var listField = (ListField) fieldRegistration; - var result = "result" + GenerateProtocolFile.index.getAndIncrement(); + var result = "result" + GenerateProtocolFile.localVariableId++; var typeName = fieldType(field, fieldRegistration); - var i = "index" + GenerateProtocolFile.index.getAndIncrement(); - var size = "size" + GenerateProtocolFile.index.getAndIncrement(); + var i = "index" + GenerateProtocolFile.localVariableId++; + var size = "size" + GenerateProtocolFile.localVariableId++; builder.append(StringUtils.format("var {} = buffer.ReadInt()", size)).append(LS); GenerateProtocolFile.addTab(builder, deep); diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/go/GoLongSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/go/GoLongSerializer.java index c5e3310a..fd518308 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/go/GoLongSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/go/GoLongSerializer.java @@ -39,7 +39,7 @@ public class GoLongSerializer implements IGoSerializer { @Override public String readObject(StringBuilder builder, int deep, Field field, IFieldRegistration fieldRegistration) { - String result = "result" + GenerateProtocolFile.index.getAndIncrement(); + String result = "result" + GenerateProtocolFile.localVariableId++; GenerateProtocolFile.addTab(builder, deep); builder.append(StringUtils.format("var {} = buffer.ReadLong()", result)).append(LS); diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/go/GoMapSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/go/GoMapSerializer.java index 5da91e3c..88fcc815 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/go/GoMapSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/go/GoMapSerializer.java @@ -62,12 +62,12 @@ public class GoMapSerializer implements IGoSerializer { builder.append(StringUtils.format("buffer.WriteInt(len({}))", objectStr)).append(LS); - String i = "i" + GenerateProtocolFile.index.getAndIncrement(); + String i = "i" + GenerateProtocolFile.localVariableId++; GenerateProtocolFile.addTab(builder, deep + 1); - String key = "keyElement" + GenerateProtocolFile.index.getAndIncrement(); - String value = "valueElement" + GenerateProtocolFile.index.getAndIncrement(); + String key = "keyElement" + GenerateProtocolFile.localVariableId++; + String value = "valueElement" + GenerateProtocolFile.localVariableId++; builder.append(StringUtils.format("for {}, {} := range {} {", key, value, objectStr)).append(LS); GenerateGoUtils.goSerializer(mapField.getMapKeyRegistration().serializer()) @@ -90,11 +90,11 @@ public class GoMapSerializer implements IGoSerializer { } MapField mapField = (MapField) fieldRegistration; - String result = "result" + GenerateProtocolFile.index.getAndIncrement(); + String result = "result" + GenerateProtocolFile.localVariableId++; var typeName = fieldType(field, fieldRegistration); - String size = "size" + GenerateProtocolFile.index.getAndIncrement(); + String size = "size" + GenerateProtocolFile.localVariableId++; builder.append(StringUtils.format("var {} = buffer.ReadInt()", size)).append(LS); GenerateProtocolFile.addTab(builder, deep); @@ -104,7 +104,7 @@ public class GoMapSerializer implements IGoSerializer { GenerateProtocolFile.addTab(builder, deep); builder.append(StringUtils.format("if {} > 0 {", size)).append(LS); - String i = "index" + GenerateProtocolFile.index.getAndIncrement(); + String i = "index" + GenerateProtocolFile.localVariableId++; GenerateProtocolFile.addTab(builder, deep + 1); builder.append(StringUtils.format("for {} := 0; {} < {}; {}++ {", i, i, size, i)).append(LS); diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/go/GoObjectProtocolSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/go/GoObjectProtocolSerializer.java index c5183a43..2475402b 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/go/GoObjectProtocolSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/go/GoObjectProtocolSerializer.java @@ -46,7 +46,7 @@ public class GoObjectProtocolSerializer implements IGoSerializer { @Override public String readObject(StringBuilder builder, int deep, Field field, IFieldRegistration fieldRegistration) { ObjectProtocolField objectProtocolField = (ObjectProtocolField) fieldRegistration; - String result = "result" + GenerateProtocolFile.index.getAndIncrement(); + String result = "result" + GenerateProtocolFile.localVariableId++; var protocolSimpleName = EnhanceObjectProtocolSerializer.getProtocolClassSimpleName(objectProtocolField.getProtocolId()); diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/go/GoSetSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/go/GoSetSerializer.java index 2ef9a364..1b05949a 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/go/GoSetSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/go/GoSetSerializer.java @@ -57,14 +57,14 @@ public class GoSetSerializer implements IGoSerializer { builder.append(StringUtils.format("buffer.WriteInt(len({}))", objectStr)).append(LS); GenerateProtocolFile.addTab(builder, deep + 1); - String length = "length" + GenerateProtocolFile.index.getAndIncrement(); + String length = "length" + GenerateProtocolFile.localVariableId++; builder.append(StringUtils.format("var {} = len({})", length, objectStr)).append(LS); GenerateProtocolFile.addTab(builder, deep + 1); - String i = "i" + GenerateProtocolFile.index.getAndIncrement(); + String i = "i" + GenerateProtocolFile.localVariableId++; builder.append(StringUtils.format("for {} := 0; {} < {}; {}++ {", i, i, length, i)).append(LS); GenerateProtocolFile.addTab(builder, deep + 2); - String element = "element" + GenerateProtocolFile.index.getAndIncrement(); + String element = "element" + GenerateProtocolFile.localVariableId++; builder.append(StringUtils.format("var {} = {}[{}]", element, objectStr, i)).append(LS); GenerateGoUtils.goSerializer(setField.getSetElementRegistration().serializer()) @@ -85,12 +85,12 @@ public class GoSetSerializer implements IGoSerializer { } SetField setField = (SetField) fieldRegistration; - var result = "result" + GenerateProtocolFile.index.getAndIncrement(); + var result = "result" + GenerateProtocolFile.localVariableId++; var typeName = fieldType(field, fieldRegistration); - var i = "index" + GenerateProtocolFile.index.getAndIncrement(); - var size = "size" + GenerateProtocolFile.index.getAndIncrement(); + var i = "index" + GenerateProtocolFile.localVariableId++; + var size = "size" + GenerateProtocolFile.localVariableId++; builder.append(StringUtils.format("var {} = buffer.ReadInt()", size)).append(LS); GenerateProtocolFile.addTab(builder, deep); diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/go/GoShortSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/go/GoShortSerializer.java index 3347e9c4..ad1e4fa4 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/go/GoShortSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/go/GoShortSerializer.java @@ -39,7 +39,7 @@ public class GoShortSerializer implements IGoSerializer { @Override public String readObject(StringBuilder builder, int deep, Field field, IFieldRegistration fieldRegistration) { - String result = "result" + GenerateProtocolFile.index.getAndIncrement(); + String result = "result" + GenerateProtocolFile.localVariableId++; GenerateProtocolFile.addTab(builder, deep); builder.append(StringUtils.format("var {} = buffer.ReadShort()", result)).append(LS); diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/go/GoStringSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/go/GoStringSerializer.java index 1f3d6976..02bc8ed8 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/go/GoStringSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/go/GoStringSerializer.java @@ -39,7 +39,7 @@ public class GoStringSerializer implements IGoSerializer { @Override public String readObject(StringBuilder builder, int deep, Field field, IFieldRegistration fieldRegistration) { - String result = "result" + GenerateProtocolFile.index.getAndIncrement(); + String result = "result" + GenerateProtocolFile.localVariableId++; GenerateProtocolFile.addTab(builder, deep); builder.append(StringUtils.format("var {} = buffer.ReadString()", result)).append(LS); 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 new file mode 100644 index 00000000..60140533 --- /dev/null +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/javascript/CodeGenerateJavascript.java @@ -0,0 +1,309 @@ +/* + * Copyright (C) 2020 The zfoo Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except + * in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed + * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and limitations under the License. + */ + +package com.zfoo.protocol.serializer.javascript; + +import com.zfoo.protocol.anno.Compatible; +import com.zfoo.protocol.generate.GenerateOperation; +import com.zfoo.protocol.generate.GenerateProtocolFile; +import com.zfoo.protocol.generate.GenerateProtocolNote; +import com.zfoo.protocol.generate.GenerateProtocolPath; +import com.zfoo.protocol.registration.ProtocolRegistration; +import com.zfoo.protocol.serializer.CodeLanguage; +import com.zfoo.protocol.serializer.CodeTemplatePlaceholder; +import com.zfoo.protocol.serializer.ICodeGenerate; +import com.zfoo.protocol.serializer.reflect.*; +import com.zfoo.protocol.util.ClassUtils; +import com.zfoo.protocol.util.FileUtils; +import com.zfoo.protocol.util.ReflectionUtils; +import com.zfoo.protocol.util.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.io.File; +import java.io.IOException; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.zfoo.protocol.util.FileUtils.LS; +import static com.zfoo.protocol.util.StringUtils.TAB; + +/** + * @author godotg + */ +public class CodeGenerateJavascript implements ICodeGenerate { + private static final Logger logger = LoggerFactory.getLogger(CodeGenerateJavascript.class); + // custom configuration + public static String protocolOutputRootPath = "zfoojs"; + private static String protocolOutputPath = StringUtils.EMPTY; + + private static final Map jsSerializerMap = new HashMap<>(); + + public static IJsSerializer jsSerializer(ISerializer serializer) { + return jsSerializerMap.get(serializer); + } + + @Override + public void init(GenerateOperation generateOperation) { + protocolOutputPath = FileUtils.joinPath(generateOperation.getProtocolPath(), protocolOutputRootPath); + FileUtils.deleteFile(new File(protocolOutputPath)); + + jsSerializerMap.put(BooleanSerializer.INSTANCE, new JsBooleanSerializer()); + jsSerializerMap.put(ByteSerializer.INSTANCE, new JsByteSerializer()); + jsSerializerMap.put(ShortSerializer.INSTANCE, new JsShortSerializer()); + jsSerializerMap.put(IntSerializer.INSTANCE, new JsIntSerializer()); + jsSerializerMap.put(LongSerializer.INSTANCE, new JsLongSerializer()); + jsSerializerMap.put(FloatSerializer.INSTANCE, new JsFloatSerializer()); + jsSerializerMap.put(DoubleSerializer.INSTANCE, new JsDoubleSerializer()); + jsSerializerMap.put(StringSerializer.INSTANCE, new JsStringSerializer()); + jsSerializerMap.put(ArraySerializer.INSTANCE, new JsArraySerializer()); + jsSerializerMap.put(ListSerializer.INSTANCE, new JsListSerializer()); + jsSerializerMap.put(SetSerializer.INSTANCE, new JsSetSerializer()); + jsSerializerMap.put(MapSerializer.INSTANCE, new JsMapSerializer()); + jsSerializerMap.put(ObjectProtocolSerializer.INSTANCE, new JsObjectProtocolSerializer()); + } + + @Override + public void mergerProtocol(List registrations) throws IOException { + createTemplateFile(); + + // 生成ProtocolManager.js文件 + var protocolManagerTemplate = ClassUtils.getFileFromClassPathToString("javascript/ProtocolManagerTemplate.js"); + var protocol_imports = new StringBuilder(); + var protocol_manager_registrations = new StringBuilder(); + protocol_imports.append("import Protocols from './Protocols.js';").append(LS); + for (var registration : registrations) { + var protocol_id = registration.protocolId(); + var protocol_class_name = registration.protocolConstructor().getDeclaringClass().getSimpleName(); + protocol_manager_registrations.append(StringUtils.format("protocols.set({}, Protocols.{});", protocol_id, protocol_class_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); + var protocolManagerFile = new File(StringUtils.format("{}/{}", protocolOutputPath, "ProtocolManager.js")); + 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() + , CodeTemplatePlaceholder.protocol_registration, protocol_registration.toString() + )); + var outputPath = StringUtils.format("{}/Protocols.js", protocolOutputPath); + var file = new File(outputPath); + FileUtils.writeStringToFile(file, formatProtocolTemplate, true); + logger.info("Generated Javascript protocol file:[{}] is in path:[{}]", file.getName(), file.getAbsolutePath()); + } + + @Override + public void foldProtocol(List registrations) throws IOException { + createTemplateFile(); + + // 生成ProtocolManager.js文件 + var protocolManagerTemplate = ClassUtils.getFileFromClassPathToString("javascript/ProtocolManagerTemplate.js"); + var protocol_imports = new StringBuilder(); + var protocol_manager_registrations = new StringBuilder(); + for (var registration : registrations) { + var protocol_id = registration.protocolId(); + var protocol_class_name = registration.protocolConstructor().getDeclaringClass().getSimpleName(); + protocol_imports.append(StringUtils.format("import {} from './{}.js';", protocol_class_name, GenerateProtocolPath.protocolAbsolutePath(registration.protocolId(), CodeLanguage.JavaScript))).append(LS); + protocol_manager_registrations.append(StringUtils.format("protocols.set({}, {});", protocol_id, protocol_class_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); + var protocolManagerFile = new File(StringUtils.format("{}/{}", protocolOutputPath, "ProtocolManager.js")); + FileUtils.writeStringToFile(protocolManagerFile, formatProtocolManagerTemplate, true); + logger.info("Generated Javascript 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("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.protocolPath(protocol_id), protocol_name); + var file = new File(outputPath); + FileUtils.writeStringToFile(file, formatProtocolTemplate, true); + logger.info("Generated Javascript protocol file:[{}] is in path:[{}]", file.getName(), file.getAbsolutePath()); + } + } + + @Override + public void defaultProtocol(List registrations) throws IOException { + createTemplateFile(); + // 生成ProtocolManager.js文件 + var protocolManagerTemplate = ClassUtils.getFileFromClassPathToString("javascript/ProtocolManagerTemplate.js"); + var protocol_imports = new StringBuilder(); + var protocol_manager_registrations = new StringBuilder(); + for (var registration : registrations) { + var protocol_id = registration.protocolId(); + var protocol_class_name = registration.protocolConstructor().getDeclaringClass().getSimpleName(); + protocol_imports.append(StringUtils.format("import {} from './{}.js';", protocol_class_name, protocol_class_name)).append(LS); + protocol_manager_registrations.append(StringUtils.format("protocols.set({}, {});", protocol_id, protocol_class_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); + var protocolManagerFile = new File(StringUtils.format("{}/{}", protocolOutputPath, "ProtocolManager.js")); + FileUtils.writeStringToFile(protocolManagerFile, formatProtocolManagerTemplate, true); + logger.info("Generated Javascript 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("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); + logger.info("Generated Javascript protocol file:[{}] is in path:[{}]", file.getName(), file.getAbsolutePath()); + } + } + + private void createTemplateFile() throws IOException { + var list = List.of("javascript/buffer/ByteBuffer.js", "javascript/buffer/long.js", "javascript/buffer/longbits.js"); + for (var fileName : list) { + var fileInputStream = ClassUtils.getFileFromClassPath(fileName); + var outputPath = StringUtils.format("{}/{}", protocolOutputPath, StringUtils.substringAfterFirst(fileName, "javascript/")); + var createFile = new File(outputPath); + FileUtils.writeInputStreamToFile(createFile, fileInputStream); + } + } + + private String protocol_class(ProtocolRegistration registration) { + var protocol_id = registration.protocolId(); + var protocol_class_name = registration.protocolConstructor().getDeclaringClass().getSimpleName(); + + var protocolClassTemplate = ClassUtils.getFileFromClassPathToString("javascript/ProtocolClassTemplate.js"); + var placeholderMap = Map.of( + CodeTemplatePlaceholder.protocol_note, GenerateProtocolNote.protocol_note(protocol_id, CodeLanguage.JavaScript) + , CodeTemplatePlaceholder.protocol_name, protocol_class_name + , CodeTemplatePlaceholder.protocol_field_definition, protocol_field_definition(registration) + ); + return CodeTemplatePlaceholder.formatTemplate(protocolClassTemplate, placeholderMap); + } + + private String protocol_registration(ProtocolRegistration registration) { + var protocol_id = registration.protocolId(); + var protocol_class_name = registration.protocolConstructor().getDeclaringClass().getSimpleName(); + + var protocolRegistrationTemplate = ClassUtils.getFileFromClassPathToString("javascript/ProtocolRegistrationTemplate.js"); + var placeholderMap = Map.of( + CodeTemplatePlaceholder.protocol_name, protocol_class_name + , CodeTemplatePlaceholder.protocol_id, String.valueOf(protocol_id) + , CodeTemplatePlaceholder.protocol_write_serialization, protocol_write_serialization(registration) + , CodeTemplatePlaceholder.protocol_read_deserialization, protocol_read_deserialization(registration) + ); + return CodeTemplatePlaceholder.formatTemplate(protocolRegistrationTemplate, placeholderMap); + } + + + private String protocol_field_definition(ProtocolRegistration registration) { + var protocolId = registration.getId(); + var fields = registration.getFields(); + var fieldRegistrations = registration.getFieldRegistrations(); + // when generate source code fields, use origin fields sort + var sequencedFields = ReflectionUtils.notStaticAndTransientFields(registration.getConstructor().getDeclaringClass()); + var fieldDefinitionBuilder = new StringBuilder(); + for (var field : sequencedFields) { + var fieldRegistration = fieldRegistrations[GenerateProtocolFile.indexOf(fields, field)]; + var fieldName = field.getName(); + // 生成注释 + var fieldNotes = GenerateProtocolNote.fieldNotes(protocolId, fieldName, CodeLanguage.JavaScript); + for (var fieldNote : fieldNotes) { + fieldDefinitionBuilder.append(fieldNote).append(LS); + } + var triple = jsSerializer(fieldRegistration.serializer()).field(field, fieldRegistration); + fieldDefinitionBuilder.append(StringUtils.format("this.{} = {}; // {}", fieldName, triple.getRight(), triple.getLeft())) + .append(LS); + + } + return fieldDefinitionBuilder.toString(); + } + + private String protocol_write_serialization(ProtocolRegistration registration) { + GenerateProtocolFile.localVariableId = 0; + var fields = registration.getFields(); + var fieldRegistrations = registration.getFieldRegistrations(); + var jsBuilder = new StringBuilder(); + if (registration.isCompatible()) { + jsBuilder.append("const beforeWriteIndex = buffer.getWriteOffset();").append(LS); + jsBuilder.append(StringUtils.format("buffer.writeInt({});", registration.getPredictionLength())).append(LS); + } else { + jsBuilder.append("buffer.writeInt(-1);").append(LS); + } + for (var i = 0; i < fields.length; i++) { + var field = fields[i]; + var fieldRegistration = fieldRegistrations[i]; + jsSerializer(fieldRegistration.serializer()).writeObject(jsBuilder, "packet." + field.getName(), 0, field, fieldRegistration); + } + if (registration.isCompatible()) { + jsBuilder.append(StringUtils.format("buffer.adjustPadding({}, beforeWriteIndex);", registration.getPredictionLength())).append(LS); + } + return jsBuilder.toString(); + } + + private String protocol_read_deserialization(ProtocolRegistration registration) { + GenerateProtocolFile.localVariableId = 0; + var fields = registration.getFields(); + var fieldRegistrations = registration.getFieldRegistrations(); + var jsBuilder = new StringBuilder(); + for (var i = 0; i < fields.length; i++) { + var field = fields[i]; + var fieldRegistration = fieldRegistrations[i]; + if (field.isAnnotationPresent(Compatible.class)) { + jsBuilder.append("if (buffer.compatibleRead(beforeReadIndex, length)) {").append(LS); + var compatibleReadObject = jsSerializer(fieldRegistration.serializer()).readObject(jsBuilder, 1, field, fieldRegistration); + jsBuilder.append(TAB).append(StringUtils.format("packet.{} = {};", field.getName(), compatibleReadObject)).append(LS); + jsBuilder.append("}").append(LS); + continue; + } + var readObject = jsSerializer(fieldRegistration.serializer()).readObject(jsBuilder, 0, field, fieldRegistration); + jsBuilder.append(StringUtils.format("packet.{} = {};", field.getName(), readObject)).append(LS); + } + return jsBuilder.toString(); + } +} diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/javascript/GenerateJsUtils.java b/protocol/src/main/java/com/zfoo/protocol/serializer/javascript/GenerateJsUtils.java deleted file mode 100644 index 3fa8080a..00000000 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/javascript/GenerateJsUtils.java +++ /dev/null @@ -1,199 +0,0 @@ -/* - * Copyright (C) 2020 The zfoo Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed - * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and limitations under the License. - */ - -package com.zfoo.protocol.serializer.javascript; - -import com.zfoo.protocol.anno.Compatible; -import com.zfoo.protocol.generate.GenerateOperation; -import com.zfoo.protocol.generate.GenerateProtocolFile; -import com.zfoo.protocol.generate.GenerateProtocolNote; -import com.zfoo.protocol.generate.GenerateProtocolPath; -import com.zfoo.protocol.registration.IProtocolRegistration; -import com.zfoo.protocol.registration.ProtocolRegistration; -import com.zfoo.protocol.serializer.CodeLanguage; -import com.zfoo.protocol.serializer.reflect.*; -import com.zfoo.protocol.util.ClassUtils; -import com.zfoo.protocol.util.FileUtils; -import com.zfoo.protocol.util.ReflectionUtils; -import com.zfoo.protocol.util.StringUtils; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import java.io.File; -import java.io.IOException; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import static com.zfoo.protocol.util.FileUtils.LS; -import static com.zfoo.protocol.util.StringUtils.TAB; - -/** - * @author godotg - */ -public abstract class GenerateJsUtils { - private static final Logger logger = LoggerFactory.getLogger(GenerateJsUtils.class); - // custom configuration - public static String protocolOutputRootPath = "zfoojs"; - private static String protocolOutputPath = StringUtils.EMPTY; - - private static Map jsSerializerMap; - - - public static IJsSerializer jsSerializer(ISerializer serializer) { - return jsSerializerMap.get(serializer); - } - - public static void init(GenerateOperation generateOperation) { - protocolOutputPath = FileUtils.joinPath(generateOperation.getProtocolPath(), protocolOutputRootPath); - FileUtils.deleteFile(new File(protocolOutputPath)); - - jsSerializerMap = new HashMap<>(); - jsSerializerMap.put(BooleanSerializer.INSTANCE, new JsBooleanSerializer()); - jsSerializerMap.put(ByteSerializer.INSTANCE, new JsByteSerializer()); - jsSerializerMap.put(ShortSerializer.INSTANCE, new JsShortSerializer()); - jsSerializerMap.put(IntSerializer.INSTANCE, new JsIntSerializer()); - jsSerializerMap.put(LongSerializer.INSTANCE, new JsLongSerializer()); - jsSerializerMap.put(FloatSerializer.INSTANCE, new JsFloatSerializer()); - jsSerializerMap.put(DoubleSerializer.INSTANCE, new JsDoubleSerializer()); - jsSerializerMap.put(StringSerializer.INSTANCE, new JsStringSerializer()); - jsSerializerMap.put(ArraySerializer.INSTANCE, new JsArraySerializer()); - jsSerializerMap.put(ListSerializer.INSTANCE, new JsListSerializer()); - jsSerializerMap.put(SetSerializer.INSTANCE, new JsSetSerializer()); - jsSerializerMap.put(MapSerializer.INSTANCE, new JsMapSerializer()); - jsSerializerMap.put(ObjectProtocolSerializer.INSTANCE, new JsObjectProtocolSerializer()); - } - - public static void clear() { - protocolOutputRootPath = null; - protocolOutputPath = null; - jsSerializerMap = null; - } - - public static void createProtocolManager(List protocolList) throws IOException { - var list = List.of("javascript/buffer/ByteBuffer.js", "javascript/buffer/long.js", "javascript/buffer/longbits.js"); - for (var fileName : list) { - var fileInputStream = ClassUtils.getFileFromClassPath(fileName); - var outputPath = StringUtils.format("{}/{}", protocolOutputPath, StringUtils.substringAfterFirst(fileName, "javascript/")); - var createFile = new File(outputPath); - FileUtils.writeInputStreamToFile(createFile, fileInputStream); - } - - // 生成ProtocolManager.js文件 - var protocolManagerTemplate = ClassUtils.getFileFromClassPathToString("javascript/ProtocolManagerTemplate.js"); - - var importBuilder = new StringBuilder(); - var initProtocolBuilder = new StringBuilder(); - for (var protocol : protocolList) { - var protocolId = protocol.protocolId(); - var protocolName = protocol.protocolConstructor().getDeclaringClass().getSimpleName(); - var path = GenerateProtocolPath.protocolAbsolutePath(protocol.protocolId(), CodeLanguage.JavaScript); - importBuilder.append(StringUtils.format("import {} from './{}.js';", protocolName, path)).append(LS); - initProtocolBuilder.append(StringUtils.format("protocols.set({}, {});", protocolId, protocolName)).append(LS); - } - - protocolManagerTemplate = StringUtils.format(protocolManagerTemplate, importBuilder.toString().trim(), StringUtils.EMPTY_JSON, initProtocolBuilder.toString().trim()); - var file = new File(StringUtils.format("{}/{}", protocolOutputPath, "ProtocolManager.js")); - FileUtils.writeStringToFile(file, protocolManagerTemplate, true); - logger.info("Generated JavaScript protocol manager file:[{}] is in path:[{}]", file.getName(), file.getAbsolutePath()); - } - - public static void createJsProtocolFile(ProtocolRegistration registration) throws IOException { - // 初始化index - GenerateProtocolFile.index.set(0); - - var protocolId = registration.protocolId(); - var registrationConstructor = registration.getConstructor(); - var protocolClazzName = registrationConstructor.getDeclaringClass().getSimpleName(); - - var protocolTemplate = ClassUtils.getFileFromClassPathToString("javascript/ProtocolTemplate.js"); - - var classNote = GenerateProtocolNote.classNote(protocolId, CodeLanguage.JavaScript, TAB, 0); - var fieldDefinition = fieldDefinition(registration); - var writeObject = writeObject(registration); - var readObject = readObject(registration); - - protocolTemplate = StringUtils.format(protocolTemplate, classNote, protocolClazzName - , fieldDefinition.trim(), protocolClazzName, protocolId, protocolClazzName, protocolClazzName, protocolClazzName - , writeObject.trim(), protocolClazzName, protocolClazzName, readObject.trim(), protocolClazzName); - var outputPath = StringUtils.format("{}/{}/{}.js", protocolOutputPath, GenerateProtocolPath.getProtocolPath(protocolId), protocolClazzName); - var file = new File(outputPath); - FileUtils.writeStringToFile(file, protocolTemplate, true); - logger.info("Generated JavaScript protocol file:[{}] is in path:[{}]", file.getName(), file.getAbsolutePath()); - } - - private static String fieldDefinition(ProtocolRegistration registration) { - var protocolId = registration.getId(); - var fields = registration.getFields(); - var fieldRegistrations = registration.getFieldRegistrations(); - // when generate source code fields, use origin fields sort - var sequencedFields = ReflectionUtils.notStaticAndTransientFields(registration.getConstructor().getDeclaringClass()); - var fieldDefinitionBuilder = new StringBuilder(); - for (var field : sequencedFields) { - var fieldRegistration = fieldRegistrations[GenerateProtocolFile.indexOf(fields, field)]; - var fieldName = field.getName(); - // 生成注释 - var fieldNotes = GenerateProtocolNote.fieldNotes(protocolId, fieldName, CodeLanguage.JavaScript); - for (var fieldNote : fieldNotes) { - fieldDefinitionBuilder.append(TAB).append(fieldNote).append(LS); - } - var triple = jsSerializer(fieldRegistration.serializer()).field(field, fieldRegistration); - fieldDefinitionBuilder.append(TAB) - .append(StringUtils.format("this.{} = {}; // {}", fieldName, triple.getRight(), triple.getLeft())) - .append(LS); - - } - return fieldDefinitionBuilder.toString(); - } - - private static String writeObject(ProtocolRegistration registration) { - var fields = registration.getFields(); - var fieldRegistrations = registration.getFieldRegistrations(); - var jsBuilder = new StringBuilder(); - if (registration.isCompatible()) { - jsBuilder.append("const beforeWriteIndex = buffer.getWriteOffset();").append(LS); - jsBuilder.append(TAB).append(StringUtils.format("buffer.writeInt({});", registration.getPredictionLength())).append(LS); - } else { - jsBuilder.append(TAB).append("buffer.writeInt(-1);").append(LS); - } - for (var i = 0; i < fields.length; i++) { - var field = fields[i]; - var fieldRegistration = fieldRegistrations[i]; - jsSerializer(fieldRegistration.serializer()).writeObject(jsBuilder, "packet." + field.getName(), 1, field, fieldRegistration); - } - if (registration.isCompatible()) { - jsBuilder.append(TAB).append(StringUtils.format("buffer.adjustPadding({}, beforeWriteIndex);", registration.getPredictionLength())).append(LS); - } - return jsBuilder.toString(); - } - - private static String readObject(ProtocolRegistration registration) { - var fields = registration.getFields(); - var fieldRegistrations = registration.getFieldRegistrations(); - var jsBuilder = new StringBuilder(); - for (var i = 0; i < fields.length; i++) { - var field = fields[i]; - var fieldRegistration = fieldRegistrations[i]; - if (field.isAnnotationPresent(Compatible.class)) { - jsBuilder.append(TAB).append("if (buffer.compatibleRead(beforeReadIndex, length)) {").append(LS); - var compatibleReadObject = jsSerializer(fieldRegistration.serializer()).readObject(jsBuilder, 2, field, fieldRegistration); - jsBuilder.append(TAB + TAB).append(StringUtils.format("packet.{} = {};", field.getName(), compatibleReadObject)).append(LS); - jsBuilder.append(TAB).append("}").append(LS); - continue; - } - var readObject = jsSerializer(fieldRegistration.serializer()).readObject(jsBuilder, 1, field, fieldRegistration); - jsBuilder.append(TAB).append(StringUtils.format("packet.{} = {};", field.getName(), readObject)).append(LS); - } - return jsBuilder.toString(); - } -} diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/javascript/JsArraySerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/javascript/JsArraySerializer.java index eccb70b7..4c0b104a 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/javascript/JsArraySerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/javascript/JsArraySerializer.java @@ -54,10 +54,10 @@ public class JsArraySerializer implements IJsSerializer { GenerateProtocolFile.addTab(builder, deep + 1); builder.append(StringUtils.format("buffer.writeInt({}.length);", objectStr)).append(LS); - String element = "element" + GenerateProtocolFile.index.getAndIncrement(); + String element = "element" + GenerateProtocolFile.localVariableId++; GenerateProtocolFile.addTab(builder, deep + 1); builder.append(StringUtils.format("{}.forEach({} => {", objectStr, element)).append(LS); - GenerateJsUtils.jsSerializer(arrayField.getArrayElementRegistration().serializer()) + CodeGenerateJavascript.jsSerializer(arrayField.getArrayElementRegistration().serializer()) .writeObject(builder, element, deep + 2, field, arrayField.getArrayElementRegistration()); GenerateProtocolFile.addTab(builder, deep + 1); builder.append("});").append(LS); @@ -74,12 +74,12 @@ public class JsArraySerializer implements IJsSerializer { } ArrayField arrayField = (ArrayField) fieldRegistration; - String result = "result" + GenerateProtocolFile.index.getAndIncrement(); + String result = "result" + GenerateProtocolFile.localVariableId++; builder.append(StringUtils.format("const {} = [];", result)).append(LS); - String i = "index" + GenerateProtocolFile.index.getAndIncrement(); - String size = "size" + GenerateProtocolFile.index.getAndIncrement(); + String i = "index" + GenerateProtocolFile.localVariableId++; + String size = "size" + GenerateProtocolFile.localVariableId++; GenerateProtocolFile.addTab(builder, deep); builder.append(StringUtils.format("const {} = buffer.readInt();", size)).append(LS); @@ -88,7 +88,7 @@ public class JsArraySerializer implements IJsSerializer { builder.append(StringUtils.format("if ({} > 0) {", size)).append(LS); GenerateProtocolFile.addTab(builder, deep + 1); builder.append(StringUtils.format("for (let {} = 0; {} < {}; {}++) {", i, i, size, i)).append(LS); - String readObject = GenerateJsUtils.jsSerializer(arrayField.getArrayElementRegistration().serializer()) + String readObject = CodeGenerateJavascript.jsSerializer(arrayField.getArrayElementRegistration().serializer()) .readObject(builder, deep + 2, field, arrayField.getArrayElementRegistration()); GenerateProtocolFile.addTab(builder, deep + 2); builder.append(StringUtils.format("{}.push({});", result, readObject)).append(LS); diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/javascript/JsBooleanSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/javascript/JsBooleanSerializer.java index 528442ae..6822b063 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/javascript/JsBooleanSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/javascript/JsBooleanSerializer.java @@ -39,7 +39,7 @@ public class JsBooleanSerializer implements IJsSerializer { @Override public String readObject(StringBuilder builder, int deep, Field field, IFieldRegistration fieldRegistration) { - String result = "result" + GenerateProtocolFile.index.getAndIncrement(); + String result = "result" + GenerateProtocolFile.localVariableId++; GenerateProtocolFile.addTab(builder, deep); builder.append(StringUtils.format("const {} = buffer.readBoolean(); ", result)).append(LS); return result; diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/javascript/JsByteSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/javascript/JsByteSerializer.java index a98c8e5b..bde7f65f 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/javascript/JsByteSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/javascript/JsByteSerializer.java @@ -39,7 +39,7 @@ public class JsByteSerializer implements IJsSerializer { @Override public String readObject(StringBuilder builder, int deep, Field field, IFieldRegistration fieldRegistration) { - String result = "result" + GenerateProtocolFile.index.getAndIncrement(); + String result = "result" + GenerateProtocolFile.localVariableId++; GenerateProtocolFile.addTab(builder, deep); builder.append(StringUtils.format("const {} = buffer.readByte();", result)).append(LS); return result; diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/javascript/JsDoubleSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/javascript/JsDoubleSerializer.java index 53bdbeee..170d7114 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/javascript/JsDoubleSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/javascript/JsDoubleSerializer.java @@ -39,7 +39,7 @@ public class JsDoubleSerializer implements IJsSerializer { @Override public String readObject(StringBuilder builder, int deep, Field field, IFieldRegistration fieldRegistration) { - String result = "result" + GenerateProtocolFile.index.getAndIncrement(); + String result = "result" + GenerateProtocolFile.localVariableId++; GenerateProtocolFile.addTab(builder, deep); builder.append(StringUtils.format("const {} = buffer.readDouble();", result)).append(LS); return result; diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/javascript/JsFloatSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/javascript/JsFloatSerializer.java index 1b02b023..22df9fce 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/javascript/JsFloatSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/javascript/JsFloatSerializer.java @@ -39,7 +39,7 @@ public class JsFloatSerializer implements IJsSerializer { @Override public String readObject(StringBuilder builder, int deep, Field field, IFieldRegistration fieldRegistration) { - String result = "result" + GenerateProtocolFile.index.getAndIncrement(); + String result = "result" + GenerateProtocolFile.localVariableId++; GenerateProtocolFile.addTab(builder, deep); builder.append(StringUtils.format("const {} = buffer.readFloat();", result)).append(LS); return result; diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/javascript/JsIntSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/javascript/JsIntSerializer.java index 196d8c69..0226b179 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/javascript/JsIntSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/javascript/JsIntSerializer.java @@ -39,7 +39,7 @@ public class JsIntSerializer implements IJsSerializer { @Override public String readObject(StringBuilder builder, int deep, Field field, IFieldRegistration fieldRegistration) { - String result = "result" + GenerateProtocolFile.index.getAndIncrement(); + String result = "result" + GenerateProtocolFile.localVariableId++; GenerateProtocolFile.addTab(builder, deep); builder.append(StringUtils.format("const {} = buffer.readInt();", result)).append(LS); return result; diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/javascript/JsListSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/javascript/JsListSerializer.java index cf37e008..a6cb30af 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/javascript/JsListSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/javascript/JsListSerializer.java @@ -53,10 +53,10 @@ public class JsListSerializer implements IJsSerializer { GenerateProtocolFile.addTab(builder, deep + 1); builder.append(StringUtils.format("buffer.writeInt({}.length);", objectStr)).append(LS); - String element = "element" + GenerateProtocolFile.index.getAndIncrement(); + String element = "element" + GenerateProtocolFile.localVariableId++; GenerateProtocolFile.addTab(builder, deep + 1); builder.append(StringUtils.format("{}.forEach({} => {", objectStr, element)).append(LS); - GenerateJsUtils.jsSerializer(listField.getListElementRegistration().serializer()) + CodeGenerateJavascript.jsSerializer(listField.getListElementRegistration().serializer()) .writeObject(builder, element, deep + 2, field, listField.getListElementRegistration()); GenerateProtocolFile.addTab(builder, deep + 1); builder.append("});").append(LS); @@ -73,21 +73,21 @@ public class JsListSerializer implements IJsSerializer { } ListField listField = (ListField) fieldRegistration; - String result = "result" + GenerateProtocolFile.index.getAndIncrement(); + String result = "result" + GenerateProtocolFile.localVariableId++; builder.append(StringUtils.format("const {} = [];", result)).append(LS); GenerateProtocolFile.addTab(builder, deep); - String size = "size" + GenerateProtocolFile.index.getAndIncrement(); + String size = "size" + GenerateProtocolFile.localVariableId++; builder.append(StringUtils.format("const {} = buffer.readInt();", size)).append(LS); GenerateProtocolFile.addTab(builder, deep); builder.append(StringUtils.format("if ({} > 0) {", size)).append(LS); GenerateProtocolFile.addTab(builder, deep + 1); - String i = "index" + GenerateProtocolFile.index.getAndIncrement(); + String i = "index" + GenerateProtocolFile.localVariableId++; builder.append(StringUtils.format("for (let {} = 0; {} < {}; {}++) {", i, i, size, i)).append(LS); - String readObject = GenerateJsUtils.jsSerializer(listField.getListElementRegistration().serializer()) + String readObject = CodeGenerateJavascript.jsSerializer(listField.getListElementRegistration().serializer()) .readObject(builder, deep + 2, field, listField.getListElementRegistration()); GenerateProtocolFile.addTab(builder, deep + 2); builder.append(StringUtils.format("{}.push({});", result, readObject)).append(LS); diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/javascript/JsLongSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/javascript/JsLongSerializer.java index 8560f653..32e64d78 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/javascript/JsLongSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/javascript/JsLongSerializer.java @@ -39,7 +39,7 @@ public class JsLongSerializer implements IJsSerializer { @Override public String readObject(StringBuilder builder, int deep, Field field, IFieldRegistration fieldRegistration) { - String result = "result" + GenerateProtocolFile.index.getAndIncrement(); + String result = "result" + GenerateProtocolFile.localVariableId++; GenerateProtocolFile.addTab(builder, deep); builder.append(StringUtils.format("const {} = buffer.readLong();", result)).append(LS); return result; diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/javascript/JsMapSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/javascript/JsMapSerializer.java index f3434034..ad390f22 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/javascript/JsMapSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/javascript/JsMapSerializer.java @@ -53,14 +53,14 @@ public class JsMapSerializer implements IJsSerializer { GenerateProtocolFile.addTab(builder, deep + 1); builder.append(StringUtils.format("buffer.writeInt({}.size);", objectStr)).append(LS); - String key = "key" + GenerateProtocolFile.index.getAndIncrement(); - String value = "value" + GenerateProtocolFile.index.getAndIncrement(); + String key = "key" + GenerateProtocolFile.localVariableId++; + String value = "value" + GenerateProtocolFile.localVariableId++; GenerateProtocolFile.addTab(builder, deep + 1); builder.append(StringUtils.format("{}.forEach(({}, {}) => {", objectStr, value, key)).append(LS); - GenerateJsUtils.jsSerializer(mapField.getMapKeyRegistration().serializer()) + CodeGenerateJavascript.jsSerializer(mapField.getMapKeyRegistration().serializer()) .writeObject(builder, key, deep + 2, field, mapField.getMapKeyRegistration()); - GenerateJsUtils.jsSerializer(mapField.getMapValueRegistration().serializer()) + CodeGenerateJavascript.jsSerializer(mapField.getMapValueRegistration().serializer()) .writeObject(builder, value, deep + 2, field, mapField.getMapValueRegistration()); GenerateProtocolFile.addTab(builder, deep + 1); builder.append("});").append(LS); @@ -77,26 +77,26 @@ public class JsMapSerializer implements IJsSerializer { } MapField mapField = (MapField) fieldRegistration; - String result = "result" + GenerateProtocolFile.index.getAndIncrement(); + String result = "result" + GenerateProtocolFile.localVariableId++; builder.append(StringUtils.format("const {} = new Map();", result)).append(LS); GenerateProtocolFile.addTab(builder, deep); - String size = "size" + GenerateProtocolFile.index.getAndIncrement(); + String size = "size" + GenerateProtocolFile.localVariableId++; builder.append(StringUtils.format("const {} = buffer.readInt();", size)).append(LS); GenerateProtocolFile.addTab(builder, deep); builder.append(StringUtils.format("if ({} > 0) {", size)).append(LS); - String i = "index" + GenerateProtocolFile.index.getAndIncrement(); + String i = "index" + GenerateProtocolFile.localVariableId++; GenerateProtocolFile.addTab(builder, deep + 1); builder.append(StringUtils.format("for (let {} = 0; {} < {}; {}++) {", i, i, size, i)).append(LS); - String keyObject = GenerateJsUtils.jsSerializer(mapField.getMapKeyRegistration().serializer()) + String keyObject = CodeGenerateJavascript.jsSerializer(mapField.getMapKeyRegistration().serializer()) .readObject(builder, deep + 2, field, mapField.getMapKeyRegistration()); - String valueObject = GenerateJsUtils.jsSerializer(mapField.getMapValueRegistration().serializer()) + String valueObject = CodeGenerateJavascript.jsSerializer(mapField.getMapValueRegistration().serializer()) .readObject(builder, deep + 2, field, mapField.getMapValueRegistration()); GenerateProtocolFile.addTab(builder, deep + 2); diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/javascript/JsObjectProtocolSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/javascript/JsObjectProtocolSerializer.java index 2353e184..a3028562 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/javascript/JsObjectProtocolSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/javascript/JsObjectProtocolSerializer.java @@ -46,7 +46,7 @@ public class JsObjectProtocolSerializer implements IJsSerializer { @Override public String readObject(StringBuilder builder, int deep, Field field, IFieldRegistration fieldRegistration) { ObjectProtocolField objectProtocolField = (ObjectProtocolField) fieldRegistration; - var result = "result" + GenerateProtocolFile.index.getAndIncrement(); + var result = "result" + GenerateProtocolFile.localVariableId++; GenerateProtocolFile.addTab(builder, deep); builder.append(StringUtils.format("const {} = buffer.readPacket({});", result, objectProtocolField.getProtocolId())).append(LS); return result; diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/javascript/JsSetSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/javascript/JsSetSerializer.java index 624d1225..4ee35f1e 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/javascript/JsSetSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/javascript/JsSetSerializer.java @@ -54,10 +54,10 @@ public class JsSetSerializer implements IJsSerializer { GenerateProtocolFile.addTab(builder, deep + 1); builder.append(StringUtils.format("buffer.writeInt({}.size);", objectStr)).append(LS); - String element = "element" + GenerateProtocolFile.index.getAndIncrement(); + String element = "element" + GenerateProtocolFile.localVariableId++; GenerateProtocolFile.addTab(builder, deep + 1); builder.append(StringUtils.format("{}.forEach({} => {", objectStr, element)).append(LS); - GenerateJsUtils.jsSerializer(setField.getSetElementRegistration().serializer()) + CodeGenerateJavascript.jsSerializer(setField.getSetElementRegistration().serializer()) .writeObject(builder, element, deep + 2, field, setField.getSetElementRegistration()); GenerateProtocolFile.addTab(builder, deep + 1); builder.append("});").append(LS); @@ -74,21 +74,21 @@ public class JsSetSerializer implements IJsSerializer { } SetField setField = (SetField) fieldRegistration; - String result = "result" + GenerateProtocolFile.index.getAndIncrement(); + String result = "result" + GenerateProtocolFile.localVariableId++; builder.append(StringUtils.format("const {} = new Set();", result)).append(LS); GenerateProtocolFile.addTab(builder, deep); - String size = "size" + GenerateProtocolFile.index.getAndIncrement(); + String size = "size" + GenerateProtocolFile.localVariableId++; builder.append(StringUtils.format("const {} = buffer.readInt();", size)).append(LS); GenerateProtocolFile.addTab(builder, deep); builder.append(StringUtils.format("if ({} > 0) {", size)).append(LS); GenerateProtocolFile.addTab(builder, deep + 1); - String i = "index" + GenerateProtocolFile.index.getAndIncrement(); + String i = "index" + GenerateProtocolFile.localVariableId++; builder.append(StringUtils.format("for (let {} = 0; {} < {}; {}++) {", i, i, size, i)).append(LS); - String readObject = GenerateJsUtils.jsSerializer(setField.getSetElementRegistration().serializer()) + String readObject = CodeGenerateJavascript.jsSerializer(setField.getSetElementRegistration().serializer()) .readObject(builder, deep + 2, field, setField.getSetElementRegistration()); GenerateProtocolFile.addTab(builder, deep + 2); builder.append(StringUtils.format("{}.add({});", result, readObject)).append(LS); diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/javascript/JsShortSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/javascript/JsShortSerializer.java index c99a3c8c..3b05ba64 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/javascript/JsShortSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/javascript/JsShortSerializer.java @@ -39,7 +39,7 @@ public class JsShortSerializer implements IJsSerializer { @Override public String readObject(StringBuilder builder, int deep, Field field, IFieldRegistration fieldRegistration) { - String result = "result" + GenerateProtocolFile.index.getAndIncrement(); + String result = "result" + GenerateProtocolFile.localVariableId++; GenerateProtocolFile.addTab(builder, deep); builder.append(StringUtils.format("const {} = buffer.readShort();", result)).append(LS); return result; diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/javascript/JsStringSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/javascript/JsStringSerializer.java index 6b52b82c..afc1fc95 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/javascript/JsStringSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/javascript/JsStringSerializer.java @@ -39,7 +39,7 @@ public class JsStringSerializer implements IJsSerializer { @Override public String readObject(StringBuilder builder, int deep, Field field, IFieldRegistration fieldRegistration) { - String result = "result" + GenerateProtocolFile.index.getAndIncrement(); + String result = "result" + GenerateProtocolFile.localVariableId++; GenerateProtocolFile.addTab(builder, deep); builder.append(StringUtils.format("const {} = buffer.readString();", result)).append(LS); return result; 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 4e7b003b..d2e2ac5d 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 @@ -18,7 +18,6 @@ import com.zfoo.protocol.generate.GenerateOperation; import com.zfoo.protocol.generate.GenerateProtocolFile; import com.zfoo.protocol.generate.GenerateProtocolNote; import com.zfoo.protocol.generate.GenerateProtocolPath; -import com.zfoo.protocol.registration.IProtocolRegistration; import com.zfoo.protocol.registration.ProtocolRegistration; import com.zfoo.protocol.serializer.CodeLanguage; import com.zfoo.protocol.serializer.CodeTemplatePlaceholder; @@ -97,7 +96,6 @@ public class CodeGenerateLua implements ICodeGenerate { var protocol_class = new StringBuilder(); var protocol_registration = new StringBuilder(); for (var registration : registrations) { - GenerateProtocolFile.index.set(0); var protocol_id = registration.protocolId(); // protocol @@ -203,9 +201,6 @@ public class CodeGenerateLua implements ICodeGenerate { } public String formatProtocolTemplate(ProtocolRegistration registration) { - // 初始化index - GenerateProtocolFile.index.set(0); - var protocol_name = registration.protocolConstructor().getDeclaringClass().getSimpleName(); var protocolTemplate = ClassUtils.getFileFromClassPathToString("lua/ProtocolTemplate.lua"); @@ -238,8 +233,7 @@ public class CodeGenerateLua implements ICodeGenerate { var protocolRegistrationTemplate = ClassUtils.getFileFromClassPathToString("lua/ProtocolRegistrationTemplate.lua"); var placeholderMap = Map.of( - CodeTemplatePlaceholder.protocol_note, GenerateProtocolNote.protocol_note(protocol_id, CodeLanguage.Lua) - , CodeTemplatePlaceholder.protocol_name, protocol_name + CodeTemplatePlaceholder.protocol_name, protocol_name , CodeTemplatePlaceholder.protocol_id, String.valueOf(protocol_id) , CodeTemplatePlaceholder.protocol_field_definition, protocol_field_definition(registration) , CodeTemplatePlaceholder.protocol_write_serialization, protocol_write_serialization(registration) @@ -278,6 +272,7 @@ public class CodeGenerateLua implements ICodeGenerate { } private String protocol_write_serialization(ProtocolRegistration registration) { + GenerateProtocolFile.localVariableId = 0; var fields = registration.getFields(); var fieldRegistrations = registration.getFieldRegistrations(); var luaBuilder = new StringBuilder(); @@ -300,6 +295,7 @@ public class CodeGenerateLua implements ICodeGenerate { } private String protocol_read_deserialization(ProtocolRegistration registration) { + GenerateProtocolFile.localVariableId = 0; var fields = registration.getFields(); var fieldRegistrations = registration.getFieldRegistrations(); var luaBuilder = new StringBuilder(); diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/lua/LuaArraySerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/lua/LuaArraySerializer.java index 50ea36db..f8541351 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/lua/LuaArraySerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/lua/LuaArraySerializer.java @@ -52,8 +52,8 @@ public class LuaArraySerializer implements ILuaSerializer { GenerateProtocolFile.addTab(builder, deep + 1); builder.append(StringUtils.format("buffer:writeInt(#{});", objectStr)).append(LS); - String index = "index" + GenerateProtocolFile.index.getAndIncrement(); - String element = "element" + GenerateProtocolFile.index.getAndIncrement(); + String index = "index" + GenerateProtocolFile.localVariableId++; + String element = "element" + GenerateProtocolFile.localVariableId++; GenerateProtocolFile.addTab(builder, deep + 1); builder.append(StringUtils.format("for {}, {} in pairs({}) do", index, element, objectStr)).append(LS); CodeGenerateLua.luaSerializer(arrayField.getArrayElementRegistration().serializer()) @@ -73,11 +73,11 @@ public class LuaArraySerializer implements ILuaSerializer { } var arrayField = (ArrayField) fieldRegistration; - var result = "result" + GenerateProtocolFile.index.getAndIncrement(); + var result = "result" + GenerateProtocolFile.localVariableId++; builder.append(StringUtils.format("local {} = {}", result)).append(LS); - var i = "index" + GenerateProtocolFile.index.getAndIncrement(); - var size = "size" + GenerateProtocolFile.index.getAndIncrement(); + var i = "index" + GenerateProtocolFile.localVariableId++; + var size = "size" + GenerateProtocolFile.localVariableId++; GenerateProtocolFile.addTab(builder, deep); builder.append(StringUtils.format("local {} = buffer:readInt()", size)).append(LS); diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/lua/LuaBooleanSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/lua/LuaBooleanSerializer.java index be6627bf..fb869bc2 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/lua/LuaBooleanSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/lua/LuaBooleanSerializer.java @@ -40,7 +40,7 @@ public class LuaBooleanSerializer implements ILuaSerializer { @Override public String readObject(StringBuilder builder, int deep, Field field, IFieldRegistration fieldRegistration) { - String result = "result" + GenerateProtocolFile.index.getAndIncrement(); + String result = "result" + GenerateProtocolFile.localVariableId++; GenerateProtocolFile.addTab(builder, deep); builder.append(StringUtils.format("local {} = buffer:readBoolean()", result)).append(LS); diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/lua/LuaByteSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/lua/LuaByteSerializer.java index 8ef9751b..548164c2 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/lua/LuaByteSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/lua/LuaByteSerializer.java @@ -40,7 +40,7 @@ public class LuaByteSerializer implements ILuaSerializer { @Override public String readObject(StringBuilder builder, int deep, Field field, IFieldRegistration fieldRegistration) { - String result = "result" + GenerateProtocolFile.index.getAndIncrement(); + String result = "result" + GenerateProtocolFile.localVariableId++; GenerateProtocolFile.addTab(builder, deep); builder.append(StringUtils.format("local {} = buffer:readByte()", result)).append(LS); diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/lua/LuaDoubleSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/lua/LuaDoubleSerializer.java index c72509a8..be80d2d9 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/lua/LuaDoubleSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/lua/LuaDoubleSerializer.java @@ -40,7 +40,7 @@ public class LuaDoubleSerializer implements ILuaSerializer { @Override public String readObject(StringBuilder builder, int deep, Field field, IFieldRegistration fieldRegistration) { - String result = "result" + GenerateProtocolFile.index.getAndIncrement(); + String result = "result" + GenerateProtocolFile.localVariableId++; GenerateProtocolFile.addTab(builder, deep); builder.append(StringUtils.format("local {} = buffer:readDouble()", result)).append(LS); diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/lua/LuaFloatSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/lua/LuaFloatSerializer.java index 6dd61ba7..9ff53e90 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/lua/LuaFloatSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/lua/LuaFloatSerializer.java @@ -39,7 +39,7 @@ public class LuaFloatSerializer implements ILuaSerializer { @Override public String readObject(StringBuilder builder, int deep, Field field, IFieldRegistration fieldRegistration) { - String result = "result" + GenerateProtocolFile.index.getAndIncrement(); + String result = "result" + GenerateProtocolFile.localVariableId++; GenerateProtocolFile.addTab(builder, deep); builder.append(StringUtils.format("local {} = buffer:readFloat()", result)).append(LS); diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/lua/LuaIntSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/lua/LuaIntSerializer.java index 7d23cb92..594485ae 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/lua/LuaIntSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/lua/LuaIntSerializer.java @@ -38,7 +38,7 @@ public class LuaIntSerializer implements ILuaSerializer { @Override public String readObject(StringBuilder builder, int deep, Field field, IFieldRegistration fieldRegistration) { - String result = "result" + GenerateProtocolFile.index.getAndIncrement(); + String result = "result" + GenerateProtocolFile.localVariableId++; GenerateProtocolFile.addTab(builder, deep); builder.append(StringUtils.format("local {} = buffer:readInt()", result)).append(LS); diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/lua/LuaListSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/lua/LuaListSerializer.java index d4405a6f..95054131 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/lua/LuaListSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/lua/LuaListSerializer.java @@ -51,8 +51,8 @@ public class LuaListSerializer implements ILuaSerializer { GenerateProtocolFile.addTab(builder, deep + 1); builder.append(StringUtils.format("buffer:writeInt(#{})", objectStr)).append(LS); - String index = "index" + GenerateProtocolFile.index.getAndIncrement(); - String element = "element" + GenerateProtocolFile.index.getAndIncrement(); + String index = "index" + GenerateProtocolFile.localVariableId++; + String element = "element" + GenerateProtocolFile.localVariableId++; GenerateProtocolFile.addTab(builder, deep + 1); builder.append(StringUtils.format("for {}, {} in pairs({}) do", index, element, objectStr)).append(LS); CodeGenerateLua.luaSerializer(listField.getListElementRegistration().serializer()) @@ -72,18 +72,18 @@ public class LuaListSerializer implements ILuaSerializer { } ListField listField = (ListField) fieldRegistration; - String result = "result" + GenerateProtocolFile.index.getAndIncrement(); + String result = "result" + GenerateProtocolFile.localVariableId++; builder.append(StringUtils.format("local {} = {}", result)).append(LS); GenerateProtocolFile.addTab(builder, deep); - String size = "size" + GenerateProtocolFile.index.getAndIncrement(); + String size = "size" + GenerateProtocolFile.localVariableId++; builder.append(StringUtils.format("local {} = buffer:readInt()", size)).append(LS); GenerateProtocolFile.addTab(builder, deep); builder.append(StringUtils.format("if {} > 0 then", size)).append(LS); GenerateProtocolFile.addTab(builder, deep + 1); - String i = "index" + GenerateProtocolFile.index.getAndIncrement(); + String i = "index" + GenerateProtocolFile.localVariableId++; builder.append(StringUtils.format("for {} = 1, {} do", i, size)).append(LS); String readObject = CodeGenerateLua.luaSerializer(listField.getListElementRegistration().serializer()) .readObject(builder, deep + 2, field, listField.getListElementRegistration()); diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/lua/LuaLongSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/lua/LuaLongSerializer.java index a8f9a04a..56544a69 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/lua/LuaLongSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/lua/LuaLongSerializer.java @@ -39,7 +39,7 @@ public class LuaLongSerializer implements ILuaSerializer { @Override public String readObject(StringBuilder builder, int deep, Field field, IFieldRegistration fieldRegistration) { - String result = "result" + GenerateProtocolFile.index.getAndIncrement(); + String result = "result" + GenerateProtocolFile.localVariableId++; GenerateProtocolFile.addTab(builder, deep); builder.append(StringUtils.format("local {} = buffer:readLong()", result)).append(LS); diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/lua/LuaMapSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/lua/LuaMapSerializer.java index 6029188f..bffd8ec5 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/lua/LuaMapSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/lua/LuaMapSerializer.java @@ -51,8 +51,8 @@ public class LuaMapSerializer implements ILuaSerializer { GenerateProtocolFile.addTab(builder, deep + 1); builder.append(StringUtils.format("buffer:writeInt(table.mapSize({}))", objectStr)).append(LS); - String key = "key" + GenerateProtocolFile.index.getAndIncrement(); - String value = "value" + GenerateProtocolFile.index.getAndIncrement(); + String key = "key" + GenerateProtocolFile.localVariableId++; + String value = "value" + GenerateProtocolFile.localVariableId++; GenerateProtocolFile.addTab(builder, deep + 1); builder.append(StringUtils.format("for {}, {} in pairs({}) do", key, value, objectStr)).append(LS); @@ -75,17 +75,17 @@ public class LuaMapSerializer implements ILuaSerializer { } MapField mapField = (MapField) fieldRegistration; - String result = "result" + GenerateProtocolFile.index.getAndIncrement(); + String result = "result" + GenerateProtocolFile.localVariableId++; builder.append(StringUtils.format("local {} = {}", result)).append(LS); GenerateProtocolFile.addTab(builder, deep); - String size = "size" + GenerateProtocolFile.index.getAndIncrement(); + String size = "size" + GenerateProtocolFile.localVariableId++; builder.append(StringUtils.format("local {} = buffer:readInt()", size)).append(LS); GenerateProtocolFile.addTab(builder, deep); builder.append(StringUtils.format("if {} > 0 then", size)).append(LS); - String i = "index" + GenerateProtocolFile.index.getAndIncrement(); + String i = "index" + GenerateProtocolFile.localVariableId++; GenerateProtocolFile.addTab(builder, deep + 1); builder.append(StringUtils.format("for {} = 1, {} do", i, size, i)).append(LS); diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/lua/LuaObjectProtocolSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/lua/LuaObjectProtocolSerializer.java index 3b2ad1e5..3fc52595 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/lua/LuaObjectProtocolSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/lua/LuaObjectProtocolSerializer.java @@ -41,7 +41,7 @@ public class LuaObjectProtocolSerializer implements ILuaSerializer { @Override public String readObject(StringBuilder builder, int deep, Field field, IFieldRegistration fieldRegistration) { ObjectProtocolField objectProtocolField = (ObjectProtocolField) fieldRegistration; - var result = "result" + GenerateProtocolFile.index.getAndIncrement(); + var result = "result" + GenerateProtocolFile.localVariableId++; GenerateProtocolFile.addTab(builder, deep); builder.append(StringUtils.format("local {} = buffer:readPacket({})", result, objectProtocolField.getProtocolId())).append(LS); return result; diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/lua/LuaSetSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/lua/LuaSetSerializer.java index ec5bbe14..01814c75 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/lua/LuaSetSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/lua/LuaSetSerializer.java @@ -52,8 +52,8 @@ public class LuaSetSerializer implements ILuaSerializer { GenerateProtocolFile.addTab(builder, deep + 1); builder.append(StringUtils.format("buffer:writeInt(#{})", objectStr)).append(LS); - String index = "index" + GenerateProtocolFile.index.getAndIncrement(); - String element = "element" + GenerateProtocolFile.index.getAndIncrement(); + String index = "index" + GenerateProtocolFile.localVariableId++; + String element = "element" + GenerateProtocolFile.localVariableId++; GenerateProtocolFile.addTab(builder, deep + 1); builder.append(StringUtils.format("for {}, {} in pairs({}) do", index, element, objectStr)).append(LS); CodeGenerateLua.luaSerializer(setField.getSetElementRegistration().serializer()) @@ -73,18 +73,18 @@ public class LuaSetSerializer implements ILuaSerializer { } SetField setField = (SetField) fieldRegistration; - String result = "result" + GenerateProtocolFile.index.getAndIncrement(); + String result = "result" + GenerateProtocolFile.localVariableId++; builder.append(StringUtils.format("local {} = {}", result)).append(LS); GenerateProtocolFile.addTab(builder, deep); - String size = "size" + GenerateProtocolFile.index.getAndIncrement(); + String size = "size" + GenerateProtocolFile.localVariableId++; builder.append(StringUtils.format("local {} = buffer:readInt()", size)).append(LS); GenerateProtocolFile.addTab(builder, deep); builder.append(StringUtils.format("if {} > 0 then", size)).append(LS); GenerateProtocolFile.addTab(builder, deep + 1); - String i = "index" + GenerateProtocolFile.index.getAndIncrement(); + String i = "index" + GenerateProtocolFile.localVariableId++; builder.append(StringUtils.format("for {} = 1, {} do", i, size)).append(LS); String readObject = CodeGenerateLua.luaSerializer(setField.getSetElementRegistration().serializer()) .readObject(builder, deep + 2, field, setField.getSetElementRegistration()); diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/lua/LuaShortSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/lua/LuaShortSerializer.java index 2e10f33e..ef57550d 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/lua/LuaShortSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/lua/LuaShortSerializer.java @@ -39,7 +39,7 @@ public class LuaShortSerializer implements ILuaSerializer { @Override public String readObject(StringBuilder builder, int deep, Field field, IFieldRegistration fieldRegistration) { - String result = "result" + GenerateProtocolFile.index.getAndIncrement(); + String result = "result" + GenerateProtocolFile.localVariableId++; GenerateProtocolFile.addTab(builder, deep); builder.append(StringUtils.format("local {} = buffer:readShort()", result)).append(LS); diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/lua/LuaStringSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/lua/LuaStringSerializer.java index 3588b6d4..90ba6fa9 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/lua/LuaStringSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/lua/LuaStringSerializer.java @@ -39,7 +39,7 @@ public class LuaStringSerializer implements ILuaSerializer { @Override public String readObject(StringBuilder builder, int deep, Field field, IFieldRegistration fieldRegistration) { - String result = "result" + GenerateProtocolFile.index.getAndIncrement(); + String result = "result" + GenerateProtocolFile.localVariableId++; GenerateProtocolFile.addTab(builder, deep); builder.append(StringUtils.format("local {} = buffer:readString()", result)).append(LS); return result; diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/python/GeneratePyUtils.java b/protocol/src/main/java/com/zfoo/protocol/serializer/python/GeneratePyUtils.java index 0c806e66..0edaafa5 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/python/GeneratePyUtils.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/python/GeneratePyUtils.java @@ -18,7 +18,6 @@ import com.zfoo.protocol.generate.GenerateOperation; import com.zfoo.protocol.generate.GenerateProtocolFile; import com.zfoo.protocol.generate.GenerateProtocolNote; import com.zfoo.protocol.generate.GenerateProtocolPath; -import com.zfoo.protocol.registration.IProtocolRegistration; import com.zfoo.protocol.registration.ProtocolRegistration; import com.zfoo.protocol.serializer.CodeLanguage; import com.zfoo.protocol.serializer.csharp.CodeGenerateCsharp; @@ -111,8 +110,6 @@ public abstract class GeneratePyUtils { } public static void createPyProtocolFile(ProtocolRegistration registration) { - GenerateProtocolFile.index.set(0); - var protocolId = registration.protocolId(); var registrationConstructor = registration.getConstructor(); var protocolClazzName = registrationConstructor.getDeclaringClass().getSimpleName(); @@ -157,6 +154,7 @@ public abstract class GeneratePyUtils { } private static String writeObject(ProtocolRegistration registration) { + GenerateProtocolFile.localVariableId = 0; var fields = registration.getFields(); var fieldRegistrations = registration.getFieldRegistrations(); var pyBuilder = new StringBuilder(); @@ -178,6 +176,7 @@ public abstract class GeneratePyUtils { } private static String readObject(ProtocolRegistration registration) { + GenerateProtocolFile.localVariableId = 0; var fields = registration.getFields(); var fieldRegistrations = registration.getFieldRegistrations(); var pyBuilder = new StringBuilder(); diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/python/PyArraySerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/python/PyArraySerializer.java index 5f65eef7..5971850b 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/python/PyArraySerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/python/PyArraySerializer.java @@ -18,7 +18,6 @@ import com.zfoo.protocol.registration.field.ArrayField; import com.zfoo.protocol.registration.field.IFieldRegistration; import com.zfoo.protocol.serializer.CodeLanguage; import com.zfoo.protocol.serializer.CutDownArraySerializer; - import com.zfoo.protocol.util.StringUtils; import java.lang.reflect.Field; @@ -52,7 +51,7 @@ public class PyArraySerializer implements IPySerializer { GenerateProtocolFile.addTab(builder, deep + 1); builder.append(StringUtils.format("buffer.writeInt(len({}))", objectStr)).append(LS); - String element = "element" + GenerateProtocolFile.index.getAndIncrement(); + String element = "element" + GenerateProtocolFile.localVariableId++; GenerateProtocolFile.addTab(builder, deep + 1); builder.append(StringUtils.format("for {} in {}:", element, objectStr)).append(LS); GeneratePyUtils.pySerializer(arrayField.getArrayElementRegistration().serializer()) @@ -68,12 +67,12 @@ public class PyArraySerializer implements IPySerializer { } ArrayField arrayField = (ArrayField) fieldRegistration; - String result = "result" + GenerateProtocolFile.index.getAndIncrement(); + String result = "result" + GenerateProtocolFile.localVariableId++; builder.append(StringUtils.format("{} = []", result)).append(LS); - String i = "index" + GenerateProtocolFile.index.getAndIncrement(); - String size = "size" + GenerateProtocolFile.index.getAndIncrement(); + String i = "index" + GenerateProtocolFile.localVariableId++; + String size = "size" + GenerateProtocolFile.localVariableId++; GenerateProtocolFile.addTab(builder, deep); builder.append(StringUtils.format("{} = buffer.readInt()", size)).append(LS); diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/python/PyBooleanSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/python/PyBooleanSerializer.java index 682348b3..8e47acca 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/python/PyBooleanSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/python/PyBooleanSerializer.java @@ -15,7 +15,6 @@ package com.zfoo.protocol.serializer.python; import com.zfoo.protocol.generate.GenerateProtocolFile; import com.zfoo.protocol.registration.field.IFieldRegistration; - import com.zfoo.protocol.util.StringUtils; import java.lang.reflect.Field; @@ -39,7 +38,7 @@ public class PyBooleanSerializer implements IPySerializer { @Override public String readObject(StringBuilder builder, int deep, Field field, IFieldRegistration fieldRegistration) { - String result = "result" + GenerateProtocolFile.index.getAndIncrement(); + String result = "result" + GenerateProtocolFile.localVariableId++; GenerateProtocolFile.addTab(builder, deep); builder.append(StringUtils.format("{} = buffer.readBool() ", result)).append(LS); diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/python/PyByteSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/python/PyByteSerializer.java index 459a1d43..7ad89b46 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/python/PyByteSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/python/PyByteSerializer.java @@ -15,7 +15,6 @@ package com.zfoo.protocol.serializer.python; import com.zfoo.protocol.generate.GenerateProtocolFile; import com.zfoo.protocol.registration.field.IFieldRegistration; - import com.zfoo.protocol.util.StringUtils; import java.lang.reflect.Field; @@ -39,7 +38,7 @@ public class PyByteSerializer implements IPySerializer { @Override public String readObject(StringBuilder builder, int deep, Field field, IFieldRegistration fieldRegistration) { - String result = "result" + GenerateProtocolFile.index.getAndIncrement(); + String result = "result" + GenerateProtocolFile.localVariableId++; GenerateProtocolFile.addTab(builder, deep); builder.append(StringUtils.format("{} = buffer.readByte()", result)).append(LS); diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/python/PyDoubleSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/python/PyDoubleSerializer.java index b5d9eb89..7c1b24fc 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/python/PyDoubleSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/python/PyDoubleSerializer.java @@ -15,7 +15,6 @@ package com.zfoo.protocol.serializer.python; import com.zfoo.protocol.generate.GenerateProtocolFile; import com.zfoo.protocol.registration.field.IFieldRegistration; - import com.zfoo.protocol.util.StringUtils; import java.lang.reflect.Field; @@ -39,7 +38,7 @@ public class PyDoubleSerializer implements IPySerializer { @Override public String readObject(StringBuilder builder, int deep, Field field, IFieldRegistration fieldRegistration) { - String result = "result" + GenerateProtocolFile.index.getAndIncrement(); + String result = "result" + GenerateProtocolFile.localVariableId++; GenerateProtocolFile.addTab(builder, deep); builder.append(StringUtils.format("{} = buffer.readDouble()", result)).append(LS); diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/python/PyFloatSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/python/PyFloatSerializer.java index 4ca786e7..c5627bbf 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/python/PyFloatSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/python/PyFloatSerializer.java @@ -15,7 +15,6 @@ package com.zfoo.protocol.serializer.python; import com.zfoo.protocol.generate.GenerateProtocolFile; import com.zfoo.protocol.registration.field.IFieldRegistration; - import com.zfoo.protocol.util.StringUtils; import java.lang.reflect.Field; @@ -39,7 +38,7 @@ public class PyFloatSerializer implements IPySerializer { @Override public String readObject(StringBuilder builder, int deep, Field field, IFieldRegistration fieldRegistration) { - String result = "result" + GenerateProtocolFile.index.getAndIncrement(); + String result = "result" + GenerateProtocolFile.localVariableId++; GenerateProtocolFile.addTab(builder, deep); builder.append(StringUtils.format("{} = buffer.readFloat()", result)).append(LS); diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/python/PyIntSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/python/PyIntSerializer.java index 753df156..be501528 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/python/PyIntSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/python/PyIntSerializer.java @@ -15,7 +15,6 @@ package com.zfoo.protocol.serializer.python; import com.zfoo.protocol.generate.GenerateProtocolFile; import com.zfoo.protocol.registration.field.IFieldRegistration; - import com.zfoo.protocol.util.StringUtils; import java.lang.reflect.Field; @@ -39,7 +38,7 @@ public class PyIntSerializer implements IPySerializer { @Override public String readObject(StringBuilder builder, int deep, Field field, IFieldRegistration fieldRegistration) { - String result = "result" + GenerateProtocolFile.index.getAndIncrement(); + String result = "result" + GenerateProtocolFile.localVariableId++; GenerateProtocolFile.addTab(builder, deep); builder.append(StringUtils.format("{} = buffer.readInt()", result)).append(LS); diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/python/PyListSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/python/PyListSerializer.java index 75ae0465..633a4a8b 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/python/PyListSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/python/PyListSerializer.java @@ -18,7 +18,6 @@ import com.zfoo.protocol.registration.field.IFieldRegistration; import com.zfoo.protocol.registration.field.ListField; import com.zfoo.protocol.serializer.CodeLanguage; import com.zfoo.protocol.serializer.CutDownListSerializer; - import com.zfoo.protocol.util.StringUtils; import java.lang.reflect.Field; @@ -52,7 +51,7 @@ public class PyListSerializer implements IPySerializer { GenerateProtocolFile.addTab(builder, deep + 1); builder.append(StringUtils.format("buffer.writeInt(len({}))", objectStr)).append(LS); - String element = "element" + GenerateProtocolFile.index.getAndIncrement(); + String element = "element" + GenerateProtocolFile.localVariableId++; GenerateProtocolFile.addTab(builder, deep + 1); builder.append(StringUtils.format("for {} in {}:", element, objectStr)).append(LS); GeneratePyUtils.pySerializer(listField.getListElementRegistration().serializer()) @@ -68,12 +67,12 @@ public class PyListSerializer implements IPySerializer { } ListField listField = (ListField) fieldRegistration; - String result = "result" + GenerateProtocolFile.index.getAndIncrement(); + String result = "result" + GenerateProtocolFile.localVariableId++; builder.append(StringUtils.format("{} = []", result)).append(LS); - String i = "index" + GenerateProtocolFile.index.getAndIncrement(); - String size = "size" + GenerateProtocolFile.index.getAndIncrement(); + String i = "index" + GenerateProtocolFile.localVariableId++; + String size = "size" + GenerateProtocolFile.localVariableId++; GenerateProtocolFile.addTab(builder, deep); builder.append(StringUtils.format("{} = buffer.readInt()", size)).append(LS); diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/python/PyLongSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/python/PyLongSerializer.java index 246bfecc..d01a60a1 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/python/PyLongSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/python/PyLongSerializer.java @@ -15,7 +15,6 @@ package com.zfoo.protocol.serializer.python; import com.zfoo.protocol.generate.GenerateProtocolFile; import com.zfoo.protocol.registration.field.IFieldRegistration; - import com.zfoo.protocol.util.StringUtils; import java.lang.reflect.Field; @@ -39,7 +38,7 @@ public class PyLongSerializer implements IPySerializer { @Override public String readObject(StringBuilder builder, int deep, Field field, IFieldRegistration fieldRegistration) { - String result = "result" + GenerateProtocolFile.index.getAndIncrement(); + String result = "result" + GenerateProtocolFile.localVariableId++; GenerateProtocolFile.addTab(builder, deep); builder.append(StringUtils.format("{} = buffer.readLong()", result)).append(LS); diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/python/PyMapSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/python/PyMapSerializer.java index b58dcc57..a3fd66ba 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/python/PyMapSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/python/PyMapSerializer.java @@ -18,7 +18,6 @@ import com.zfoo.protocol.registration.field.IFieldRegistration; import com.zfoo.protocol.registration.field.MapField; import com.zfoo.protocol.serializer.CodeLanguage; import com.zfoo.protocol.serializer.CutDownMapSerializer; - import com.zfoo.protocol.util.StringUtils; import java.lang.reflect.Field; @@ -52,8 +51,8 @@ public class PyMapSerializer implements IPySerializer { GenerateProtocolFile.addTab(builder, deep + 1); builder.append(StringUtils.format("buffer.writeInt(len({}))", objectStr)).append(LS); - String key = "key" + GenerateProtocolFile.index.getAndIncrement(); - String value = "value" + GenerateProtocolFile.index.getAndIncrement(); + String key = "key" + GenerateProtocolFile.localVariableId++; + String value = "value" + GenerateProtocolFile.localVariableId++; GenerateProtocolFile.addTab(builder, deep + 1); builder.append(StringUtils.format("for {} in {}:", key, objectStr)).append(LS); @@ -74,18 +73,18 @@ public class PyMapSerializer implements IPySerializer { } MapField mapField = (MapField) fieldRegistration; - String result = "result" + GenerateProtocolFile.index.getAndIncrement(); + String result = "result" + GenerateProtocolFile.localVariableId++; builder.append(StringUtils.format("{} = {}", result)).append(LS); GenerateProtocolFile.addTab(builder, deep); - String size = "size" + GenerateProtocolFile.index.getAndIncrement(); + String size = "size" + GenerateProtocolFile.localVariableId++; builder.append(StringUtils.format("{} = buffer.readInt()", size)).append(LS); GenerateProtocolFile.addTab(builder, deep); builder.append(StringUtils.format("if {} > 0:", size)).append(LS); - String i = "index" + GenerateProtocolFile.index.getAndIncrement(); + String i = "index" + GenerateProtocolFile.localVariableId++; GenerateProtocolFile.addTab(builder, deep + 1); builder.append(StringUtils.format("for {} in range({}):", i, size)).append(LS); diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/python/PyObjectProtocolSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/python/PyObjectProtocolSerializer.java index a7b2cc84..15eb7db6 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/python/PyObjectProtocolSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/python/PyObjectProtocolSerializer.java @@ -16,7 +16,6 @@ package com.zfoo.protocol.serializer.python; import com.zfoo.protocol.generate.GenerateProtocolFile; import com.zfoo.protocol.registration.field.IFieldRegistration; import com.zfoo.protocol.registration.field.ObjectProtocolField; - import com.zfoo.protocol.util.StringUtils; import java.lang.reflect.Field; @@ -42,7 +41,7 @@ public class PyObjectProtocolSerializer implements IPySerializer { @Override public String readObject(StringBuilder builder, int deep, Field field, IFieldRegistration fieldRegistration) { ObjectProtocolField objectProtocolField = (ObjectProtocolField) fieldRegistration; - var result = "result" + GenerateProtocolFile.index.getAndIncrement(); + var result = "result" + GenerateProtocolFile.localVariableId++; GenerateProtocolFile.addTab(builder, deep); builder.append(StringUtils.format("{} = buffer.readPacket({})", result, objectProtocolField.getProtocolId())).append(LS); return result; diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/python/PySetSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/python/PySetSerializer.java index 8b02788c..38e17969 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/python/PySetSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/python/PySetSerializer.java @@ -18,7 +18,6 @@ import com.zfoo.protocol.registration.field.IFieldRegistration; import com.zfoo.protocol.registration.field.SetField; import com.zfoo.protocol.serializer.CodeLanguage; import com.zfoo.protocol.serializer.CutDownSetSerializer; - import com.zfoo.protocol.util.StringUtils; import java.lang.reflect.Field; @@ -52,7 +51,7 @@ public class PySetSerializer implements IPySerializer { GenerateProtocolFile.addTab(builder, deep + 1); builder.append(StringUtils.format("buffer.writeInt(len({}))", objectStr)).append(LS); - String element = "element" + GenerateProtocolFile.index.getAndIncrement(); + String element = "element" + GenerateProtocolFile.localVariableId++; GenerateProtocolFile.addTab(builder, deep + 1); builder.append(StringUtils.format("for {} in {}:", element, objectStr)).append(LS); GeneratePyUtils.pySerializer(setField.getSetElementRegistration().serializer()) @@ -68,12 +67,12 @@ public class PySetSerializer implements IPySerializer { } SetField setField = (SetField) fieldRegistration; - String result = "result" + GenerateProtocolFile.index.getAndIncrement(); + String result = "result" + GenerateProtocolFile.localVariableId++; builder.append(StringUtils.format("{} = []", result)).append(LS); - String i = "index" + GenerateProtocolFile.index.getAndIncrement(); - String size = "size" + GenerateProtocolFile.index.getAndIncrement(); + String i = "index" + GenerateProtocolFile.localVariableId++; + String size = "size" + GenerateProtocolFile.localVariableId++; GenerateProtocolFile.addTab(builder, deep); builder.append(StringUtils.format("{} = buffer.readInt()", size)).append(LS); diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/python/PyShortSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/python/PyShortSerializer.java index ce9a9a7d..29daf6e4 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/python/PyShortSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/python/PyShortSerializer.java @@ -15,7 +15,6 @@ package com.zfoo.protocol.serializer.python; import com.zfoo.protocol.generate.GenerateProtocolFile; import com.zfoo.protocol.registration.field.IFieldRegistration; - import com.zfoo.protocol.util.StringUtils; import java.lang.reflect.Field; @@ -39,7 +38,7 @@ public class PyShortSerializer implements IPySerializer { @Override public String readObject(StringBuilder builder, int deep, Field field, IFieldRegistration fieldRegistration) { - String result = "result" + GenerateProtocolFile.index.getAndIncrement(); + String result = "result" + GenerateProtocolFile.localVariableId++; GenerateProtocolFile.addTab(builder, deep); builder.append(StringUtils.format("{} = buffer.readShort()", result)).append(LS); diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/python/PyStringSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/python/PyStringSerializer.java index 4559c3aa..c881fd28 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/python/PyStringSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/python/PyStringSerializer.java @@ -15,7 +15,6 @@ package com.zfoo.protocol.serializer.python; import com.zfoo.protocol.generate.GenerateProtocolFile; import com.zfoo.protocol.registration.field.IFieldRegistration; - import com.zfoo.protocol.util.StringUtils; import java.lang.reflect.Field; @@ -39,7 +38,7 @@ public class PyStringSerializer implements IPySerializer { @Override public String readObject(StringBuilder builder, int deep, Field field, IFieldRegistration fieldRegistration) { - String result = "result" + GenerateProtocolFile.index.getAndIncrement(); + String result = "result" + GenerateProtocolFile.localVariableId++; GenerateProtocolFile.addTab(builder, deep); builder.append(StringUtils.format("{} = buffer.readString()", result)).append(LS); return result; diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/typescript/GenerateTsUtils.java b/protocol/src/main/java/com/zfoo/protocol/serializer/typescript/GenerateTsUtils.java index c491e2d2..eca6643c 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/typescript/GenerateTsUtils.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/typescript/GenerateTsUtils.java @@ -19,7 +19,6 @@ import com.zfoo.protocol.generate.GenerateOperation; import com.zfoo.protocol.generate.GenerateProtocolFile; import com.zfoo.protocol.generate.GenerateProtocolNote; import com.zfoo.protocol.generate.GenerateProtocolPath; -import com.zfoo.protocol.registration.IProtocolRegistration; import com.zfoo.protocol.registration.ProtocolAnalysis; import com.zfoo.protocol.registration.ProtocolRegistration; import com.zfoo.protocol.serializer.CodeLanguage; @@ -112,9 +111,6 @@ public abstract class GenerateTsUtils { } public static void createTsProtocolFile(ProtocolRegistration registration) { - // 初始化index - GenerateProtocolFile.index.set(0); - var protocolId = registration.protocolId(); var registrationConstructor = registration.getConstructor(); var protocolClazzName = registrationConstructor.getDeclaringClass().getSimpleName(); @@ -185,6 +181,7 @@ public abstract class GenerateTsUtils { } private static String writeObject(ProtocolRegistration registration) { + GenerateProtocolFile.localVariableId = 0; var fields = registration.getFields(); var fieldRegistrations = registration.getFieldRegistrations(); var tsBuilder = new StringBuilder(); @@ -206,6 +203,7 @@ public abstract class GenerateTsUtils { } private static String readObject(ProtocolRegistration registration) { + GenerateProtocolFile.localVariableId = 0; var fields = registration.getFields(); var fieldRegistrations = registration.getFieldRegistrations(); var tsBuilder = new StringBuilder(); diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/typescript/TsArraySerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/typescript/TsArraySerializer.java index 2f2bde9c..19ab3b46 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/typescript/TsArraySerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/typescript/TsArraySerializer.java @@ -54,7 +54,7 @@ public class TsArraySerializer implements ITsSerializer { GenerateProtocolFile.addTab(builder, deep + 1); builder.append(StringUtils.format("buffer.writeInt({}.length);", objectStr)).append(LS); - String element = "element" + GenerateProtocolFile.index.getAndIncrement(); + String element = "element" + GenerateProtocolFile.localVariableId++; GenerateProtocolFile.addTab(builder, deep + 1); builder.append(StringUtils.format("{}.forEach({} => {", objectStr, element)).append(LS); GenerateTsUtils.tsSerializer(arrayField.getArrayElementRegistration().serializer()) @@ -74,12 +74,12 @@ public class TsArraySerializer implements ITsSerializer { } ArrayField arrayField = (ArrayField) fieldRegistration; - String result = "result" + GenerateProtocolFile.index.getAndIncrement(); + String result = "result" + GenerateProtocolFile.localVariableId++; var typeName = StringUtils.format("Array<{}>", GenerateTsUtils.toTsClassName(arrayField.getType().getSimpleName())); builder.append(StringUtils.format("const {} = new {};", result, typeName)).append(LS); - String i = "index" + GenerateProtocolFile.index.getAndIncrement(); - String size = "size" + GenerateProtocolFile.index.getAndIncrement(); + String i = "index" + GenerateProtocolFile.localVariableId++; + String size = "size" + GenerateProtocolFile.localVariableId++; GenerateProtocolFile.addTab(builder, deep); builder.append(StringUtils.format("const {} = buffer.readInt();", size)).append(LS); diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/typescript/TsBooleanSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/typescript/TsBooleanSerializer.java index 38e4362e..094104ca 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/typescript/TsBooleanSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/typescript/TsBooleanSerializer.java @@ -40,7 +40,7 @@ public class TsBooleanSerializer implements ITsSerializer { @Override public String readObject(StringBuilder builder, int deep, Field field, IFieldRegistration fieldRegistration) { - String result = "result" + GenerateProtocolFile.index.getAndIncrement(); + String result = "result" + GenerateProtocolFile.localVariableId++; GenerateProtocolFile.addTab(builder, deep); builder.append(StringUtils.format("const {} = buffer.readBoolean(); ", result)).append(LS); return result; diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/typescript/TsByteSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/typescript/TsByteSerializer.java index 344c4bbd..6916c406 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/typescript/TsByteSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/typescript/TsByteSerializer.java @@ -40,7 +40,7 @@ public class TsByteSerializer implements ITsSerializer { @Override public String readObject(StringBuilder builder, int deep, Field field, IFieldRegistration fieldRegistration) { - String result = "result" + GenerateProtocolFile.index.getAndIncrement(); + String result = "result" + GenerateProtocolFile.localVariableId++; GenerateProtocolFile.addTab(builder, deep); builder.append(StringUtils.format("const {} = buffer.readByte();", result)).append(LS); return result; diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/typescript/TsDoubleSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/typescript/TsDoubleSerializer.java index 76537328..786dd398 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/typescript/TsDoubleSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/typescript/TsDoubleSerializer.java @@ -40,7 +40,7 @@ public class TsDoubleSerializer implements ITsSerializer { @Override public String readObject(StringBuilder builder, int deep, Field field, IFieldRegistration fieldRegistration) { - String result = "result" + GenerateProtocolFile.index.getAndIncrement(); + String result = "result" + GenerateProtocolFile.localVariableId++; GenerateProtocolFile.addTab(builder, deep); builder.append(StringUtils.format("const {} = buffer.readDouble();", result)).append(LS); return result; diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/typescript/TsFloatSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/typescript/TsFloatSerializer.java index c7253489..57e57d42 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/typescript/TsFloatSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/typescript/TsFloatSerializer.java @@ -40,7 +40,7 @@ public class TsFloatSerializer implements ITsSerializer { @Override public String readObject(StringBuilder builder, int deep, Field field, IFieldRegistration fieldRegistration) { - String result = "result" + GenerateProtocolFile.index.getAndIncrement(); + String result = "result" + GenerateProtocolFile.localVariableId++; GenerateProtocolFile.addTab(builder, deep); builder.append(StringUtils.format("const {} = buffer.readFloat();", result)).append(LS); return result; diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/typescript/TsIntSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/typescript/TsIntSerializer.java index f7bd803f..62e9485a 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/typescript/TsIntSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/typescript/TsIntSerializer.java @@ -40,7 +40,7 @@ public class TsIntSerializer implements ITsSerializer { @Override public String readObject(StringBuilder builder, int deep, Field field, IFieldRegistration fieldRegistration) { - String result = "result" + GenerateProtocolFile.index.getAndIncrement(); + String result = "result" + GenerateProtocolFile.localVariableId++; GenerateProtocolFile.addTab(builder, deep); builder.append(StringUtils.format("const {} = buffer.readInt();", result)).append(LS); return result; diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/typescript/TsListSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/typescript/TsListSerializer.java index 8a585123..c4f0ed61 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/typescript/TsListSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/typescript/TsListSerializer.java @@ -54,7 +54,7 @@ public class TsListSerializer implements ITsSerializer { GenerateProtocolFile.addTab(builder, deep + 1); builder.append(StringUtils.format("buffer.writeInt({}.length);", objectStr)).append(LS); - String element = "element" + GenerateProtocolFile.index.getAndIncrement(); + String element = "element" + GenerateProtocolFile.localVariableId++; GenerateProtocolFile.addTab(builder, deep + 1); builder.append(StringUtils.format("{}.forEach({} => {", objectStr, element)).append(LS); GenerateTsUtils.tsSerializer(listField.getListElementRegistration().serializer()) @@ -74,19 +74,19 @@ public class TsListSerializer implements ITsSerializer { } ListField listField = (ListField) fieldRegistration; - String result = "result" + GenerateProtocolFile.index.getAndIncrement(); + String result = "result" + GenerateProtocolFile.localVariableId++; var typeName = GenerateTsUtils.toTsClassName(listField.getType().toString()); builder.append(StringUtils.format("const {} = new {}();", result, typeName)).append(LS); GenerateProtocolFile.addTab(builder, deep); - String size = "size" + GenerateProtocolFile.index.getAndIncrement(); + String size = "size" + GenerateProtocolFile.localVariableId++; builder.append(StringUtils.format("const {} = buffer.readInt();", size)).append(LS); GenerateProtocolFile.addTab(builder, deep); builder.append(StringUtils.format("if ({} > 0) {", size)).append(LS); GenerateProtocolFile.addTab(builder, deep + 1); - String i = "index" + GenerateProtocolFile.index.getAndIncrement(); + String i = "index" + GenerateProtocolFile.localVariableId++; builder.append(StringUtils.format("for (let {} = 0; {} < {}; {}++) {", i, i, size, i)).append(LS); String readObject = GenerateTsUtils.tsSerializer(listField.getListElementRegistration().serializer()) .readObject(builder, deep + 2, field, listField.getListElementRegistration()); diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/typescript/TsLongSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/typescript/TsLongSerializer.java index 6e0522a4..1b452bdb 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/typescript/TsLongSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/typescript/TsLongSerializer.java @@ -40,7 +40,7 @@ public class TsLongSerializer implements ITsSerializer { @Override public String readObject(StringBuilder builder, int deep, Field field, IFieldRegistration fieldRegistration) { - String result = "result" + GenerateProtocolFile.index.getAndIncrement(); + String result = "result" + GenerateProtocolFile.localVariableId++; GenerateProtocolFile.addTab(builder, deep); builder.append(StringUtils.format("const {} = buffer.readLong();", result)).append(LS); return result; diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/typescript/TsMapSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/typescript/TsMapSerializer.java index b2ba6189..cc40862f 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/typescript/TsMapSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/typescript/TsMapSerializer.java @@ -54,8 +54,8 @@ public class TsMapSerializer implements ITsSerializer { GenerateProtocolFile.addTab(builder, deep + 1); builder.append(StringUtils.format("buffer.writeInt({}.size);", objectStr)).append(LS); - String key = "key" + GenerateProtocolFile.index.getAndIncrement(); - String value = "value" + GenerateProtocolFile.index.getAndIncrement(); + String key = "key" + GenerateProtocolFile.localVariableId++; + String value = "value" + GenerateProtocolFile.localVariableId++; GenerateProtocolFile.addTab(builder, deep + 1); builder.append(StringUtils.format("{}.forEach(({}, {}) => {", objectStr, value, key)).append(LS); @@ -78,18 +78,18 @@ public class TsMapSerializer implements ITsSerializer { } MapField mapField = (MapField) fieldRegistration; - String result = "result" + GenerateProtocolFile.index.getAndIncrement(); + String result = "result" + GenerateProtocolFile.localVariableId++; var typeName = GenerateTsUtils.toTsClassName(mapField.getType().toString()); builder.append(StringUtils.format("const {} = new {}();", result, typeName)).append(LS); GenerateProtocolFile.addTab(builder, deep); - String size = "size" + GenerateProtocolFile.index.getAndIncrement(); + String size = "size" + GenerateProtocolFile.localVariableId++; builder.append(StringUtils.format("const {} = buffer.readInt();", size)).append(LS); GenerateProtocolFile.addTab(builder, deep); builder.append(StringUtils.format("if ({} > 0) {", size)).append(LS); - String i = "index" + GenerateProtocolFile.index.getAndIncrement(); + String i = "index" + GenerateProtocolFile.localVariableId++; GenerateProtocolFile.addTab(builder, deep + 1); builder.append(StringUtils.format("for (let {} = 0; {} < {}; {}++) {", i, i, size, i)).append(LS); diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/typescript/TsObjectProtocolSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/typescript/TsObjectProtocolSerializer.java index cc862b84..0561912d 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/typescript/TsObjectProtocolSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/typescript/TsObjectProtocolSerializer.java @@ -47,7 +47,7 @@ public class TsObjectProtocolSerializer implements ITsSerializer { @Override public String readObject(StringBuilder builder, int deep, Field field, IFieldRegistration fieldRegistration) { ObjectProtocolField objectProtocolField = (ObjectProtocolField) fieldRegistration; - var result = "result" + GenerateProtocolFile.index.getAndIncrement(); + var result = "result" + GenerateProtocolFile.localVariableId++; GenerateProtocolFile.addTab(builder, deep); builder.append(StringUtils.format("const {} = buffer.readPacket({});", result, objectProtocolField.getProtocolId())).append(LS); return result; diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/typescript/TsSetSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/typescript/TsSetSerializer.java index 535dd18d..158c946f 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/typescript/TsSetSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/typescript/TsSetSerializer.java @@ -55,7 +55,7 @@ public class TsSetSerializer implements ITsSerializer { GenerateProtocolFile.addTab(builder, deep + 1); builder.append(StringUtils.format("buffer.writeInt({}.size);", objectStr)).append(LS); - String element = "element" + GenerateProtocolFile.index.getAndIncrement(); + String element = "element" + GenerateProtocolFile.localVariableId++; GenerateProtocolFile.addTab(builder, deep + 1); builder.append(StringUtils.format("{}.forEach({} => {", objectStr, element)).append(LS); GenerateTsUtils.tsSerializer(setField.getSetElementRegistration().serializer()) @@ -75,19 +75,19 @@ public class TsSetSerializer implements ITsSerializer { } SetField setField = (SetField) fieldRegistration; - String result = "result" + GenerateProtocolFile.index.getAndIncrement(); + String result = "result" + GenerateProtocolFile.localVariableId++; var typeName = GenerateTsUtils.toTsClassName(setField.getType().toString()); builder.append(StringUtils.format("const {} = new {}();", result, typeName)).append(LS); GenerateProtocolFile.addTab(builder, deep); - String size = "size" + GenerateProtocolFile.index.getAndIncrement(); + String size = "size" + GenerateProtocolFile.localVariableId++; builder.append(StringUtils.format("const {} = buffer.readInt();", size)).append(LS); GenerateProtocolFile.addTab(builder, deep); builder.append(StringUtils.format("if ({} > 0) {", size)).append(LS); GenerateProtocolFile.addTab(builder, deep + 1); - String i = "index" + GenerateProtocolFile.index.getAndIncrement(); + String i = "index" + GenerateProtocolFile.localVariableId++; builder.append(StringUtils.format("for (let {} = 0; {} < {}; {}++) {", i, i, size, i)).append(LS); String readObject = GenerateTsUtils.tsSerializer(setField.getSetElementRegistration().serializer()) .readObject(builder, deep + 2, field, setField.getSetElementRegistration()); diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/typescript/TsShortSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/typescript/TsShortSerializer.java index 0968f6d5..5c699826 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/typescript/TsShortSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/typescript/TsShortSerializer.java @@ -40,7 +40,7 @@ public class TsShortSerializer implements ITsSerializer { @Override public String readObject(StringBuilder builder, int deep, Field field, IFieldRegistration fieldRegistration) { - String result = "result" + GenerateProtocolFile.index.getAndIncrement(); + String result = "result" + GenerateProtocolFile.localVariableId++; GenerateProtocolFile.addTab(builder, deep); builder.append(StringUtils.format("const {} = buffer.readShort();", result)).append(LS); return result; diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/typescript/TsStringSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/typescript/TsStringSerializer.java index aafba52f..385ae6d1 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/typescript/TsStringSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/typescript/TsStringSerializer.java @@ -40,7 +40,7 @@ public class TsStringSerializer implements ITsSerializer { @Override public String readObject(StringBuilder builder, int deep, Field field, IFieldRegistration fieldRegistration) { - String result = "result" + GenerateProtocolFile.index.getAndIncrement(); + String result = "result" + GenerateProtocolFile.localVariableId++; GenerateProtocolFile.addTab(builder, deep); builder.append(StringUtils.format("const {} = buffer.readString();", result)).append(LS); return result; diff --git a/protocol/src/main/resources/es/ProtocolManagerTemplate.mjs b/protocol/src/main/resources/es/ProtocolManagerTemplate.mjs index d54a9924..e4aefb03 100644 --- a/protocol/src/main/resources/es/ProtocolManagerTemplate.mjs +++ b/protocol/src/main/resources/es/ProtocolManagerTemplate.mjs @@ -9,7 +9,7 @@ class ProtocolManager { static getProtocol(protocolId) { const protocol = protocols.get(protocolId); if (protocol === null) { - throw new Error('[protocolId:' + protocolId + ']协议不存在'); + throw new Error('[protocolId:' + protocolId + '] not exist'); } return protocol; } diff --git a/protocol/src/main/resources/javascript/ProtocolClassTemplate.js b/protocol/src/main/resources/javascript/ProtocolClassTemplate.js new file mode 100644 index 00000000..96837daa --- /dev/null +++ b/protocol/src/main/resources/javascript/ProtocolClassTemplate.js @@ -0,0 +1,4 @@ +${protocol_note} +const ${protocol_name} = function() { + ${protocol_field_definition} +}; \ No newline at end of file diff --git a/protocol/src/main/resources/javascript/ProtocolManagerTemplate.js b/protocol/src/main/resources/javascript/ProtocolManagerTemplate.js index 89149a01..e58e9318 100644 --- a/protocol/src/main/resources/javascript/ProtocolManagerTemplate.js +++ b/protocol/src/main/resources/javascript/ProtocolManagerTemplate.js @@ -1,16 +1,16 @@ -{} +${protocol_imports} const protocols = new Map(); const ProtocolManager = {}; // initProtocol -{} +${protocol_manager_registrations} ProtocolManager.getProtocol = function getProtocol(protocolId) { const protocol = protocols.get(protocolId); if (protocol === null) { - throw new Error('[protocolId:' + protocolId + ']协议不存在'); + throw new Error('[protocolId:' + protocolId + '] not exist'); } return protocol; }; diff --git a/protocol/src/main/resources/javascript/ProtocolRegistrationTemplate.js b/protocol/src/main/resources/javascript/ProtocolRegistrationTemplate.js new file mode 100644 index 00000000..dc345e49 --- /dev/null +++ b/protocol/src/main/resources/javascript/ProtocolRegistrationTemplate.js @@ -0,0 +1,27 @@ +${protocol_name}.PROTOCOL_ID = ${protocol_id}; + +${protocol_name}.prototype.protocolId = function() { + return ${protocol_name}.PROTOCOL_ID; +}; + +${protocol_name}.write = function(buffer, packet) { + if (packet === null) { + buffer.writeInt(0); + return; + } + ${protocol_write_serialization} +}; + +${protocol_name}.read = function(buffer) { + const length = buffer.readInt(); + if (length === 0) { + return null; + } + const beforeReadIndex = buffer.getReadOffset(); + const packet = new ${protocol_name}(); + ${protocol_read_deserialization} + if (length > 0) { + buffer.setReadOffset(beforeReadIndex + length); + } + return packet; +}; \ No newline at end of file diff --git a/protocol/src/main/resources/javascript/ProtocolTemplate.js b/protocol/src/main/resources/javascript/ProtocolTemplate.js index efa11f9d..620fda2b 100644 --- a/protocol/src/main/resources/javascript/ProtocolTemplate.js +++ b/protocol/src/main/resources/javascript/ProtocolTemplate.js @@ -1,34 +1,5 @@ -{} -const {} = function() { - {} -}; +${protocol_class} -{}.PROTOCOL_ID = {}; +${protocol_registration} -{}.prototype.protocolId = function() { - return {}.PROTOCOL_ID; -}; - -{}.write = function(buffer, packet) { - if (packet === null) { - buffer.writeInt(0); - return; - } - {} -}; - -{}.read = function(buffer) { - const length = buffer.readInt(); - if (length === 0) { - return null; - } - const beforeReadIndex = buffer.getReadOffset(); - const packet = new {}(); - {} - if (length > 0) { - buffer.setReadOffset(beforeReadIndex + length); - } - return packet; -}; - -export default {}; +export default ${protocol_name}; diff --git a/protocol/src/main/resources/javascript/ProtocolsTemplate.js b/protocol/src/main/resources/javascript/ProtocolsTemplate.js new file mode 100644 index 00000000..d48f8444 --- /dev/null +++ b/protocol/src/main/resources/javascript/ProtocolsTemplate.js @@ -0,0 +1,7 @@ +const Protocols = function() { +}; + +${protocol_class} + +${protocol_registration} +export default Protocols; diff --git a/protocol/src/main/resources/lua/ProtocolManagerTemplate.lua b/protocol/src/main/resources/lua/ProtocolManagerTemplate.lua index 9e9d4480..e9ac11ad 100644 --- a/protocol/src/main/resources/lua/ProtocolManagerTemplate.lua +++ b/protocol/src/main/resources/lua/ProtocolManagerTemplate.lua @@ -14,7 +14,7 @@ end function ProtocolManager.getProtocol(protocolId) local protocol = protocols[protocolId] if protocol == nil then - error("[protocolId:" + protocolId + "]协议不存在") + error("[protocolId:" + protocolId + "] not exist") end return protocol end diff --git a/protocol/src/main/resources/typescript/ProtocolManagerTemplate.ts b/protocol/src/main/resources/typescript/ProtocolManagerTemplate.ts index ba8726c5..e616134f 100644 --- a/protocol/src/main/resources/typescript/ProtocolManagerTemplate.ts +++ b/protocol/src/main/resources/typescript/ProtocolManagerTemplate.ts @@ -1,4 +1,5 @@ -{} +{ +} import IByteBuffer from "./IByteBuffer"; const protocols = new Map(); @@ -10,7 +11,7 @@ class ProtocolManager { static getProtocol(protocolId: number): any { const protocol = protocols.get(protocolId); if (protocol === null) { - throw '[protocolId:' + protocolId + ']协议不存在'; + throw '[protocolId:' + protocolId + '] not exist'; } return protocol; }