From 2404f547abe0ce1c907e08141f16ced03681bbe7 Mon Sep 17 00:00:00 2001 From: Redkale <8730487+redkale@users.noreply.github.com> Date: Mon, 28 Sep 2020 14:15:07 +0800 Subject: [PATCH] --- src/org/redkale/convert/ArrayEncoder.java | 4 ++-- src/org/redkale/convert/CollectionEncoder.java | 8 ++++---- src/org/redkale/convert/StreamEncoder.java | 4 ++-- src/org/redkale/convert/Writer.java | 3 ++- src/org/redkale/convert/bson/BsonWriter.java | 4 ++-- src/org/redkale/convert/ext/BoolArraySimpledCoder.java | 2 +- src/org/redkale/convert/ext/ByteBufferSimpledCoder.java | 2 +- src/org/redkale/convert/ext/CharArraySimpledCoder.java | 2 +- src/org/redkale/convert/ext/DoubleArraySimpledCoder.java | 2 +- src/org/redkale/convert/ext/FloatArraySimpledCoder.java | 2 +- src/org/redkale/convert/ext/IntArraySimpledCoder.java | 2 +- src/org/redkale/convert/ext/LongArraySimpledCoder.java | 2 +- src/org/redkale/convert/ext/ShortArraySimpledCoder.java | 2 +- src/org/redkale/convert/ext/StringArraySimpledCoder.java | 2 +- src/org/redkale/convert/json/JsonWriter.java | 4 ++-- 15 files changed, 23 insertions(+), 22 deletions(-) diff --git a/src/org/redkale/convert/ArrayEncoder.java b/src/org/redkale/convert/ArrayEncoder.java index 422dd7bb3..4e8091281 100644 --- a/src/org/redkale/convert/ArrayEncoder.java +++ b/src/org/redkale/convert/ArrayEncoder.java @@ -66,7 +66,7 @@ public class ArrayEncoder implements Encodeable { return; } if (value.length == 0) { - out.writeArrayB(0, componentEncoder, value); + out.writeArrayB(0, this, componentEncoder, value); out.writeArrayE(); return; } @@ -81,7 +81,7 @@ public class ArrayEncoder implements Encodeable { } } } - if (out.writeArrayB(value.length, componentEncoder, value) < 0) { + if (out.writeArrayB(value.length, this, componentEncoder, value) < 0) { final Type comp = this.componentType; boolean first = true; for (Object v : value) { diff --git a/src/org/redkale/convert/CollectionEncoder.java b/src/org/redkale/convert/CollectionEncoder.java index c7ae12042..f294fd412 100644 --- a/src/org/redkale/convert/CollectionEncoder.java +++ b/src/org/redkale/convert/CollectionEncoder.java @@ -61,7 +61,7 @@ public class CollectionEncoder implements Encodeable> { return; } if (value.isEmpty()) { - out.writeArrayB(0, componentEncoder, value); + out.writeArrayB(0, this, componentEncoder, value); out.writeArrayE(); return; } @@ -76,18 +76,18 @@ public class CollectionEncoder implements Encodeable> { } } } - if (out.writeArrayB(value.size(), componentEncoder, value) < 0) { + if (out.writeArrayB(value.size(), this, componentEncoder, value) < 0) { boolean first = true; for (Object v : value) { if (!first) out.writeArrayMark(); - writeValue(out, member, v); + writeMemberValue(out, member, v, first); if (first) first = false; } } out.writeArrayE(); } - protected void writeValue(Writer out, EnMember member, Object value) { + protected void writeMemberValue(Writer out, EnMember member, Object value, boolean first) { componentEncoder.convertTo(out, value); } diff --git a/src/org/redkale/convert/StreamEncoder.java b/src/org/redkale/convert/StreamEncoder.java index 0be222841..e09339dbe 100644 --- a/src/org/redkale/convert/StreamEncoder.java +++ b/src/org/redkale/convert/StreamEncoder.java @@ -62,7 +62,7 @@ public class StreamEncoder implements Encodeable> { } Object[] array = value.toArray(); if (array.length == 0) { - out.writeArrayB(0, componentEncoder, array); + out.writeArrayB(0, this, componentEncoder, array); out.writeArrayE(); return; } @@ -77,7 +77,7 @@ public class StreamEncoder implements Encodeable> { } } } - if (out.writeArrayB(array.length, componentEncoder, array) < 0) { + if (out.writeArrayB(array.length, this, componentEncoder, array) < 0) { boolean first = true; for (Object v : array) { if (!first) out.writeArrayMark(); diff --git a/src/org/redkale/convert/Writer.java b/src/org/redkale/convert/Writer.java index 330f2b57c..7999962fe 100644 --- a/src/org/redkale/convert/Writer.java +++ b/src/org/redkale/convert/Writer.java @@ -186,12 +186,13 @@ public abstract class Writer { * 输出一个数组前的操作 * * @param size 数组长度 + * @param arrayEncoder Encodeable 可能是ArrayEncoder、CollectionEncoder或StreamEncoder * @param componentEncoder Encodeable * @param obj 对象, 不一定是数组、Collection对象,也可能是伪Collection对象 * * @return 返回-1表示还没有写入对象内容,大于-1表示已写入对象内容,返回对象内容大小 */ - public abstract int writeArrayB(int size, Encodeable componentEncoder, Object obj); + public abstract int writeArrayB(int size, Encodeable arrayEncoder, Encodeable componentEncoder, Object obj); /** * 输出数组元素间的间隔符 diff --git a/src/org/redkale/convert/bson/BsonWriter.java b/src/org/redkale/convert/bson/BsonWriter.java index d72286ac4..c55e85f3c 100644 --- a/src/org/redkale/convert/bson/BsonWriter.java +++ b/src/org/redkale/convert/bson/BsonWriter.java @@ -135,7 +135,7 @@ public class BsonWriter extends Writer { writeNull(); return; } - writeArrayB(values.length, null, values); + writeArrayB(values.length, null, null, values); boolean flag = false; for (byte v : values) { if (flag) writeArrayMark(); @@ -254,7 +254,7 @@ public class BsonWriter extends Writer { } @Override - public final int writeArrayB(int size, Encodeable componentEncoder, Object obj) { + public final int writeArrayB(int size, Encodeable arrayEncoder, Encodeable componentEncoder, Object obj) { writeInt(size); if (componentEncoder != null && componentEncoder != ByteSimpledCoder.instance) { writeByte(BsonFactory.typeEnum(componentEncoder.getType())); diff --git a/src/org/redkale/convert/ext/BoolArraySimpledCoder.java b/src/org/redkale/convert/ext/BoolArraySimpledCoder.java index b9e1a824e..bf0ad401d 100644 --- a/src/org/redkale/convert/ext/BoolArraySimpledCoder.java +++ b/src/org/redkale/convert/ext/BoolArraySimpledCoder.java @@ -29,7 +29,7 @@ public final class BoolArraySimpledCoder ext out.writeNull(); return; } - if (out.writeArrayB(values.length, BoolSimpledCoder.instance, values) < 0) { + if (out.writeArrayB(values.length, this, BoolSimpledCoder.instance, values) < 0) { boolean flag = false; for (boolean v : values) { if (flag) out.writeArrayMark(); diff --git a/src/org/redkale/convert/ext/ByteBufferSimpledCoder.java b/src/org/redkale/convert/ext/ByteBufferSimpledCoder.java index ab3a4d345..0d7583664 100644 --- a/src/org/redkale/convert/ext/ByteBufferSimpledCoder.java +++ b/src/org/redkale/convert/ext/ByteBufferSimpledCoder.java @@ -30,7 +30,7 @@ public final class ByteBufferSimpledCoder ex out.writeNull(); return; } - if (out.writeArrayB(value.remaining(), ByteSimpledCoder.instance, value) < 0) { + if (out.writeArrayB(value.remaining(), this, ByteSimpledCoder.instance, value) < 0) { boolean flag = false; for (byte v : value.array()) { if (flag) out.writeArrayMark(); diff --git a/src/org/redkale/convert/ext/CharArraySimpledCoder.java b/src/org/redkale/convert/ext/CharArraySimpledCoder.java index 7a2a1c1a9..1199ccde8 100644 --- a/src/org/redkale/convert/ext/CharArraySimpledCoder.java +++ b/src/org/redkale/convert/ext/CharArraySimpledCoder.java @@ -29,7 +29,7 @@ public final class CharArraySimpledCoder ext out.writeNull(); return; } - if (out.writeArrayB(values.length, CharSimpledCoder.instance, values) < 0) { + if (out.writeArrayB(values.length, this, CharSimpledCoder.instance, values) < 0) { boolean flag = false; for (char v : values) { if (flag) out.writeArrayMark(); diff --git a/src/org/redkale/convert/ext/DoubleArraySimpledCoder.java b/src/org/redkale/convert/ext/DoubleArraySimpledCoder.java index 9807753a9..c5db2c821 100644 --- a/src/org/redkale/convert/ext/DoubleArraySimpledCoder.java +++ b/src/org/redkale/convert/ext/DoubleArraySimpledCoder.java @@ -30,7 +30,7 @@ public final class DoubleArraySimpledCoder e out.writeNull(); return; } - if (out.writeArrayB(values.length, DoubleSimpledCoder.instance, values) < 0) { + if (out.writeArrayB(values.length, this, DoubleSimpledCoder.instance, values) < 0) { boolean flag = false; for (double v : values) { if (flag) out.writeArrayMark(); diff --git a/src/org/redkale/convert/ext/FloatArraySimpledCoder.java b/src/org/redkale/convert/ext/FloatArraySimpledCoder.java index 8bd9b8720..b7892a0ae 100644 --- a/src/org/redkale/convert/ext/FloatArraySimpledCoder.java +++ b/src/org/redkale/convert/ext/FloatArraySimpledCoder.java @@ -29,7 +29,7 @@ public final class FloatArraySimpledCoder ex out.writeNull(); return; } - if (out.writeArrayB(values.length, FloatSimpledCoder.instance, values) < 0) { + if (out.writeArrayB(values.length, this, FloatSimpledCoder.instance, values) < 0) { boolean flag = false; for (float v : values) { if (flag) out.writeArrayMark(); diff --git a/src/org/redkale/convert/ext/IntArraySimpledCoder.java b/src/org/redkale/convert/ext/IntArraySimpledCoder.java index 1082fa686..d3820dbc5 100644 --- a/src/org/redkale/convert/ext/IntArraySimpledCoder.java +++ b/src/org/redkale/convert/ext/IntArraySimpledCoder.java @@ -30,7 +30,7 @@ public final class IntArraySimpledCoder exte out.writeNull(); return; } - if (out.writeArrayB(values.length, IntSimpledCoder.instance, values) < 0) { + if (out.writeArrayB(values.length, this, IntSimpledCoder.instance, values) < 0) { boolean flag = false; for (int v : values) { if (flag) out.writeArrayMark(); diff --git a/src/org/redkale/convert/ext/LongArraySimpledCoder.java b/src/org/redkale/convert/ext/LongArraySimpledCoder.java index 415518b0f..33a91961d 100644 --- a/src/org/redkale/convert/ext/LongArraySimpledCoder.java +++ b/src/org/redkale/convert/ext/LongArraySimpledCoder.java @@ -30,7 +30,7 @@ public final class LongArraySimpledCoder ext out.writeNull(); return; } - if (out.writeArrayB(values.length, LongSimpledCoder.instance, values) < 0) { + if (out.writeArrayB(values.length, this, LongSimpledCoder.instance, values) < 0) { boolean flag = false; for (long v : values) { if (flag) out.writeArrayMark(); diff --git a/src/org/redkale/convert/ext/ShortArraySimpledCoder.java b/src/org/redkale/convert/ext/ShortArraySimpledCoder.java index 93bf64eaa..9f2fda2b4 100644 --- a/src/org/redkale/convert/ext/ShortArraySimpledCoder.java +++ b/src/org/redkale/convert/ext/ShortArraySimpledCoder.java @@ -29,7 +29,7 @@ public final class ShortArraySimpledCoder ex out.writeNull(); return; } - if (out.writeArrayB(values.length, ShortSimpledCoder.instance, values) < 0) { + if (out.writeArrayB(values.length, this, ShortSimpledCoder.instance, values) < 0) { boolean flag = false; for (short v : values) { if (flag) out.writeArrayMark(); diff --git a/src/org/redkale/convert/ext/StringArraySimpledCoder.java b/src/org/redkale/convert/ext/StringArraySimpledCoder.java index e358cc051..23ba5382a 100644 --- a/src/org/redkale/convert/ext/StringArraySimpledCoder.java +++ b/src/org/redkale/convert/ext/StringArraySimpledCoder.java @@ -27,7 +27,7 @@ public final class StringArraySimpledCoder e out.writeNull(); return; } - if (out.writeArrayB(values.length, StringSimpledCoder.instance, values) < 0) { + if (out.writeArrayB(values.length, this, StringSimpledCoder.instance, values) < 0) { boolean flag = false; for (String v : values) { if (flag) out.writeArrayMark(); diff --git a/src/org/redkale/convert/json/JsonWriter.java b/src/org/redkale/convert/json/JsonWriter.java index b91e4741c..bb1df6c61 100644 --- a/src/org/redkale/convert/json/JsonWriter.java +++ b/src/org/redkale/convert/json/JsonWriter.java @@ -197,7 +197,7 @@ public class JsonWriter extends Writer { writeNull(); return; } - writeArrayB(values.length, null, values); + writeArrayB(values.length, null, null, values); boolean flag = false; for (byte v : values) { if (flag) writeArrayMark(); @@ -354,7 +354,7 @@ public class JsonWriter extends Writer { } @Override - public final int writeArrayB(int size, Encodeable componentEncoder, Object obj) { + public final int writeArrayB(int size, Encodeable arrayEncoder, Encodeable componentEncoder, Object obj) { writeTo('['); return -1; }