From 3297ee30aab4b4d461861d4b0641b15b3157c567 Mon Sep 17 00:00:00 2001 From: MaxKey Date: Tue, 8 Nov 2022 16:02:54 +0800 Subject: [PATCH] Pretty SQL , Json , XML optimize --- .../main/java/org/maxkey/pretty/Pretty.java | 4 ++- .../java/org/maxkey/pretty/PrettyFactory.java | 15 +++-------- .../org/maxkey/pretty/impl/JsonPretty.java | 27 +++++++++++++++++++ .../org/maxkey/pretty/impl/SqlPretty.java | 18 +++++++++++++ .../org/maxkey/pretty/impl/XmlPretty.java | 16 +++++++++++ 5 files changed, 68 insertions(+), 12 deletions(-) diff --git a/maxkey-common/src/main/java/org/maxkey/pretty/Pretty.java b/maxkey-common/src/main/java/org/maxkey/pretty/Pretty.java index d6215ecbb..3cfa71c8b 100644 --- a/maxkey-common/src/main/java/org/maxkey/pretty/Pretty.java +++ b/maxkey-common/src/main/java/org/maxkey/pretty/Pretty.java @@ -18,7 +18,9 @@ package org.maxkey.pretty; public interface Pretty { - + public final static String LINE_BREAK = "\n"; + public String format(String source); + public String formatln(String source); } diff --git a/maxkey-common/src/main/java/org/maxkey/pretty/PrettyFactory.java b/maxkey-common/src/main/java/org/maxkey/pretty/PrettyFactory.java index ecfe5ead2..8ab383d09 100644 --- a/maxkey-common/src/main/java/org/maxkey/pretty/PrettyFactory.java +++ b/maxkey-common/src/main/java/org/maxkey/pretty/PrettyFactory.java @@ -18,27 +18,20 @@ package org.maxkey.pretty; import org.maxkey.pretty.impl.JsonPretty; -import org.maxkey.pretty.impl.SqlPretty; import org.maxkey.pretty.impl.XmlPretty; public class PrettyFactory { - - static final Pretty jsonPretty = new JsonPretty(); - - static final Pretty sqlPretty = new SqlPretty(); - - static final Pretty xmlPretty = new XmlPretty(); - + public static Pretty getJsonPretty() { - return jsonPretty; + return JsonPretty.getInstance(); } public static Pretty getXmlPretty() { - return xmlPretty; + return XmlPretty.getInstance(); } public static Pretty getSqlPretty() { - return sqlPretty; + return XmlPretty.getInstance(); } } diff --git a/maxkey-common/src/main/java/org/maxkey/pretty/impl/JsonPretty.java b/maxkey-common/src/main/java/org/maxkey/pretty/impl/JsonPretty.java index de99e1f93..4fd8323aa 100644 --- a/maxkey-common/src/main/java/org/maxkey/pretty/impl/JsonPretty.java +++ b/maxkey-common/src/main/java/org/maxkey/pretty/impl/JsonPretty.java @@ -30,10 +30,23 @@ import com.google.gson.JsonParser; public class JsonPretty implements Pretty{ + static JsonPretty instance ; + public JsonPretty() { } + public static JsonPretty getInstance() { + if (null == instance) { + synchronized (JsonPretty.class) { + if (instance == null) { + instance = new JsonPretty(); + } + } + } + return instance; + } + /** * prettyJson use jackson * @param bean @@ -68,6 +81,15 @@ public class JsonPretty implements Pretty{ return json; } + /** + * prettyJson use Gson + * @param bean + * @return String + */ + public String formatln(Object bean){ + return LINE_BREAK + format(bean); + } + /** * prettyJson use Gson * @param JSON String @@ -76,5 +98,10 @@ public class JsonPretty implements Pretty{ public String format(String jsonString){ return format(JsonParser.parseString(jsonString)); } + + @Override + public String formatln(String source) { + return LINE_BREAK + format(source); + } } diff --git a/maxkey-common/src/main/java/org/maxkey/pretty/impl/SqlPretty.java b/maxkey-common/src/main/java/org/maxkey/pretty/impl/SqlPretty.java index 84617492e..8395286c6 100644 --- a/maxkey-common/src/main/java/org/maxkey/pretty/impl/SqlPretty.java +++ b/maxkey-common/src/main/java/org/maxkey/pretty/impl/SqlPretty.java @@ -27,6 +27,8 @@ import org.maxkey.pretty.Pretty; public class SqlPretty implements Pretty{ + static SqlPretty instance ; + public static final String WHITESPACE = " \n\r\f\t"; private static final Set BEGIN_CLAUSES = new HashSet(); private static final Set END_CLAUSES = new HashSet(); @@ -80,10 +82,26 @@ public class SqlPretty implements Pretty{ } + public static SqlPretty getInstance() { + if (null == instance) { + synchronized (JsonPretty.class) { + if (instance == null) { + instance = new SqlPretty(); + } + } + } + return instance; + } + @Override public String format(String source) { return new FormatProcess( source ).perform(); } + + @Override + public String formatln(String source) { + return LINE_BREAK + format(source); + } private static class FormatProcess { boolean beginLine = true; diff --git a/maxkey-common/src/main/java/org/maxkey/pretty/impl/XmlPretty.java b/maxkey-common/src/main/java/org/maxkey/pretty/impl/XmlPretty.java index 3cd41b798..0ee8b966a 100644 --- a/maxkey-common/src/main/java/org/maxkey/pretty/impl/XmlPretty.java +++ b/maxkey-common/src/main/java/org/maxkey/pretty/impl/XmlPretty.java @@ -29,10 +29,22 @@ import org.xml.sax.InputSource; public class XmlPretty implements Pretty{ + static XmlPretty instance ; + public XmlPretty() { } + public static XmlPretty getInstance() { + if (null == instance) { + synchronized (JsonPretty.class) { + if (instance == null) { + instance = new XmlPretty(); + } + } + } + return instance; + } @Override public String format(String xmlString){ @@ -56,4 +68,8 @@ public class XmlPretty implements Pretty{ } } + @Override + public String formatln(String source) { + return LINE_BREAK + format(source); + } }