Skip to content
This repository was archived by the owner on Dec 4, 2025. It is now read-only.

Commit aa53b1b

Browse files
authored
Merge pull request #1027 from linwumingshi/fix/maxLength-constants
fix: 🐛 resolve incorrect parsing of constants in `maxLength`
2 parents 3cf8a57 + f82fbab commit aa53b1b

3 files changed

Lines changed: 31 additions & 10 deletions

File tree

src/main/java/com/ly/doc/helper/ParamsBuildHelper.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -233,7 +233,7 @@ private static List<ApiParam> processFields(String className, String pre, int le
233233
continue;
234234
}
235235

236-
String maxLength = JavaFieldUtil.getParamMaxLength(field.getAnnotations());
236+
String maxLength = JavaFieldUtil.getParamMaxLength(classLoader, field.getAnnotations());
237237
StringBuilder comment = new StringBuilder();
238238
comment.append(docField.getComment());
239239

src/main/java/com/ly/doc/template/IJavadocDocTemplate.java

Lines changed: 26 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (C) 2018-2024 smart-doc
2+
* Copyright (C) 2018-2025 smart-doc
33
*
44
* Licensed to the Apache Software Foundation (ASF) under one
55
* or more contributor license agreements. See the NOTICE file
@@ -21,17 +21,37 @@
2121
package com.ly.doc.template;
2222

2323
import com.ly.doc.builder.ProjectDocConfigBuilder;
24-
import com.ly.doc.constants.*;
24+
import com.ly.doc.constants.DocAnnotationConstants;
25+
import com.ly.doc.constants.DocGlobalConstants;
26+
import com.ly.doc.constants.DocTags;
27+
import com.ly.doc.constants.JavaTypeConstants;
28+
import com.ly.doc.constants.ParamTypeConstants;
2529
import com.ly.doc.helper.ParamsBuildHelper;
2630
import com.ly.doc.model.ApiConfig;
2731
import com.ly.doc.model.ApiParam;
2832
import com.ly.doc.model.DocJavaMethod;
2933
import com.ly.doc.model.JavadocJavaMethod;
30-
import com.ly.doc.utils.*;
34+
import com.ly.doc.utils.ApiParamTreeUtil;
35+
import com.ly.doc.utils.DocClassUtil;
36+
import com.ly.doc.utils.DocUtil;
37+
import com.ly.doc.utils.JavaClassUtil;
38+
import com.ly.doc.utils.JavaClassValidateUtil;
39+
import com.ly.doc.utils.JavaFieldUtil;
3140
import com.power.common.util.StringUtil;
32-
import com.thoughtworks.qdox.model.*;
41+
import com.thoughtworks.qdox.model.JavaAnnotation;
42+
import com.thoughtworks.qdox.model.JavaClass;
43+
import com.thoughtworks.qdox.model.JavaMethod;
44+
import com.thoughtworks.qdox.model.JavaParameter;
45+
import com.thoughtworks.qdox.model.JavaType;
3346

34-
import java.util.*;
47+
import java.util.ArrayList;
48+
import java.util.HashMap;
49+
import java.util.LinkedHashMap;
50+
import java.util.LinkedHashSet;
51+
import java.util.List;
52+
import java.util.Map;
53+
import java.util.Objects;
54+
import java.util.Set;
3555
import java.util.concurrent.atomic.AtomicInteger;
3656
import java.util.function.Function;
3757
import java.util.stream.Collectors;
@@ -267,7 +287,7 @@ else if (JavaClassValidateUtil.isPrimitive(fullTypeName)) {
267287
.setType(JavaClassUtil.getClassSimpleName(typeName))
268288
.setDesc(comment.toString())
269289
.setRequired(required)
270-
.setMaxLength(JavaFieldUtil.getParamMaxLength(parameter.getAnnotations()))
290+
.setMaxLength(JavaFieldUtil.getParamMaxLength(classLoader, parameter.getAnnotations()))
271291
.setValue(mockValue)
272292
.setVersion(DocGlobalConstants.DEFAULT_VERSION);
273293
paramList.add(param);

src/main/java/com/ly/doc/utils/JavaFieldUtil.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
/*
22
* smart-doc
33
*
4-
* Copyright (C) 2018-2024 smart-doc
4+
* Copyright (C) 2018-2025 smart-doc
55
*
66
* Licensed to the Apache Software Foundation (ASF) under one
77
* or more contributor license agreements. See the NOTICE file
@@ -118,10 +118,11 @@ public static String createMockValue(Map<String, String> paramsComments, String
118118

119119
/**
120120
* get param max length
121+
* @param classLoader classLoader
121122
* @param annotations annotation
122123
* @return max length
123124
*/
124-
public static String getParamMaxLength(List<JavaAnnotation> annotations) {
125+
public static String getParamMaxLength(ClassLoader classLoader, List<JavaAnnotation> annotations) {
125126
String maxLength = "";
126127
for (JavaAnnotation annotation : annotations) {
127128
String simpleAnnotationName = annotation.getType().getValue();
@@ -133,7 +134,7 @@ public static String getParamMaxLength(List<JavaAnnotation> annotations) {
133134
annotationValue = annotation.getProperty(JSRAnnotationPropConstants.MAX_PROP);
134135
}
135136
if (Objects.nonNull(annotationValue)) {
136-
maxLength = annotationValue.toString();
137+
maxLength = DocUtil.resolveAnnotationValue(classLoader, annotationValue);
137138
}
138139
}
139140
return maxLength;

0 commit comments

Comments
 (0)