From 0ca6e5401afc148969337b33b94bccbc918ea617 Mon Sep 17 00:00:00 2001 From: Redkale <8730487+redkale@users.noreply.github.com> Date: Mon, 23 Jul 2018 09:37:49 +0800 Subject: [PATCH] --- src/org/redkale/convert/ArrayDecoder.java | 2 +- src/org/redkale/convert/CollectionDecoder.java | 2 +- src/org/redkale/convert/MapDecoder.java | 2 +- src/org/redkale/convert/Reader.java | 8 ++++++-- src/org/redkale/convert/StreamDecoder.java | 2 +- .../redkale/convert/bson/BsonByteBufferReader.java | 2 +- src/org/redkale/convert/bson/BsonReader.java | 8 ++++---- .../redkale/convert/ext/BoolArraySimpledCoder.java | 2 +- .../redkale/convert/ext/ByteBufferSimpledCoder.java | 2 +- .../redkale/convert/ext/CharArraySimpledCoder.java | 2 +- .../redkale/convert/ext/DoubleArraySimpledCoder.java | 2 +- .../redkale/convert/ext/FloatArraySimpledCoder.java | 2 +- .../redkale/convert/ext/IntArraySimpledCoder.java | 2 +- .../redkale/convert/ext/LongArraySimpledCoder.java | 2 +- .../redkale/convert/ext/ShortArraySimpledCoder.java | 2 +- .../redkale/convert/ext/StringArraySimpledCoder.java | 10 ++++++---- .../redkale/convert/json/JsonByteBufferReader.java | 4 +++- src/org/redkale/convert/json/JsonReader.java | 12 ++++++++---- 18 files changed, 40 insertions(+), 28 deletions(-) diff --git a/src/org/redkale/convert/ArrayDecoder.java b/src/org/redkale/convert/ArrayDecoder.java index 1e5c6f9cd..370ed1511 100644 --- a/src/org/redkale/convert/ArrayDecoder.java +++ b/src/org/redkale/convert/ArrayDecoder.java @@ -66,7 +66,7 @@ public class ArrayDecoder implements Decodeable { } public T[] convertFrom(Reader in, DeMember member) { - int len = in.readArrayB(); + int len = in.readArrayB(member); int contentLength = -1; if (len == Reader.SIGN_NULL) return null; if (len == Reader.SIGN_NOLENBUTBYTES) { diff --git a/src/org/redkale/convert/CollectionDecoder.java b/src/org/redkale/convert/CollectionDecoder.java index 4e3c0c456..853a877cb 100644 --- a/src/org/redkale/convert/CollectionDecoder.java +++ b/src/org/redkale/convert/CollectionDecoder.java @@ -66,7 +66,7 @@ public class CollectionDecoder implements Decodeable> { } public Collection convertFrom(Reader in, DeMember member) { - int len = in.readArrayB(); + int len = in.readArrayB(member); int contentLength = -1; if (len == Reader.SIGN_NULL) return null; if (len == Reader.SIGN_NOLENBUTBYTES) { diff --git a/src/org/redkale/convert/MapDecoder.java b/src/org/redkale/convert/MapDecoder.java index b03812a4b..344efd626 100644 --- a/src/org/redkale/convert/MapDecoder.java +++ b/src/org/redkale/convert/MapDecoder.java @@ -91,7 +91,7 @@ public class MapDecoder implements Decodeable> { } } } - int len = in.readArrayB(); + int len = in.readArrayB(member); int contentLength = -1; if (len == Reader.SIGN_NULL) return null; if (len == Reader.SIGN_NOLENBUTBYTES) { diff --git a/src/org/redkale/convert/Reader.java b/src/org/redkale/convert/Reader.java index 5cef4c8be..65086afdf 100644 --- a/src/org/redkale/convert/Reader.java +++ b/src/org/redkale/convert/Reader.java @@ -94,9 +94,11 @@ public abstract class Reader { /** * 读取数组的开头并返回数组的长度 * + * @param member DeMember + * * @return 返回数组的长度 */ - public abstract int readArrayB(); + public abstract int readArrayB(DeMember member); /** * 读取数组的尾端 @@ -107,9 +109,11 @@ public abstract class Reader { /** * 读取map的开头并返回map的size * + * @param member DeMember + * * @return 返回map的size */ - public abstract int readMapB(); + public abstract int readMapB(DeMember member); /** * 读取数组的尾端 diff --git a/src/org/redkale/convert/StreamDecoder.java b/src/org/redkale/convert/StreamDecoder.java index f0ecf668f..81f9d90c6 100644 --- a/src/org/redkale/convert/StreamDecoder.java +++ b/src/org/redkale/convert/StreamDecoder.java @@ -62,7 +62,7 @@ public class StreamDecoder implements Decodeable> { } public Stream convertFrom(Reader in, DeMember member) { - int len = in.readArrayB(); + int len = in.readArrayB(member); int contentLength = -1; if (len == Reader.SIGN_NULL) return null; if (len == Reader.SIGN_NOLENBUTBYTES) { diff --git a/src/org/redkale/convert/bson/BsonByteBufferReader.java b/src/org/redkale/convert/bson/BsonByteBufferReader.java index 4dbdef5b4..265ff72e0 100644 --- a/src/org/redkale/convert/bson/BsonByteBufferReader.java +++ b/src/org/redkale/convert/bson/BsonByteBufferReader.java @@ -54,7 +54,7 @@ public class BsonByteBufferReader extends BsonReader { * @return 数组长度或 SIGN_NULL */ @Override - public final int readArrayB() { + public final int readArrayB(DeMember member) { short bt = readShort(); if (bt == Reader.SIGN_NULL) return bt; short lt = readShort(); diff --git a/src/org/redkale/convert/bson/BsonReader.java b/src/org/redkale/convert/bson/BsonReader.java index a8f27b18a..0aa70b110 100644 --- a/src/org/redkale/convert/bson/BsonReader.java +++ b/src/org/redkale/convert/bson/BsonReader.java @@ -171,8 +171,8 @@ public class BsonReader extends Reader { } @Override - public final int readMapB() { - return readArrayB(); + public final int readMapB(DeMember member) { + return readArrayB(member); } @Override @@ -185,7 +185,7 @@ public class BsonReader extends Reader { * @return 数组长度或SIGN_NULL */ @Override - public int readArrayB() { + public int readArrayB(DeMember member) { short bt = readShort(); if (bt == Reader.SIGN_NULL) return bt; return (bt & 0xffff) << 16 | ((content[++this.position] & 0xff) << 8) | (content[++this.position] & 0xff); @@ -263,7 +263,7 @@ public class BsonReader extends Reader { @Override public final byte[] readByteArray() { - int len = readArrayB(); + int len = readArrayB(null); int contentLength = -1; if (len == Reader.SIGN_NULL) return null; if (len == Reader.SIGN_NOLENBUTBYTES) { diff --git a/src/org/redkale/convert/ext/BoolArraySimpledCoder.java b/src/org/redkale/convert/ext/BoolArraySimpledCoder.java index 006c53468..1d136c721 100644 --- a/src/org/redkale/convert/ext/BoolArraySimpledCoder.java +++ b/src/org/redkale/convert/ext/BoolArraySimpledCoder.java @@ -42,7 +42,7 @@ public final class BoolArraySimpledCoder ext @Override public boolean[] convertFrom(R in) { - int len = in.readArrayB(); + int len = in.readArrayB(null); int contentLength = -1; if (len == Reader.SIGN_NULL) return null; if (len == Reader.SIGN_NOLENBUTBYTES) { diff --git a/src/org/redkale/convert/ext/ByteBufferSimpledCoder.java b/src/org/redkale/convert/ext/ByteBufferSimpledCoder.java index c23ea0723..91aa76107 100644 --- a/src/org/redkale/convert/ext/ByteBufferSimpledCoder.java +++ b/src/org/redkale/convert/ext/ByteBufferSimpledCoder.java @@ -43,7 +43,7 @@ public final class ByteBufferSimpledCoder ex @Override public ByteBuffer convertFrom(R in) { - int len = in.readArrayB(); + int len = in.readArrayB(null); int contentLength = -1; if (len == Reader.SIGN_NULL) return null; if (len == Reader.SIGN_NOLENBUTBYTES) { diff --git a/src/org/redkale/convert/ext/CharArraySimpledCoder.java b/src/org/redkale/convert/ext/CharArraySimpledCoder.java index 6596e9e97..220252849 100644 --- a/src/org/redkale/convert/ext/CharArraySimpledCoder.java +++ b/src/org/redkale/convert/ext/CharArraySimpledCoder.java @@ -42,7 +42,7 @@ public final class CharArraySimpledCoder ext @Override public char[] convertFrom(R in) { - int len = in.readArrayB(); + int len = in.readArrayB(null); int contentLength = -1; if (len == Reader.SIGN_NULL) return null; if (len == Reader.SIGN_NOLENBUTBYTES) { diff --git a/src/org/redkale/convert/ext/DoubleArraySimpledCoder.java b/src/org/redkale/convert/ext/DoubleArraySimpledCoder.java index 2cd0624f9..d8288b406 100644 --- a/src/org/redkale/convert/ext/DoubleArraySimpledCoder.java +++ b/src/org/redkale/convert/ext/DoubleArraySimpledCoder.java @@ -43,7 +43,7 @@ public final class DoubleArraySimpledCoder e @Override public double[] convertFrom(R in) { - int len = in.readArrayB(); + int len = in.readArrayB(null); int contentLength = -1; if (len == Reader.SIGN_NULL) return null; if (len == Reader.SIGN_NOLENBUTBYTES) { diff --git a/src/org/redkale/convert/ext/FloatArraySimpledCoder.java b/src/org/redkale/convert/ext/FloatArraySimpledCoder.java index d5b63c400..ec5f253a1 100644 --- a/src/org/redkale/convert/ext/FloatArraySimpledCoder.java +++ b/src/org/redkale/convert/ext/FloatArraySimpledCoder.java @@ -42,7 +42,7 @@ public final class FloatArraySimpledCoder ex @Override public float[] convertFrom(R in) { - int len = in.readArrayB(); + int len = in.readArrayB(null); int contentLength = -1; if (len == Reader.SIGN_NULL) return null; if (len == Reader.SIGN_NOLENBUTBYTES) { diff --git a/src/org/redkale/convert/ext/IntArraySimpledCoder.java b/src/org/redkale/convert/ext/IntArraySimpledCoder.java index 7c26ce59e..de243ee7a 100644 --- a/src/org/redkale/convert/ext/IntArraySimpledCoder.java +++ b/src/org/redkale/convert/ext/IntArraySimpledCoder.java @@ -43,7 +43,7 @@ public final class IntArraySimpledCoder exte @Override public int[] convertFrom(R in) { - int len = in.readArrayB(); + int len = in.readArrayB(null); int contentLength = -1; if (len == Reader.SIGN_NULL) return null; if (len == Reader.SIGN_NOLENBUTBYTES) { diff --git a/src/org/redkale/convert/ext/LongArraySimpledCoder.java b/src/org/redkale/convert/ext/LongArraySimpledCoder.java index 9daa5f041..e3c3e494f 100644 --- a/src/org/redkale/convert/ext/LongArraySimpledCoder.java +++ b/src/org/redkale/convert/ext/LongArraySimpledCoder.java @@ -43,7 +43,7 @@ public final class LongArraySimpledCoder ext @Override public long[] convertFrom(R in) { - int len = in.readArrayB(); + int len = in.readArrayB(null); int contentLength = -1; if (len == Reader.SIGN_NULL) return null; if (len == Reader.SIGN_NOLENBUTBYTES) { diff --git a/src/org/redkale/convert/ext/ShortArraySimpledCoder.java b/src/org/redkale/convert/ext/ShortArraySimpledCoder.java index 4301b625b..66fea3d71 100644 --- a/src/org/redkale/convert/ext/ShortArraySimpledCoder.java +++ b/src/org/redkale/convert/ext/ShortArraySimpledCoder.java @@ -42,7 +42,7 @@ public final class ShortArraySimpledCoder ex @Override public short[] convertFrom(R in) { - int len = in.readArrayB(); + int len = in.readArrayB(null); int contentLength = -1; if (len == Reader.SIGN_NULL) return null; if (len == Reader.SIGN_NOLENBUTBYTES) { diff --git a/src/org/redkale/convert/ext/StringArraySimpledCoder.java b/src/org/redkale/convert/ext/StringArraySimpledCoder.java index a96d200be..7e50a7567 100644 --- a/src/org/redkale/convert/ext/StringArraySimpledCoder.java +++ b/src/org/redkale/convert/ext/StringArraySimpledCoder.java @@ -5,9 +5,7 @@ */ package org.redkale.convert.ext; -import org.redkale.convert.Reader; -import org.redkale.convert.SimpledCoder; -import org.redkale.convert.Writer; +import org.redkale.convert.*; /** * String[] 的SimpledCoder实现 @@ -42,7 +40,11 @@ public final class StringArraySimpledCoder e @Override public String[] convertFrom(R in) { - int len = in.readArrayB(); + return convertFrom(in, null); + } + + public String[] convertFrom(R in, DeMember member) { + int len = in.readArrayB(member); int contentLength = -1; if (len == Reader.SIGN_NULL) return null; if (len == Reader.SIGN_NOLENBUTBYTES) { diff --git a/src/org/redkale/convert/json/JsonByteBufferReader.java b/src/org/redkale/convert/json/JsonByteBufferReader.java index 0102f58b2..ebc422e00 100644 --- a/src/org/redkale/convert/json/JsonByteBufferReader.java +++ b/src/org/redkale/convert/json/JsonByteBufferReader.java @@ -132,10 +132,12 @@ public class JsonByteBufferReader extends JsonReader { /** * 判断下一个非空白字符是否为[ * + * @param member DeMember + * * @return SIGN_NOLENGTH 或 SIGN_NULL */ @Override - public final int readArrayB() { + public final int readArrayB(DeMember member) { char ch = nextGoodChar(); if (ch == '[' || ch == '{') return SIGN_NOLENGTH; if (ch == 'n' && nextChar() == 'u' && nextChar() == 'l' && nextChar() == 'l') return SIGN_NULL; diff --git a/src/org/redkale/convert/json/JsonReader.java b/src/org/redkale/convert/json/JsonReader.java index 093b4cf9c..c47e8e781 100644 --- a/src/org/redkale/convert/json/JsonReader.java +++ b/src/org/redkale/convert/json/JsonReader.java @@ -189,11 +189,13 @@ public class JsonReader extends Reader { /** * 判断下一个非空白字符是否为{ * + * @param member DeMember + * * @return SIGN_NOLENGTH 或 SIGN_NULL */ @Override - public final int readMapB() { - return readArrayB(); + public final int readMapB(DeMember member) { + return readArrayB(member); } @Override @@ -203,10 +205,12 @@ public class JsonReader extends Reader { /** * 判断下一个非空白字符是否为[ * + * @param member DeMember + * * @return SIGN_NOLENGTH 或 SIGN_NULL */ @Override - public int readArrayB() { + public int readArrayB(DeMember member) { char ch = this.text[++this.position]; if (ch == '[') return SIGN_NOLENGTH; if (ch == '{') return SIGN_NOLENGTH; @@ -468,7 +472,7 @@ public class JsonReader extends Reader { @Override public final byte[] readByteArray() { - int len = readArrayB(); + int len = readArrayB(null); int contentLength = -1; if (len == Reader.SIGN_NULL) return null; if (len == Reader.SIGN_NOLENBUTBYTES) {