From 21cb0e191e8ca0c3bc57d541000eb11e5c721cf8 Mon Sep 17 00:00:00 2001 From: redkale Date: Tue, 20 Aug 2024 18:49:03 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/redkale/convert/ConvertFactory.java | 20 +++++++++---------- .../org/redkale/convert/json/JsonConvert.java | 2 +- .../org/redkale/convert/json/JsonFactory.java | 5 +++++ .../org/redkale/convert/json/JsonWriter.java | 1 + .../convert/pb/ProtobufMapDecoder.java | 2 +- .../convert/pb/ProtobufObjectEncoder.java | 5 ++++- .../redkale/convert/pb/ProtobufReader.java | 2 +- .../convert/pb/ProtobufStreamWriter.java | 2 +- .../redkale/convert/pb/ProtobufWriter.java | 4 +++- 9 files changed, 26 insertions(+), 17 deletions(-) diff --git a/src/main/java/org/redkale/convert/ConvertFactory.java b/src/main/java/org/redkale/convert/ConvertFactory.java index e50871fea..2a33d19d2 100644 --- a/src/main/java/org/redkale/convert/ConvertFactory.java +++ b/src/main/java/org/redkale/convert/ConvertFactory.java @@ -19,7 +19,6 @@ import java.util.function.BiFunction; import java.util.function.Consumer; import java.util.regex.Pattern; import java.util.stream.*; -import org.redkale.annotation.ConstructorParameters; import org.redkale.convert.bson.BsonConvert; import org.redkale.convert.ext.*; import org.redkale.convert.json.JsonConvert; @@ -43,7 +42,11 @@ public abstract class ConvertFactory { protected Convert convert; - // 配置属性集合 + /** + * 配置属性集合 + * @see org.redkale.convert.Convert#FEATURE_NULLABLE + * @see org.redkale.convert.Convert#FEATURE_TINY + */ protected int features; private final Encodeable anyEncoder = new AnyEncoder(this); @@ -148,13 +151,8 @@ public abstract class ConvertFactory { this.register(String[].class, StringArraySimpledCoder.instance); // --------------------------------------------------------- this.register(AnyValue.class, Creator.create(AnyValueWriter.class)); - this.register(HttpCookie.class, new Creator() { - @Override - @ConstructorParameters({"name", "value"}) - public HttpCookie create(Object... params) { - return new HttpCookie((String) params[0], (String) params[1]); - } - }); + this.register( + HttpCookie.class, (Object... params) -> new HttpCookie((String) params[0], (String) params[1])); try { Class sqldateClass = Thread.currentThread().getContextClassLoader().loadClass("java.sql.Date"); @@ -900,14 +898,14 @@ public abstract class ConvertFactory { return this; } ConvertFactory child = createChild(); - if (encode) { + if (encode && encoderList != null) { for (Encodeable item : encoderList) { child.register(item.getType(), item); if (item instanceof ObjectEncoder) { ((ObjectEncoder) item).init(child); } } - } else { + } else if (decoderList != null) { for (Decodeable item : decoderList) { child.register(item.getType(), item); if (item instanceof ObjectDecoder) { diff --git a/src/main/java/org/redkale/convert/json/JsonConvert.java b/src/main/java/org/redkale/convert/json/JsonConvert.java index d192b620b..0c83bf4cd 100644 --- a/src/main/java/org/redkale/convert/json/JsonConvert.java +++ b/src/main/java/org/redkale/convert/json/JsonConvert.java @@ -31,7 +31,7 @@ public class JsonConvert extends TextConvert { private final ThreadLocal bytesWriterPool = Utility.withInitialThreadLocal(JsonBytesWriter::new); - private final Consumer offerBytesConsumer = w -> offerJsonBytesWriter(w); + private final Consumer offerBytesConsumer = this::offerJsonBytesWriter; private final ThreadLocal readerPool = Utility.withInitialThreadLocal(JsonReader::new); diff --git a/src/main/java/org/redkale/convert/json/JsonFactory.java b/src/main/java/org/redkale/convert/json/JsonFactory.java index 030a86b7b..2f7bb2342 100644 --- a/src/main/java/org/redkale/convert/json/JsonFactory.java +++ b/src/main/java/org/redkale/convert/json/JsonFactory.java @@ -60,22 +60,27 @@ public final class JsonFactory extends ConvertFactory { } } + @Override public JsonFactory withFeatures(int features) { return super.withFeatures(features); } + @Override public JsonFactory addFeature(int feature) { return super.addFeature(feature); } + @Override public JsonFactory removeFeature(int feature) { return super.removeFeature(feature); } + @Override public JsonFactory withTinyFeature(boolean tiny) { return super.withTinyFeature(tiny); } + @Override public JsonFactory withNullableFeature(boolean nullable) { return super.withNullableFeature(nullable); } diff --git a/src/main/java/org/redkale/convert/json/JsonWriter.java b/src/main/java/org/redkale/convert/json/JsonWriter.java index 3e4b268c4..3eddbaf96 100644 --- a/src/main/java/org/redkale/convert/json/JsonWriter.java +++ b/src/main/java/org/redkale/convert/json/JsonWriter.java @@ -26,6 +26,7 @@ public abstract class JsonWriter extends Writer { this.features = JsonFactory.root().getFeatures(); } + @Override public JsonWriter withFeatures(int features) { return (JsonWriter) super.withFeatures(features); } diff --git a/src/main/java/org/redkale/convert/pb/ProtobufMapDecoder.java b/src/main/java/org/redkale/convert/pb/ProtobufMapDecoder.java index 17af931f0..1a568f907 100644 --- a/src/main/java/org/redkale/convert/pb/ProtobufMapDecoder.java +++ b/src/main/java/org/redkale/convert/pb/ProtobufMapDecoder.java @@ -15,7 +15,7 @@ import org.redkale.convert.*; */ public class ProtobufMapDecoder extends MapDecoder { - private final boolean enumtostring; + protected final boolean enumtostring; public ProtobufMapDecoder(ConvertFactory factory, Type type) { super(factory, type); diff --git a/src/main/java/org/redkale/convert/pb/ProtobufObjectEncoder.java b/src/main/java/org/redkale/convert/pb/ProtobufObjectEncoder.java index 899065083..581550a5e 100644 --- a/src/main/java/org/redkale/convert/pb/ProtobufObjectEncoder.java +++ b/src/main/java/org/redkale/convert/pb/ProtobufObjectEncoder.java @@ -10,7 +10,10 @@ import org.redkale.convert.*; import org.redkale.util.Attribute; import org.redkale.util.Utility; -/** @author zhangjx */ +/** + * @author zhangjx + * @param T + */ public class ProtobufObjectEncoder extends ObjectEncoder { protected ProtobufObjectEncoder(Type type) { diff --git a/src/main/java/org/redkale/convert/pb/ProtobufReader.java b/src/main/java/org/redkale/convert/pb/ProtobufReader.java index 71fd25ad9..dcb49bf6d 100644 --- a/src/main/java/org/redkale/convert/pb/ProtobufReader.java +++ b/src/main/java/org/redkale/convert/pb/ProtobufReader.java @@ -26,7 +26,7 @@ public class ProtobufReader extends Reader { protected boolean enumtostring; public static ObjectPool createPool(int max) { - return ObjectPool.createSafePool(max, (Object... params) -> new ProtobufReader(), null, (t) -> t.recycle()); + return ObjectPool.createSafePool(max, (Object... params) -> new ProtobufReader(), null, t -> t.recycle()); } public ProtobufReader() {} diff --git a/src/main/java/org/redkale/convert/pb/ProtobufStreamWriter.java b/src/main/java/org/redkale/convert/pb/ProtobufStreamWriter.java index 077dc6bb5..d679d187b 100644 --- a/src/main/java/org/redkale/convert/pb/ProtobufStreamWriter.java +++ b/src/main/java/org/redkale/convert/pb/ProtobufStreamWriter.java @@ -41,7 +41,7 @@ class ProtobufStreamWriter extends ProtobufByteBufferWriter { @Override public void writeTo(final byte ch) { try { - out.write((byte) ch); + out.write(ch); } catch (IOException e) { throw new ConvertException(e); } diff --git a/src/main/java/org/redkale/convert/pb/ProtobufWriter.java b/src/main/java/org/redkale/convert/pb/ProtobufWriter.java index 361763eca..31c0b23ad 100644 --- a/src/main/java/org/redkale/convert/pb/ProtobufWriter.java +++ b/src/main/java/org/redkale/convert/pb/ProtobufWriter.java @@ -32,7 +32,7 @@ public class ProtobufWriter extends Writer implements ByteTuple { protected ProtobufWriter parent; public static ObjectPool createPool(int max) { - return ObjectPool.createSafePool(max, (Object... params) -> new ProtobufWriter(), null, (t) -> t.recycle()); + return ObjectPool.createSafePool(max, (Object... params) -> new ProtobufWriter(), null, t -> t.recycle()); } protected ProtobufWriter(ProtobufWriter parent, int features) { @@ -48,6 +48,7 @@ public class ProtobufWriter extends Writer implements ByteTuple { this.content = bs; } + @Override public ProtobufWriter withFeatures(int features) { super.withFeatures(features); return this; @@ -131,6 +132,7 @@ public class ProtobufWriter extends Writer implements ByteTuple { handler.completed(content, 0, count, callback, this); } + @Override public byte[] toArray() { if (count == content.length) { return content;