From c38ad8cebbb49374e4d31bde3f6846c5343a8da8 Mon Sep 17 00:00:00 2001 From: Rkyzzy <982993741@qq.com> Date: Sat, 24 Apr 2021 21:27:23 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E4=BD=BF=E7=94=A8entrySet=E8=BF=AD?= =?UTF-8?q?=E4=BB=A3=E5=99=A8=E6=9B=BF=E4=BB=A3keySet=E8=BF=AD=E4=BB=A3?= =?UTF-8?q?=E5=99=A8=E6=8F=90=E9=AB=98=E6=95=88=E7=8E=87=20#48?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/apijson/orm/AbstractParser.java | 4 ++-- .../java/apijson/orm/AbstractSQLConfig.java | 24 ++++++++++--------- 2 files changed, 15 insertions(+), 13 deletions(-) diff --git a/APIJSONORM/src/main/java/apijson/orm/AbstractParser.java b/APIJSONORM/src/main/java/apijson/orm/AbstractParser.java index 9fb17ee05..b45619369 100755 --- a/APIJSONORM/src/main/java/apijson/orm/AbstractParser.java +++ b/APIJSONORM/src/main/java/apijson/orm/AbstractParser.java @@ -1392,10 +1392,10 @@ public Object getValueByPath(String valuePath) { } //取出key被valuePath包含的result,再从里面获取key对应的value - Set set = queryResultMap.keySet(); JSONObject parent = null; String[] keys = null; - for (String path : set) { + for (Map.Entry entry : queryResultMap.entrySet()){ + String path = entry.getKey(); if (valuePath.startsWith(path + "/")) { try { parent = (JSONObject) queryResultMap.get(path); diff --git a/APIJSONORM/src/main/java/apijson/orm/AbstractSQLConfig.java b/APIJSONORM/src/main/java/apijson/orm/AbstractSQLConfig.java index 6defdd1e1..bdbadc864 100755 --- a/APIJSONORM/src/main/java/apijson/orm/AbstractSQLConfig.java +++ b/APIJSONORM/src/main/java/apijson/orm/AbstractSQLConfig.java @@ -1341,16 +1341,17 @@ public Object getWhere(String key, boolean exactMatch) { return where == null ? null : where.get(key); } - Set set = key == null || where == null ? null : where.keySet(); - if (set != null) { - synchronized (where) { - if (where != null) { - int index; - for (String k : set) { - index = k.indexOf(key); - if (index >= 0 && StringUtil.isName(k.substring(index)) == false) { - return where.get(k); - } + if (key == null || where == null){ + return null; + } + synchronized (where) { + if (where != null) { + int index; + for (Map.Entry entry : where.entrySet()) { + String k = entry.getKey(); + index = k.indexOf(key); + if (index >= 0 && StringUtil.isName(k.substring(index)) == false) { + return where.get(k); } } } @@ -2289,7 +2290,8 @@ public String getSetString(RequestMethod method, Map content, bo Object value; String idKey = getIdKey(); - for (String key : set) { + for (Map.Entry entry : content.entrySet()) { + String key = entry.getKey(); //避免筛选到全部 value = key == null ? null : content.get(key); if (key == null || idKey.equals(key)) { continue; From 6b5ecb2f1dde23ba56dae93dbd905906116a59fc Mon Sep 17 00:00:00 2001 From: Rkyzzy <982993741@qq.com> Date: Sat, 24 Apr 2021 22:42:35 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E4=BD=BF=E7=94=A8entrySet=E4=BB=A3?= =?UTF-8?q?=E6=9B=BFkeySet=E6=8F=90=E9=AB=98=E6=95=88=E7=8E=87=20#48?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- APIJSONORM/src/main/java/apijson/orm/AbstractParser.java | 2 +- APIJSONORM/src/main/java/apijson/orm/AbstractSQLConfig.java | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/APIJSONORM/src/main/java/apijson/orm/AbstractParser.java b/APIJSONORM/src/main/java/apijson/orm/AbstractParser.java index b45619369..98052f7ee 100755 --- a/APIJSONORM/src/main/java/apijson/orm/AbstractParser.java +++ b/APIJSONORM/src/main/java/apijson/orm/AbstractParser.java @@ -1398,7 +1398,7 @@ public Object getValueByPath(String valuePath) { String path = entry.getKey(); if (valuePath.startsWith(path + "/")) { try { - parent = (JSONObject) queryResultMap.get(path); + parent = (JSONObject) entry.getValue(); } catch (Exception e) { Log.e(TAG, "getValueByPath try { parent = (JSONObject) queryResultMap.get(path); } catch { " + "\n parent not instanceof JSONObject!"); diff --git a/APIJSONORM/src/main/java/apijson/orm/AbstractSQLConfig.java b/APIJSONORM/src/main/java/apijson/orm/AbstractSQLConfig.java index bdbadc864..81acbf455 100755 --- a/APIJSONORM/src/main/java/apijson/orm/AbstractSQLConfig.java +++ b/APIJSONORM/src/main/java/apijson/orm/AbstractSQLConfig.java @@ -1351,7 +1351,7 @@ public Object getWhere(String key, boolean exactMatch) { String k = entry.getKey(); index = k.indexOf(key); if (index >= 0 && StringUtil.isName(k.substring(index)) == false) { - return where.get(k); + return entry.getValue(); } } } @@ -2304,7 +2304,7 @@ public String getSetString(RequestMethod method, Map content, bo } else { keyType = 0; //注意重置类型,不然不该加减的字段会跟着加减 } - value = content.get(key); + value = entry.getValue(); key = getRealKey(method, key, false, true, verifyName); setString += (isFirst ? "" : ", ") + (getKey(key) + " = " + (keyType == 1 ? getAddString(key, value) : (keyType == 2 From 0fcbdfab03aa9bcb8e0a35dc7276f327a34e7aca Mon Sep 17 00:00:00 2001 From: Rkyzzy <982993741@qq.com> Date: Sun, 25 Apr 2021 01:26:57 +0800 Subject: [PATCH 3/3] further wrote javadoc --- .../src/main/java/apijson/StringUtil.java | 23 ++++++++++++------- .../main/java/apijson/orm/AbstractParser.java | 4 +++- .../java/apijson/orm/AbstractSQLConfig.java | 14 +++++++---- 3 files changed, 27 insertions(+), 14 deletions(-) diff --git a/APIJSONORM/src/main/java/apijson/StringUtil.java b/APIJSONORM/src/main/java/apijson/StringUtil.java index fed6d9933..23e49f181 100755 --- a/APIJSONORM/src/main/java/apijson/StringUtil.java +++ b/APIJSONORM/src/main/java/apijson/StringUtil.java @@ -111,11 +111,13 @@ public static String getString(Object[] array, boolean ignoreEmptyItem) { public static String getString(Object[] array, String split) { return getString(array, split, false); } + //CS304 Issue link: https://github.com/Tencent/APIJSON/issues/182 /**获取string,为null则返回"" - * @param array - * @param split - * @param ignoreEmptyItem - * @return + * @param array -the str array given + * @param split -the token used to split + * @param ignoreEmptyItem -whether to ignore empty item or not + * @return {@link #getString(Object[], String, boolean)} + *

Here we replace the simple "+" way of concatenating with Stringbuilder 's append

*/ public static String getString(Object[] array, String split, boolean ignoreEmptyItem) { StringBuilder s = new StringBuilder(""); @@ -530,10 +532,13 @@ public static String getNumber(CharSequence cs) { public static String getNumber(String s) { return getNumber(s, false); } + + //CS304 Issue link: https://github.com/Tencent/APIJSON/issues/182 /**去掉string内所有非数字类型字符 - * @param s + * @param s -string passed in * @param onlyStart 中间有非数字时只获取前面的数字 - * @return + * @return limit String + *

Here we replace the simple "+" way of concatenating with Stringbuilder 's append

*/ public static String getNumber(String s, boolean onlyStart) { if (isNotEmpty(s, true) == false) { @@ -631,10 +636,12 @@ public static String getCorrectEmail(String email) { public static String getPrice(String price) { return getPrice(price, PRICE_FORMAT_DEFAULT); } + //CS304 Issue link: https://github.com/Tencent/APIJSON/issues/182 /**获取价格,保留两位小数 - * @param price + * @param price -price passed in * @param formatType 添加单位(元) - * @return + * @return limit String + *

Here we replace the simple "+" way of concatenating with Stringbuilder 's append

*/ public static String getPrice(String price, int formatType) { if (isNotEmpty(price, true) == false) { diff --git a/APIJSONORM/src/main/java/apijson/orm/AbstractParser.java b/APIJSONORM/src/main/java/apijson/orm/AbstractParser.java index 98052f7ee..3684c9dce 100755 --- a/APIJSONORM/src/main/java/apijson/orm/AbstractParser.java +++ b/APIJSONORM/src/main/java/apijson/orm/AbstractParser.java @@ -1375,9 +1375,11 @@ public synchronized void putQueryResult(String path, Object result) { queryResultMap.put(path, result); // } } + //CS304 Issue link: https://github.com/Tencent/APIJSON/issues/48 /**根据路径获取值 - * @param valuePath + * @param valuePath -the path need to get value * @return parent == null ? valuePath : parent.get(keys[keys.length - 1]) + *

use entrySet+getValue() to replace keySet+get() to enhance efficiency

*/ @Override public Object getValueByPath(String valuePath) { diff --git a/APIJSONORM/src/main/java/apijson/orm/AbstractSQLConfig.java b/APIJSONORM/src/main/java/apijson/orm/AbstractSQLConfig.java index 81acbf455..51152f81f 100755 --- a/APIJSONORM/src/main/java/apijson/orm/AbstractSQLConfig.java +++ b/APIJSONORM/src/main/java/apijson/orm/AbstractSQLConfig.java @@ -1329,10 +1329,12 @@ public AbstractSQLConfig setCombine(Map> combine) { public Object getWhere(String key) { return getWhere(key, false); } + //CS304 Issue link: https://github.com/Tencent/APIJSON/issues/48 /** - * @param key - * @param exactMatch + * @param key - the key passed in + * @param exactMatch - whether it is exact match * @return + *

use entrySet+getValue() to replace keySet+get() to enhance efficiency

*/ @JSONField(serialize = false) @Override @@ -2273,11 +2275,13 @@ public static JSONArray newJSONArray(Object obj) { public String getSetString() throws Exception { return getSetString(getMethod(), getContent(), ! isTest()); } + //CS304 Issue link: https://github.com/Tencent/APIJSON/issues/48 /**获取SET - * @param method - * @param content + * @param method -the method used + * @param content -the content map * @return - * @throws Exception + * @throws Exception + *

use entrySet+getValue() to replace keySet+get() to enhance efficiency

*/ @JSONField(serialize = false) public String getSetString(RequestMethod method, Map content, boolean verifyName) throws Exception {