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.apt.AnnotationProcessorFactory;
25 import com.sun.mirror.declaration.AnnotationTypeDeclaration;
26
27 import java.util.Arrays;
28 import java.util.Collection;
29 import java.util.Collections;
30 import java.util.Set;
31
32
33
34
35
36
37 public class TobagoAnnotationProcessorFactory implements AnnotationProcessorFactory {
38
39 private static final Collection<String> SUPPORTED_ANNOTATIONS
40 = Collections.unmodifiableCollection(Arrays.asList(
41 "org.apache.myfaces.tobago.apt.annotation.Tag",
42 "org.apache.myfaces.tobago.apt.annotation.TagAttribute",
43 "org.apache.myfaces.tobago.apt.annotation.Taglib",
44 "org.apache.myfaces.tobago.apt.annotation.UIComponentTagAttribute"));
45
46 private static final Collection<String> SUPPORTED_OPTIONS = Collections.emptyList();
47
48 private TobagoAnnotationProcessor annotationProcessor = null;
49
50 public Collection<String> supportedAnnotationTypes() {
51 return SUPPORTED_ANNOTATIONS;
52 }
53
54 public Collection<String> supportedOptions() {
55 return SUPPORTED_OPTIONS;
56 }
57
58 public AnnotationProcessor getProcessorFor(Set<AnnotationTypeDeclaration> atds,
59 AnnotationProcessorEnvironment env) {
60 if (annotationProcessor == null) {
61 annotationProcessor = new TobagoAnnotationProcessor(atds, env);
62 }
63 return annotationProcessor;
64 }
65
66
67 }