From 306dbabc7da0581bef329d48b1012fb42edbc8bf Mon Sep 17 00:00:00 2001 From: redkale Date: Mon, 30 Sep 2024 15:02:04 +0800 Subject: [PATCH] PatternSimpledCoder --- .../convert/ext/LocalDateSimpledCoder.java | 9 - .../ext/LocalDateTimeSimpledCoder.java | 8 - .../convert/ext/LocalTimeSimpledCoder.java | 8 - .../convert/ext/PatternSimpledCoder.java | 49 +----- .../redkale/convert/pb/ProtobufFactory.java | 161 +++++++----------- 5 files changed, 70 insertions(+), 165 deletions(-) diff --git a/src/main/java/org/redkale/convert/ext/LocalDateSimpledCoder.java b/src/main/java/org/redkale/convert/ext/LocalDateSimpledCoder.java index f895f6215..4957857ff 100644 --- a/src/main/java/org/redkale/convert/ext/LocalDateSimpledCoder.java +++ b/src/main/java/org/redkale/convert/ext/LocalDateSimpledCoder.java @@ -34,15 +34,6 @@ public final class LocalDateSimpledCoder ext return t == -1 ? null : LocalDate.of(t / 100_00, t % 100_00 / 100, t % 100); } - // public static void main(String[] args) throws Throwable { - // LocalDate now = LocalDate.now(); - // System.out.println(now); - // BsonWriter writer = new BsonWriter(); - // LocalDateSimpledCoder.instance.convertTo(writer, now); - // System.out.println(new ByteArray(writer).getInt(0)); - // BsonReader reader = new BsonReader(writer.toArray()); - // System.out.println(LocalDateSimpledCoder.instance.convertFrom(reader)); - // } /** * java.time.LocalDate 的JsonSimpledCoder实现 * diff --git a/src/main/java/org/redkale/convert/ext/LocalDateTimeSimpledCoder.java b/src/main/java/org/redkale/convert/ext/LocalDateTimeSimpledCoder.java index c9d3b062a..8e1d24099 100644 --- a/src/main/java/org/redkale/convert/ext/LocalDateTimeSimpledCoder.java +++ b/src/main/java/org/redkale/convert/ext/LocalDateTimeSimpledCoder.java @@ -68,14 +68,6 @@ public final class LocalDateTimeSimpledCoder return LocalDateTime.ofEpochSecond(v1, v2, ZoneOffset.UTC); } - // public static void main(String[] args) throws Throwable { - // LocalDateTime now = LocalDateTime.now(); - // System.out.println(now); - // BsonWriter writer = new BsonWriter(); - // LocalDateTimeSimpledCoder.instance.convertTo(writer, now); - // BsonReader reader = new BsonReader(writer.toArray()); - // System.out.println(LocalDateTimeSimpledCoder.instance.convertFrom(reader)); - // } /** * java.time.LocalDateTime 的JsonSimpledCoder实现 * diff --git a/src/main/java/org/redkale/convert/ext/LocalTimeSimpledCoder.java b/src/main/java/org/redkale/convert/ext/LocalTimeSimpledCoder.java index ccb50ffc4..3bc66e942 100644 --- a/src/main/java/org/redkale/convert/ext/LocalTimeSimpledCoder.java +++ b/src/main/java/org/redkale/convert/ext/LocalTimeSimpledCoder.java @@ -33,14 +33,6 @@ public final class LocalTimeSimpledCoder ext return t == -1 ? null : LocalTime.ofNanoOfDay(t); } - // public static void main(String[] args) throws Throwable { - // LocalTime now = LocalTime.now(); - // System.out.println(now); - // BsonWriter writer = new BsonWriter(); - // LocalTimeSimpledCoder.instance.convertTo(writer, now); - // BsonReader reader = new BsonReader(writer.toArray()); - // System.out.println(LocalTimeSimpledCoder.instance.convertFrom(reader)); - // } /** * java.time.LocalTime 的JsonSimpledCoder实现 * diff --git a/src/main/java/org/redkale/convert/ext/PatternSimpledCoder.java b/src/main/java/org/redkale/convert/ext/PatternSimpledCoder.java index 4bceb202a..e28e92165 100644 --- a/src/main/java/org/redkale/convert/ext/PatternSimpledCoder.java +++ b/src/main/java/org/redkale/convert/ext/PatternSimpledCoder.java @@ -7,7 +7,6 @@ package org.redkale.convert.ext; import java.util.regex.Pattern; import org.redkale.convert.*; -import org.redkale.util.Attribute; /** * Pattern 的SimpledCoder实现 @@ -22,51 +21,21 @@ public class PatternSimpledCoder extends Sim public static final PatternSimpledCoder instance = new PatternSimpledCoder(); - protected final PatternObjectEncoder encoder = new PatternObjectEncoder(); - - protected final PatternObjectDecoder decoder = new PatternObjectDecoder(); - @Override public void convertTo(W out, Pattern value) { - encoder.convertTo(out, value); + if (value == null) { + out.writeNull(); + } else { + out.writeString(value.pattern()); + } } @Override public Pattern convertFrom(R in) { - return decoder.convertFrom(in); - } - - protected static class PatternObjectEncoder extends ObjectEncoder { - protected PatternObjectEncoder() { - super(Pattern.class); - EnMember flagsMember = new EnMember( - Attribute.create(Pattern.class, "flags", int.class, t -> t.flags(), null), - 1, - IntSimpledCoder.instance); - EnMember patternMember = new EnMember( - Attribute.create(Pattern.class, "pattern", String.class, t -> t.pattern(), null), - 2, - StringSimpledCoder.instance); - this.initFieldMember(new EnMember[] {flagsMember, patternMember}); - this.inited = true; - } - } - - protected static class PatternObjectDecoder extends ObjectDecoder { - protected PatternObjectDecoder() { - super(Pattern.class); - DeMember flagsMember = new DeMember( - Attribute.create(Pattern.class, "flags", int.class, t -> t.flags(), null), - 1, - IntSimpledCoder.instance); - DeMember patternMember = new DeMember( - Attribute.create(Pattern.class, "pattern", String.class, t -> t.pattern(), null), - 2, - StringSimpledCoder.instance); - this.creator = args -> Pattern.compile((String) args[1], (Integer) args[0]); - this.initFieldMember(new DeMember[] {flagsMember, patternMember}); - this.creatorConstructorMembers = this.getMembers(); - this.inited = true; + String value = in.readString(); + if (value == null) { + return null; } + return Pattern.compile(value); } } diff --git a/src/main/java/org/redkale/convert/pb/ProtobufFactory.java b/src/main/java/org/redkale/convert/pb/ProtobufFactory.java index 182dc5ea8..1f4fe80af 100644 --- a/src/main/java/org/redkale/convert/pb/ProtobufFactory.java +++ b/src/main/java/org/redkale/convert/pb/ProtobufFactory.java @@ -11,45 +11,6 @@ import java.util.*; import java.util.concurrent.atomic.*; import java.util.stream.Stream; import org.redkale.convert.*; -import org.redkale.convert.pb.ProtobufCoders.ProtobufAtomicBooleanCollectionSimpledCoder; -import org.redkale.convert.pb.ProtobufCoders.ProtobufAtomicBooleanStreamSimpledCoder; -import org.redkale.convert.pb.ProtobufCoders.ProtobufAtomicIntegerArraySimpledCoder; -import org.redkale.convert.pb.ProtobufCoders.ProtobufAtomicIntegerCollectionSimpledCoder; -import org.redkale.convert.pb.ProtobufCoders.ProtobufAtomicIntegerStreamSimpledCoder; -import org.redkale.convert.pb.ProtobufCoders.ProtobufAtomicLongArraySimpledCoder; -import org.redkale.convert.pb.ProtobufCoders.ProtobufAtomicLongCollectionSimpledCoder; -import org.redkale.convert.pb.ProtobufCoders.ProtobufAtomicLongStreamSimpledCoder; -import org.redkale.convert.pb.ProtobufCoders.ProtobufBoolArraySimpledCoder2; -import org.redkale.convert.pb.ProtobufCoders.ProtobufBoolCollectionSimpledCoder; -import org.redkale.convert.pb.ProtobufCoders.ProtobufBoolStreamSimpledCoder; -import org.redkale.convert.pb.ProtobufCoders.ProtobufByteArraySimpledCoder; -import org.redkale.convert.pb.ProtobufCoders.ProtobufByteArraySimpledCoder2; -import org.redkale.convert.pb.ProtobufCoders.ProtobufByteCollectionSimpledCoder; -import org.redkale.convert.pb.ProtobufCoders.ProtobufByteStreamSimpledCoder; -import org.redkale.convert.pb.ProtobufCoders.ProtobufCharArraySimpledCoder; -import org.redkale.convert.pb.ProtobufCoders.ProtobufCharArraySimpledCoder2; -import org.redkale.convert.pb.ProtobufCoders.ProtobufCharCollectionSimpledCoder; -import org.redkale.convert.pb.ProtobufCoders.ProtobufCharStreamSimpledCoder; -import org.redkale.convert.pb.ProtobufCoders.ProtobufDoubleArraySimpledCoder; -import org.redkale.convert.pb.ProtobufCoders.ProtobufDoubleArraySimpledCoder2; -import org.redkale.convert.pb.ProtobufCoders.ProtobufDoubleCollectionSimpledCoder; -import org.redkale.convert.pb.ProtobufCoders.ProtobufDoubleStreamSimpledCoder; -import org.redkale.convert.pb.ProtobufCoders.ProtobufFloatArraySimpledCoder; -import org.redkale.convert.pb.ProtobufCoders.ProtobufFloatArraySimpledCoder2; -import org.redkale.convert.pb.ProtobufCoders.ProtobufFloatCollectionSimpledCoder; -import org.redkale.convert.pb.ProtobufCoders.ProtobufFloatStreamSimpledCoder; -import org.redkale.convert.pb.ProtobufCoders.ProtobufIntArraySimpledCoder; -import org.redkale.convert.pb.ProtobufCoders.ProtobufIntArraySimpledCoder2; -import org.redkale.convert.pb.ProtobufCoders.ProtobufIntCollectionSimpledCoder; -import org.redkale.convert.pb.ProtobufCoders.ProtobufIntStreamSimpledCoder; -import org.redkale.convert.pb.ProtobufCoders.ProtobufLongArraySimpledCoder; -import org.redkale.convert.pb.ProtobufCoders.ProtobufLongArraySimpledCoder2; -import org.redkale.convert.pb.ProtobufCoders.ProtobufLongCollectionSimpledCoder; -import org.redkale.convert.pb.ProtobufCoders.ProtobufLongStreamSimpledCoder; -import org.redkale.convert.pb.ProtobufCoders.ProtobufShortArraySimpledCoder; -import org.redkale.convert.pb.ProtobufCoders.ProtobufShortArraySimpledCoder2; -import org.redkale.convert.pb.ProtobufCoders.ProtobufShortCollectionSimpledCoder; -import org.redkale.convert.pb.ProtobufCoders.ProtobufShortStreamSimpledCoder; import org.redkale.util.*; /** @author zhangjx */ @@ -80,23 +41,23 @@ public class ProtobufFactory extends ConvertFactory creator = loadCreator((Class) pt.getRawType()); - return (Decodeable) new ProtobufBoolCollectionSimpledCoder(creator); + return (Decodeable) new ProtobufCoders.ProtobufBoolCollectionSimpledCoder(creator); } else if (componentType == Byte.class) { Creator creator = loadCreator((Class) pt.getRawType()); - return (Decodeable) new ProtobufByteCollectionSimpledCoder(creator); + return (Decodeable) new ProtobufCoders.ProtobufByteCollectionSimpledCoder(creator); } else if (componentType == Character.class) { Creator creator = loadCreator((Class) pt.getRawType()); - return (Decodeable) new ProtobufCharCollectionSimpledCoder(creator); + return (Decodeable) new ProtobufCoders.ProtobufCharCollectionSimpledCoder(creator); } else if (componentType == Short.class) { Creator creator = loadCreator((Class) pt.getRawType()); - return (Decodeable) new ProtobufShortCollectionSimpledCoder(creator); + return (Decodeable) new ProtobufCoders.ProtobufShortCollectionSimpledCoder(creator); } else if (componentType == Integer.class) { Creator creator = loadCreator((Class) pt.getRawType()); - return (Decodeable) new ProtobufIntCollectionSimpledCoder(creator); + return (Decodeable) new ProtobufCoders.ProtobufIntCollectionSimpledCoder(creator); } else if (componentType == Float.class) { Creator creator = loadCreator((Class) pt.getRawType()); - return (Decodeable) new ProtobufFloatCollectionSimpledCoder(creator); + return (Decodeable) new ProtobufCoders.ProtobufFloatCollectionSimpledCoder(creator); } else if (componentType == Long.class) { Creator creator = loadCreator((Class) pt.getRawType()); - return (Decodeable) new ProtobufLongCollectionSimpledCoder(creator); + return (Decodeable) new ProtobufCoders.ProtobufLongCollectionSimpledCoder(creator); } else if (componentType == Double.class) { Creator creator = loadCreator((Class) pt.getRawType()); - return (Decodeable) new ProtobufDoubleCollectionSimpledCoder(creator); + return (Decodeable) new ProtobufCoders.ProtobufDoubleCollectionSimpledCoder(creator); } else if (componentType == AtomicBoolean.class) { Creator creator = loadCreator((Class) pt.getRawType()); - return (Decodeable) new ProtobufAtomicBooleanCollectionSimpledCoder(creator); + return (Decodeable) new ProtobufCoders.ProtobufAtomicBooleanCollectionSimpledCoder(creator); } else if (componentType == AtomicInteger.class) { Creator creator = loadCreator((Class) pt.getRawType()); - return (Decodeable) new ProtobufAtomicIntegerCollectionSimpledCoder(creator); + return (Decodeable) new ProtobufCoders.ProtobufAtomicIntegerCollectionSimpledCoder(creator); } else if (componentType == AtomicLong.class) { Creator creator = loadCreator((Class) pt.getRawType()); - return (Decodeable) new ProtobufAtomicLongCollectionSimpledCoder(creator); + return (Decodeable) new ProtobufCoders.ProtobufAtomicLongCollectionSimpledCoder(creator); } } return new ProtobufCollectionDecoder(this, type); @@ -237,27 +198,27 @@ public class ProtobufFactory extends ConvertFactory creator = ProtobufCoders.LIST_CREATOR; if (componentType == Boolean.class) { - return (Encodeable) new ProtobufBoolCollectionSimpledCoder(creator); + return (Encodeable) new ProtobufCoders.ProtobufBoolCollectionSimpledCoder(creator); } else if (componentType == Byte.class) { - return (Encodeable) new ProtobufByteCollectionSimpledCoder(creator); + return (Encodeable) new ProtobufCoders.ProtobufByteCollectionSimpledCoder(creator); } else if (componentType == Character.class) { - return (Encodeable) new ProtobufCharCollectionSimpledCoder(creator); + return (Encodeable) new ProtobufCoders.ProtobufCharCollectionSimpledCoder(creator); } else if (componentType == Short.class) { - return (Encodeable) new ProtobufShortCollectionSimpledCoder(creator); + return (Encodeable) new ProtobufCoders.ProtobufShortCollectionSimpledCoder(creator); } else if (componentType == Integer.class) { - return (Encodeable) new ProtobufIntCollectionSimpledCoder(creator); + return (Encodeable) new ProtobufCoders.ProtobufIntCollectionSimpledCoder(creator); } else if (componentType == Float.class) { - return (Encodeable) new ProtobufFloatCollectionSimpledCoder(creator); + return (Encodeable) new ProtobufCoders.ProtobufFloatCollectionSimpledCoder(creator); } else if (componentType == Long.class) { - return (Encodeable) new ProtobufLongCollectionSimpledCoder(creator); + return (Encodeable) new ProtobufCoders.ProtobufLongCollectionSimpledCoder(creator); } else if (componentType == Double.class) { - return (Encodeable) new ProtobufDoubleCollectionSimpledCoder(creator); + return (Encodeable) new ProtobufCoders.ProtobufDoubleCollectionSimpledCoder(creator); } else if (componentType == AtomicBoolean.class) { - return (Encodeable) new ProtobufAtomicBooleanCollectionSimpledCoder(creator); + return (Encodeable) new ProtobufCoders.ProtobufAtomicBooleanCollectionSimpledCoder(creator); } else if (componentType == AtomicInteger.class) { - return (Encodeable) new ProtobufAtomicIntegerCollectionSimpledCoder(creator); + return (Encodeable) new ProtobufCoders.ProtobufAtomicIntegerCollectionSimpledCoder(creator); } else if (componentType == AtomicLong.class) { - return (Encodeable) new ProtobufAtomicLongCollectionSimpledCoder(creator); + return (Encodeable) new ProtobufCoders.ProtobufAtomicLongCollectionSimpledCoder(creator); } } return new ProtobufCollectionEncoder(this, type); @@ -269,27 +230,27 @@ public class ProtobufFactory extends ConvertFactory