1 package org.apache.beehive.wsm.processor.apt; 2 3 20 21 import java.util.Collection ; 22 import java.util.Set ; 23 24 import com.sun.mirror.apt.AnnotationProcessor; 25 import com.sun.mirror.apt.AnnotationProcessorEnvironment; 26 import com.sun.mirror.declaration.AnnotationTypeDeclaration; 27 import com.sun.mirror.declaration.Declaration; 28 import org.apache.beehive.wsm.processor.ProcessorException; 29 30 65 abstract public class TwoPhaseAnnotationProcessor implements AnnotationProcessor { 66 public TwoPhaseAnnotationProcessor(Set <AnnotationTypeDeclaration> atds, 67 AnnotationProcessorEnvironment env) { 68 _atds = atds; 69 _env = env; 70 } 71 72 75 public void process() { 76 check(); 77 generate(); 78 } 79 80 84 public void check() { 85 for (AnnotationTypeDeclaration atd : _atds) { 86 Collection <Declaration> decls = _env.getDeclarationsAnnotatedWith(atd); 87 for (Declaration decl : decls) { 88 check(decl); 89 } 90 } 91 } 92 93 97 public void generate() throws ProcessorException { 98 for (AnnotationTypeDeclaration atd : _atds) { 99 Collection <Declaration> decls = _env.getDeclarationsAnnotatedWith(atd); 100 for (Declaration decl : decls) { 101 generate(decl); 102 } 103 } 104 } 105 106 119 abstract public void check(Declaration decl); 120 121 125 abstract public void generate(Declaration decl); 126 127 protected AnnotationProcessorEnvironment getAnnotationProcessorEnvironment() { 128 return _env; 129 } 130 131 Set <AnnotationTypeDeclaration> _atds; 132 AnnotationProcessorEnvironment _env; 133 } 134 | Popular Tags |