From 845b309b4215e91edc278c493afcf6fb00f8f345 Mon Sep 17 00:00:00 2001 From: godotg Date: Sun, 25 Sep 2022 16:41:22 +0800 Subject: [PATCH] =?UTF-8?q?fix[protocol]:=20=E4=BF=AE=E5=A4=8D=E5=8D=8F?= =?UTF-8?q?=E8=AE=AE=E8=A7=A3=E6=9E=90=E5=AD=97=E6=AE=B5=E6=96=AD=E6=98=AF?= =?UTF-8?q?=E5=90=A6=E4=B8=BA=E5=9F=BA=E7=A1=80=E7=B1=BB=E5=9E=8B=E7=9A=84?= =?UTF-8?q?=E5=88=A4=E6=96=AD=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../serializer/enhance/EnhanceBooleanSerializer.java | 6 ++---- .../protocol/serializer/enhance/EnhanceByteSerializer.java | 5 ++--- .../protocol/serializer/enhance/EnhanceCharSerializer.java | 5 ++--- .../serializer/enhance/EnhanceDoubleSerializer.java | 5 ++--- .../serializer/enhance/EnhanceFloatSerializer.java | 3 +-- .../protocol/serializer/enhance/EnhanceIntSerializer.java | 5 ++--- .../protocol/serializer/enhance/EnhanceLongSerializer.java | 5 ++--- .../serializer/enhance/EnhanceShortSerializer.java | 5 ++--- .../protocol/serializer/enhance/IEnhanceSerializer.java | 7 +++++++ 9 files changed, 22 insertions(+), 24 deletions(-) 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 7a69388b..c8e7dff1 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 @@ -28,7 +28,7 @@ public class EnhanceBooleanSerializer implements IEnhanceSerializer { @Override public void writeObject(StringBuilder builder, String objectStr, Field field, IFieldRegistration fieldRegistration) { - if (field.getType().isPrimitive()) { + if (isPrimitiveField(field)) { builder.append(StringUtils.format("{}.writeBoolean($1, {});", EnhanceUtils.byteBufUtils, objectStr)); } else { builder.append(StringUtils.format("{}.writeBooleanBox($1, (Boolean){});", EnhanceUtils.byteBufUtils, objectStr)); @@ -38,13 +38,11 @@ public class EnhanceBooleanSerializer implements IEnhanceSerializer { @Override public String readObject(StringBuilder builder, Field field, IFieldRegistration fieldRegistration) { var result = "result" + GenerateProtocolFile.index.getAndIncrement(); - - if (field.getType().isPrimitive()) { + if (isPrimitiveField(field)) { builder.append(StringUtils.format("boolean {} = {}.readBoolean($1);", result, EnhanceUtils.byteBufUtils)); } else { builder.append(StringUtils.format("Boolean {} = {}.readBooleanBox($1);", result, EnhanceUtils.byteBufUtils)); } - return result; } 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 eb61d871..17c6d7b4 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 @@ -28,7 +28,7 @@ public class EnhanceByteSerializer implements IEnhanceSerializer { @Override public void writeObject(StringBuilder builder, String objectStr, Field field, IFieldRegistration fieldRegistration) { - if (field.getType().isPrimitive()) { + if (isPrimitiveField(field)) { builder.append(StringUtils.format("{}.writeByte($1, {});", EnhanceUtils.byteBufUtils, objectStr)); } else { builder.append(StringUtils.format("{}.writeByteBox($1, (Byte){});", EnhanceUtils.byteBufUtils, objectStr)); @@ -38,8 +38,7 @@ public class EnhanceByteSerializer implements IEnhanceSerializer { @Override public String readObject(StringBuilder builder, Field field, IFieldRegistration fieldRegistration) { var result = "result" + GenerateProtocolFile.index.getAndIncrement(); - - if (field.getType().isPrimitive()) { + if (isPrimitiveField(field)) { builder.append(StringUtils.format("byte {} = {}.readByte($1);", result, EnhanceUtils.byteBufUtils)); } else { builder.append(StringUtils.format("Byte {} = {}.readByteBox($1);", result, EnhanceUtils.byteBufUtils)); diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/enhance/EnhanceCharSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/enhance/EnhanceCharSerializer.java index 240e344c..26478f2b 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/enhance/EnhanceCharSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/enhance/EnhanceCharSerializer.java @@ -28,7 +28,7 @@ public class EnhanceCharSerializer implements IEnhanceSerializer { @Override public void writeObject(StringBuilder builder, String objectStr, Field field, IFieldRegistration fieldRegistration) { - if (field.getType().isPrimitive()) { + if (isPrimitiveField(field)) { builder.append(StringUtils.format("{}.writeChar($1,{});", EnhanceUtils.byteBufUtils, objectStr)); } else { builder.append(StringUtils.format("{}.writeCharBox($1, (Character){});", EnhanceUtils.byteBufUtils, objectStr)); @@ -38,8 +38,7 @@ public class EnhanceCharSerializer implements IEnhanceSerializer { @Override public String readObject(StringBuilder builder, Field field, IFieldRegistration fieldRegistration) { var result = "result" + GenerateProtocolFile.index.getAndIncrement(); - - if (field.getType().isPrimitive()) { + if (isPrimitiveField(field)) { builder.append(StringUtils.format("char {} = {}.readChar($1);", result, EnhanceUtils.byteBufUtils)); } else { builder.append(StringUtils.format("Character {} = {}.readCharBox($1);", result, EnhanceUtils.byteBufUtils)); 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 f9f003e9..9b79417d 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 @@ -28,7 +28,7 @@ public class EnhanceDoubleSerializer implements IEnhanceSerializer { @Override public void writeObject(StringBuilder builder, String objectStr, Field field, IFieldRegistration fieldRegistration) { - if (field.getType().isPrimitive()) { + if (isPrimitiveField(field)) { builder.append(StringUtils.format("{}.writeDouble($1, {});", EnhanceUtils.byteBufUtils, objectStr)); } else { builder.append(StringUtils.format("{}.writeDoubleBox($1, (Double){});", EnhanceUtils.byteBufUtils, objectStr)); @@ -38,8 +38,7 @@ public class EnhanceDoubleSerializer implements IEnhanceSerializer { @Override public String readObject(StringBuilder builder, Field field, IFieldRegistration fieldRegistration) { var result = "result" + GenerateProtocolFile.index.getAndIncrement(); - - if (field.getType().isPrimitive()) { + if (isPrimitiveField(field)) { builder.append(StringUtils.format("double {} = {}.readDouble($1);", result, EnhanceUtils.byteBufUtils)); } else { builder.append(StringUtils.format("Double {} = {}.readDoubleBox($1);", result, EnhanceUtils.byteBufUtils)); 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 eb8bb9ee..6c82857a 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 @@ -28,7 +28,7 @@ public class EnhanceFloatSerializer implements IEnhanceSerializer { @Override public void writeObject(StringBuilder builder, String objectStr, Field field, IFieldRegistration fieldRegistration) { - if (field.getType().isPrimitive()) { + if (isPrimitiveField(field)) { builder.append(StringUtils.format("{}.writeFloat($1, {});", EnhanceUtils.byteBufUtils, objectStr)); } else { builder.append(StringUtils.format("{}.writeFloatBox($1, (Float){});", EnhanceUtils.byteBufUtils, objectStr)); @@ -38,7 +38,6 @@ public class EnhanceFloatSerializer implements IEnhanceSerializer { @Override public String readObject(StringBuilder builder, Field field, IFieldRegistration fieldRegistration) { var result = "result" + GenerateProtocolFile.index.getAndIncrement(); - if (field.getType().isPrimitive()) { builder.append(StringUtils.format("float {} = {}.readFloat($1);", result, EnhanceUtils.byteBufUtils)); } 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 5002a1b8..3678f138 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 @@ -28,7 +28,7 @@ public class EnhanceIntSerializer implements IEnhanceSerializer { @Override public void writeObject(StringBuilder builder, String objectStr, Field field, IFieldRegistration fieldRegistration) { - if (field.getType().isPrimitive()) { + if (isPrimitiveField(field)) { builder.append(StringUtils.format("{}.writeInt($1, {});", EnhanceUtils.byteBufUtils, objectStr)); } else { builder.append(StringUtils.format("{}.writeIntBox($1, (Integer){});", EnhanceUtils.byteBufUtils, objectStr)); @@ -38,8 +38,7 @@ public class EnhanceIntSerializer implements IEnhanceSerializer { @Override public String readObject(StringBuilder builder, Field field, IFieldRegistration fieldRegistration) { var result = "result" + GenerateProtocolFile.index.getAndIncrement(); - - if (field.getType().isPrimitive()) { + if (isPrimitiveField(field)) { builder.append(StringUtils.format("int {} = {}.readInt($1);", result, EnhanceUtils.byteBufUtils)); } else { builder.append(StringUtils.format("Integer {} = {}.readIntBox($1);", result, EnhanceUtils.byteBufUtils)); 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 f9f901b4..3c618a7d 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 @@ -28,7 +28,7 @@ public class EnhanceLongSerializer implements IEnhanceSerializer { @Override public void writeObject(StringBuilder builder, String objectStr, Field field, IFieldRegistration fieldRegistration) { - if (field.getType().isPrimitive()) { + if (isPrimitiveField(field)) { builder.append(StringUtils.format("{}.writeLong($1, {});", EnhanceUtils.byteBufUtils, objectStr)); } else { builder.append(StringUtils.format("{}.writeLongBox($1, (Long){});", EnhanceUtils.byteBufUtils, objectStr)); @@ -38,8 +38,7 @@ public class EnhanceLongSerializer implements IEnhanceSerializer { @Override public String readObject(StringBuilder builder, Field field, IFieldRegistration fieldRegistration) { var result = "result" + GenerateProtocolFile.index.getAndIncrement(); - - if (field.getType().isPrimitive()) { + if (isPrimitiveField(field)) { builder.append(StringUtils.format("long {} = {}.readLong($1);", result, EnhanceUtils.byteBufUtils)); } else { builder.append(StringUtils.format("Long {} = {}.readLongBox($1);", result, EnhanceUtils.byteBufUtils)); 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 df968fde..adc45527 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 @@ -28,7 +28,7 @@ public class EnhanceShortSerializer implements IEnhanceSerializer { @Override public void writeObject(StringBuilder builder, String objectStr, Field field, IFieldRegistration fieldRegistration) { - if (field.getType().isPrimitive()) { + if (isPrimitiveField(field)) { builder.append(StringUtils.format("{}.writeShort($1, {});", EnhanceUtils.byteBufUtils, objectStr)); } else { builder.append(StringUtils.format("{}.writeShortBox($1, (Short){});", EnhanceUtils.byteBufUtils, objectStr)); @@ -38,8 +38,7 @@ public class EnhanceShortSerializer implements IEnhanceSerializer { @Override public String readObject(StringBuilder builder, Field field, IFieldRegistration fieldRegistration) { var result = "result" + GenerateProtocolFile.index.getAndIncrement(); - - if (field.getType().isPrimitive()) { + if (isPrimitiveField(field)) { builder.append(StringUtils.format("short {} = {}.readShort($1);", result, EnhanceUtils.byteBufUtils)); } else { builder.append(StringUtils.format("Short {} = {}.readShortBox($1);", result, EnhanceUtils.byteBufUtils)); diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/enhance/IEnhanceSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/enhance/IEnhanceSerializer.java index e7fa4583..9aac5ca2 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/enhance/IEnhanceSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/enhance/IEnhanceSerializer.java @@ -23,6 +23,13 @@ import java.lang.reflect.Field; */ public interface IEnhanceSerializer { + default boolean isPrimitiveField(Field field) { + if (field.getType().isPrimitive()) { + return true; + } + return field.getType().isArray() && field.getType().getComponentType().isPrimitive(); + } + /** * IProtocolRegistration.write(ByteBuf buffer, IPacket packet); * $1=buffer