1 package org.apache.maven.tools.plugin.extractor.annotations.scanner.visitors;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import java.util.HashMap;
23 import java.util.Map;
24
25 import org.codehaus.plexus.logging.Logger;
26 import org.objectweb.asm.AnnotationVisitor;
27 import org.objectweb.asm.Opcodes;
28
29
30
31
32
33 public class MojoAnnotationVisitor
34 extends AnnotationVisitor
35 {
36 private Logger logger;
37
38 private String annotationClassName;
39
40 private Map<String, Object> annotationValues = new HashMap<>();
41
42 MojoAnnotationVisitor( Logger logger, String annotationClassName )
43 {
44 super( Opcodes.ASM9 );
45 this.logger = logger;
46 this.annotationClassName = annotationClassName;
47 }
48
49 public Map<String, Object> getAnnotationValues()
50 {
51 return annotationValues;
52 }
53
54 @Override
55 public void visit( String name, Object value )
56 {
57 annotationValues.put( name, value );
58 }
59
60 @Override
61 public void visitEnum( String name, String desc, String value )
62 {
63 annotationValues.put( name, value );
64 }
65
66 @Override
67 public AnnotationVisitor visitAnnotation( String name, String desc )
68 {
69 return new MojoAnnotationVisitor( logger, this.annotationClassName );
70 }
71
72 @Override
73 public AnnotationVisitor visitArray( String s )
74 {
75 return new MojoAnnotationVisitor( logger, this.annotationClassName );
76 }
77
78 @Override
79 public void visitEnd()
80 {
81
82 }
83
84 public String getAnnotationClassName()
85 {
86 return annotationClassName;
87 }
88 }