DeMemberNode

This commit is contained in:
redkale
2024-09-17 08:57:39 +08:00
parent c8ba21dac2
commit 1cfc17766a
15 changed files with 192 additions and 82 deletions

View File

@@ -88,7 +88,7 @@ public class CustMessage2Test {
setIndex(member2, 2);
setPosition(member2, 2);
initForEachEnMember(factory, member2);
this.members = new EnMember[] {member1, member2};
this.initFieldMember(new EnMember[] {member1, member2});
}
};
encoder.init(factory);
@@ -117,7 +117,7 @@ public class CustMessage2Test {
setIndex(member2, 2);
setPosition(member2, 2);
initForEachDeMember(factory, member2);
this.members = new DeMember[] {member1, member2};
this.initFieldMember(new DeMember[] {member1, member2});
}
@Override

View File

@@ -76,7 +76,7 @@ public class CustMessageTest {
setIndex(member, 1);
setPosition(member, 1);
initForEachEnMember(factory, member);
this.members = new EnMember[] {member};
this.initFieldMember(new EnMember[] {member});
}
};
encoder.init(factory);
@@ -96,7 +96,7 @@ public class CustMessageTest {
setIndex(member, 1);
setPosition(member, 1);
initForEachDeMember(factory, member);
this.members = new DeMember[] {member};
this.initFieldMember(new DeMember[] {member});
}
@Override

View File

@@ -41,6 +41,8 @@ public class InnerCoderEntity {
final org.redkale.convert.ConvertFactory factory) {
return new SimpledCoder<Reader, Writer, InnerCoderEntity>() {
private DeMemberNode memberNode;
private Map<String, DeMember> deMemberFieldMap;
private Map<Integer, DeMember> deMemberTagMap;
@@ -64,6 +66,7 @@ public class InnerCoderEntity {
this.deMemberFieldMap.put(member.getAttribute().field(), member);
this.deMemberTagMap.put(member.getTag(), member);
}
this.memberNode = DeMemberNode.create(deMembers);
}
@Override
@@ -85,7 +88,7 @@ public class InnerCoderEntity {
int index = 0;
final Object[] params = new Object[deMembers.length];
while (in.hasNext()) {
DeMember member = in.readFieldName(deMembers, deMemberFieldMap, deMemberTagMap); // 读取字段名
DeMember member = in.readFieldName(memberNode, deMemberFieldMap, deMemberTagMap); // 读取字段名
in.readBlank(); // 读取字段名与字段值之间的间隔符JSON则是跳过冒号:
if (member == null) {
in.skipValue(); // 跳过不存在的字段的值, 一般不会发生

View File

@@ -108,7 +108,7 @@ public class PBCustMessage2Test {
setIndex(member2, 2);
setPosition(member2, 2);
initForEachEnMember(factory, member2);
this.members = new EnMember[] {member1, member2};
this.initFieldMember(new EnMember[] {member1, member2});
}
};
encoder.init(factory);
@@ -137,7 +137,7 @@ public class PBCustMessage2Test {
setIndex(member2, 2);
setPosition(member2, 2);
initForEachDeMember(factory, member2);
this.members = new DeMember[] {member1, member2};
this.initFieldMember(new DeMember[] {member1, member2});
}
@Override

View File

@@ -87,7 +87,7 @@ public class PBCustMessageTest {
setIndex(member, 1);
setPosition(member, 1);
initForEachEnMember(factory, member);
this.members = new EnMember[] {member};
this.initFieldMember(new EnMember[] {member});
}
};
encoder.init(factory);
@@ -107,7 +107,7 @@ public class PBCustMessageTest {
setIndex(member, 1);
setPosition(member, 1);
initForEachDeMember(factory, member);
this.members = new DeMember[] {member};
this.initFieldMember(new DeMember[] {member});
}
@Override