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