fix #6 bug on github
This commit is contained in:
parent
b4dfb88190
commit
bc3a927ed2
|
@ -386,7 +386,7 @@ public class SourceBuilder {
|
||||||
if (DocGlobalConstants.MODE_AND_VIEW_FULLY.equals(typeName)) {
|
if (DocGlobalConstants.MODE_AND_VIEW_FULLY.equals(typeName)) {
|
||||||
return null;
|
return null;
|
||||||
} else {
|
} else {
|
||||||
throw new RuntimeException("smart-doc can't support " + typeName + " as method return in " + controllerName);
|
throw new RuntimeException("Smart-doc can't support " + typeName + " as method return in " + controllerName);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (DocClassUtil.isPrimitive(typeName)) {
|
if (DocClassUtil.isPrimitive(typeName)) {
|
||||||
|
@ -471,6 +471,14 @@ public class SourceBuilder {
|
||||||
}
|
}
|
||||||
paramList.add(param);
|
paramList.add(param);
|
||||||
} else {
|
} else {
|
||||||
|
boolean isGenerics = false;
|
||||||
|
checkGenerics:
|
||||||
|
for (JavaField field : fields) {
|
||||||
|
if (field.getType().getFullyQualifiedName().length() == 1) {
|
||||||
|
isGenerics = true;
|
||||||
|
break checkGenerics;
|
||||||
|
}
|
||||||
|
}
|
||||||
out:
|
out:
|
||||||
for (JavaField field : fields) {
|
for (JavaField field : fields) {
|
||||||
String fieldName = field.getName();
|
String fieldName = field.getName();
|
||||||
|
@ -564,7 +572,7 @@ public class SourceBuilder {
|
||||||
String enumComments = javaClass.getComment();
|
String enumComments = javaClass.getComment();
|
||||||
if (StringUtil.isNotEmpty(enumComments) && javaClass.isEnum()) {
|
if (StringUtil.isNotEmpty(enumComments) && javaClass.isEnum()) {
|
||||||
enumComments = enumComments.replaceAll("\r\n", "<br>");
|
enumComments = enumComments.replaceAll("\r\n", "<br>");
|
||||||
enumComments = enumComments.replaceAll("\r\n", "<br>");
|
enumComments = enumComments.replaceAll("\n", "<br>");
|
||||||
comment = comment + "(See: " + enumComments + ")";
|
comment = comment + "(See: " + enumComments + ")";
|
||||||
}
|
}
|
||||||
String processedType = DocClassUtil.processTypeNameForParams(typeSimpleName.toLowerCase());
|
String processedType = DocClassUtil.processTypeNameForParams(typeSimpleName.toLowerCase());
|
||||||
|
@ -643,7 +651,11 @@ public class SourceBuilder {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if (subTypeName.length() == 1 || DocGlobalConstants.JAVA_OBJECT_FULLY.equals(subTypeName)) {
|
} else if (subTypeName.length() == 1 || DocGlobalConstants.JAVA_OBJECT_FULLY.equals(subTypeName)) {
|
||||||
if (!simpleName.equals(className)) {
|
if (isGenerics && DocGlobalConstants.JAVA_OBJECT_FULLY.equals(subTypeName)) {
|
||||||
|
ApiParam param1 = ApiParam.of().setField(preBuilder.toString() + "any object")
|
||||||
|
.setType("object").setDesc(DocGlobalConstants.ANY_OBJECT_MSG).setVersion(DocGlobalConstants.DEFAULT_VERSION);
|
||||||
|
paramList.add(param1);
|
||||||
|
} else if (!simpleName.equals(className)) {
|
||||||
if (n < globGicName.length) {
|
if (n < globGicName.length) {
|
||||||
String gicName = globGicName[n];
|
String gicName = globGicName[n];
|
||||||
String simple = DocClassUtil.getSimpleName(gicName);
|
String simple = DocClassUtil.getSimpleName(gicName);
|
||||||
|
@ -669,8 +681,8 @@ public class SourceBuilder {
|
||||||
} else {
|
} else {
|
||||||
paramList.addAll(buildParams(subTypeName, preBuilder.toString(), i + 1, isRequired, responseFieldMap, isResp, registryClasses));
|
paramList.addAll(buildParams(subTypeName, preBuilder.toString(), i + 1, isRequired, responseFieldMap, isResp, registryClasses));
|
||||||
}
|
}
|
||||||
|
n++;
|
||||||
}
|
}
|
||||||
n++;
|
|
||||||
} else if (DocClassUtil.isArray(subTypeName)) {
|
} else if (DocClassUtil.isArray(subTypeName)) {
|
||||||
fieldGicName = fieldGicName.substring(0, fieldGicName.indexOf("["));
|
fieldGicName = fieldGicName.substring(0, fieldGicName.indexOf("["));
|
||||||
if (className.equals(fieldGicName)) {
|
if (className.equals(fieldGicName)) {
|
||||||
|
@ -695,7 +707,7 @@ public class SourceBuilder {
|
||||||
private List<ApiParam> primitiveReturnRespComment(String typeName) {
|
private List<ApiParam> primitiveReturnRespComment(String typeName) {
|
||||||
StringBuilder comments = new StringBuilder();
|
StringBuilder comments = new StringBuilder();
|
||||||
comments.append("The api directly returns the ").append(typeName).append(" type value.");
|
comments.append("The api directly returns the ").append(typeName).append(" type value.");
|
||||||
ApiParam apiParam = ApiParam.of().setField("no param name")
|
ApiParam apiParam = ApiParam.of().setField("No field")
|
||||||
.setType(typeName).setDesc(comments.toString()).setVersion(DocGlobalConstants.DEFAULT_VERSION);
|
.setType(typeName).setDesc(comments.toString()).setVersion(DocGlobalConstants.DEFAULT_VERSION);
|
||||||
List<ApiParam> paramList = new ArrayList<>();
|
List<ApiParam> paramList = new ArrayList<>();
|
||||||
paramList.add(apiParam);
|
paramList.add(apiParam);
|
||||||
|
@ -804,6 +816,14 @@ public class SourceBuilder {
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
List<JavaField> fields = getFields(cls, 0);
|
List<JavaField> fields = getFields(cls, 0);
|
||||||
|
boolean isGenerics = false;
|
||||||
|
checkGenerics:
|
||||||
|
for (JavaField field : fields) {
|
||||||
|
if (field.getType().getFullyQualifiedName().length() == 1) {
|
||||||
|
isGenerics = true;
|
||||||
|
break checkGenerics;
|
||||||
|
}
|
||||||
|
}
|
||||||
int i = 0;
|
int i = 0;
|
||||||
out:
|
out:
|
||||||
for (JavaField field : fields) {
|
for (JavaField field : fields) {
|
||||||
|
@ -939,7 +959,9 @@ public class SourceBuilder {
|
||||||
}
|
}
|
||||||
i++;
|
i++;
|
||||||
} else if (DocGlobalConstants.JAVA_OBJECT_FULLY.equals(subTypeName)) {
|
} else if (DocGlobalConstants.JAVA_OBJECT_FULLY.equals(subTypeName)) {
|
||||||
if (i < globGicName.length) {
|
if (isGenerics) {
|
||||||
|
data0.append("{\"object\":\"any object\"},");
|
||||||
|
} else if (i < globGicName.length) {
|
||||||
String gicName = globGicName[i];
|
String gicName = globGicName[i];
|
||||||
if (!typeName.equals(genericCanonicalName)) {
|
if (!typeName.equals(genericCanonicalName)) {
|
||||||
if (DocClassUtil.isPrimitive(gicName)) {
|
if (DocClassUtil.isPrimitive(gicName)) {
|
||||||
|
@ -953,12 +975,13 @@ public class SourceBuilder {
|
||||||
} else {
|
} else {
|
||||||
data0.append("{\"waring\":\"You may have used non-display generics.\"},");
|
data0.append("{\"waring\":\"You may have used non-display generics.\"},");
|
||||||
}
|
}
|
||||||
|
if (!isGenerics) i++;
|
||||||
} else if (typeName.equals(subTypeName)) {
|
} else if (typeName.equals(subTypeName)) {
|
||||||
data0.append("{\"$ref\":\"...\"}").append(",");
|
data0.append("{\"$ref\":\"...\"}").append(",");
|
||||||
} else {
|
} else {
|
||||||
JavaClass javaClass = builder.getClassByName(subTypeName);
|
JavaClass javaClass = builder.getClassByName(subTypeName);
|
||||||
if (!isResp && javaClass.isEnum()) {
|
if (!isResp && javaClass.isEnum()) {
|
||||||
Object value = this.handleEnumValue(javaClass,Boolean.FALSE);
|
Object value = this.handleEnumValue(javaClass, Boolean.FALSE);
|
||||||
data0.append(value).append(",");
|
data0.append(value).append(",");
|
||||||
} else {
|
} else {
|
||||||
data0.append(buildJson(subTypeName, fieldGicName, responseFieldMap, isResp, counter + 1, registryClasses)).append(",");
|
data0.append(buildJson(subTypeName, fieldGicName, responseFieldMap, isResp, counter + 1, registryClasses)).append(",");
|
||||||
|
@ -1052,7 +1075,7 @@ public class SourceBuilder {
|
||||||
}
|
}
|
||||||
if (requestBodyCounter < 1 && paraName != null) {
|
if (requestBodyCounter < 1 && paraName != null) {
|
||||||
if (javaClass.isEnum()) {
|
if (javaClass.isEnum()) {
|
||||||
Object value = this.handleEnumValue(javaClass,Boolean.TRUE);
|
Object value = this.handleEnumValue(javaClass, Boolean.TRUE);
|
||||||
paramsMap.put(paraName, StringUtil.removeQuotes(String.valueOf(value)));
|
paramsMap.put(paraName, StringUtil.removeQuotes(String.valueOf(value)));
|
||||||
} else if (annotations.size() < 1 && !DocClassUtil.isPrimitive(typeName)) {
|
} else if (annotations.size() < 1 && !DocClassUtil.isPrimitive(typeName)) {
|
||||||
return "Smart-doc can't support create form-data example,It is recommended to use @RequestBody to receive parameters.";
|
return "Smart-doc can't support create form-data example,It is recommended to use @RequestBody to receive parameters.";
|
||||||
|
@ -1338,7 +1361,7 @@ public class SourceBuilder {
|
||||||
apiDocList.add(apiDoc);
|
apiDocList.add(apiDoc);
|
||||||
}
|
}
|
||||||
|
|
||||||
private Object handleEnumValue(JavaClass javaClass,boolean returnEnum) {
|
private Object handleEnumValue(JavaClass javaClass, boolean returnEnum) {
|
||||||
List<JavaField> javaFields = javaClass.getEnumConstants();
|
List<JavaField> javaFields = javaClass.getEnumConstants();
|
||||||
Object value = null;
|
Object value = null;
|
||||||
int index = 0;
|
int index = 0;
|
||||||
|
@ -1346,7 +1369,7 @@ public class SourceBuilder {
|
||||||
String simpleName = javaField.getType().getSimpleName();
|
String simpleName = javaField.getType().getSimpleName();
|
||||||
StringBuilder valueBuilder = new StringBuilder();
|
StringBuilder valueBuilder = new StringBuilder();
|
||||||
valueBuilder.append("\"").append(javaField.getName()).append("\"").toString();
|
valueBuilder.append("\"").append(javaField.getName()).append("\"").toString();
|
||||||
if(returnEnum){
|
if (returnEnum) {
|
||||||
value = valueBuilder.toString();
|
value = valueBuilder.toString();
|
||||||
return value;
|
return value;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue