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); + } + + } }