From 9bd1e0c97b2b916aab10077c8d8103fdeb617433 Mon Sep 17 00:00:00 2001 From: Redkale <22250530@qq.com> Date: Sun, 15 Jul 2018 23:42:28 +0800 Subject: [PATCH] --- src/org/redkale/convert/ConvertFactory.java | 2 ++ src/org/redkale/convert/DeMember.java | 4 +++- src/org/redkale/convert/EnMember.java | 4 +++- src/org/redkale/convert/ObjectDecoder.java | 1 + src/org/redkale/convert/ObjectEncoder.java | 1 + src/org/redkale/convert/bson/BsonFactory.java | 5 +++++ src/org/redkale/convert/json/JsonFactory.java | 5 +++++ 7 files changed, 20 insertions(+), 2 deletions(-) diff --git a/src/org/redkale/convert/ConvertFactory.java b/src/org/redkale/convert/ConvertFactory.java index 1c7ef2df8..5bda49633 100644 --- a/src/org/redkale/convert/ConvertFactory.java +++ b/src/org/redkale/convert/ConvertFactory.java @@ -139,6 +139,8 @@ public abstract class ConvertFactory { public abstract boolean isReversible(); //是否可逆的 + public abstract boolean isFieldSort(); //当ConvertColumn.index相同时是否按字段名称排序 + public abstract ConvertFactory createChild(); public abstract ConvertFactory createChild(boolean tiny); diff --git a/src/org/redkale/convert/DeMember.java b/src/org/redkale/convert/DeMember.java index 53409f050..3dd077619 100644 --- a/src/org/redkale/convert/DeMember.java +++ b/src/org/redkale/convert/DeMember.java @@ -24,6 +24,8 @@ public final class DeMember implements Comparable attribute; protected Decodeable decoder; @@ -78,7 +80,7 @@ public final class DeMember implements Comparable o) { if (o == null) return -1; if (this.index != o.index) return (this.index == 0 ? Integer.MAX_VALUE : this.index) - (o.index == 0 ? Integer.MAX_VALUE : o.index); - return this.attribute.field().compareTo(o.attribute.field()); + return fieldSort ? this.attribute.field().compareTo(o.attribute.field()) : 0; } @Override diff --git a/src/org/redkale/convert/EnMember.java b/src/org/redkale/convert/EnMember.java index 5336d057c..60884ead6 100644 --- a/src/org/redkale/convert/EnMember.java +++ b/src/org/redkale/convert/EnMember.java @@ -33,6 +33,8 @@ public final class EnMember implements Comparable attribute, Encodeable encoder) { this.attribute = attribute; this.encoder = encoder; @@ -71,7 +73,7 @@ public final class EnMember implements Comparable o) { if (o == null) return -1; if (this.index != o.index) return (this.index == 0 ? Integer.MAX_VALUE : this.index) - (o.index == 0 ? Integer.MAX_VALUE : o.index); - return this.attribute.field().compareTo(o.attribute.field()); + return fieldSort ? this.attribute.field().compareTo(o.attribute.field()) : 0; } @Override diff --git a/src/org/redkale/convert/ObjectDecoder.java b/src/org/redkale/convert/ObjectDecoder.java index a0140f6db..f31ae8d5b 100644 --- a/src/org/redkale/convert/ObjectDecoder.java +++ b/src/org/redkale/convert/ObjectDecoder.java @@ -97,6 +97,7 @@ public final class ObjectDecoder implements Decodeable implements Encodeable { return true; } + @Override + public boolean isFieldSort() { + return true; + } + } diff --git a/src/org/redkale/convert/json/JsonFactory.java b/src/org/redkale/convert/json/JsonFactory.java index e7d067698..43c1ddc98 100644 --- a/src/org/redkale/convert/json/JsonFactory.java +++ b/src/org/redkale/convert/json/JsonFactory.java @@ -85,4 +85,9 @@ public final class JsonFactory extends ConvertFactory { public boolean isReversible() { return false; } + + @Override + public boolean isFieldSort() { + return true; + } }