|
20 | 20 | */ |
21 | 21 | package com.ly.doc.utils; |
22 | 22 |
|
23 | | -import com.ly.doc.constants.*; |
| 23 | +import com.ly.doc.constants.DocAnnotationConstants; |
| 24 | +import com.ly.doc.constants.DocGlobalConstants; |
| 25 | +import com.ly.doc.constants.DocTags; |
| 26 | +import com.ly.doc.constants.JAXRSAnnotations; |
| 27 | +import com.ly.doc.constants.JakartaJaxrsAnnotations; |
| 28 | +import com.ly.doc.constants.JavaTypeConstants; |
| 29 | +import com.ly.doc.constants.MediaType; |
24 | 30 | import com.ly.doc.extension.dict.DictionaryValuesResolver; |
25 | | -import com.ly.doc.model.*; |
| 31 | +import com.ly.doc.model.ApiConfig; |
| 32 | +import com.ly.doc.model.ApiDataDictionary; |
| 33 | +import com.ly.doc.model.ApiDocDict; |
| 34 | +import com.ly.doc.model.ApiErrorCode; |
| 35 | +import com.ly.doc.model.ApiErrorCodeDictionary; |
| 36 | +import com.ly.doc.model.ApiReqParam; |
| 37 | +import com.ly.doc.model.DataDict; |
| 38 | +import com.ly.doc.model.DocJavaField; |
| 39 | +import com.ly.doc.model.FormData; |
| 40 | +import com.ly.doc.model.SystemPlaceholders; |
26 | 41 | import com.ly.doc.model.request.RequestMapping; |
27 | 42 | import com.mifmif.common.regex.Generex; |
28 | | -import com.power.common.util.*; |
| 43 | +import com.power.common.util.CollectionUtil; |
| 44 | +import com.power.common.util.DateTimeUtil; |
| 45 | +import com.power.common.util.EnumUtil; |
| 46 | +import com.power.common.util.IDCardUtil; |
| 47 | +import com.power.common.util.RandomUtil; |
| 48 | +import com.power.common.util.StringUtil; |
29 | 49 | import com.thoughtworks.qdox.JavaProjectBuilder; |
30 | | -import com.thoughtworks.qdox.model.*; |
| 50 | +import com.thoughtworks.qdox.model.DocletTag; |
| 51 | +import com.thoughtworks.qdox.model.JavaAnnotation; |
| 52 | +import com.thoughtworks.qdox.model.JavaClass; |
| 53 | +import com.thoughtworks.qdox.model.JavaField; |
| 54 | +import com.thoughtworks.qdox.model.JavaMember; |
| 55 | +import com.thoughtworks.qdox.model.JavaMethod; |
31 | 56 | import com.thoughtworks.qdox.model.expression.Add; |
32 | 57 | import com.thoughtworks.qdox.model.expression.AnnotationValue; |
| 58 | +import com.thoughtworks.qdox.model.expression.Constant; |
33 | 59 | import com.thoughtworks.qdox.model.expression.Expression; |
34 | 60 | import com.thoughtworks.qdox.model.expression.FieldRef; |
35 | 61 | import net.datafaker.Faker; |
36 | 62 | import org.apache.commons.codec.digest.DigestUtils; |
37 | 63 | import org.apache.commons.lang3.StringUtils; |
38 | 64 |
|
39 | 65 | import java.text.DecimalFormat; |
40 | | -import java.time.*; |
| 66 | +import java.time.Instant; |
| 67 | +import java.time.LocalDate; |
| 68 | +import java.time.LocalDateTime; |
| 69 | +import java.time.LocalTime; |
| 70 | +import java.time.MonthDay; |
| 71 | +import java.time.OffsetDateTime; |
| 72 | +import java.time.Year; |
| 73 | +import java.time.YearMonth; |
| 74 | +import java.time.ZoneId; |
41 | 75 | import java.time.format.DateTimeFormatter; |
42 | | -import java.util.*; |
| 76 | +import java.util.ArrayList; |
| 77 | +import java.util.Arrays; |
| 78 | +import java.util.Collections; |
| 79 | +import java.util.Date; |
| 80 | +import java.util.HashMap; |
| 81 | +import java.util.HashSet; |
| 82 | +import java.util.IdentityHashMap; |
| 83 | +import java.util.Iterator; |
| 84 | +import java.util.LinkedHashMap; |
| 85 | +import java.util.LinkedHashSet; |
| 86 | +import java.util.List; |
| 87 | +import java.util.Locale; |
| 88 | +import java.util.Map; |
| 89 | +import java.util.Objects; |
| 90 | +import java.util.Optional; |
| 91 | +import java.util.Set; |
| 92 | +import java.util.Stack; |
| 93 | +import java.util.TimeZone; |
| 94 | +import java.util.UUID; |
43 | 95 | import java.util.logging.Logger; |
44 | 96 | import java.util.regex.Pattern; |
45 | 97 | import java.util.stream.Collectors; |
@@ -969,30 +1021,36 @@ public static String getPathUrl(ClassLoader classLoader, JavaAnnotation annotati |
969 | 1021 | * @return annotation value |
970 | 1022 | */ |
971 | 1023 | public static String resolveAnnotationValue(ClassLoader classLoader, AnnotationValue annotationValue) { |
| 1024 | + // if it is a constant, return its value directly |
| 1025 | + if (annotationValue instanceof Constant) { |
| 1026 | + return ((Constant) annotationValue).getValue().toString(); |
| 1027 | + } |
| 1028 | + // if it is an add operation, return the result directly |
972 | 1029 | if (annotationValue instanceof Add) { |
973 | 1030 | Add add = (Add) annotationValue; |
974 | 1031 | String leftValue = resolveAnnotationValue(classLoader, add.getLeft()); |
975 | 1032 | String rightValue = resolveAnnotationValue(classLoader, add.getRight()); |
976 | 1033 | return StringUtil.removeQuotes(leftValue + rightValue); |
977 | 1034 | } |
978 | | - else { |
979 | | - if (annotationValue instanceof FieldRef) { |
980 | | - FieldRef fieldRef = (FieldRef) annotationValue; |
981 | | - JavaField javaField = fieldRef.getField(); |
982 | | - if (javaField != null) { |
983 | | - String fieldValue = JavaFieldUtil.getConstantsFieldValue(classLoader, javaField.getDeclaringClass(), |
984 | | - javaField.getName()); |
985 | | - if (StringUtil.isNotEmpty(fieldValue)) { |
986 | | - return StringUtil.removeQuotes(fieldValue); |
987 | | - } |
988 | | - return StringUtil.removeQuotes(javaField.getInitializationExpression()); |
| 1035 | + // if it is a field reference, return its value directly |
| 1036 | + if (annotationValue instanceof FieldRef) { |
| 1037 | + FieldRef fieldRef = (FieldRef) annotationValue; |
| 1038 | + JavaField javaField = fieldRef.getField(); |
| 1039 | + if (javaField != null) { |
| 1040 | + String fieldValue = JavaFieldUtil.getConstantsFieldValue(classLoader, javaField.getDeclaringClass(), |
| 1041 | + javaField.getName()); |
| 1042 | + if (StringUtil.isNotEmpty(fieldValue)) { |
| 1043 | + return StringUtil.removeQuotes(fieldValue); |
989 | 1044 | } |
| 1045 | + return StringUtil.removeQuotes(javaField.getInitializationExpression()); |
990 | 1046 | } |
991 | | - return Optional.ofNullable(annotationValue) |
992 | | - .map(Expression::getParameterValue) |
993 | | - .map(Object::toString) |
994 | | - .orElse(StringUtil.EMPTY); |
995 | 1047 | } |
| 1048 | + // default return |
| 1049 | + return Optional.ofNullable(annotationValue) |
| 1050 | + .map(Expression::getParameterValue) |
| 1051 | + .map(Object::toString) |
| 1052 | + .orElse(StringUtil.EMPTY); |
| 1053 | + |
996 | 1054 | } |
997 | 1055 |
|
998 | 1056 | /** |
|
0 commit comments