From 0dab67b5490d11f6334215f31cdf4dbb8bd6d201 Mon Sep 17 00:00:00 2001 From: godotg Date: Fri, 5 Jul 2024 12:37:39 +0800 Subject: [PATCH] feat[java]: cut down java protocol generation --- .../serializer/CutDownArraySerializer.java | 32 +++++++++++ .../serializer/CutDownListSerializer.java | 38 +++++++++++++ .../serializer/CutDownMapSerializer.java | 54 +++++++++++++++++++ .../serializer/CutDownSetSerializer.java | 42 ++++++++++++++- .../java/JavaObjectProtocolSerializer.java | 2 +- .../src/main/resources/java/ByteBuffer.java | 31 ++++++----- 6 files changed, 180 insertions(+), 19 deletions(-) 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 d73f1d3c..61212a24 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/CutDownArraySerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/CutDownArraySerializer.java @@ -64,6 +64,7 @@ public class CutDownArraySerializer implements ICutDownSerializer { builder.append(StringUtils.format("buffer.WriteBooleanArray({})", objectStr)).append(LS); break; case Cpp: + case Java: case JavaScript: case EcmaScript: case TypeScript: @@ -120,6 +121,7 @@ public class CutDownArraySerializer implements ICutDownSerializer { builder.append(StringUtils.format("buffer.WriteByteArray({})", objectStr)).append(LS); break; case Cpp: + case Java: case JavaScript: case EcmaScript: case TypeScript: @@ -176,6 +178,7 @@ public class CutDownArraySerializer implements ICutDownSerializer { builder.append(StringUtils.format("buffer.WriteShortArray({})", objectStr)).append(LS); break; case Cpp: + case Java: case JavaScript: case EcmaScript: case TypeScript: @@ -232,6 +235,7 @@ public class CutDownArraySerializer implements ICutDownSerializer { builder.append(StringUtils.format("buffer.WriteIntArray({})", objectStr)).append(LS); break; case Cpp: + case Java: case JavaScript: case EcmaScript: case TypeScript: @@ -288,6 +292,7 @@ public class CutDownArraySerializer implements ICutDownSerializer { builder.append(StringUtils.format("buffer.WriteLongArray({})", objectStr)).append(LS); break; case Cpp: + case Java: case JavaScript: case EcmaScript: case TypeScript: @@ -344,6 +349,7 @@ public class CutDownArraySerializer implements ICutDownSerializer { builder.append(StringUtils.format("buffer.WriteFloatArray({})", objectStr)).append(LS); break; case Cpp: + case Java: case JavaScript: case EcmaScript: case TypeScript: @@ -400,6 +406,7 @@ public class CutDownArraySerializer implements ICutDownSerializer { builder.append(StringUtils.format("buffer.WriteDoubleArray({})", objectStr)).append(LS); break; case Cpp: + case Java: case JavaScript: case EcmaScript: case TypeScript: @@ -456,6 +463,7 @@ public class CutDownArraySerializer implements ICutDownSerializer { builder.append(StringUtils.format("buffer.WriteStringArray({})", objectStr)).append(LS); break; case Cpp: + case Java: case JavaScript: case EcmaScript: case TypeScript: @@ -535,6 +543,9 @@ public class CutDownArraySerializer implements ICutDownSerializer { case Cpp: builder.append(StringUtils.format("auto {} = buffer.readBooleanArray();", array)).append(LS); break; + case Java: + builder.append(StringUtils.format("var {} = buffer.readBooleanArray();", array)).append(LS); + break; case JavaScript: case EcmaScript: case TypeScript: @@ -599,6 +610,9 @@ public class CutDownArraySerializer implements ICutDownSerializer { case Cpp: builder.append(StringUtils.format("auto {} = buffer.readByteArray();", array)).append(LS); break; + case Java: + builder.append(StringUtils.format("var {} = buffer.readByteArray();", array)).append(LS); + break; case JavaScript: case EcmaScript: case TypeScript: @@ -663,6 +677,9 @@ public class CutDownArraySerializer implements ICutDownSerializer { case Cpp: builder.append(StringUtils.format("auto {} = buffer.readShortArray();", array)).append(LS); break; + case Java: + builder.append(StringUtils.format("var {} = buffer.readShortArray();", array)).append(LS); + break; case JavaScript: case EcmaScript: case TypeScript: @@ -727,6 +744,9 @@ public class CutDownArraySerializer implements ICutDownSerializer { case Cpp: builder.append(StringUtils.format("auto {} = buffer.readIntArray();", array)).append(LS); break; + case Java: + builder.append(StringUtils.format("var {} = buffer.readIntArray();", array)).append(LS); + break; case JavaScript: case EcmaScript: case TypeScript: @@ -791,6 +811,9 @@ public class CutDownArraySerializer implements ICutDownSerializer { case Cpp: builder.append(StringUtils.format("auto {} = buffer.readLongArray();", array)).append(LS); break; + case Java: + builder.append(StringUtils.format("var {} = buffer.readLongArray();", array)).append(LS); + break; case JavaScript: case EcmaScript: case TypeScript: @@ -855,6 +878,9 @@ public class CutDownArraySerializer implements ICutDownSerializer { case Cpp: builder.append(StringUtils.format("auto {} = buffer.readFloatArray();", array)).append(LS); break; + case Java: + builder.append(StringUtils.format("var {} = buffer.readFloatArray();", array)).append(LS); + break; case JavaScript: case EcmaScript: case TypeScript: @@ -919,6 +945,9 @@ public class CutDownArraySerializer implements ICutDownSerializer { case Cpp: builder.append(StringUtils.format("auto {} = buffer.readDoubleArray();", array)).append(LS); break; + case Java: + builder.append(StringUtils.format("var {} = buffer.readDoubleArray();", array)).append(LS); + break; case JavaScript: case EcmaScript: case TypeScript: @@ -983,6 +1012,9 @@ public class CutDownArraySerializer implements ICutDownSerializer { case Cpp: builder.append(StringUtils.format("auto {} = buffer.readStringArray();", array)).append(LS); break; + case Java: + builder.append(StringUtils.format("var {} = buffer.readStringArray();", array)).append(LS); + break; case JavaScript: case EcmaScript: case TypeScript: 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 06af44f3..f05b8a66 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/CutDownListSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/CutDownListSerializer.java @@ -63,6 +63,7 @@ public class CutDownListSerializer implements ICutDownSerializer { builder.append(StringUtils.format("buffer.WriteBooleanArray({})", objectStr)).append(LS); break; case Cpp: + case Java: case JavaScript: case EcmaScript: case TypeScript: @@ -91,6 +92,7 @@ public class CutDownListSerializer implements ICutDownSerializer { builder.append(StringUtils.format("buffer.WriteByteArray({})", objectStr)).append(LS); break; case Cpp: + case Java: case JavaScript: case EcmaScript: case TypeScript: @@ -119,6 +121,7 @@ public class CutDownListSerializer implements ICutDownSerializer { builder.append(StringUtils.format("buffer.WriteShortArray({})", objectStr)).append(LS); break; case Cpp: + case Java: case JavaScript: case EcmaScript: case TypeScript: @@ -147,6 +150,7 @@ public class CutDownListSerializer implements ICutDownSerializer { builder.append(StringUtils.format("buffer.WriteIntArray({})", objectStr)).append(LS); break; case Cpp: + case Java: case JavaScript: case EcmaScript: case TypeScript: @@ -175,6 +179,7 @@ public class CutDownListSerializer implements ICutDownSerializer { builder.append(StringUtils.format("buffer.WriteLongArray({})", objectStr)).append(LS); break; case Cpp: + case Java: case JavaScript: case EcmaScript: case TypeScript: @@ -204,6 +209,7 @@ public class CutDownListSerializer implements ICutDownSerializer { builder.append(StringUtils.format("buffer.WriteFloatArray({})", objectStr)).append(LS); break; case Cpp: + case Java: case JavaScript: case EcmaScript: case TypeScript: @@ -233,6 +239,7 @@ public class CutDownListSerializer implements ICutDownSerializer { builder.append(StringUtils.format("buffer.WriteDoubleArray({})", objectStr)).append(LS); break; case Cpp: + case Java: case JavaScript: case EcmaScript: case TypeScript: @@ -262,6 +269,7 @@ public class CutDownListSerializer implements ICutDownSerializer { builder.append(StringUtils.format("buffer.WriteStringArray({})", objectStr)).append(LS); break; case Cpp: + case Java: case JavaScript: case EcmaScript: case TypeScript: @@ -295,6 +303,9 @@ public class CutDownListSerializer implements ICutDownSerializer { case TypeScript: builder.append(StringUtils.format("buffer.writePacketList({}, {});", objectStr, protocolId)).append(LS); break; + case Java: + builder.append(StringUtils.format("buffer.writePacketList({}, (short) {});", objectStr, protocolId)).append(LS); + break; case Golang: case Protobuf: default: @@ -339,6 +350,9 @@ public class CutDownListSerializer implements ICutDownSerializer { case Cpp: builder.append(StringUtils.format("auto {} = buffer.readBooleanList();", list)).append(LS); break; + case Java: + builder.append(StringUtils.format("var {} = buffer.readBooleanList();", list)).append(LS); + break; case JavaScript: case EcmaScript: case TypeScript: @@ -371,6 +385,9 @@ public class CutDownListSerializer implements ICutDownSerializer { case Cpp: builder.append(StringUtils.format("auto {} = buffer.readByteList();", list)).append(LS); break; + case Java: + builder.append(StringUtils.format("var {} = buffer.readByteList();", list)).append(LS); + break; case JavaScript: case EcmaScript: case TypeScript: @@ -403,6 +420,9 @@ public class CutDownListSerializer implements ICutDownSerializer { case Cpp: builder.append(StringUtils.format("auto {} = buffer.readShortList();", list)).append(LS); break; + case Java: + builder.append(StringUtils.format("var {} = buffer.readShortList();", list)).append(LS); + break; case JavaScript: case EcmaScript: case TypeScript: @@ -435,6 +455,9 @@ public class CutDownListSerializer implements ICutDownSerializer { case Cpp: builder.append(StringUtils.format("auto {} = buffer.readIntList();", list)).append(LS); break; + case Java: + builder.append(StringUtils.format("var {} = buffer.readIntList();", list)).append(LS); + break; case JavaScript: case EcmaScript: case TypeScript: @@ -467,6 +490,9 @@ public class CutDownListSerializer implements ICutDownSerializer { case Cpp: builder.append(StringUtils.format("auto {} = buffer.readLongList();", list)).append(LS); break; + case Java: + builder.append(StringUtils.format("var {} = buffer.readLongList();", list)).append(LS); + break; case JavaScript: case EcmaScript: case TypeScript: @@ -499,6 +525,9 @@ public class CutDownListSerializer implements ICutDownSerializer { case Cpp: builder.append(StringUtils.format("auto {} = buffer.readFloatList();", list)).append(LS); break; + case Java: + builder.append(StringUtils.format("var {} = buffer.readFloatList();", list)).append(LS); + break; case JavaScript: case EcmaScript: case TypeScript: @@ -531,6 +560,9 @@ public class CutDownListSerializer implements ICutDownSerializer { case Cpp: builder.append(StringUtils.format("auto {} = buffer.readDoubleList();", list)).append(LS); break; + case Java: + builder.append(StringUtils.format("var {} = buffer.readDoubleList();", list)).append(LS); + break; case JavaScript: case EcmaScript: case TypeScript: @@ -563,6 +595,9 @@ public class CutDownListSerializer implements ICutDownSerializer { case Cpp: builder.append(StringUtils.format("auto {} = buffer.readStringList();", list)).append(LS); break; + case Java: + builder.append(StringUtils.format("var {} = buffer.readStringList();", list)).append(LS); + break; case JavaScript: case EcmaScript: case TypeScript: @@ -594,6 +629,9 @@ public class CutDownListSerializer implements ICutDownSerializer { case Cpp: builder.append(StringUtils.format("auto {} = buffer.readPacketList<{}>({});", list, EnhanceObjectProtocolSerializer.getProtocolClassSimpleName(protocolId), protocolId)).append(LS); break; + case Java: + builder.append(StringUtils.format("var {} = buffer.readPacketList({}.class, (short) {});", list, EnhanceObjectProtocolSerializer.getProtocolClassSimpleName(protocolId), protocolId)).append(LS); + break; case JavaScript: case EcmaScript: case TypeScript: 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 9edc5d7c..595dbd3b 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/CutDownMapSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/CutDownMapSerializer.java @@ -70,6 +70,7 @@ public class CutDownMapSerializer implements ICutDownSerializer { builder.append(StringUtils.format("buffer.WriteIntIntMap({})", objectStr)).append(LS); return true; case Cpp: + case Java: case JavaScript: case EcmaScript: case TypeScript: @@ -95,6 +96,7 @@ public class CutDownMapSerializer implements ICutDownSerializer { builder.append(StringUtils.format("buffer.WriteIntLongMap({})", objectStr)).append(LS); return true; case Cpp: + case Java: case JavaScript: case EcmaScript: case TypeScript: @@ -120,6 +122,7 @@ public class CutDownMapSerializer implements ICutDownSerializer { builder.append(StringUtils.format("buffer.WriteIntStringMap({})", objectStr)).append(LS); return true; case Cpp: + case Java: case JavaScript: case EcmaScript: case TypeScript: @@ -147,6 +150,9 @@ public class CutDownMapSerializer implements ICutDownSerializer { case TypeScript: builder.append(StringUtils.format("buffer.writeIntPacketMap({}, {});", objectStr, ((ObjectProtocolField) valueRegistration).getProtocolId())).append(LS); return true; + case Java: + builder.append(StringUtils.format("buffer.writeIntPacketMap({}, (short) {});", objectStr, ((ObjectProtocolField) valueRegistration).getProtocolId())).append(LS); + return true; case Golang: case Protobuf: default: @@ -172,6 +178,7 @@ public class CutDownMapSerializer implements ICutDownSerializer { builder.append(StringUtils.format("buffer.WriteLongIntMap({})", objectStr)).append(LS); return true; case Cpp: + case Java: case JavaScript: case EcmaScript: case TypeScript: @@ -197,6 +204,7 @@ public class CutDownMapSerializer implements ICutDownSerializer { builder.append(StringUtils.format("buffer.WriteLongLongMap({})", objectStr)).append(LS); return true; case Cpp: + case Java: case JavaScript: case EcmaScript: case TypeScript: @@ -222,6 +230,7 @@ public class CutDownMapSerializer implements ICutDownSerializer { builder.append(StringUtils.format("buffer.WriteLongStringMap({})", objectStr)).append(LS); return true; case Cpp: + case Java: case JavaScript: case EcmaScript: case TypeScript: @@ -249,6 +258,9 @@ public class CutDownMapSerializer implements ICutDownSerializer { case TypeScript: builder.append(StringUtils.format("buffer.writeLongPacketMap({}, {});", objectStr, ((ObjectProtocolField) valueRegistration).getProtocolId())).append(LS); return true; + case Java: + builder.append(StringUtils.format("buffer.writeLongPacketMap({}, (short) {});", objectStr, ((ObjectProtocolField) valueRegistration).getProtocolId())).append(LS); + return true; case Golang: case Protobuf: default: @@ -274,6 +286,7 @@ public class CutDownMapSerializer implements ICutDownSerializer { builder.append(StringUtils.format("buffer.WriteStringIntMap({})", objectStr)).append(LS); return true; case Cpp: + case Java: case JavaScript: case EcmaScript: case TypeScript: @@ -299,6 +312,7 @@ public class CutDownMapSerializer implements ICutDownSerializer { builder.append(StringUtils.format("buffer.WriteStringLongMap({})", objectStr)).append(LS); return true; case Cpp: + case Java: case JavaScript: case EcmaScript: case TypeScript: @@ -324,6 +338,7 @@ public class CutDownMapSerializer implements ICutDownSerializer { builder.append(StringUtils.format("buffer.WriteStringStringMap({})", objectStr)).append(LS); return true; case Cpp: + case Java: case JavaScript: case EcmaScript: case TypeScript: @@ -351,6 +366,9 @@ public class CutDownMapSerializer implements ICutDownSerializer { case TypeScript: builder.append(StringUtils.format("buffer.writeStringPacketMap({}, {});", objectStr, ((ObjectProtocolField) valueRegistration).getProtocolId())).append(LS); return true; + case Java: + builder.append(StringUtils.format("buffer.writeStringPacketMap({}, (short) {});", objectStr, ((ObjectProtocolField) valueRegistration).getProtocolId())).append(LS); + return true; case Golang: case Protobuf: default: @@ -396,6 +414,9 @@ public class CutDownMapSerializer implements ICutDownSerializer { case Cpp: builder.append(StringUtils.format("auto {} = buffer.readIntIntMap();", map)).append(LS); return map; + case Java: + builder.append(StringUtils.format("var {} = buffer.readIntIntMap();", map)).append(LS); + return map; case JavaScript: case EcmaScript: case TypeScript: @@ -425,6 +446,9 @@ public class CutDownMapSerializer implements ICutDownSerializer { case Cpp: builder.append(StringUtils.format("auto {} = buffer.readIntLongMap();", map)).append(LS); return map; + case Java: + builder.append(StringUtils.format("var {} = buffer.readIntLongMap();", map)).append(LS); + return map; case JavaScript: case EcmaScript: case TypeScript: @@ -454,6 +478,9 @@ public class CutDownMapSerializer implements ICutDownSerializer { case Cpp: builder.append(StringUtils.format("auto {} = buffer.readIntStringMap();", map)).append(LS); return map; + case Java: + builder.append(StringUtils.format("var {} = buffer.readIntStringMap();", map)).append(LS); + return map; case JavaScript: case EcmaScript: case TypeScript: @@ -481,6 +508,9 @@ public class CutDownMapSerializer implements ICutDownSerializer { case Cpp: builder.append(StringUtils.format("auto {} = buffer.readIntPacketMap<{}>({});", map, EnhanceObjectProtocolSerializer.getProtocolClassSimpleName(protocolId), protocolId)).append(LS); return map; + case Java: + builder.append(StringUtils.format("var {} = buffer.readIntPacketMap({}.class, (short) {});", map, EnhanceObjectProtocolSerializer.getProtocolClassSimpleName(protocolId), protocolId)).append(LS); + return map; case JavaScript: case EcmaScript: case TypeScript: @@ -514,6 +544,9 @@ public class CutDownMapSerializer implements ICutDownSerializer { case Cpp: builder.append(StringUtils.format("auto {} = buffer.readLongIntMap();", map)).append(LS); return map; + case Java: + builder.append(StringUtils.format("var {} = buffer.readLongIntMap();", map)).append(LS); + return map; case JavaScript: case EcmaScript: case TypeScript: @@ -543,6 +576,9 @@ public class CutDownMapSerializer implements ICutDownSerializer { case Cpp: builder.append(StringUtils.format("auto {} = buffer.readLongLongMap();", map)).append(LS); return map; + case Java: + builder.append(StringUtils.format("var {} = buffer.readLongLongMap();", map)).append(LS); + return map; case JavaScript: case EcmaScript: case TypeScript: @@ -572,6 +608,9 @@ public class CutDownMapSerializer implements ICutDownSerializer { case Cpp: builder.append(StringUtils.format("auto {} = buffer.readLongStringMap();", map)).append(LS); return map; + case Java: + builder.append(StringUtils.format("var {} = buffer.readLongStringMap();", map)).append(LS); + return map; case JavaScript: case EcmaScript: case TypeScript: @@ -599,6 +638,9 @@ public class CutDownMapSerializer implements ICutDownSerializer { case Cpp: builder.append(StringUtils.format("auto {} = buffer.readLongPacketMap<{}>({});", map, EnhanceObjectProtocolSerializer.getProtocolClassSimpleName(protocolId), protocolId)).append(LS); return map; + case Java: + builder.append(StringUtils.format("var {} = buffer.readLongPacketMap({}.class, (short) {});", map, EnhanceObjectProtocolSerializer.getProtocolClassSimpleName(protocolId), protocolId)).append(LS); + return map; case JavaScript: case EcmaScript: case TypeScript: @@ -633,6 +675,9 @@ public class CutDownMapSerializer implements ICutDownSerializer { case Cpp: builder.append(StringUtils.format("auto {} = buffer.readStringIntMap();", map)).append(LS); return map; + case Java: + builder.append(StringUtils.format("var {} = buffer.readStringIntMap();", map)).append(LS); + return map; case JavaScript: case EcmaScript: case TypeScript: @@ -662,6 +707,9 @@ public class CutDownMapSerializer implements ICutDownSerializer { case Cpp: builder.append(StringUtils.format("auto {} = buffer.readStringLongMap();", map)).append(LS); return map; + case Java: + builder.append(StringUtils.format("var {} = buffer.readStringLongMap();", map)).append(LS); + return map; case JavaScript: case EcmaScript: case TypeScript: @@ -691,6 +739,9 @@ public class CutDownMapSerializer implements ICutDownSerializer { case Cpp: builder.append(StringUtils.format("auto {} = buffer.readStringStringMap();", map)).append(LS); return map; + case Java: + builder.append(StringUtils.format("var {} = buffer.readStringStringMap();", map)).append(LS); + return map; case JavaScript: case EcmaScript: case TypeScript: @@ -718,6 +769,9 @@ public class CutDownMapSerializer implements ICutDownSerializer { case Cpp: builder.append(StringUtils.format("auto {} = buffer.readStringPacketMap<{}>({});", map, EnhanceObjectProtocolSerializer.getProtocolClassSimpleName(protocolId), protocolId)).append(LS); return map; + case Java: + builder.append(StringUtils.format("var {} = buffer.readStringPacketMap({}.class, (short) {});", map, EnhanceObjectProtocolSerializer.getProtocolClassSimpleName(protocolId), protocolId)).append(LS); + return map; case JavaScript: case EcmaScript: case TypeScript: 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 28f06850..1f10ac24 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/CutDownSetSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/CutDownSetSerializer.java @@ -66,6 +66,7 @@ public class CutDownSetSerializer implements ICutDownSerializer { builder.append(StringUtils.format("buffer.WriteBooleanArray({})", objectStr)).append(LS); break; case Cpp: + case Java: case JavaScript: case EcmaScript: case TypeScript: @@ -96,6 +97,7 @@ public class CutDownSetSerializer implements ICutDownSerializer { builder.append(StringUtils.format("buffer.WriteByteArray({})", objectStr)).append(LS); break; case Cpp: + case Java: case JavaScript: case EcmaScript: case TypeScript: @@ -126,6 +128,7 @@ public class CutDownSetSerializer implements ICutDownSerializer { builder.append(StringUtils.format("buffer.WriteShortArray({})", objectStr)).append(LS); break; case Cpp: + case Java: case JavaScript: case EcmaScript: case TypeScript: @@ -156,6 +159,7 @@ public class CutDownSetSerializer implements ICutDownSerializer { builder.append(StringUtils.format("buffer.WriteIntArray({})", objectStr)).append(LS); break; case Cpp: + case Java: case JavaScript: case EcmaScript: case TypeScript: @@ -186,6 +190,7 @@ public class CutDownSetSerializer implements ICutDownSerializer { builder.append(StringUtils.format("buffer.WriteLongArray({})", objectStr)).append(LS); break; case Cpp: + case Java: case JavaScript: case EcmaScript: case TypeScript: @@ -216,6 +221,7 @@ public class CutDownSetSerializer implements ICutDownSerializer { builder.append(StringUtils.format("buffer.WriteFloatArray({})", objectStr)).append(LS); break; case Cpp: + case Java: case JavaScript: case EcmaScript: case TypeScript: @@ -246,6 +252,7 @@ public class CutDownSetSerializer implements ICutDownSerializer { builder.append(StringUtils.format("buffer.WriteDoubleArray({})", objectStr)).append(LS); break; case Cpp: + case Java: case JavaScript: case EcmaScript: case TypeScript: @@ -276,6 +283,7 @@ public class CutDownSetSerializer implements ICutDownSerializer { builder.append(StringUtils.format("buffer.WriteStringArray({})", objectStr)).append(LS); break; case Cpp: + case Java: case JavaScript: case EcmaScript: case TypeScript: @@ -311,6 +319,9 @@ public class CutDownSetSerializer implements ICutDownSerializer { case TypeScript: builder.append(StringUtils.format("buffer.writePacketSet({}, {});", objectStr, protocolId)).append(LS); break; + case Java: + builder.append(StringUtils.format("buffer.writePacketSet({}, (short) {});", objectStr, protocolId)).append(LS); + break; case Golang: case Protobuf: default: @@ -349,11 +360,14 @@ public class CutDownSetSerializer implements ICutDownSerializer { case CSharp: builder.append(StringUtils.format("var {} = buffer.ReadBooleanSet();", set)).append(LS); break; + case Golang: + builder.append(StringUtils.format("var {} = buffer.ReadBooleanArray()", set)).append(LS); + break; case Cpp: builder.append(StringUtils.format("auto {} = buffer.readBooleanSet();", set)).append(LS); break; - case Golang: - builder.append(StringUtils.format("var {} = buffer.ReadBooleanArray()", set)).append(LS); + case Java: + builder.append(StringUtils.format("var {} = buffer.readBooleanSet();", set)).append(LS); break; case JavaScript: case EcmaScript: @@ -387,6 +401,9 @@ public class CutDownSetSerializer implements ICutDownSerializer { case Cpp: builder.append(StringUtils.format("auto {} = buffer.readByteSet();", set)).append(LS); break; + case Java: + builder.append(StringUtils.format("var {} = buffer.readByteSet();", set)).append(LS); + break; case JavaScript: case EcmaScript: case TypeScript: @@ -419,6 +436,9 @@ public class CutDownSetSerializer implements ICutDownSerializer { case Cpp: builder.append(StringUtils.format("auto {} = buffer.readShortSet();", set)).append(LS); break; + case Java: + builder.append(StringUtils.format("var {} = buffer.readShortSet();", set)).append(LS); + break; case JavaScript: case EcmaScript: case TypeScript: @@ -451,6 +471,9 @@ public class CutDownSetSerializer implements ICutDownSerializer { case Cpp: builder.append(StringUtils.format("auto {} = buffer.readIntSet();", set)).append(LS); break; + case Java: + builder.append(StringUtils.format("var {} = buffer.readIntSet();", set)).append(LS); + break; case JavaScript: case EcmaScript: case TypeScript: @@ -483,6 +506,9 @@ public class CutDownSetSerializer implements ICutDownSerializer { case Cpp: builder.append(StringUtils.format("auto {} = buffer.readLongSet();", set)).append(LS); break; + case Java: + builder.append(StringUtils.format("var {} = buffer.readLongSet();", set)).append(LS); + break; case JavaScript: case EcmaScript: case TypeScript: @@ -515,6 +541,9 @@ public class CutDownSetSerializer implements ICutDownSerializer { case Cpp: builder.append(StringUtils.format("auto {} = buffer.readFloatSet();", set)).append(LS); break; + case Java: + builder.append(StringUtils.format("var {} = buffer.readFloatSet();", set)).append(LS); + break; case JavaScript: case EcmaScript: case TypeScript: @@ -547,6 +576,9 @@ public class CutDownSetSerializer implements ICutDownSerializer { case Cpp: builder.append(StringUtils.format("auto {} = buffer.readDoubleSet();", set)).append(LS); break; + case Java: + builder.append(StringUtils.format("var {} = buffer.readDoubleSet();", set)).append(LS); + break; case JavaScript: case EcmaScript: case TypeScript: @@ -579,6 +611,9 @@ public class CutDownSetSerializer implements ICutDownSerializer { case Cpp: builder.append(StringUtils.format("auto {} = buffer.readStringSet();", set)).append(LS); break; + case Java: + builder.append(StringUtils.format("var {} = buffer.readStringSet();", set)).append(LS); + break; case JavaScript: case EcmaScript: case TypeScript: @@ -610,6 +645,9 @@ public class CutDownSetSerializer implements ICutDownSerializer { case Cpp: builder.append(StringUtils.format("auto {} = buffer.readPacketSet<{}>({});", set, EnhanceObjectProtocolSerializer.getProtocolClassSimpleName(protocolId), protocolId)).append(LS); break; + case Java: + builder.append(StringUtils.format("var {} = buffer.readPacketSet({}.class, (short) {});", set, EnhanceObjectProtocolSerializer.getProtocolClassSimpleName(protocolId), protocolId)).append(LS); + break; case JavaScript: case EcmaScript: case TypeScript: diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/java/JavaObjectProtocolSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/java/JavaObjectProtocolSerializer.java index 11e1b0db..ec3fa3e9 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/java/JavaObjectProtocolSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/java/JavaObjectProtocolSerializer.java @@ -45,7 +45,7 @@ public class JavaObjectProtocolSerializer implements IJavaSerializer { var protocolSimpleName = EnhanceObjectProtocolSerializer.getProtocolClassSimpleName(objectProtocolField.getProtocolId()); GenerateProtocolFile.addTab(builder, deep); - builder.append(StringUtils.format("{} {} = ({}) buffer.readPacket((short){});", protocolSimpleName, result, protocolSimpleName, objectProtocolField.getProtocolId())) + builder.append(StringUtils.format("{} {} = ({}) buffer.readPacket((short) {});", protocolSimpleName, result, protocolSimpleName, objectProtocolField.getProtocolId())) .append(LS); return result; } diff --git a/protocol/src/main/resources/java/ByteBuffer.java b/protocol/src/main/resources/java/ByteBuffer.java index a7c2d80a..1c91493e 100644 --- a/protocol/src/main/resources/java/ByteBuffer.java +++ b/protocol/src/main/resources/java/ByteBuffer.java @@ -754,13 +754,13 @@ public class ByteBuffer { } } - public List readPacketList(short protocolId) { + public List readPacketList(Class clazz, short protocolId) { int size = readInt(); - List list = new ArrayList<>(); + List list = new ArrayList<>(); if (size > 0) { IProtocolRegistration protocolRegistration = ProtocolManager.getProtocol(protocolId); for (int index = 0; index < size; index++) { - list.add(protocolRegistration.read(this)); + list.add((T) protocolRegistration.read(this)); } } return list; @@ -932,16 +932,15 @@ public class ByteBuffer { } } - public Set readPacketSet(short protocolId) { + public Set readPacketSet(Class clazz, short protocolId) { int size = readInt(); - Set set = new HashSet<>(); + Set set = new HashSet<>(); if (size > 0) { IProtocolRegistration protocolRegistration = ProtocolManager.getProtocol(protocolId); for (int index = 0; index < size; index++) { - set.add(protocolRegistration.read(this)); + set.add((T) protocolRegistration.read(this)); } } - return set; } @@ -1034,14 +1033,14 @@ public class ByteBuffer { } } - public Map readIntPacketMap(short protocolId) { + public Map readIntPacketMap(Class clazz, short protocolId) { int size = readInt(); - Map map = new HashMap<>(); + Map map = new HashMap<>(); if (size > 0) { IProtocolRegistration protocolRegistration = ProtocolManager.getProtocol(protocolId); for (int index = 0; index < size; index++) { var key = readInt(); - var value = protocolRegistration.read(this); + var value = (T) protocolRegistration.read(this); map.put(key, value); } } @@ -1136,14 +1135,14 @@ public class ByteBuffer { } } - public Map readLongPacketMap(short protocolId) { + public Map readLongPacketMap(Class clazz, short protocolId) { int size = readInt(); - Map map = new HashMap<>(); + Map map = new HashMap<>(); if (size > 0) { IProtocolRegistration protocolRegistration = ProtocolManager.getProtocol(protocolId); for (int index = 0; index < size; index++) { var key = readLong(); - var value = protocolRegistration.read(this); + var value = (T) protocolRegistration.read(this); map.put(key, value); } } @@ -1239,14 +1238,14 @@ public class ByteBuffer { } } - public Map readStringPacketMap(short protocolId) { + public Map readStringPacketMap(Class clazz, short protocolId) { int size = readInt(); - Map map = new HashMap<>(); + Map map = new HashMap<>(); if (size > 0) { IProtocolRegistration protocolRegistration = ProtocolManager.getProtocol(protocolId); for (int index = 0; index < size; index++) { var key = readString(); - var value = protocolRegistration.read(this); + var value = (T) protocolRegistration.read(this); map.put(key, value); } }