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

Commit 5b031aa

Browse files
authored
Merge pull request #1030 from linwumingshi/feature/utils-no-classloader
feat(utils): ✨ add functionality to resolve annotation values and get parameter max length
2 parents e417143 + 0ec5217 commit 5b031aa

2 files changed

Lines changed: 84 additions & 7 deletions

File tree

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

Lines changed: 74 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -21,15 +21,44 @@
2121
package com.ly.doc.utils;
2222

2323
import com.ly.doc.builder.WordDocBuilder;
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.JAXRSAnnotations;
28+
import com.ly.doc.constants.JakartaJaxrsAnnotations;
29+
import com.ly.doc.constants.JavaTypeConstants;
30+
import com.ly.doc.constants.MediaType;
2531
import com.ly.doc.extension.dict.DictionaryValuesResolver;
26-
import com.ly.doc.model.*;
32+
import com.ly.doc.model.ApiConfig;
33+
import com.ly.doc.model.ApiDataDictionary;
34+
import com.ly.doc.model.ApiDocDict;
35+
import com.ly.doc.model.ApiErrorCode;
36+
import com.ly.doc.model.ApiErrorCodeDictionary;
37+
import com.ly.doc.model.ApiReqParam;
38+
import com.ly.doc.model.DataDict;
39+
import com.ly.doc.model.DocJavaField;
40+
import com.ly.doc.model.FormData;
41+
import com.ly.doc.model.SystemPlaceholders;
2742
import com.ly.doc.model.request.RequestMapping;
2843
import com.mifmif.common.regex.Generex;
29-
import com.power.common.util.*;
44+
import com.power.common.util.CollectionUtil;
45+
import com.power.common.util.DateTimeUtil;
46+
import com.power.common.util.EnumUtil;
47+
import com.power.common.util.IDCardUtil;
48+
import com.power.common.util.RandomUtil;
49+
import com.power.common.util.StringUtil;
3050
import com.thoughtworks.qdox.JavaProjectBuilder;
31-
import com.thoughtworks.qdox.model.*;
32-
import com.thoughtworks.qdox.model.expression.*;
51+
import com.thoughtworks.qdox.model.DocletTag;
52+
import com.thoughtworks.qdox.model.JavaAnnotation;
53+
import com.thoughtworks.qdox.model.JavaClass;
54+
import com.thoughtworks.qdox.model.JavaField;
55+
import com.thoughtworks.qdox.model.JavaMember;
56+
import com.thoughtworks.qdox.model.JavaMethod;
57+
import com.thoughtworks.qdox.model.expression.Add;
58+
import com.thoughtworks.qdox.model.expression.AnnotationValue;
59+
import com.thoughtworks.qdox.model.expression.Constant;
60+
import com.thoughtworks.qdox.model.expression.Expression;
61+
import com.thoughtworks.qdox.model.expression.FieldRef;
3362
import net.datafaker.Faker;
3463
import org.apache.commons.codec.digest.DigestUtils;
3564
import org.apache.commons.lang3.StringUtils;
@@ -39,9 +68,35 @@
3968
import java.nio.file.Files;
4069
import java.nio.file.Paths;
4170
import java.text.DecimalFormat;
42-
import java.time.*;
71+
import java.time.Instant;
72+
import java.time.LocalDate;
73+
import java.time.LocalDateTime;
74+
import java.time.LocalTime;
75+
import java.time.MonthDay;
76+
import java.time.OffsetDateTime;
77+
import java.time.Year;
78+
import java.time.YearMonth;
79+
import java.time.ZoneId;
4380
import java.time.format.DateTimeFormatter;
44-
import java.util.*;
81+
import java.util.ArrayList;
82+
import java.util.Arrays;
83+
import java.util.Collections;
84+
import java.util.Date;
85+
import java.util.HashMap;
86+
import java.util.HashSet;
87+
import java.util.IdentityHashMap;
88+
import java.util.Iterator;
89+
import java.util.LinkedHashMap;
90+
import java.util.LinkedHashSet;
91+
import java.util.List;
92+
import java.util.Locale;
93+
import java.util.Map;
94+
import java.util.Objects;
95+
import java.util.Optional;
96+
import java.util.Set;
97+
import java.util.Stack;
98+
import java.util.TimeZone;
99+
import java.util.UUID;
45100
import java.util.logging.Logger;
46101
import java.util.regex.Pattern;
47102
import java.util.stream.Collectors;
@@ -1006,6 +1061,18 @@ public static String resolveAnnotationValue(ClassLoader classLoader, AnnotationV
10061061

10071062
}
10081063

1064+
/**
1065+
* resolve the string of {@link Add} which has {@link FieldRef}(to be exact is
1066+
* {@link FieldRef}) children, the value of {@link FieldRef} will be resolved with the
1067+
* real value of it if it is the static final member of any other class
1068+
* @param annotationValue annotationValue
1069+
* @return annotation value
1070+
*/
1071+
public static String resolveAnnotationValue(AnnotationValue annotationValue) {
1072+
ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
1073+
return resolveAnnotationValue(classLoader, annotationValue);
1074+
}
1075+
10091076
/**
10101077
* handle spring mvc RequestHeader value
10111078
* @param classLoader classLoader

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

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -149,6 +149,16 @@ public static String getParamMaxLength(ClassLoader classLoader, List<JavaAnnotat
149149
return maxLength;
150150
}
151151

152+
/**
153+
* get param max length
154+
* @param annotations annotation
155+
* @return max length
156+
*/
157+
public static String getParamMaxLength(List<JavaAnnotation> annotations) {
158+
ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
159+
return getParamMaxLength(classLoader, annotations);
160+
}
161+
152162
/**
153163
* Get JSR 303 validation comments.
154164
* @param showValidation Whether to show JSR validation information

0 commit comments

Comments
 (0)