1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package org.apache.myfaces.tobago.apt;
21
22 import com.sun.mirror.apt.AnnotationProcessor;
23 import com.sun.mirror.apt.AnnotationProcessorEnvironment;
24 import com.sun.mirror.declaration.AnnotationTypeDeclaration;
25 import com.sun.mirror.declaration.Declaration;
26 import com.sun.mirror.util.DeclarationVisitors;
27
28 import java.util.Collection;
29 import java.util.Set;
30
31
32
33
34
35
36 public class TobagoAnnotationProcessor implements AnnotationProcessor {
37
38 private final AnnotationProcessorEnvironment env;
39 private final Set<AnnotationTypeDeclaration> atds;
40
41 public TobagoAnnotationProcessor(Set<AnnotationTypeDeclaration> atds,
42 AnnotationProcessorEnvironment env) {
43 this.atds = atds;
44 this.env = env;
45 this.env.getMessager().printNotice("Starting annotation process");
46
47 }
48
49 public void process() {
50 TobagoAnnotationVisitor visitor = new TobagoAnnotationVisitor(env);
51
52 for (AnnotationTypeDeclaration atd : atds) {
53 env.getMessager().printNotice("Collecting annotation "+atd);
54 Collection<Declaration> decls = env.getDeclarationsAnnotatedWith(atd);
55 for (Declaration decl : decls) {
56 decl.accept(DeclarationVisitors.getDeclarationScanner(visitor, DeclarationVisitors.NO_OP));
57 }
58 }
59
60 try {
61 visitor.process();
62 } catch (Exception e) {
63 e.printStackTrace();
64 }
65 }
66
67 }