From 12c5a2d50d4fbb42415e76fb4310eb3e0f1c6480 Mon Sep 17 00:00:00 2001 From: godotg Date: Mon, 15 Jul 2024 15:11:25 +0800 Subject: [PATCH] ref[protocol]: refactor field method --- .../zfoo/protocol/serializer/kotlin/CodeGenerateKotlin.java | 6 ++++-- .../com/zfoo/protocol/serializer/kotlin/IKtSerializer.java | 2 +- .../zfoo/protocol/serializer/kotlin/KtArraySerializer.java | 4 ++-- .../zfoo/protocol/serializer/kotlin/KtBoolSerializer.java | 2 +- .../zfoo/protocol/serializer/kotlin/KtByteSerializer.java | 2 +- .../zfoo/protocol/serializer/kotlin/KtDoubleSerializer.java | 2 +- .../zfoo/protocol/serializer/kotlin/KtFloatSerializer.java | 2 +- .../zfoo/protocol/serializer/kotlin/KtIntSerializer.java | 2 +- .../zfoo/protocol/serializer/kotlin/KtListSerializer.java | 2 +- .../zfoo/protocol/serializer/kotlin/KtLongSerializer.java | 2 +- .../zfoo/protocol/serializer/kotlin/KtMapSerializer.java | 2 +- .../serializer/kotlin/KtObjectProtocolSerializer.java | 2 +- .../zfoo/protocol/serializer/kotlin/KtSetSerializer.java | 2 +- .../zfoo/protocol/serializer/kotlin/KtShortSerializer.java | 2 +- .../zfoo/protocol/serializer/kotlin/KtStringSerializer.java | 2 +- 15 files changed, 19 insertions(+), 17 deletions(-) diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/kotlin/CodeGenerateKotlin.java b/protocol/src/main/java/com/zfoo/protocol/serializer/kotlin/CodeGenerateKotlin.java index 5d345741..23d1660c 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/kotlin/CodeGenerateKotlin.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/kotlin/CodeGenerateKotlin.java @@ -279,8 +279,10 @@ public class CodeGenerateKotlin implements ICodeGenerate { for (var fieldNote : fieldNotes) { ktBuilder.append(fieldNote).append(LS); } - var pair = ktSerializer(fieldRegistration.serializer()).fieldTypeValue(field, fieldRegistration); - ktBuilder.append(StringUtils.format("var {}: {} = {}", fieldName, pair.getKey(), pair.getValue())).append(LS); + var fieldTypeDefaultValue = ktSerializer(fieldRegistration.serializer()).fieldTypeDefaultValue(field, fieldRegistration); + var fieldType = fieldTypeDefaultValue.getKey(); + var fieldDefaultValue = fieldTypeDefaultValue.getValue(); + ktBuilder.append(StringUtils.format("var {}: {} = {}", fieldName, fieldType, fieldDefaultValue)).append(LS); } return ktBuilder.toString(); } diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/kotlin/IKtSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/kotlin/IKtSerializer.java index de16e70a..bf2beeb5 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/kotlin/IKtSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/kotlin/IKtSerializer.java @@ -25,7 +25,7 @@ public interface IKtSerializer { /** * 获取属性的类型,默认值 */ - Pair fieldTypeValue(Field field, IFieldRegistration fieldRegistration); + Pair fieldTypeDefaultValue(Field field, IFieldRegistration fieldRegistration); void writeObject(StringBuilder builder, String objectStr, int deep, Field field, IFieldRegistration fieldRegistration); diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/kotlin/KtArraySerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/kotlin/KtArraySerializer.java index 1be760d4..36471131 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/kotlin/KtArraySerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/kotlin/KtArraySerializer.java @@ -31,7 +31,7 @@ import static com.zfoo.protocol.util.FileUtils.LS; public class KtArraySerializer implements IKtSerializer { @Override - public Pair fieldTypeValue(Field field, IFieldRegistration fieldRegistration) { + public Pair fieldTypeDefaultValue(Field field, IFieldRegistration fieldRegistration) { var type = StringUtils.format("Array<{}>", CodeGenerateKotlin.toKotlinClassName(field.getType().getComponentType().getSimpleName())); return new Pair<>(type, "emptyArray()"); } @@ -84,7 +84,7 @@ public class KtArraySerializer implements IKtSerializer { builder.append(StringUtils.format("val {} = buffer.readInt()", size)).append(LS); GenerateProtocolFile.addTab(builder, deep); - var pair = CodeGenerateKotlin.ktSerializer(arrayField.getArrayElementRegistration().serializer()).fieldTypeValue(field, arrayField.getArrayElementRegistration()); + var pair = CodeGenerateKotlin.ktSerializer(arrayField.getArrayElementRegistration().serializer()).fieldTypeDefaultValue(field, arrayField.getArrayElementRegistration()); var defaultValue = pair.getValue(); if (defaultValue.equals("null")) { defaultValue = StringUtils.format("{}()", typeName); diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/kotlin/KtBoolSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/kotlin/KtBoolSerializer.java index e00725da..c501f2ed 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/kotlin/KtBoolSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/kotlin/KtBoolSerializer.java @@ -28,7 +28,7 @@ import static com.zfoo.protocol.util.FileUtils.LS; public class KtBoolSerializer implements IKtSerializer { @Override - public Pair fieldTypeValue(Field field, IFieldRegistration fieldRegistration) { + public Pair fieldTypeDefaultValue(Field field, IFieldRegistration fieldRegistration) { return new Pair<>("Boolean", "false"); } diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/kotlin/KtByteSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/kotlin/KtByteSerializer.java index aa767988..e8ca15c6 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/kotlin/KtByteSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/kotlin/KtByteSerializer.java @@ -28,7 +28,7 @@ import static com.zfoo.protocol.util.FileUtils.LS; public class KtByteSerializer implements IKtSerializer { @Override - public Pair fieldTypeValue(Field field, IFieldRegistration fieldRegistration) { + public Pair fieldTypeDefaultValue(Field field, IFieldRegistration fieldRegistration) { return new Pair<>("Byte", "0"); } diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/kotlin/KtDoubleSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/kotlin/KtDoubleSerializer.java index ab4658fd..ffa87c38 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/kotlin/KtDoubleSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/kotlin/KtDoubleSerializer.java @@ -28,7 +28,7 @@ import static com.zfoo.protocol.util.FileUtils.LS; public class KtDoubleSerializer implements IKtSerializer { @Override - public Pair fieldTypeValue(Field field, IFieldRegistration fieldRegistration) { + public Pair fieldTypeDefaultValue(Field field, IFieldRegistration fieldRegistration) { return new Pair<>("Double", "0.0"); } diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/kotlin/KtFloatSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/kotlin/KtFloatSerializer.java index 9dc5af8f..199c2750 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/kotlin/KtFloatSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/kotlin/KtFloatSerializer.java @@ -28,7 +28,7 @@ import static com.zfoo.protocol.util.FileUtils.LS; public class KtFloatSerializer implements IKtSerializer { @Override - public Pair fieldTypeValue(Field field, IFieldRegistration fieldRegistration) { + public Pair fieldTypeDefaultValue(Field field, IFieldRegistration fieldRegistration) { return new Pair<>("Float", "0f"); } diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/kotlin/KtIntSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/kotlin/KtIntSerializer.java index b5b5b5ae..3b8ba2de 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/kotlin/KtIntSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/kotlin/KtIntSerializer.java @@ -28,7 +28,7 @@ import static com.zfoo.protocol.util.FileUtils.LS; public class KtIntSerializer implements IKtSerializer { @Override - public Pair fieldTypeValue(Field field, IFieldRegistration fieldRegistration) { + public Pair fieldTypeDefaultValue(Field field, IFieldRegistration fieldRegistration) { return new Pair<>("Int", "0"); } diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/kotlin/KtListSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/kotlin/KtListSerializer.java index 4c44f5c7..a9d26f5c 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/kotlin/KtListSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/kotlin/KtListSerializer.java @@ -31,7 +31,7 @@ import static com.zfoo.protocol.util.FileUtils.LS; public class KtListSerializer implements IKtSerializer { @Override - public Pair fieldTypeValue(Field field, IFieldRegistration fieldRegistration) { + public Pair fieldTypeDefaultValue(Field field, IFieldRegistration fieldRegistration) { var type = StringUtils.format("{}", CodeGenerateKotlin.toKotlinClassName(field.getGenericType().toString())); return new Pair<>(type, "emptyList()"); } diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/kotlin/KtLongSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/kotlin/KtLongSerializer.java index a1bb4d33..53f7f3ed 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/kotlin/KtLongSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/kotlin/KtLongSerializer.java @@ -28,7 +28,7 @@ import static com.zfoo.protocol.util.FileUtils.LS; public class KtLongSerializer implements IKtSerializer { @Override - public Pair fieldTypeValue(Field field, IFieldRegistration fieldRegistration) { + public Pair fieldTypeDefaultValue(Field field, IFieldRegistration fieldRegistration) { return new Pair<>("Long", "0"); } diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/kotlin/KtMapSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/kotlin/KtMapSerializer.java index 3f8d8ff5..78aef559 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/kotlin/KtMapSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/kotlin/KtMapSerializer.java @@ -31,7 +31,7 @@ import static com.zfoo.protocol.util.FileUtils.LS; public class KtMapSerializer implements IKtSerializer { @Override - public Pair fieldTypeValue(Field field, IFieldRegistration fieldRegistration) { + public Pair fieldTypeDefaultValue(Field field, IFieldRegistration fieldRegistration) { var type = StringUtils.format("{}", CodeGenerateKotlin.toKotlinClassName(field.getGenericType().toString())); return new Pair<>(type, "emptyMap()"); } diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/kotlin/KtObjectProtocolSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/kotlin/KtObjectProtocolSerializer.java index e506b1a1..6310594e 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/kotlin/KtObjectProtocolSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/kotlin/KtObjectProtocolSerializer.java @@ -31,7 +31,7 @@ import static com.zfoo.protocol.util.FileUtils.LS; public class KtObjectProtocolSerializer implements IKtSerializer { @Override - public Pair fieldTypeValue(Field field, IFieldRegistration fieldRegistration) { + public Pair fieldTypeDefaultValue(Field field, IFieldRegistration fieldRegistration) { ObjectProtocolField objectProtocolField = (ObjectProtocolField) fieldRegistration; var protocolSimpleName = EnhanceObjectProtocolSerializer.getProtocolClassSimpleName(objectProtocolField.getProtocolId()); var type = StringUtils.format("{}?", protocolSimpleName); diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/kotlin/KtSetSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/kotlin/KtSetSerializer.java index 3defffae..eddc6fa5 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/kotlin/KtSetSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/kotlin/KtSetSerializer.java @@ -31,7 +31,7 @@ import static com.zfoo.protocol.util.FileUtils.LS; public class KtSetSerializer implements IKtSerializer { @Override - public Pair fieldTypeValue(Field field, IFieldRegistration fieldRegistration) { + public Pair fieldTypeDefaultValue(Field field, IFieldRegistration fieldRegistration) { var type = StringUtils.format("{}", CodeGenerateKotlin.toKotlinClassName(field.getGenericType().toString())); return new Pair<>(type, "emptySet()"); } diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/kotlin/KtShortSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/kotlin/KtShortSerializer.java index 2b10d002..6e08a041 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/kotlin/KtShortSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/kotlin/KtShortSerializer.java @@ -28,7 +28,7 @@ import static com.zfoo.protocol.util.FileUtils.LS; public class KtShortSerializer implements IKtSerializer { @Override - public Pair fieldTypeValue(Field field, IFieldRegistration fieldRegistration) { + public Pair fieldTypeDefaultValue(Field field, IFieldRegistration fieldRegistration) { return new Pair<>("Short", "0"); } diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/kotlin/KtStringSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/kotlin/KtStringSerializer.java index ea27b17a..db974a9f 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/kotlin/KtStringSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/kotlin/KtStringSerializer.java @@ -28,7 +28,7 @@ import static com.zfoo.protocol.util.FileUtils.LS; public class KtStringSerializer implements IKtSerializer { @Override - public Pair fieldTypeValue(Field field, IFieldRegistration fieldRegistration) { + public Pair fieldTypeDefaultValue(Field field, IFieldRegistration fieldRegistration) { return new Pair<>("String", "\"\""); }