From f636457ef340de7cb5b50d56f3c1abbef6f5254d Mon Sep 17 00:00:00 2001
From: oppofind <836575280@qq.com>
Date: Thu, 19 Sep 2019 21:02:32 +0800
Subject: [PATCH] optimized code and upgrade common-util to 1.8.5
---
pom.xml | 2 +-
.../com/power/doc/builder/SourceBuilder.java | 79 ++++++-------------
.../doc/constants/AnnotationConstants.java | 2 +-
.../power/doc/constants/GlobalConstants.java | 6 ++
.../java/com/power/doc/utils/DocUtil.java | 47 +++++++----
5 files changed, 63 insertions(+), 73 deletions(-)
diff --git a/pom.xml b/pom.xml
index e24b804..244f453 100644
--- a/pom.xml
+++ b/pom.xml
@@ -58,7 +58,7 @@
com.github.shalousun
common-util
- 1.8.4
+ 1.8.5
diff --git a/src/main/java/com/power/doc/builder/SourceBuilder.java b/src/main/java/com/power/doc/builder/SourceBuilder.java
index 8e4b9b5..9f0c63e 100644
--- a/src/main/java/com/power/doc/builder/SourceBuilder.java
+++ b/src/main/java/com/power/doc/builder/SourceBuilder.java
@@ -3,6 +3,7 @@ package com.power.doc.builder;
import com.power.common.util.CollectionUtil;
import com.power.common.util.JsonFormatUtil;
import com.power.common.util.StringUtil;
+import com.power.common.util.UrlUtil;
import com.power.doc.constants.AnnotationConstants;
import com.power.doc.constants.DocTags;
import com.power.doc.constants.GlobalConstants;
@@ -227,58 +228,28 @@ public class SourceBuilder {
for (JavaAnnotation annotation : annotations) {
String annotationName = annotation.getType().getName();
if (REQUEST_MAPPING.equals(annotationName) || GlobalConstants.REQUEST_MAPPING_FULLY.equals(annotationName)) {
- if (null == annotation.getNamedParameter("value")) {
- url = "/";
- } else {
- url = annotation.getNamedParameter("value").toString();
- }
+ url = DocUtil.handleMappingValue(annotation);
if (null != annotation.getNamedParameter("method")) {
methodType = annotation.getNamedParameter("method").toString();
- if ("RequestMethod.POST".equals(methodType)) {
- methodType = "POST";
- } else if ("RequestMethod.GET".equals(methodType)) {
- methodType = "GET";
- } else if ("RequestMethod.PUT".equals(methodType)) {
- methodType = "PUT";
- } else if ("RequestMethod.DELETE".equals(methodType)) {
- methodType = "DELETE";
- } else {
- methodType = "GET";
- }
+ methodType = DocUtil.handleHttpMethod(methodType);
} else {
methodType = "GET";
}
methodCounter++;
} else if (GET_MAPPING.equals(annotationName) || GlobalConstants.GET_MAPPING_FULLY.equals(annotationName)) {
- if (null == annotation.getNamedParameter("value")) {
- url = "/";
- } else {
- url = annotation.getNamedParameter("value").toString();
- }
+ url = DocUtil.handleMappingValue(annotation);
methodType = "GET";
methodCounter++;
} else if (POST_MAPPING.equals(annotationName) || GlobalConstants.POST_MAPPING_FULLY.equals(annotationName)) {
- if (null == annotation.getNamedParameter("value")) {
- url = "/";
- } else {
- url = annotation.getNamedParameter("value").toString();
- }
+ url = DocUtil.handleMappingValue(annotation);
methodType = "POST";
methodCounter++;
} else if (PUT_MAPPING.equals(annotationName) || GlobalConstants.PUT_MAPPING_FULLY.equals(annotationName)) {
- if (null == annotation.getNamedParameter("value")) {
- url = "/";
- } else {
- url = annotation.getNamedParameter("value").toString();
- }
+ url = DocUtil.handleMappingValue(annotation);
methodType = "PUT";
methodCounter++;
} else if (DELETE_MAPPING.equals(annotationName) || GlobalConstants.DELETE_MAPPING_FULLY.equals(annotationName)) {
- if (null == annotation.getNamedParameter("value")) {
- url = "/";
- } else {
- url = annotation.getNamedParameter("value").toString();
- }
+ url = DocUtil.handleMappingValue(annotation);
methodType = "DELETE";
methodCounter++;
}
@@ -456,9 +427,9 @@ public class SourceBuilder {
an:
for (JavaAnnotation annotation : javaAnnotations) {
String annotationName = annotation.getType().getSimpleName();
- if ("JsonIgnore".equals(annotationName) && isResp) {
+ if (AnnotationConstants.SHORT_JSON_IGNORE.equals(annotationName) && isResp) {
continue out;
- } else if ("JSONField".equals(annotationName) && isResp) {
+ } else if (AnnotationConstants.SHORT_JSON_FIELD.equals(annotationName) && isResp) {
if (null != annotation.getProperty("serialize")) {
if ("false".equals(annotation.getProperty("serialize").toString())) {
continue out;
@@ -466,7 +437,7 @@ public class SourceBuilder {
} else if (null != annotation.getProperty("name")) {
fieldName = annotation.getProperty("name").toString().replace("\"", "");
}
- } else if ("JsonProperty".equals(annotationName) && isResp) {
+ } else if (AnnotationConstants.SHORT_JSON_PROPERTY.equals(annotationName) && isResp) {
if (null != annotation.getProperty("value")) {
fieldName = annotation.getProperty("value").toString().replace("\"", "");
}
@@ -543,7 +514,7 @@ public class SourceBuilder {
preBuilder.append("└─");
if (DocClassUtil.isMap(subTypeName)) {
String gNameTemp = field.getType().getGenericCanonicalName();
- if ("java.util.Map".equals(gNameTemp)) {
+ if (GlobalConstants.JAVA_MAP_FULLY.equals(gNameTemp)) {
params0.append(preBuilder + "any object|object|any object\n");
continue;
}
@@ -580,7 +551,7 @@ public class SourceBuilder {
}
}
}
- } else if (subTypeName.length() == 1 || "java.lang.Object".equals(subTypeName)) {
+ } else if (subTypeName.length() == 1 || GlobalConstants.JAVA_OBJECT_FULLY.equals(subTypeName)) {
if (!simpleName.equals(className)) {
if (n < globGicName.length) {
String gicName = globGicName[n];
@@ -711,7 +682,7 @@ public class SourceBuilder {
data.append("{\"mapKey\":{}}");
return data.toString();
}
- if (!"java.lang.String".equals(getKeyValType[0])) {
+ if (!GlobalConstants.JAVA_STRING_FULLY.equals(getKeyValType[0])) {
throw new RuntimeException("Map's key can only use String for json,but you use " + getKeyValType[0]);
}
String gicName = gNameTemp.substring(gNameTemp.indexOf(",") + 1, gNameTemp.lastIndexOf(">"));
@@ -752,9 +723,9 @@ public class SourceBuilder {
List annotations = field.getAnnotations();
for (JavaAnnotation annotation : annotations) {
String annotationName = annotation.getType().getSimpleName();
- if ("JsonIgnore".equals(annotationName) && isResp) {
+ if (AnnotationConstants.SHORT_JSON_IGNORE.equals(annotationName) && isResp) {
continue out;
- } else if ("JSONField".equals(annotationName) && isResp) {
+ } else if (AnnotationConstants.SHORT_JSON_FIELD.equals(annotationName) && isResp) {
if (null != annotation.getProperty("serialize")) {
if ("false".equals(annotation.getProperty("serialize").toString())) {
continue out;
@@ -762,7 +733,7 @@ public class SourceBuilder {
} else if (null != annotation.getProperty("name")) {
fieldName = annotation.getProperty("name").toString().replace("\"", "");
}
- } else if ("JsonProperty".equals(annotationName) && isResp) {
+ } else if (AnnotationConstants.SHORT_JSON_PROPERTY.equals(annotationName) && isResp) {
if (null != annotation.getProperty("value")) {
fieldName = annotation.getProperty("value").toString().replace("\"", "");
}
@@ -797,9 +768,9 @@ public class SourceBuilder {
}
String gicName = DocClassUtil.getSimpleGicName(fieldGicName)[0];
- if ("java.lang.String".equals(gicName)) {
+ if (GlobalConstants.JAVA_STRING_FULLY.equals(gicName)) {
data0.append("[").append("\"").append(buildJson(gicName, fieldGicName, responseFieldMap, isResp)).append("\"]").append(",");
- } else if ("java.util.List".equals(gicName)) {
+ } else if (GlobalConstants.JAVA_LIST_FULLY.equals(gicName)) {
data0.append("{\"object\":\"any object\"},");
} else if (gicName.length() == 1) {
if (globGicName.length == 0) {
@@ -807,7 +778,7 @@ public class SourceBuilder {
continue out;
}
String gicName1 = (i < globGicName.length) ? globGicName[i] : globGicName[globGicName.length - 1];
- if ("java.lang.String".equals(gicName1)) {
+ if (GlobalConstants.JAVA_STRING_FULLY.equals(gicName1)) {
data0.append("[").append("\"").append(buildJson(gicName1, gicName1, responseFieldMap, isResp)).append("\"]").append(",");
} else {
if (!typeName.equals(gicName1)) {
@@ -829,14 +800,14 @@ public class SourceBuilder {
}
}
} else if (DocClassUtil.isMap(subTypeName)) {
- if ("java.util.Map".equals(subTypeName)) {
+ if (GlobalConstants.JAVA_MAP_FULLY.equals(subTypeName)) {
data0.append("{").append("\"mapKey\":{}},");
continue out;
}
String gicName = fieldGicName.substring(fieldGicName.indexOf(",") + 1, fieldGicName.indexOf(">"));
if (gicName.length() == 1) {
String gicName1 = (i < globGicName.length) ? globGicName[i] : globGicName[globGicName.length - 1];
- if ("java.lang.String".equals(gicName1)) {
+ if (GlobalConstants.JAVA_STRING_FULLY.equals(gicName1)) {
data0.append("{").append("\"mapKey\":\"").append(buildJson(gicName1, gicName1, responseFieldMap, isResp)).append("\"},");
} else {
if (!typeName.equals(gicName1)) {
@@ -945,9 +916,9 @@ public class SourceBuilder {
String url;
if (containsBrace) {
url = DocUtil.formatAndRemove(apiMethodDoc.getUrl(), paramsMap);
- url = DocUtil.urlJoin(url, paramsMap);
+ url = UrlUtil.urlJoin(url, paramsMap);
} else {
- url = DocUtil.urlJoin(apiMethodDoc.getUrl(), paramsMap);
+ url = UrlUtil.urlJoin(apiMethodDoc.getUrl(), paramsMap);
}
return url;
}
@@ -1033,7 +1004,7 @@ public class SourceBuilder {
reqParam.append(paramName).append("|")
.append(DocClassUtil.processTypeNameForParams(simpleName)).append("|")
.append(comment).append("|true\n");
- } else if ("java.util.Map".equals(typeName)) {
+ } else if (GlobalConstants.JAVA_MAP_FULLY.equals(typeName)) {
reqParam.append(paramName).append("|")
.append("map").append("|")
.append(comment).append("|true\n");
@@ -1074,7 +1045,7 @@ public class SourceBuilder {
}
} else if (DocClassUtil.isMap(fullTypeName)) {
- if ("java.util.Map".equals(typeName)) {
+ if (GlobalConstants.JAVA_MAP_FULLY.equals(typeName)) {
reqParam.append(paramName).append("|")
.append("map").append("|")
.append(comment).append("|").append(required).append("\n");
diff --git a/src/main/java/com/power/doc/constants/AnnotationConstants.java b/src/main/java/com/power/doc/constants/AnnotationConstants.java
index 6fe338a..f6ef3c8 100644
--- a/src/main/java/com/power/doc/constants/AnnotationConstants.java
+++ b/src/main/java/com/power/doc/constants/AnnotationConstants.java
@@ -10,7 +10,7 @@ public class AnnotationConstants {
public static final String SHORT_REST_CONTROLLER = "RestController";
- public static final String SHORT_JSON_IGNORE= "Ignore";
+ public static final String SHORT_JSON_IGNORE= "JsonIgnore";
public static final String SHORT_JSON_PROPERTY = "JsonProperty";
diff --git a/src/main/java/com/power/doc/constants/GlobalConstants.java b/src/main/java/com/power/doc/constants/GlobalConstants.java
index 52e309a..3902617 100644
--- a/src/main/java/com/power/doc/constants/GlobalConstants.java
+++ b/src/main/java/com/power/doc/constants/GlobalConstants.java
@@ -33,6 +33,12 @@ public class GlobalConstants {
*/
public static final String JAVA_OBJECT_FULLY = "java.lang.Object";
+ public static final String JAVA_STRING_FULLY = "java.lang.String";
+
+ public static final String JAVA_MAP_FULLY = "java.util.Map";
+
+ public static final String JAVA_LIST_FULLY = "java.util.List";
+
}
diff --git a/src/main/java/com/power/doc/utils/DocUtil.java b/src/main/java/com/power/doc/utils/DocUtil.java
index 3e940b7..c8d896f 100644
--- a/src/main/java/com/power/doc/utils/DocUtil.java
+++ b/src/main/java/com/power/doc/utils/DocUtil.java
@@ -5,6 +5,7 @@ import com.power.common.util.DateTimeUtil;
import com.power.common.util.IDCardUtil;
import com.power.common.util.RandomUtil;
import com.power.common.util.StringUtil;
+import com.thoughtworks.qdox.model.JavaAnnotation;
import java.util.*;
@@ -217,24 +218,36 @@ public class DocUtil {
return builder.toString();
}
- public static String urlJoin(String url, Map params) {
- StringBuilder endUrl = new StringBuilder(url);
- if (null == params) {
- return url;
+ /**
+ * handle spring mvc method
+ * @param method
+ * @return
+ */
+ public static String handleHttpMethod(String method) {
+ switch (method) {
+ case "RequestMethod.POST":
+ return "POST";
+ case "RequestMethod.GET":
+ return "GET";
+ case "RequestMethod.PUT":
+ return "PUT";
+ case "RequestMethod.DELETE":
+ return "DELETE";
+ default:
+ return "GET";
}
- boolean isFirst = true;
- Set> entrySet = params.entrySet();
- for (Map.Entry entry : entrySet) {
- if (isFirst && !url.contains("?")) {
- isFirst = false;
- endUrl.append("?");
- } else {
- endUrl.append("&");
- }
- endUrl.append(entry.getKey());
- endUrl.append("=");
- endUrl.append(entry.getValue());
+ }
+
+ /**
+ * handle spring mvc mapping value
+ * @param annotation
+ * @return
+ */
+ public static String handleMappingValue(JavaAnnotation annotation){
+ if (null == annotation.getNamedParameter("value")) {
+ return "/";
+ } else {
+ return annotation.getNamedParameter("value").toString();
}
- return endUrl.toString();
}
}