< prev index next >
src/jdk.compiler/share/classes/com/sun/tools/javac/processing/JavacRoundEnvironment.java
Print this page
*** 1,7 ****
/*
! * Copyright (c) 2005, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation. Oracle designates this
--- 1,7 ----
/*
! * Copyright (c) 2005, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation. Oracle designates this
*** 168,177 ****
--- 168,189 ----
}
}
e.accept(this, annotation);
return annotatedElements;
}
+
+ @Override @DefinedBy(Api.LANGUAGE_MODEL)
+ public Set<Element> visitModule(ModuleElement e, TypeElement annotation) {
+ // Do not scan a module
+ return annotatedElements;
+ }
+
+ @Override @DefinedBy(Api.LANGUAGE_MODEL)
+ public Set<Element> visitPackage(PackageElement e, TypeElement annotation) {
+ // Do not scan a package
+ return annotatedElements;
+ }
}
// Could be written as a local class inside getElementsAnnotatedWithAny
private class AnnotationSetMultiScanner extends
ElementScanningIncludingTypeParameters<Set<Element>, Set<TypeElement>> {
*** 191,200 ****
--- 203,224 ----
}
}
e.accept(this, annotations);
return annotatedElements;
}
+
+ @Override @DefinedBy(Api.LANGUAGE_MODEL)
+ public Set<Element> visitModule(ModuleElement e, Set<TypeElement> annotations) {
+ // Do not scan a module
+ return annotatedElements;
+ }
+
+ @Override @DefinedBy(Api.LANGUAGE_MODEL)
+ public Set<Element> visitPackage(PackageElement e, Set<TypeElement> annotations) {
+ // Do not scan a package
+ return annotatedElements;
+ }
}
private static abstract class ElementScanningIncludingTypeParameters<R, P>
extends ElementScanner9<R, P> {
*** 222,235 ****
*/
@DefinedBy(Api.ANNOTATION_PROCESSING)
public Set<? extends Element> getElementsAnnotatedWith(Class<? extends Annotation> a) {
throwIfNotAnnotation(a);
String name = a.getCanonicalName();
if (name == null)
return Collections.emptySet();
else {
! TypeElement annotationType = eltUtils.getTypeElement(name);
if (annotationType == null)
return Collections.emptySet();
else
return getElementsAnnotatedWith(annotationType);
}
--- 246,271 ----
*/
@DefinedBy(Api.ANNOTATION_PROCESSING)
public Set<? extends Element> getElementsAnnotatedWith(Class<? extends Annotation> a) {
throwIfNotAnnotation(a);
String name = a.getCanonicalName();
+ String moduleName = a.getModule().getName();
+
if (name == null)
return Collections.emptySet();
else {
! ModuleElement annotationModule = null;
! if (moduleName != null) {
! annotationModule = eltUtils.getModuleElement(moduleName);
! } else {
! // System.out.println("Trying to get the module of an unnamed module");
! annotationModule = eltUtils.getModuleElement("");
! // System.out.println("Is the unnamed module null? " + (annotationModule == null));
! }
!
! TypeElement annotationType = eltUtils.getTypeElement(annotationModule, name);
!
if (annotationType == null)
return Collections.emptySet();
else
return getElementsAnnotatedWith(annotationType);
}
*** 240,252 ****
List<TypeElement> annotationsAsElements = new ArrayList<>(annotations.size());
for (Class<? extends Annotation> annotation : annotations) {
throwIfNotAnnotation(annotation);
String name = annotation.getCanonicalName();
if (name == null)
continue;
! annotationsAsElements.add(eltUtils.getTypeElement(name));
}
return getElementsAnnotatedWithAny(annotationsAsElements.toArray(new TypeElement[0]));
}
--- 276,291 ----
List<TypeElement> annotationsAsElements = new ArrayList<>(annotations.size());
for (Class<? extends Annotation> annotation : annotations) {
throwIfNotAnnotation(annotation);
String name = annotation.getCanonicalName();
+ String moduleName = annotation.getModule().getName();
if (name == null)
continue;
! annotationsAsElements.add(eltUtils.getTypeElement(eltUtils.getModuleElement(moduleName == null ?
! "" : moduleName),
! name));
}
return getElementsAnnotatedWithAny(annotationsAsElements.toArray(new TypeElement[0]));
}
< prev index next >