mirror of
https://github.com/tiennm99/zfoo.git
synced 2026-10-20 02:18:34 +00:00
feat[js]: javascript support compatible field
This commit is contained in:
1 parent
563d9099a1
commit
1891702ae5
19 files changed
+113
-61
No files matched your search
+15
-14
@@ -18,9 +18,9 @@ import com.zfoo.protocol.generate.GenerateOperation;
|
|||||||
import com.zfoo.protocol.generate.GenerateProtocolFile;
|
import com.zfoo.protocol.generate.GenerateProtocolFile;
|
||||||
import com.zfoo.protocol.generate.GenerateProtocolNote;
|
import com.zfoo.protocol.generate.GenerateProtocolNote;
|
||||||
import com.zfoo.protocol.generate.GenerateProtocolPath;
|
import com.zfoo.protocol.generate.GenerateProtocolPath;
|
||||||
import com.zfoo.protocol.model.Pair;
|
|
||||||
import com.zfoo.protocol.registration.IProtocolRegistration;
|
import com.zfoo.protocol.registration.IProtocolRegistration;
|
||||||
import com.zfoo.protocol.registration.ProtocolRegistration;
|
import com.zfoo.protocol.registration.ProtocolRegistration;
|
||||||
|
import com.zfoo.protocol.registration.field.IFieldRegistration;
|
||||||
import com.zfoo.protocol.serializer.CodeLanguage;
|
import com.zfoo.protocol.serializer.CodeLanguage;
|
||||||
import com.zfoo.protocol.serializer.reflect.*;
|
import com.zfoo.protocol.serializer.reflect.*;
|
||||||
import com.zfoo.protocol.util.ClassUtils;
|
import com.zfoo.protocol.util.ClassUtils;
|
||||||
@@ -114,38 +114,39 @@ public abstract class GenerateJsUtils {
|
|||||||
var protocolTemplate = ClassUtils.getFileFromClassPathToString("javascript/ProtocolTemplate.js");
|
var protocolTemplate = ClassUtils.getFileFromClassPathToString("javascript/ProtocolTemplate.js");
|
||||||
|
|
||||||
var classNote = GenerateProtocolNote.classNote(protocolId, CodeLanguage.JavaScript);
|
var classNote = GenerateProtocolNote.classNote(protocolId, CodeLanguage.JavaScript);
|
||||||
var valueOfMethod = valueOfMethod(registration);
|
var fieldDefinition = fieldDefinition(registration);
|
||||||
var writeObject = writeObject(registration);
|
var writeObject = writeObject(registration);
|
||||||
var readObject = readObject(registration);
|
var readObject = readObject(registration);
|
||||||
|
|
||||||
protocolTemplate = StringUtils.format(protocolTemplate, classNote, protocolClazzName
|
protocolTemplate = StringUtils.format(protocolTemplate, classNote, protocolClazzName
|
||||||
, valueOfMethod.getKey().trim(), valueOfMethod.getValue().trim(), protocolClazzName, protocolId, protocolClazzName
|
, fieldDefinition.trim(), protocolClazzName, protocolId, protocolClazzName
|
||||||
, writeObject.trim(), protocolClazzName, protocolClazzName, readObject.trim(), protocolClazzName);
|
, writeObject.trim(), protocolClazzName, protocolClazzName, readObject.trim(), protocolClazzName);
|
||||||
var protocolOutputPath = StringUtils.format("{}/{}/{}.js", protocolOutputRootPath
|
var protocolOutputPath = StringUtils.format("{}/{}/{}.js", protocolOutputRootPath
|
||||||
, GenerateProtocolPath.getProtocolPath(protocolId), protocolClazzName);
|
, GenerateProtocolPath.getProtocolPath(protocolId), protocolClazzName);
|
||||||
FileUtils.writeStringToFile(new File(protocolOutputPath), protocolTemplate, true);
|
FileUtils.writeStringToFile(new File(protocolOutputPath), protocolTemplate, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static Pair<String, String> valueOfMethod(ProtocolRegistration registration) {
|
private static String fieldDefinition(ProtocolRegistration registration) {
|
||||||
var protocolId = registration.getId();
|
var protocolId = registration.getId();
|
||||||
var fields = registration.getFields();
|
var fields = registration.getFields();
|
||||||
|
var fieldRegistrations = registration.getFieldRegistrations();
|
||||||
var fieldValueOf = StringUtils.joinWith(", ", Arrays.stream(fields).map(it -> it.getName()).toList().toArray());
|
|
||||||
var fieldDefinitionBuilder = new StringBuilder();
|
var fieldDefinitionBuilder = new StringBuilder();
|
||||||
|
for (int i = 0; i < fields.length; i++) {
|
||||||
for (var field : fields) {
|
var field = fields[i];
|
||||||
|
IFieldRegistration fieldRegistration = fieldRegistrations[i];
|
||||||
var fieldName = field.getName();
|
var fieldName = field.getName();
|
||||||
// 生成注释
|
// 生成注释
|
||||||
var fileNote = GenerateProtocolNote.fieldNote(protocolId, fieldName, CodeLanguage.JavaScript);
|
var fieldNote = GenerateProtocolNote.fieldNote(protocolId, fieldName, CodeLanguage.JavaScript);
|
||||||
if (StringUtils.isNotBlank(fileNote)) {
|
if (StringUtils.isNotBlank(fieldNote)) {
|
||||||
fieldDefinitionBuilder.append(TAB).append(fileNote).append(LS);
|
fieldDefinitionBuilder.append(TAB).append(fieldNote).append(LS);
|
||||||
}
|
}
|
||||||
|
var triple = jsSerializer(fieldRegistration.serializer()).field(field, fieldRegistration);
|
||||||
fieldDefinitionBuilder.append(TAB)
|
fieldDefinitionBuilder.append(TAB)
|
||||||
.append(StringUtils.format("this.{} = {};", fieldName, fieldName))
|
.append(StringUtils.format("this.{} = {}; // {}", fieldName, triple.getRight(), triple.getLeft()))
|
||||||
.append(" // ").append(field.getGenericType().getTypeName())// 生成类型的注释
|
|
||||||
.append(LS);
|
.append(LS);
|
||||||
|
|
||||||
}
|
}
|
||||||
return new Pair<>(fieldValueOf, fieldDefinitionBuilder.toString());
|
return fieldDefinitionBuilder.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
private static String writeObject(ProtocolRegistration registration) {
|
private static String writeObject(ProtocolRegistration registration) {
|
||||||
|
|||||||
@@ -13,6 +13,7 @@
|
|||||||
|
|
||||||
package com.zfoo.protocol.serializer.javascript;
|
package com.zfoo.protocol.serializer.javascript;
|
||||||
|
|
||||||
|
import com.zfoo.protocol.model.Triple;
|
||||||
import com.zfoo.protocol.registration.field.IFieldRegistration;
|
import com.zfoo.protocol.registration.field.IFieldRegistration;
|
||||||
|
|
||||||
import java.lang.reflect.Field;
|
import java.lang.reflect.Field;
|
||||||
@@ -22,6 +23,11 @@ import java.lang.reflect.Field;
|
|||||||
*/
|
*/
|
||||||
public interface IJsSerializer {
|
public interface IJsSerializer {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取属性的类型,名称,默认值
|
||||||
|
*/
|
||||||
|
Triple<String, String, String> field(Field field, IFieldRegistration fieldRegistration);
|
||||||
|
|
||||||
void writeObject(StringBuilder builder, String objectStr, int deep, Field field, IFieldRegistration fieldRegistration);
|
void writeObject(StringBuilder builder, String objectStr, int deep, Field field, IFieldRegistration fieldRegistration);
|
||||||
|
|
||||||
String readObject(StringBuilder builder, int deep, Field field, IFieldRegistration fieldRegistration);
|
String readObject(StringBuilder builder, int deep, Field field, IFieldRegistration fieldRegistration);
|
||||||
|
|||||||
@@ -14,10 +14,12 @@
|
|||||||
package com.zfoo.protocol.serializer.javascript;
|
package com.zfoo.protocol.serializer.javascript;
|
||||||
|
|
||||||
import com.zfoo.protocol.generate.GenerateProtocolFile;
|
import com.zfoo.protocol.generate.GenerateProtocolFile;
|
||||||
|
import com.zfoo.protocol.model.Triple;
|
||||||
import com.zfoo.protocol.registration.field.ArrayField;
|
import com.zfoo.protocol.registration.field.ArrayField;
|
||||||
import com.zfoo.protocol.registration.field.IFieldRegistration;
|
import com.zfoo.protocol.registration.field.IFieldRegistration;
|
||||||
import com.zfoo.protocol.serializer.CodeLanguage;
|
import com.zfoo.protocol.serializer.CodeLanguage;
|
||||||
import com.zfoo.protocol.serializer.CutDownArraySerializer;
|
import com.zfoo.protocol.serializer.CutDownArraySerializer;
|
||||||
|
import com.zfoo.protocol.serializer.typescript.GenerateTsUtils;
|
||||||
import com.zfoo.protocol.util.StringUtils;
|
import com.zfoo.protocol.util.StringUtils;
|
||||||
|
|
||||||
import java.lang.reflect.Field;
|
import java.lang.reflect.Field;
|
||||||
@@ -28,6 +30,12 @@ import static com.zfoo.protocol.util.FileUtils.LS;
|
|||||||
* @author godotg
|
* @author godotg
|
||||||
*/
|
*/
|
||||||
public class JsArraySerializer implements IJsSerializer {
|
public class JsArraySerializer implements IJsSerializer {
|
||||||
|
@Override
|
||||||
|
public Triple<String, String, String> field(Field field, IFieldRegistration fieldRegistration) {
|
||||||
|
var type = StringUtils.format("Array<{}>", GenerateTsUtils.toTsClassName(field.getType().getComponentType().getSimpleName()));
|
||||||
|
return new Triple<>(type, field.getName(), "[]");
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void writeObject(StringBuilder builder, String objectStr, int deep, Field field, IFieldRegistration fieldRegistration) {
|
public void writeObject(StringBuilder builder, String objectStr, int deep, Field field, IFieldRegistration fieldRegistration) {
|
||||||
GenerateProtocolFile.addTab(builder, deep);
|
GenerateProtocolFile.addTab(builder, deep);
|
||||||
|
|||||||
+6
@@ -14,6 +14,7 @@
|
|||||||
package com.zfoo.protocol.serializer.javascript;
|
package com.zfoo.protocol.serializer.javascript;
|
||||||
|
|
||||||
import com.zfoo.protocol.generate.GenerateProtocolFile;
|
import com.zfoo.protocol.generate.GenerateProtocolFile;
|
||||||
|
import com.zfoo.protocol.model.Triple;
|
||||||
import com.zfoo.protocol.registration.field.IFieldRegistration;
|
import com.zfoo.protocol.registration.field.IFieldRegistration;
|
||||||
import com.zfoo.protocol.util.StringUtils;
|
import com.zfoo.protocol.util.StringUtils;
|
||||||
|
|
||||||
@@ -25,6 +26,11 @@ import static com.zfoo.protocol.util.FileUtils.LS;
|
|||||||
* @author godotg
|
* @author godotg
|
||||||
*/
|
*/
|
||||||
public class JsBooleanSerializer implements IJsSerializer {
|
public class JsBooleanSerializer implements IJsSerializer {
|
||||||
|
@Override
|
||||||
|
public Triple<String, String, String> field(Field field, IFieldRegistration fieldRegistration) {
|
||||||
|
return new Triple<>("boolean", field.getName(), "false");
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void writeObject(StringBuilder builder, String objectStr, int deep, Field field, IFieldRegistration fieldRegistration) {
|
public void writeObject(StringBuilder builder, String objectStr, int deep, Field field, IFieldRegistration fieldRegistration) {
|
||||||
GenerateProtocolFile.addTab(builder, deep);
|
GenerateProtocolFile.addTab(builder, deep);
|
||||||
|
|||||||
@@ -14,6 +14,7 @@
|
|||||||
package com.zfoo.protocol.serializer.javascript;
|
package com.zfoo.protocol.serializer.javascript;
|
||||||
|
|
||||||
import com.zfoo.protocol.generate.GenerateProtocolFile;
|
import com.zfoo.protocol.generate.GenerateProtocolFile;
|
||||||
|
import com.zfoo.protocol.model.Triple;
|
||||||
import com.zfoo.protocol.registration.field.IFieldRegistration;
|
import com.zfoo.protocol.registration.field.IFieldRegistration;
|
||||||
import com.zfoo.protocol.util.StringUtils;
|
import com.zfoo.protocol.util.StringUtils;
|
||||||
|
|
||||||
@@ -25,6 +26,11 @@ import static com.zfoo.protocol.util.FileUtils.LS;
|
|||||||
* @author godotg
|
* @author godotg
|
||||||
*/
|
*/
|
||||||
public class JsByteSerializer implements IJsSerializer {
|
public class JsByteSerializer implements IJsSerializer {
|
||||||
|
@Override
|
||||||
|
public Triple<String, String, String> field(Field field, IFieldRegistration fieldRegistration) {
|
||||||
|
return new Triple<>("number", field.getName(), "0");
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void writeObject(StringBuilder builder, String objectStr, int deep, Field field, IFieldRegistration fieldRegistration) {
|
public void writeObject(StringBuilder builder, String objectStr, int deep, Field field, IFieldRegistration fieldRegistration) {
|
||||||
GenerateProtocolFile.addTab(builder, deep);
|
GenerateProtocolFile.addTab(builder, deep);
|
||||||
|
|||||||
@@ -1,41 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (C) 2020 The zfoo Authors
|
|
||||||
*
|
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
|
|
||||||
* in compliance with the License. You may obtain a copy of the License at
|
|
||||||
*
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software distributed under the License is distributed
|
|
||||||
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
* See the License for the specific language governing permissions and limitations under the License.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.zfoo.protocol.serializer.javascript;
|
|
||||||
|
|
||||||
import com.zfoo.protocol.generate.GenerateProtocolFile;
|
|
||||||
import com.zfoo.protocol.registration.field.IFieldRegistration;
|
|
||||||
import com.zfoo.protocol.util.StringUtils;
|
|
||||||
|
|
||||||
import java.lang.reflect.Field;
|
|
||||||
|
|
||||||
import static com.zfoo.protocol.util.FileUtils.LS;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author godotg
|
|
||||||
*/
|
|
||||||
public class JsCharSerializer implements IJsSerializer {
|
|
||||||
@Override
|
|
||||||
public void writeObject(StringBuilder builder, String objectStr, int deep, Field field, IFieldRegistration fieldRegistration) {
|
|
||||||
GenerateProtocolFile.addTab(builder, deep);
|
|
||||||
builder.append(StringUtils.format("buffer.writeChar({});", objectStr)).append(LS);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String readObject(StringBuilder builder, int deep, Field field, IFieldRegistration fieldRegistration) {
|
|
||||||
String result = "result" + GenerateProtocolFile.index.getAndIncrement();
|
|
||||||
GenerateProtocolFile.addTab(builder, deep);
|
|
||||||
builder.append(StringUtils.format("const {} = buffer.readChar();", result)).append(LS);
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -14,6 +14,7 @@
|
|||||||
package com.zfoo.protocol.serializer.javascript;
|
package com.zfoo.protocol.serializer.javascript;
|
||||||
|
|
||||||
import com.zfoo.protocol.generate.GenerateProtocolFile;
|
import com.zfoo.protocol.generate.GenerateProtocolFile;
|
||||||
|
import com.zfoo.protocol.model.Triple;
|
||||||
import com.zfoo.protocol.registration.field.IFieldRegistration;
|
import com.zfoo.protocol.registration.field.IFieldRegistration;
|
||||||
import com.zfoo.protocol.util.StringUtils;
|
import com.zfoo.protocol.util.StringUtils;
|
||||||
|
|
||||||
@@ -25,6 +26,11 @@ import static com.zfoo.protocol.util.FileUtils.LS;
|
|||||||
* @author godotg
|
* @author godotg
|
||||||
*/
|
*/
|
||||||
public class JsDoubleSerializer implements IJsSerializer {
|
public class JsDoubleSerializer implements IJsSerializer {
|
||||||
|
@Override
|
||||||
|
public Triple<String, String, String> field(Field field, IFieldRegistration fieldRegistration) {
|
||||||
|
return new Triple<>("number", field.getName(), "0");
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void writeObject(StringBuilder builder, String objectStr, int deep, Field field, IFieldRegistration fieldRegistration) {
|
public void writeObject(StringBuilder builder, String objectStr, int deep, Field field, IFieldRegistration fieldRegistration) {
|
||||||
GenerateProtocolFile.addTab(builder, deep);
|
GenerateProtocolFile.addTab(builder, deep);
|
||||||
|
|||||||
@@ -14,6 +14,7 @@
|
|||||||
package com.zfoo.protocol.serializer.javascript;
|
package com.zfoo.protocol.serializer.javascript;
|
||||||
|
|
||||||
import com.zfoo.protocol.generate.GenerateProtocolFile;
|
import com.zfoo.protocol.generate.GenerateProtocolFile;
|
||||||
|
import com.zfoo.protocol.model.Triple;
|
||||||
import com.zfoo.protocol.registration.field.IFieldRegistration;
|
import com.zfoo.protocol.registration.field.IFieldRegistration;
|
||||||
import com.zfoo.protocol.util.StringUtils;
|
import com.zfoo.protocol.util.StringUtils;
|
||||||
|
|
||||||
@@ -25,6 +26,11 @@ import static com.zfoo.protocol.util.FileUtils.LS;
|
|||||||
* @author godotg
|
* @author godotg
|
||||||
*/
|
*/
|
||||||
public class JsFloatSerializer implements IJsSerializer {
|
public class JsFloatSerializer implements IJsSerializer {
|
||||||
|
@Override
|
||||||
|
public Triple<String, String, String> field(Field field, IFieldRegistration fieldRegistration) {
|
||||||
|
return new Triple<>("number", field.getName(), "0");
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void writeObject(StringBuilder builder, String objectStr, int deep, Field field, IFieldRegistration fieldRegistration) {
|
public void writeObject(StringBuilder builder, String objectStr, int deep, Field field, IFieldRegistration fieldRegistration) {
|
||||||
GenerateProtocolFile.addTab(builder, deep);
|
GenerateProtocolFile.addTab(builder, deep);
|
||||||
|
|||||||
@@ -14,6 +14,7 @@
|
|||||||
package com.zfoo.protocol.serializer.javascript;
|
package com.zfoo.protocol.serializer.javascript;
|
||||||
|
|
||||||
import com.zfoo.protocol.generate.GenerateProtocolFile;
|
import com.zfoo.protocol.generate.GenerateProtocolFile;
|
||||||
|
import com.zfoo.protocol.model.Triple;
|
||||||
import com.zfoo.protocol.registration.field.IFieldRegistration;
|
import com.zfoo.protocol.registration.field.IFieldRegistration;
|
||||||
import com.zfoo.protocol.util.StringUtils;
|
import com.zfoo.protocol.util.StringUtils;
|
||||||
|
|
||||||
@@ -25,6 +26,11 @@ import static com.zfoo.protocol.util.FileUtils.LS;
|
|||||||
* @author godotg
|
* @author godotg
|
||||||
*/
|
*/
|
||||||
public class JsIntSerializer implements IJsSerializer {
|
public class JsIntSerializer implements IJsSerializer {
|
||||||
|
@Override
|
||||||
|
public Triple<String, String, String> field(Field field, IFieldRegistration fieldRegistration) {
|
||||||
|
return new Triple<>("number", field.getName(), "0");
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void writeObject(StringBuilder builder, String objectStr, int deep, Field field, IFieldRegistration fieldRegistration) {
|
public void writeObject(StringBuilder builder, String objectStr, int deep, Field field, IFieldRegistration fieldRegistration) {
|
||||||
GenerateProtocolFile.addTab(builder, deep);
|
GenerateProtocolFile.addTab(builder, deep);
|
||||||
|
|||||||
@@ -14,10 +14,12 @@
|
|||||||
package com.zfoo.protocol.serializer.javascript;
|
package com.zfoo.protocol.serializer.javascript;
|
||||||
|
|
||||||
import com.zfoo.protocol.generate.GenerateProtocolFile;
|
import com.zfoo.protocol.generate.GenerateProtocolFile;
|
||||||
|
import com.zfoo.protocol.model.Triple;
|
||||||
import com.zfoo.protocol.registration.field.IFieldRegistration;
|
import com.zfoo.protocol.registration.field.IFieldRegistration;
|
||||||
import com.zfoo.protocol.registration.field.ListField;
|
import com.zfoo.protocol.registration.field.ListField;
|
||||||
import com.zfoo.protocol.serializer.CodeLanguage;
|
import com.zfoo.protocol.serializer.CodeLanguage;
|
||||||
import com.zfoo.protocol.serializer.CutDownListSerializer;
|
import com.zfoo.protocol.serializer.CutDownListSerializer;
|
||||||
|
import com.zfoo.protocol.serializer.typescript.GenerateTsUtils;
|
||||||
import com.zfoo.protocol.util.StringUtils;
|
import com.zfoo.protocol.util.StringUtils;
|
||||||
|
|
||||||
import java.lang.reflect.Field;
|
import java.lang.reflect.Field;
|
||||||
@@ -28,6 +30,11 @@ import static com.zfoo.protocol.util.FileUtils.LS;
|
|||||||
* @author godotg
|
* @author godotg
|
||||||
*/
|
*/
|
||||||
public class JsListSerializer implements IJsSerializer {
|
public class JsListSerializer implements IJsSerializer {
|
||||||
|
@Override
|
||||||
|
public Triple<String, String, String> field(Field field, IFieldRegistration fieldRegistration) {
|
||||||
|
return new Triple<>(GenerateTsUtils.toTsClassName(field.getGenericType().toString()), field.getName(), "[]");
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void writeObject(StringBuilder builder, String objectStr, int deep, Field field, IFieldRegistration fieldRegistration) {
|
public void writeObject(StringBuilder builder, String objectStr, int deep, Field field, IFieldRegistration fieldRegistration) {
|
||||||
GenerateProtocolFile.addTab(builder, deep);
|
GenerateProtocolFile.addTab(builder, deep);
|
||||||
|
|||||||
@@ -14,6 +14,7 @@
|
|||||||
package com.zfoo.protocol.serializer.javascript;
|
package com.zfoo.protocol.serializer.javascript;
|
||||||
|
|
||||||
import com.zfoo.protocol.generate.GenerateProtocolFile;
|
import com.zfoo.protocol.generate.GenerateProtocolFile;
|
||||||
|
import com.zfoo.protocol.model.Triple;
|
||||||
import com.zfoo.protocol.registration.field.IFieldRegistration;
|
import com.zfoo.protocol.registration.field.IFieldRegistration;
|
||||||
import com.zfoo.protocol.util.StringUtils;
|
import com.zfoo.protocol.util.StringUtils;
|
||||||
|
|
||||||
@@ -25,6 +26,11 @@ import static com.zfoo.protocol.util.FileUtils.LS;
|
|||||||
* @author godotg
|
* @author godotg
|
||||||
*/
|
*/
|
||||||
public class JsLongSerializer implements IJsSerializer {
|
public class JsLongSerializer implements IJsSerializer {
|
||||||
|
@Override
|
||||||
|
public Triple<String, String, String> field(Field field, IFieldRegistration fieldRegistration) {
|
||||||
|
return new Triple<>("number", field.getName(), "0");
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void writeObject(StringBuilder builder, String objectStr, int deep, Field field, IFieldRegistration fieldRegistration) {
|
public void writeObject(StringBuilder builder, String objectStr, int deep, Field field, IFieldRegistration fieldRegistration) {
|
||||||
GenerateProtocolFile.addTab(builder, deep);
|
GenerateProtocolFile.addTab(builder, deep);
|
||||||
|
|||||||
@@ -14,10 +14,12 @@
|
|||||||
package com.zfoo.protocol.serializer.javascript;
|
package com.zfoo.protocol.serializer.javascript;
|
||||||
|
|
||||||
import com.zfoo.protocol.generate.GenerateProtocolFile;
|
import com.zfoo.protocol.generate.GenerateProtocolFile;
|
||||||
|
import com.zfoo.protocol.model.Triple;
|
||||||
import com.zfoo.protocol.registration.field.IFieldRegistration;
|
import com.zfoo.protocol.registration.field.IFieldRegistration;
|
||||||
import com.zfoo.protocol.registration.field.MapField;
|
import com.zfoo.protocol.registration.field.MapField;
|
||||||
import com.zfoo.protocol.serializer.CodeLanguage;
|
import com.zfoo.protocol.serializer.CodeLanguage;
|
||||||
import com.zfoo.protocol.serializer.CutDownMapSerializer;
|
import com.zfoo.protocol.serializer.CutDownMapSerializer;
|
||||||
|
import com.zfoo.protocol.serializer.typescript.GenerateTsUtils;
|
||||||
import com.zfoo.protocol.util.StringUtils;
|
import com.zfoo.protocol.util.StringUtils;
|
||||||
|
|
||||||
import java.lang.reflect.Field;
|
import java.lang.reflect.Field;
|
||||||
@@ -28,6 +30,11 @@ import static com.zfoo.protocol.util.FileUtils.LS;
|
|||||||
* @author godotg
|
* @author godotg
|
||||||
*/
|
*/
|
||||||
public class JsMapSerializer implements IJsSerializer {
|
public class JsMapSerializer implements IJsSerializer {
|
||||||
|
@Override
|
||||||
|
public Triple<String, String, String> field(Field field, IFieldRegistration fieldRegistration) {
|
||||||
|
return new Triple<>(GenerateTsUtils.toTsClassName(field.getGenericType().toString()), field.getName(), "new Map()");
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void writeObject(StringBuilder builder, String objectStr, int deep, Field field, IFieldRegistration fieldRegistration) {
|
public void writeObject(StringBuilder builder, String objectStr, int deep, Field field, IFieldRegistration fieldRegistration) {
|
||||||
GenerateProtocolFile.addTab(builder, deep);
|
GenerateProtocolFile.addTab(builder, deep);
|
||||||
|
|||||||
+10
@@ -14,8 +14,10 @@
|
|||||||
package com.zfoo.protocol.serializer.javascript;
|
package com.zfoo.protocol.serializer.javascript;
|
||||||
|
|
||||||
import com.zfoo.protocol.generate.GenerateProtocolFile;
|
import com.zfoo.protocol.generate.GenerateProtocolFile;
|
||||||
|
import com.zfoo.protocol.model.Triple;
|
||||||
import com.zfoo.protocol.registration.field.IFieldRegistration;
|
import com.zfoo.protocol.registration.field.IFieldRegistration;
|
||||||
import com.zfoo.protocol.registration.field.ObjectProtocolField;
|
import com.zfoo.protocol.registration.field.ObjectProtocolField;
|
||||||
|
import com.zfoo.protocol.serializer.enhance.EnhanceObjectProtocolSerializer;
|
||||||
import com.zfoo.protocol.util.StringUtils;
|
import com.zfoo.protocol.util.StringUtils;
|
||||||
|
|
||||||
import java.lang.reflect.Field;
|
import java.lang.reflect.Field;
|
||||||
@@ -26,6 +28,14 @@ import static com.zfoo.protocol.util.FileUtils.LS;
|
|||||||
* @author godotg
|
* @author godotg
|
||||||
*/
|
*/
|
||||||
public class JsObjectProtocolSerializer implements IJsSerializer {
|
public class JsObjectProtocolSerializer implements IJsSerializer {
|
||||||
|
@Override
|
||||||
|
public Triple<String, String, String> field(Field field, IFieldRegistration fieldRegistration) {
|
||||||
|
ObjectProtocolField objectProtocolField = (ObjectProtocolField) fieldRegistration;
|
||||||
|
var protocolSimpleName = EnhanceObjectProtocolSerializer.getProtocolClassSimpleName(objectProtocolField.getProtocolId());
|
||||||
|
var type = StringUtils.format("{} | null", protocolSimpleName);
|
||||||
|
return new Triple<>(type, field.getName(), "null");
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void writeObject(StringBuilder builder, String objectStr, int deep, Field field, IFieldRegistration fieldRegistration) {
|
public void writeObject(StringBuilder builder, String objectStr, int deep, Field field, IFieldRegistration fieldRegistration) {
|
||||||
ObjectProtocolField objectProtocolField = (ObjectProtocolField) fieldRegistration;
|
ObjectProtocolField objectProtocolField = (ObjectProtocolField) fieldRegistration;
|
||||||
|
|||||||
@@ -14,10 +14,12 @@
|
|||||||
package com.zfoo.protocol.serializer.javascript;
|
package com.zfoo.protocol.serializer.javascript;
|
||||||
|
|
||||||
import com.zfoo.protocol.generate.GenerateProtocolFile;
|
import com.zfoo.protocol.generate.GenerateProtocolFile;
|
||||||
|
import com.zfoo.protocol.model.Triple;
|
||||||
import com.zfoo.protocol.registration.field.IFieldRegistration;
|
import com.zfoo.protocol.registration.field.IFieldRegistration;
|
||||||
import com.zfoo.protocol.registration.field.SetField;
|
import com.zfoo.protocol.registration.field.SetField;
|
||||||
import com.zfoo.protocol.serializer.CodeLanguage;
|
import com.zfoo.protocol.serializer.CodeLanguage;
|
||||||
import com.zfoo.protocol.serializer.CutDownSetSerializer;
|
import com.zfoo.protocol.serializer.CutDownSetSerializer;
|
||||||
|
import com.zfoo.protocol.serializer.typescript.GenerateTsUtils;
|
||||||
import com.zfoo.protocol.util.StringUtils;
|
import com.zfoo.protocol.util.StringUtils;
|
||||||
|
|
||||||
import java.lang.reflect.Field;
|
import java.lang.reflect.Field;
|
||||||
@@ -28,6 +30,11 @@ import static com.zfoo.protocol.util.FileUtils.LS;
|
|||||||
* @author godotg
|
* @author godotg
|
||||||
*/
|
*/
|
||||||
public class JsSetSerializer implements IJsSerializer {
|
public class JsSetSerializer implements IJsSerializer {
|
||||||
|
@Override
|
||||||
|
public Triple<String, String, String> field(Field field, IFieldRegistration fieldRegistration) {
|
||||||
|
return new Triple<>(GenerateTsUtils.toTsClassName(field.getGenericType().toString()), field.getName(), "new Set()");
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void writeObject(StringBuilder builder, String objectStr, int deep, Field field, IFieldRegistration fieldRegistration) {
|
public void writeObject(StringBuilder builder, String objectStr, int deep, Field field, IFieldRegistration fieldRegistration) {
|
||||||
GenerateProtocolFile.addTab(builder, deep);
|
GenerateProtocolFile.addTab(builder, deep);
|
||||||
|
|||||||
@@ -14,6 +14,7 @@
|
|||||||
package com.zfoo.protocol.serializer.javascript;
|
package com.zfoo.protocol.serializer.javascript;
|
||||||
|
|
||||||
import com.zfoo.protocol.generate.GenerateProtocolFile;
|
import com.zfoo.protocol.generate.GenerateProtocolFile;
|
||||||
|
import com.zfoo.protocol.model.Triple;
|
||||||
import com.zfoo.protocol.registration.field.IFieldRegistration;
|
import com.zfoo.protocol.registration.field.IFieldRegistration;
|
||||||
import com.zfoo.protocol.util.StringUtils;
|
import com.zfoo.protocol.util.StringUtils;
|
||||||
|
|
||||||
@@ -25,6 +26,11 @@ import static com.zfoo.protocol.util.FileUtils.LS;
|
|||||||
* @author godotg
|
* @author godotg
|
||||||
*/
|
*/
|
||||||
public class JsShortSerializer implements IJsSerializer {
|
public class JsShortSerializer implements IJsSerializer {
|
||||||
|
@Override
|
||||||
|
public Triple<String, String, String> field(Field field, IFieldRegistration fieldRegistration) {
|
||||||
|
return new Triple<>("number", field.getName(), "0");
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void writeObject(StringBuilder builder, String objectStr, int deep, Field field, IFieldRegistration fieldRegistration) {
|
public void writeObject(StringBuilder builder, String objectStr, int deep, Field field, IFieldRegistration fieldRegistration) {
|
||||||
GenerateProtocolFile.addTab(builder, deep);
|
GenerateProtocolFile.addTab(builder, deep);
|
||||||
|
|||||||
@@ -14,6 +14,7 @@
|
|||||||
package com.zfoo.protocol.serializer.javascript;
|
package com.zfoo.protocol.serializer.javascript;
|
||||||
|
|
||||||
import com.zfoo.protocol.generate.GenerateProtocolFile;
|
import com.zfoo.protocol.generate.GenerateProtocolFile;
|
||||||
|
import com.zfoo.protocol.model.Triple;
|
||||||
import com.zfoo.protocol.registration.field.IFieldRegistration;
|
import com.zfoo.protocol.registration.field.IFieldRegistration;
|
||||||
import com.zfoo.protocol.util.StringUtils;
|
import com.zfoo.protocol.util.StringUtils;
|
||||||
|
|
||||||
@@ -25,6 +26,11 @@ import static com.zfoo.protocol.util.FileUtils.LS;
|
|||||||
* @author godotg
|
* @author godotg
|
||||||
*/
|
*/
|
||||||
public class JsStringSerializer implements IJsSerializer {
|
public class JsStringSerializer implements IJsSerializer {
|
||||||
|
@Override
|
||||||
|
public Triple<String, String, String> field(Field field, IFieldRegistration fieldRegistration) {
|
||||||
|
return new Triple<>("string", field.getName(), "\"\"");
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void writeObject(StringBuilder builder, String objectStr, int deep, Field field, IFieldRegistration fieldRegistration) {
|
public void writeObject(StringBuilder builder, String objectStr, int deep, Field field, IFieldRegistration fieldRegistration) {
|
||||||
GenerateProtocolFile.addTab(builder, deep);
|
GenerateProtocolFile.addTab(builder, deep);
|
||||||
|
|||||||
@@ -160,10 +160,9 @@ public abstract class GenerateTsUtils {
|
|||||||
var fields = registration.getFields();
|
var fields = registration.getFields();
|
||||||
var fieldRegistrations = registration.getFieldRegistrations();
|
var fieldRegistrations = registration.getFieldRegistrations();
|
||||||
var fieldDefinitionBuilder = new StringBuilder();
|
var fieldDefinitionBuilder = new StringBuilder();
|
||||||
var sequencedFields = ReflectionUtils.notStaticAndTransientFields(registration.getConstructor().getDeclaringClass());
|
for (int i = 0; i < fields.length; i++) {
|
||||||
for (int i = 0; i < sequencedFields.size(); i++) {
|
var field = fields[i];
|
||||||
var field = sequencedFields.get(i);
|
IFieldRegistration fieldRegistration = fieldRegistrations[i];
|
||||||
IFieldRegistration fieldRegistration = fieldRegistrations[GenerateProtocolFile.indexOf(fields, field)];
|
|
||||||
var fieldName = field.getName();
|
var fieldName = field.getName();
|
||||||
// 生成注释
|
// 生成注释
|
||||||
var fieldNote = GenerateProtocolNote.fieldNote(protocolId, fieldName, CodeLanguage.TypeScript);
|
var fieldNote = GenerateProtocolNote.fieldNote(protocolId, fieldName, CodeLanguage.TypeScript);
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
{}
|
{}
|
||||||
const {} = function({}) {
|
const {} = function() {
|
||||||
{}
|
{}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -321,7 +321,7 @@ const ByteBuffer = function() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return readInt64(new Uint8Array(buffer.slice(0, count))).toString();
|
return readInt64(new Uint8Array(buffer.slice(0, count)));
|
||||||
};
|
};
|
||||||
|
|
||||||
this.writeFloat = function(value) {
|
this.writeFloat = function(value) {
|
||||||
|
|||||||
Reference in new issue
Block a user