src/share/classes/com/sun/tools/javac/processing/JavacProcessingEnvironment.java

changeset 1876
1908e86ee49a
parent 1728
43c2f7cb9c76
child 1969
7de231613e4a
equal deleted inserted replaced
1875:f559ef7568ce 1876:1908e86ee49a
34 import java.util.*; 34 import java.util.*;
35 import java.util.regex.*; 35 import java.util.regex.*;
36 36
37 import javax.annotation.processing.*; 37 import javax.annotation.processing.*;
38 import javax.lang.model.SourceVersion; 38 import javax.lang.model.SourceVersion;
39 import javax.lang.model.element.AnnotationMirror; 39 import javax.lang.model.element.*;
40 import javax.lang.model.element.Element;
41 import javax.lang.model.element.PackageElement;
42 import javax.lang.model.element.TypeElement;
43 import javax.lang.model.util.*; 40 import javax.lang.model.util.*;
44 import javax.tools.DiagnosticListener; 41 import javax.tools.DiagnosticListener;
45 import javax.tools.JavaFileManager; 42 import javax.tools.JavaFileManager;
46 import javax.tools.JavaFileObject; 43 import javax.tools.JavaFileObject;
47 import javax.tools.StandardJavaFileManager; 44 import javax.tools.StandardJavaFileManager;
760 // Don't scan enclosed elements of a package 757 // Don't scan enclosed elements of a package
761 return p; 758 return p;
762 } 759 }
763 760
764 @Override 761 @Override
765 public Set<TypeElement> scan(Element e, Set<TypeElement> p) { 762 public Set<TypeElement> visitType(TypeElement e, Set<TypeElement> p) {
763 // Type parameters are not considered to be enclosed by a type
764 scan(e.getTypeParameters(), p);
765 return scan(e.getEnclosedElements(), p);
766 }
767
768 @Override
769 public Set<TypeElement> visitExecutable(ExecutableElement e, Set<TypeElement> p) {
770 // Type parameters are not considered to be enclosed by an executable
771 scan(e.getTypeParameters(), p);
772 return scan(e.getEnclosedElements(), p);
773 }
774
775 void addAnnotations(Element e, Set<TypeElement> p) {
766 for (AnnotationMirror annotationMirror : 776 for (AnnotationMirror annotationMirror :
767 elements.getAllAnnotationMirrors(e) ) { 777 elements.getAllAnnotationMirrors(e) ) {
768 Element e2 = annotationMirror.getAnnotationType().asElement(); 778 Element e2 = annotationMirror.getAnnotationType().asElement();
769 p.add((TypeElement) e2); 779 p.add((TypeElement) e2);
770 } 780 }
781 }
782
783 @Override
784 public Set<TypeElement> scan(Element e, Set<TypeElement> p) {
785 addAnnotations(e, p);
771 return super.scan(e, p); 786 return super.scan(e, p);
772 } 787 }
773 } 788 }
774 789
775 private boolean callProcessor(Processor proc, 790 private boolean callProcessor(Processor proc,

mercurial