--- old/test/tools/apt/mirror/declaration/GetAnno.java 2012-01-19 16:21:52.000000000 -0800 +++ /dev/null 2012-01-10 11:47:00.807870926 -0800 @@ -1,167 +0,0 @@ -/* - * Copyright (c) 2004, 2008, 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. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - - -/* - * @test - * @bug 4989091 5050782 5051962 - * @summary Tests Declaration.getAnnotation method - * @library ../../lib - * @compile -source 1.5 GetAnno.java - * @run main/othervm GetAnno - */ - - -import java.lang.annotation.*; -import java.util.*; - -import com.sun.mirror.declaration.*; -import com.sun.mirror.type.*; - -import static java.lang.annotation.RetentionPolicy.*; - - -public class GetAnno extends Tester { - - public static void main(String[] args) { - (new GetAnno()).run(); - } - - - // Annotations used by tests - - @Retention(RUNTIME) - @interface AT1 { - long l(); - String s(); - RetentionPolicy e(); - String[] sa(); - AT2 a(); - } - - @Inherited - @interface AT2 { - } - - @interface AT3 { - Class value() default String.class; - } - - // Array-valued elements of various kinds. - @interface AT4 { - boolean[] bs(); - long[] ls(); - String[] ss(); - RetentionPolicy[] es(); - AT2[] as(); - } - - - @Test(result="@GetAnno$AT1(l=7, s=sigh, e=CLASS, sa=[in, out], " + - "a=@GetAnno$AT2())") - @AT1(l=7, s="sigh", e=CLASS, sa={"in", "out"}, a=@AT2) - public Annotation getAnnotation() { - MethodDeclaration m = getMethod("getAnnotation"); - AT1 a = m.getAnnotation(AT1.class); - if (a.l() != 7 || !a.s().equals("sigh") || a.e() != CLASS) - throw new AssertionError(); - return a; - } - - @Test(result="null") - public Annotation getAnnotationNotThere() { - return thisClassDecl.getAnnotation(Deprecated.class); - } - - @Test(result="@GetAnno$AT4(bs=[true, false], " + - "ls=[9, 8], " + - "ss=[black, white], " + - "es=[CLASS, SOURCE], " + - "as=[@GetAnno$AT2(), @GetAnno$AT2()])") - @AT4(bs={true, false}, - ls={9, 8}, - ss={"black", "white"}, - es={CLASS, SOURCE}, - as={@AT2, @AT2}) - public AT4 getAnnotationArrayValues() { - MethodDeclaration m = getMethod("getAnnotationArrayValues"); - return m.getAnnotation(AT4.class); - } - - @Test(result="@GetAnno$AT3(value=java.lang.String)") - @AT3(String.class) - public AT3 getAnnotationWithClass1() { - MethodDeclaration m = getMethod("getAnnotationWithClass1"); - return m.getAnnotation(AT3.class); - } - - @Test(result="java.lang.String") - public TypeMirror getAnnotationWithClass2() { - AT3 a = getAnnotationWithClass1(); - try { - Class c = a.value(); - throw new AssertionError(); - } catch (MirroredTypeException e) { - return e.getTypeMirror(); - } - } - - @Test(result="boolean") - @AT3(boolean.class) - public TypeMirror getAnnotationWithPrim() { - MethodDeclaration m = getMethod("getAnnotationWithPrim"); - AT3 a = m.getAnnotation(AT3.class); - try { - Class c = a.value(); - throw new AssertionError(); - } catch (MirroredTypeException e) { - return e.getTypeMirror(); - } - } - - // 5050782 - @Test(result="null") - public AT2 getInheritedAnnotation() { - return thisClassDecl.getAnnotation(AT2.class); - } - - /** - * Verify that an annotation created by Declaration.getAnnotation() - * has the same hash code as a like annotation created by core - * reflection. - */ - @Test(result="true") - @AT1(l=7, s="sigh", e=CLASS, sa={"in", "out"}, a=@AT2) - public boolean getAnnotationHashCode() { - MethodDeclaration m1 = getMethod("getAnnotationHashCode"); - AT1 a1 = m1.getAnnotation(AT1.class); - java.lang.reflect.Method m2 = null; - try { - m2 = this.getClass().getMethod("getAnnotationHashCode"); - } catch (NoSuchMethodException e) { - assert false; - } - AT1 a2 = m2.getAnnotation(AT1.class); - return a1.hashCode() == a2.hashCode(); - } -}