Path: blob/aarch64-shenandoah-jdk8u272-b10/langtools/test/tools/javac/processing/6413690/T6413690.java
32253 views
/*1* Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved.2* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.3*4* This code is free software; you can redistribute it and/or modify it5* under the terms of the GNU General Public License version 2 only, as6* published by the Free Software Foundation.7*8* This code is distributed in the hope that it will be useful, but WITHOUT9* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or10* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License11* version 2 for more details (a copy is included in the LICENSE file that12* accompanied this code).13*14* You should have received a copy of the GNU General Public License version15* 2 along with this work; if not, write to the Free Software Foundation,16* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.17*18* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA19* or visit www.oracle.com if you need additional information or have any20* questions.21*/2223/*24* @test25* @bug 6413690 638001826* @summary JavacProcessingEnvironment does not enter trees from preceding rounds27* @author Peter von der Ah\u00e928* @library /tools/javac/lib29* @build JavacTestingAbstractProcessor30* @compile T6413690.java31* @compile -XDfatalEnterError -verbose -processor T6413690 src/Super.java TestMe.java32*/3334import java.io.IOException;35import java.io.Writer;36import java.util.Set;37import javax.annotation.processing.AbstractProcessor;38import javax.annotation.processing.Filer;39import javax.annotation.processing.RoundEnvironment;40import javax.annotation.processing.SupportedAnnotationTypes;41import javax.lang.model.element.Element;42import javax.lang.model.element.TypeElement;43import javax.lang.model.util.Elements;4445@SupportedAnnotationTypes("TestMe")46public class T6413690 extends JavacTestingAbstractProcessor {47public boolean process(Set<? extends TypeElement> annotations,48RoundEnvironment roundEnvironment) {49TypeElement testMe = elements.getTypeElement(TestMe.class.getName());50Set<? extends Element> supers = roundEnvironment.getElementsAnnotatedWith(testMe);51try {52for (Element sup : supers) {53Writer sub = filer.createSourceFile(sup.getSimpleName() + "_GENERATED").openWriter();54sub.write(String.format("class %s_GENERATED extends %s {}",55sup.getSimpleName(),56((TypeElement)sup).getQualifiedName()));57sub.close();58}59} catch (IOException ex) {60throw new RuntimeException(ex);61}62return true;63}64}656667