|
12 | 12 | import javax.lang.model.element.*; |
13 | 13 | import javax.lang.model.type.DeclaredType; |
14 | 14 | import javax.lang.model.type.TypeMirror; |
15 | | -import javax.lang.model.util.Elements; |
16 | 15 | import javax.lang.model.util.Types; |
17 | 16 | import java.util.ArrayList; |
18 | 17 | import java.util.List; |
|
22 | 21 | import static ru.tinkoff.kora.annotation.processor.common.CommonUtils.getNameConverter; |
23 | 22 |
|
24 | 23 | public class WriterTypeMetaParser { |
25 | | - private final ProcessingEnvironment env; |
26 | | - private final Elements elements; |
27 | 24 | private final Types types; |
28 | 25 | private final KnownType knownTypes; |
29 | | - private final TypeMirror jsonFieldAnnotation; |
30 | 26 |
|
31 | 27 | public WriterTypeMetaParser(ProcessingEnvironment env, KnownType knownTypes) { |
32 | | - this.env = env; |
33 | | - this.elements = env.getElementUtils(); |
34 | 28 | this.types = env.getTypeUtils(); |
35 | 29 | this.knownTypes = knownTypes; |
36 | | - var jsonFieldElement = this.elements.getTypeElement(JsonTypes.jsonFieldAnnotation.canonicalName()); |
37 | | - this.jsonFieldAnnotation = jsonFieldElement.asType(); |
38 | 30 | } |
39 | 31 |
|
40 | 32 | public JsonClassWriterMeta parse(TypeElement jsonClass, TypeMirror typeMirror) { |
@@ -66,7 +58,7 @@ private List<VariableElement> parseFields(TypeElement typeElement) { |
66 | 58 |
|
67 | 59 |
|
68 | 60 | private FieldMeta parseField(TypeElement jsonClass, VariableElement field) { |
69 | | - var jsonField = this.findJsonField(field); |
| 61 | + var jsonField = AnnotationUtils.findAnnotation(field, JsonTypes.jsonFieldAnnotation); |
70 | 62 |
|
71 | 63 | var fieldNameConverter = getNameConverter(jsonClass); |
72 | 64 | var fieldTypeMirror = field.asType(); |
@@ -100,15 +92,6 @@ private WriterFieldType parseWriterFieldType(TypeMirror jsonClass) { |
100 | 92 | } |
101 | 93 | } |
102 | 94 |
|
103 | | - @Nullable |
104 | | - private AnnotationMirror findJsonField(VariableElement param) { |
105 | | - return param.getAnnotationMirrors() |
106 | | - .stream() |
107 | | - .filter(a -> this.types.isSameType(a.getAnnotationType(), this.jsonFieldAnnotation)) |
108 | | - .findFirst() |
109 | | - .orElse(null); |
110 | | - } |
111 | | - |
112 | 95 | private String parseJsonName(VariableElement param, @Nullable AnnotationMirror jsonField, @Nullable NameConverter nameConverter) { |
113 | 96 | if (jsonField == null) { |
114 | 97 | if (nameConverter != null) { |
|
0 commit comments