From 95443be3136cb090e5dff32822768e4ae748cd9c Mon Sep 17 00:00:00 2001 From: Redkale <8730487+redkale@users.noreply.github.com> Date: Sun, 27 Sep 2020 11:25:57 +0800 Subject: [PATCH] --- src/org/redkale/convert/EnMember.java | 6 ++++++ src/org/redkale/convert/ObjectEncoder.java | 8 ++++++++ 2 files changed, 14 insertions(+) diff --git a/src/org/redkale/convert/EnMember.java b/src/org/redkale/convert/EnMember.java index 487fedbae..cbba0251f 100644 --- a/src/org/redkale/convert/EnMember.java +++ b/src/org/redkale/convert/EnMember.java @@ -35,6 +35,8 @@ public final class EnMember { protected int position; //从1开始 + protected int tag; //主要给protobuf使用 + public EnMember(Attribute attribute, Encodeable encoder) { this.attribute = attribute; this.encoder = encoder; @@ -89,6 +91,10 @@ public final class EnMember { return this.position; } + public int getTag() { + return this.tag; + } + public int compareTo(boolean fieldSort, EnMember o) { if (o == null) return -1; if (this.position != o.position) return (this.position == 0 ? Integer.MAX_VALUE : this.position) - (o.position == 0 ? Integer.MAX_VALUE : o.position); diff --git a/src/org/redkale/convert/ObjectEncoder.java b/src/org/redkale/convert/ObjectEncoder.java index 7a39179d0..c01db1165 100644 --- a/src/org/redkale/convert/ObjectEncoder.java +++ b/src/org/redkale/convert/ObjectEncoder.java @@ -130,6 +130,7 @@ public class ObjectEncoder implements Encodeable { while (pos.contains(++pidx)); member.position = pidx; } + initForEachEnMember(factory, member); } Arrays.sort(this.members, (a, b) -> a.compareTo(factory.isFieldSort(), b)); @@ -144,6 +145,13 @@ public class ObjectEncoder implements Encodeable { } } + protected void initForEachEnMember(ConvertFactory factory, EnMember member) { + } + + protected void setTag(EnMember member, int tag) { + member.tag = tag; + } + @Override public void convertTo(W out, T value) { if (value == null) {