From be816088f5dcc520e855712d6a99383904b0f9f7 Mon Sep 17 00:00:00 2001 From: Redkale <22250530@qq.com> Date: Thu, 14 Dec 2017 18:37:54 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=AF=B9IntStream=E3=80=81Lo?= =?UTF-8?q?ngStream=E3=80=81DoubleStream=E7=9A=84=E5=BA=8F=E5=88=97?= =?UTF-8?q?=E5=8C=96=E6=94=AF=E6=8C=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/org/redkale/convert/ConvertFactory.java | 5 +++- .../convert/ext/DoubleArraySimpledCoder.java | 25 ++++++++++++++++++- .../convert/ext/IntArraySimpledCoder.java | 25 ++++++++++++++++++- .../convert/ext/LongArraySimpledCoder.java | 21 ++++++++++++++++ 4 files changed, 73 insertions(+), 3 deletions(-) diff --git a/src/org/redkale/convert/ConvertFactory.java b/src/org/redkale/convert/ConvertFactory.java index 52474a329..6c4b991c1 100644 --- a/src/org/redkale/convert/ConvertFactory.java +++ b/src/org/redkale/convert/ConvertFactory.java @@ -15,7 +15,7 @@ import java.util.*; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.atomic.AtomicLong; import java.util.regex.Pattern; -import java.util.stream.Stream; +import java.util.stream.*; import org.redkale.convert.ext.InetAddressSimpledCoder.InetSocketAddressSimpledCoder; import org.redkale.convert.ext.*; import org.redkale.util.*; @@ -108,9 +108,12 @@ public abstract class ConvertFactory { this.register(short[].class, ShortArraySimpledCoder.instance); this.register(char[].class, CharArraySimpledCoder.instance); this.register(int[].class, IntArraySimpledCoder.instance); + this.register(IntStream.class, IntArraySimpledCoder.IntStreamSimpledCoder.instance); this.register(long[].class, LongArraySimpledCoder.instance); + this.register(LongStream.class, LongArraySimpledCoder.LongStreamSimpledCoder.instance); this.register(float[].class, FloatArraySimpledCoder.instance); this.register(double[].class, DoubleArraySimpledCoder.instance); + this.register(DoubleStream.class, DoubleArraySimpledCoder.DoubleStreamSimpledCoder.instance); this.register(String[].class, StringArraySimpledCoder.instance); //--------------------------------------------------------- this.register(AnyValue.class, Creator.create(AnyValue.DefaultAnyValue.class)); diff --git a/src/org/redkale/convert/ext/DoubleArraySimpledCoder.java b/src/org/redkale/convert/ext/DoubleArraySimpledCoder.java index f9831edcd..67e3f9ff3 100644 --- a/src/org/redkale/convert/ext/DoubleArraySimpledCoder.java +++ b/src/org/redkale/convert/ext/DoubleArraySimpledCoder.java @@ -5,6 +5,7 @@ */ package org.redkale.convert.ext; +import java.util.stream.DoubleStream; import org.redkale.convert.Reader; import org.redkale.convert.SimpledCoder; import org.redkale.convert.Writer; @@ -12,7 +13,9 @@ import org.redkale.convert.Writer; /** * double[] 的SimpledCoder实现 * - *

详情见: https://redkale.org + *

+ * 详情见: https://redkale.org + * * @author zhangjx * @param Reader输入的子类型 * @param Writer输出的子类型 @@ -66,4 +69,24 @@ public final class DoubleArraySimpledCoder e } } + public final static class DoubleStreamSimpledCoder extends SimpledCoder { + + public static final DoubleStreamSimpledCoder instance = new DoubleStreamSimpledCoder(); + + @Override + public void convertTo(W out, DoubleStream values) { + if (values == null) { + out.writeNull(); + return; + } + DoubleArraySimpledCoder.instance.convertTo(out, values.toArray()); + } + + @Override + public DoubleStream convertFrom(R in) { + double[] value = DoubleArraySimpledCoder.instance.convertFrom(in); + return value == null ? null : DoubleStream.of(value); + } + + } } diff --git a/src/org/redkale/convert/ext/IntArraySimpledCoder.java b/src/org/redkale/convert/ext/IntArraySimpledCoder.java index 4c58b671f..c733988d3 100644 --- a/src/org/redkale/convert/ext/IntArraySimpledCoder.java +++ b/src/org/redkale/convert/ext/IntArraySimpledCoder.java @@ -5,6 +5,7 @@ */ package org.redkale.convert.ext; +import java.util.stream.IntStream; import org.redkale.convert.Reader; import org.redkale.convert.SimpledCoder; import org.redkale.convert.Writer; @@ -12,7 +13,9 @@ import org.redkale.convert.Writer; /** * int[] 的SimpledCoder实现 * - *

详情见: https://redkale.org + *

+ * 详情见: https://redkale.org + * * @author zhangjx * @param Reader输入的子类型 * @param Writer输出的子类型 @@ -66,4 +69,24 @@ public final class IntArraySimpledCoder exte } } + public final static class IntStreamSimpledCoder extends SimpledCoder { + + public static final IntStreamSimpledCoder instance = new IntStreamSimpledCoder(); + + @Override + public void convertTo(W out, IntStream values) { + if (values == null) { + out.writeNull(); + return; + } + IntArraySimpledCoder.instance.convertTo(out, values.toArray()); + } + + @Override + public IntStream convertFrom(R in) { + int[] value = IntArraySimpledCoder.instance.convertFrom(in); + return value == null ? null : IntStream.of(value); + } + + } } diff --git a/src/org/redkale/convert/ext/LongArraySimpledCoder.java b/src/org/redkale/convert/ext/LongArraySimpledCoder.java index 0844f256f..33f5c36a3 100644 --- a/src/org/redkale/convert/ext/LongArraySimpledCoder.java +++ b/src/org/redkale/convert/ext/LongArraySimpledCoder.java @@ -5,6 +5,7 @@ */ package org.redkale.convert.ext; +import java.util.stream.LongStream; import org.redkale.convert.Reader; import org.redkale.convert.SimpledCoder; import org.redkale.convert.Writer; @@ -68,4 +69,24 @@ public final class LongArraySimpledCoder ext } } + public final static class LongStreamSimpledCoder extends SimpledCoder { + + public static final LongStreamSimpledCoder instance = new LongStreamSimpledCoder(); + + @Override + public void convertTo(W out, LongStream values) { + if (values == null) { + out.writeNull(); + return; + } + LongArraySimpledCoder.instance.convertTo(out, values.toArray()); + } + + @Override + public LongStream convertFrom(R in) { + long[] value = LongArraySimpledCoder.instance.convertFrom(in); + return value == null ? null : LongStream.of(value); + } + + } }