ref[protocol]: refactor field method

This commit is contained in:
godotg
2024-07-15 15:10:03 +08:00
parent 4f3c2119e5
commit 8dd5ddbe3d
15 changed files with 19 additions and 19 deletions
@@ -253,10 +253,10 @@ public class CodeGenerateJavaScript implements ICodeGenerate {
for (var fieldNote : fieldNotes) {
fieldDefinitionBuilder.append(fieldNote).append(LS);
}
var pair = jsSerializer(fieldRegistration.serializer()).field(field, fieldRegistration);
fieldDefinitionBuilder.append(StringUtils.format("this.{} = {}; // {}", fieldName, pair.getValue(), pair.getKey()))
.append(LS);
var fieldTypeDefaultValue = jsSerializer(fieldRegistration.serializer()).fieldTypeDefaultValue(field, fieldRegistration);
var fieldType = fieldTypeDefaultValue.getKey();
var fieldDefaultValue = fieldTypeDefaultValue.getValue();
fieldDefinitionBuilder.append(StringUtils.format("this.{} = {}; // {}", fieldName, fieldDefaultValue, fieldType)).append(LS);
}
return fieldDefinitionBuilder.toString();
}
@@ -24,9 +24,9 @@ import java.lang.reflect.Field;
public interface IJsSerializer {
/**
* 获取属性的类型,名称,默认值
* 获取属性的类型,默认值
*/
Pair<String, String> field(Field field, IFieldRegistration fieldRegistration);
Pair<String, String> fieldTypeDefaultValue(Field field, IFieldRegistration fieldRegistration);
void writeObject(StringBuilder builder, String objectStr, int deep, Field field, IFieldRegistration fieldRegistration);
@@ -32,7 +32,7 @@ import static com.zfoo.protocol.util.FileUtils.LS;
*/
public class JsArraySerializer implements IJsSerializer {
@Override
public Pair<String, String> field(Field field, IFieldRegistration fieldRegistration) {
public Pair<String, String> fieldTypeDefaultValue(Field field, IFieldRegistration fieldRegistration) {
var type = StringUtils.format("Array<{}>", CodeGenerateTypeScript.toTsClassName(field.getType().getComponentType().getSimpleName()));
return new Pair<>(type, "[]");
}
@@ -27,7 +27,7 @@ import static com.zfoo.protocol.util.FileUtils.LS;
*/
public class JsBoolSerializer implements IJsSerializer {
@Override
public Pair<String, String> field(Field field, IFieldRegistration fieldRegistration) {
public Pair<String, String> fieldTypeDefaultValue(Field field, IFieldRegistration fieldRegistration) {
return new Pair<>("boolean", "false");
}
@@ -27,7 +27,7 @@ import static com.zfoo.protocol.util.FileUtils.LS;
*/
public class JsByteSerializer implements IJsSerializer {
@Override
public Pair<String, String> field(Field field, IFieldRegistration fieldRegistration) {
public Pair<String, String> fieldTypeDefaultValue(Field field, IFieldRegistration fieldRegistration) {
return new Pair<>("number", "0");
}
@@ -27,7 +27,7 @@ import static com.zfoo.protocol.util.FileUtils.LS;
*/
public class JsDoubleSerializer implements IJsSerializer {
@Override
public Pair<String, String> field(Field field, IFieldRegistration fieldRegistration) {
public Pair<String, String> fieldTypeDefaultValue(Field field, IFieldRegistration fieldRegistration) {
return new Pair<>("number", "0");
}
@@ -27,7 +27,7 @@ import static com.zfoo.protocol.util.FileUtils.LS;
*/
public class JsFloatSerializer implements IJsSerializer {
@Override
public Pair<String, String> field(Field field, IFieldRegistration fieldRegistration) {
public Pair<String, String> fieldTypeDefaultValue(Field field, IFieldRegistration fieldRegistration) {
return new Pair<>("number", "0");
}
@@ -27,7 +27,7 @@ import static com.zfoo.protocol.util.FileUtils.LS;
*/
public class JsIntSerializer implements IJsSerializer {
@Override
public Pair<String, String> field(Field field, IFieldRegistration fieldRegistration) {
public Pair<String, String> fieldTypeDefaultValue(Field field, IFieldRegistration fieldRegistration) {
return new Pair<>("number", "0");
}
@@ -31,7 +31,7 @@ import static com.zfoo.protocol.util.FileUtils.LS;
*/
public class JsListSerializer implements IJsSerializer {
@Override
public Pair<String, String> field(Field field, IFieldRegistration fieldRegistration) {
public Pair<String, String> fieldTypeDefaultValue(Field field, IFieldRegistration fieldRegistration) {
return new Pair<>(CodeGenerateTypeScript.toTsClassName(field.getGenericType().toString()), "[]");
}
@@ -27,7 +27,7 @@ import static com.zfoo.protocol.util.FileUtils.LS;
*/
public class JsLongSerializer implements IJsSerializer {
@Override
public Pair<String, String> field(Field field, IFieldRegistration fieldRegistration) {
public Pair<String, String> fieldTypeDefaultValue(Field field, IFieldRegistration fieldRegistration) {
return new Pair<>("number", "0");
}
@@ -31,7 +31,7 @@ import static com.zfoo.protocol.util.FileUtils.LS;
*/
public class JsMapSerializer implements IJsSerializer {
@Override
public Pair<String, String> field(Field field, IFieldRegistration fieldRegistration) {
public Pair<String, String> fieldTypeDefaultValue(Field field, IFieldRegistration fieldRegistration) {
return new Pair<>(CodeGenerateTypeScript.toTsClassName(field.getGenericType().toString()), "new Map()");
}
@@ -30,7 +30,7 @@ import static com.zfoo.protocol.util.FileUtils.LS;
*/
public class JsObjectProtocolSerializer implements IJsSerializer {
@Override
public Pair<String, String> field(Field field, IFieldRegistration fieldRegistration) {
public Pair<String, String> fieldTypeDefaultValue(Field field, IFieldRegistration fieldRegistration) {
ObjectProtocolField objectProtocolField = (ObjectProtocolField) fieldRegistration;
var protocolSimpleName = EnhanceObjectProtocolSerializer.getProtocolClassSimpleName(objectProtocolField.getProtocolId());
var type = StringUtils.format("{} | null", protocolSimpleName);
@@ -31,7 +31,7 @@ import static com.zfoo.protocol.util.FileUtils.LS;
*/
public class JsSetSerializer implements IJsSerializer {
@Override
public Pair<String, String> field(Field field, IFieldRegistration fieldRegistration) {
public Pair<String, String> fieldTypeDefaultValue(Field field, IFieldRegistration fieldRegistration) {
return new Pair<>(CodeGenerateTypeScript.toTsClassName(field.getGenericType().toString()), "new Set()");
}
@@ -27,7 +27,7 @@ import static com.zfoo.protocol.util.FileUtils.LS;
*/
public class JsShortSerializer implements IJsSerializer {
@Override
public Pair<String, String> field(Field field, IFieldRegistration fieldRegistration) {
public Pair<String, String> fieldTypeDefaultValue(Field field, IFieldRegistration fieldRegistration) {
return new Pair<>("number", "0");
}
@@ -27,7 +27,7 @@ import static com.zfoo.protocol.util.FileUtils.LS;
*/
public class JsStringSerializer implements IJsSerializer {
@Override
public Pair<String, String> field(Field field, IFieldRegistration fieldRegistration) {
public Pair<String, String> fieldTypeDefaultValue(Field field, IFieldRegistration fieldRegistration) {
return new Pair<>("string", "\"\"");
}