From f767f40e56ce578a2d32a8baa946ee7be621844b Mon Sep 17 00:00:00 2001 From: Redkale <8730487+redkale@users.noreply.github.com> Date: Fri, 30 Aug 2019 15:18:03 +0800 Subject: [PATCH] =?UTF-8?q?StringConvertWrapper=20=E6=94=B9=E6=88=90=20Str?= =?UTF-8?q?ingWrapper?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/org/redkale/convert/ConvertFactory.java | 2 +- .../redkale/convert/StringConvertWrapper.java | 63 ------------------- src/org/redkale/convert/Writer.java | 3 +- src/org/redkale/convert/bson/BsonWriter.java | 2 +- ...er.java => StringWrapperSimpledCoder.java} | 11 ++-- src/org/redkale/convert/json/JsonWriter.java | 2 +- src/org/redkale/util/StringWrapper.java | 38 +++++++++++ 7 files changed, 49 insertions(+), 72 deletions(-) delete mode 100644 src/org/redkale/convert/StringConvertWrapper.java rename src/org/redkale/convert/ext/{StringConvertWrapperSimpledCoder.java => StringWrapperSimpledCoder.java} (53%) create mode 100644 src/org/redkale/util/StringWrapper.java diff --git a/src/org/redkale/convert/ConvertFactory.java b/src/org/redkale/convert/ConvertFactory.java index 044fed160..fd915af1e 100644 --- a/src/org/redkale/convert/ConvertFactory.java +++ b/src/org/redkale/convert/ConvertFactory.java @@ -91,7 +91,7 @@ public abstract class ConvertFactory { this.register(Number.class, NumberSimpledCoder.instance); this.register(String.class, StringSimpledCoder.instance); - this.register(StringConvertWrapper.class, StringConvertWrapperSimpledCoder.instance); + this.register(StringWrapper.class, StringWrapperSimpledCoder.instance); this.register(CharSequence.class, CharSequenceSimpledCoder.instance); this.register(StringBuilder.class, CharSequenceSimpledCoder.StringBuilderSimpledCoder.instance); this.register(java.util.Date.class, DateSimpledCoder.instance); diff --git a/src/org/redkale/convert/StringConvertWrapper.java b/src/org/redkale/convert/StringConvertWrapper.java deleted file mode 100644 index f798f6596..000000000 --- a/src/org/redkale/convert/StringConvertWrapper.java +++ /dev/null @@ -1,63 +0,0 @@ -/* - * To change this license header, choose License Headers in Project Properties. - * To change this template file, choose Tools | Templates - * and open the template in the editor. - */ -package org.redkale.convert; - -import org.redkale.convert.json.JsonConvert; - -/** - * 序列化去掉引号的String对象。 - *
- * 场景: JavaBean  bean = ... ;
- *        Map map = new HashMap();
- *        map.put("bean", a);
- *        records.add(map);
- *        records需要在后期序列化写入库。 但是在这期间bean的内部字段值可能就变化了,会导致入库时并不是records.add的快照信息。
- *        所以需要使用StringConvertWrapper:
- *        Map map = new HashMap();
- *        map.put("bean", new StringConvertWrapper(bean.toString()));
- *        records.add(map);
- *        这样既可以保持快照又不会在bean的值上面多一层引号。
- * 
- *

- * 详情见: https://redkale.org - * - * @author zhangjx - */ -public class StringConvertWrapper { - - protected String value; - - public StringConvertWrapper() { - } - - public StringConvertWrapper(String value) { - this.value = value; - } - - public static StringConvertWrapper create(Object value) { - return create(JsonConvert.root(), value); - } - - public static StringConvertWrapper create(TextConvert convert, Object value) { - if (value == null) return new StringConvertWrapper(null); - if (value instanceof String) return new StringConvertWrapper((String) value); - return new StringConvertWrapper(convert.convertTo(value)); - } - - public String getValue() { - return value; - } - - public void setValue(String value) { - this.value = value; - } - - @Override - public String toString() { - return value; - } - -} diff --git a/src/org/redkale/convert/Writer.java b/src/org/redkale/convert/Writer.java index ec35492ef..0937b0fe8 100644 --- a/src/org/redkale/convert/Writer.java +++ b/src/org/redkale/convert/Writer.java @@ -6,6 +6,7 @@ package org.redkale.convert; import java.lang.reflect.*; +import org.redkale.util.StringWrapper; /** * 序列化的数据输出流 @@ -262,5 +263,5 @@ public abstract class Writer { * * @param value StringConvertWrapper值 */ - public abstract void writeWrapper(StringConvertWrapper value); + public abstract void writeWrapper(StringWrapper value); } diff --git a/src/org/redkale/convert/bson/BsonWriter.java b/src/org/redkale/convert/bson/BsonWriter.java index 218c51484..e0df6faa3 100644 --- a/src/org/redkale/convert/bson/BsonWriter.java +++ b/src/org/redkale/convert/bson/BsonWriter.java @@ -242,7 +242,7 @@ public class BsonWriter extends Writer { } @Override - public final void writeWrapper(StringConvertWrapper value) { + public final void writeWrapper(StringWrapper value) { this.writeString(value == null ? null : value.getValue()); } diff --git a/src/org/redkale/convert/ext/StringConvertWrapperSimpledCoder.java b/src/org/redkale/convert/ext/StringWrapperSimpledCoder.java similarity index 53% rename from src/org/redkale/convert/ext/StringConvertWrapperSimpledCoder.java rename to src/org/redkale/convert/ext/StringWrapperSimpledCoder.java index 975985b5f..ffe447786 100644 --- a/src/org/redkale/convert/ext/StringConvertWrapperSimpledCoder.java +++ b/src/org/redkale/convert/ext/StringWrapperSimpledCoder.java @@ -6,6 +6,7 @@ package org.redkale.convert.ext; import org.redkale.convert.*; +import org.redkale.util.StringWrapper; /** * String 的SimpledCoder实现 @@ -17,18 +18,18 @@ import org.redkale.convert.*; * @param Reader输入的子类型 * @param Writer输出的子类型 */ -public final class StringConvertWrapperSimpledCoder extends SimpledCoder { +public final class StringWrapperSimpledCoder extends SimpledCoder { - public static final StringConvertWrapperSimpledCoder instance = new StringConvertWrapperSimpledCoder(); + public static final StringWrapperSimpledCoder instance = new StringWrapperSimpledCoder(); @Override - public void convertTo(W out, StringConvertWrapper value) { + public void convertTo(W out, StringWrapper value) { out.writeWrapper(value); } @Override - public StringConvertWrapper convertFrom(R in) { - return new StringConvertWrapper(in.readString()); + public StringWrapper convertFrom(R in) { + return new StringWrapper(in.readString()); } } diff --git a/src/org/redkale/convert/json/JsonWriter.java b/src/org/redkale/convert/json/JsonWriter.java index 39c405c5c..ba20ca192 100644 --- a/src/org/redkale/convert/json/JsonWriter.java +++ b/src/org/redkale/convert/json/JsonWriter.java @@ -320,7 +320,7 @@ public class JsonWriter extends Writer { } @Override - public final void writeWrapper(StringConvertWrapper value) { + public final void writeWrapper(StringWrapper value) { writeTo(false, String.valueOf(value)); } diff --git a/src/org/redkale/util/StringWrapper.java b/src/org/redkale/util/StringWrapper.java new file mode 100644 index 000000000..4aed87c7e --- /dev/null +++ b/src/org/redkale/util/StringWrapper.java @@ -0,0 +1,38 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ +package org.redkale.util; + +import java.io.Serializable; + +/** + * + * @author zhangjx + */ +public class StringWrapper implements Serializable { + + protected String value; + + public StringWrapper() { + } + + public StringWrapper(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + + @Override + public String toString() { + return value; + } + +}