1 /*******************************************************************************
2  * Copyright (c) 2007 BEA Systems, Inc.
3  *
4  * This program and the accompanying materials
5  * are made available under the terms of the Eclipse Public License 2.0
6  * which accompanies this distribution, and is available at
7  * https://www.eclipse.org/legal/epl-2.0/
8  *
9  * SPDX-License-Identifier: EPL-2.0
10  *
11  * Contributors:
12  *    wharley@bea.com - initial implementation
13  *
14  *******************************************************************************/
15 package org.eclipse.jdt.compiler.apt.tests.annotations;
16 
17 /**
18  * These annotation types are visible to processor code and can thus be used
19  * with {@link javax.lang.model.element.Element#getAnnotation(Class)}, which
20  * returns a reflection proxy of the actual annotation class rather than just
21  * an AnnotationMirror.
22  */
23 public @interface TypedAnnos
24 {
25 	public enum Enum { A, B, C }
26 
27 	public @interface AnnoByte {
value()28 		byte value();
29 	}
30 	public @interface AnnoBoolean {
value()31 		boolean value();
32 	}
33 	public @interface AnnoChar {
value()34 		char value();
35 	}
36 	public @interface AnnoDouble {
value()37 		double value();
38 	}
39 	public @interface AnnoFloat {
value()40 		float value();
41 	}
42 	public @interface AnnoInt {
value()43 		int value();
44 	}
45 	public @interface AnnoLong {
value()46 		long value();
47 	}
48 	public @interface AnnoShort {
value()49 		short value();
50 	}
51 	public @interface AnnoString {
value()52 		String value();
53 	}
54 	public @interface AnnoEnumConst {
value()55 		Enum value();
56 	}
57 	public @interface AnnoType {
value()58 		Class<?> value();
59 	}
60 	public @interface AnnoAnnoChar {
value()61 		AnnoChar value();
62 	}
63 	public @interface AnnoArrayInt {
value()64 		int[] value();
65 	}
66 	public @interface AnnoArrayString {
value()67 		String[] value();
68 	}
69 	public @interface AnnoArrayEnumConst {
value()70 		Enum[] value();
71 	}
72 	public @interface AnnoArrayAnnoChar {
value()73 		AnnoChar[] value();
74 	}
75 	public @interface AnnoArrayType {
value()76 		Class<?>[] value();
77 	}
78 }
79