perf[generate]: when generate source code fields, use origin fields sort

This commit is contained in:
godotg
2023-10-05 18:38:11 +08:00
parent b18559b4db
commit 3aebff4d2e
3 changed files with 13 additions and 8 deletions
@@ -25,6 +25,7 @@ import com.zfoo.protocol.serializer.CodeLanguage;
import com.zfoo.protocol.serializer.reflect.*;
import com.zfoo.protocol.util.ClassUtils;
import com.zfoo.protocol.util.FileUtils;
import com.zfoo.protocol.util.ReflectionUtils;
import com.zfoo.protocol.util.StringUtils;
import java.io.File;
@@ -136,10 +137,12 @@ public abstract class GenerateJsUtils {
var protocolId = registration.getId();
var fields = registration.getFields();
var fieldRegistrations = registration.getFieldRegistrations();
// when generate source code fields, use origin fields sort
var sequencedFields = ReflectionUtils.notStaticAndTransientFields(registration.getConstructor().getDeclaringClass());
var fieldDefinitionBuilder = new StringBuilder();
for (int i = 0; i < fields.length; i++) {
var field = fields[i];
IFieldRegistration fieldRegistration = fieldRegistrations[i];
for (int i = 0; i < sequencedFields.size(); i++) {
var field = sequencedFields.get(i);
var fieldRegistration = fieldRegistrations[GenerateProtocolFile.indexOf(fields, field)];
var fieldName = field.getName();
// 生成注释
var fieldNote = GenerateProtocolNote.fieldNote(protocolId, fieldName, CodeLanguage.JavaScript);
@@ -136,11 +136,11 @@ public abstract class GeneratePyUtils {
var fields = registration.getFields();
var fieldRegistrations = registration.getFieldRegistrations();
var pyBuilder = new StringBuilder();
// 生成源代码字段的时候,按照原始定义的方式生成
// when generate source code fields, use origin fields sort
var sequencedFields = ReflectionUtils.notStaticAndTransientFields(registration.getConstructor().getDeclaringClass());
for (int i = 0; i < sequencedFields.size(); i++) {
var field = sequencedFields.get(i);
IFieldRegistration fieldRegistration = fieldRegistrations[GenerateProtocolFile.indexOf(fields, field)];
var fieldRegistration = fieldRegistrations[GenerateProtocolFile.indexOf(fields, field)];
var fieldName = field.getName();
// 生成注释
var fieldNote = GenerateProtocolNote.fieldNote(protocolId, fieldName, CodeLanguage.Python);
@@ -159,10 +159,12 @@ public abstract class GenerateTsUtils {
var protocolId = registration.protocolId();
var fields = registration.getFields();
var fieldRegistrations = registration.getFieldRegistrations();
// when generate source code fields, use origin fields sort
var sequencedFields = ReflectionUtils.notStaticAndTransientFields(registration.getConstructor().getDeclaringClass());
var fieldDefinitionBuilder = new StringBuilder();
for (int i = 0; i < fields.length; i++) {
var field = fields[i];
IFieldRegistration fieldRegistration = fieldRegistrations[i];
for (int i = 0; i < sequencedFields.size(); i++) {
var field = sequencedFields.get(i);
var fieldRegistration = fieldRegistrations[GenerateProtocolFile.indexOf(fields, field)];
var fieldName = field.getName();
// 生成注释
var fieldNote = GenerateProtocolNote.fieldNote(protocolId, fieldName, CodeLanguage.TypeScript);