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 public class FaceletAnnotationProcessor implements AnnotationProcessor {
36
37 private final AnnotationProcessorEnvironment env;
38 private final Set<AnnotationTypeDeclaration> atds;
39
40 public FaceletAnnotationProcessor(Set<AnnotationTypeDeclaration> atds,
41 AnnotationProcessorEnvironment env) {
42 this.atds = atds;
43 this.env = env;
44 this.env.getMessager().printNotice("Starting annotation process");
45
46 }
47
48 public void process() {
49 FaceletAnnotationVisitor visitor = new FaceletAnnotationVisitor(env);
50
51 for (AnnotationTypeDeclaration atd : atds) {
52 env.getMessager().printNotice("Collecting annotation "+atd);
53 Collection<Declaration> decls = env.getDeclarationsAnnotatedWith(atd);
54 for (Declaration decl : decls) {
55 decl.accept(DeclarationVisitors.getDeclarationScanner(visitor, DeclarationVisitors.NO_OP));
56 }
57 }
58 try {
59 visitor.process();
60 } catch (Exception e) {
61 e.printStackTrace();
62 }
63 }
64 }