1 /*******************************************************************************
2  * Copyright (c) 2012, 2013 IBM Corporation and others.
3  * All rights reserved. This program and the accompanying materials
4  * are made available under the terms of the Eclipse Public License v1.0
5  * which accompanies this distribution, and is available at
6  * http://www.eclipse.org/legal/epl-v10.html
7  *
8  * Contributors:
9  *     IBM Corporation - initial API and implementation
10  *        Andy Clement (GoPivotal, Inc) aclement@gopivotal.com - Contributions for
11  *                          Bug 383624 - [1.8][compiler] Revive code generation support for type annotations (from Olivier's work)
12  *        Stephan Herrmann - Contribution for
13  *							Bug 392384 - [1.8][compiler][null] Restore nullness info from type annotations in class files
14  *******************************************************************************/
15 package org.eclipse.jdt.internal.compiler.codegen;
16 
17 public interface AnnotationTargetTypeConstants {
18 
19 	// Targets for type parameter declarations
20 	int CLASS_TYPE_PARAMETER                 = 0x00;
21 	int METHOD_TYPE_PARAMETER                = 0x01;
22 
23 	// Targets that may be externally visible in classes and members
24 	int CLASS_EXTENDS                        = 0x10;
25 	int CLASS_TYPE_PARAMETER_BOUND           = 0x11;
26 	int METHOD_TYPE_PARAMETER_BOUND          = 0x12;
27 	int FIELD                                = 0x13;
28 	int METHOD_RETURN                        = 0x14;
29 	int METHOD_RECEIVER                      = 0x15;
30 	int METHOD_FORMAL_PARAMETER              = 0x16;
31 	int THROWS                               = 0x17;
32 
33 	// Targets for type uses that occur only within code blocks
34 	int LOCAL_VARIABLE                       = 0x40;
35 	int RESOURCE_VARIABLE                    = 0x41;
36 	int EXCEPTION_PARAMETER                  = 0x42;
37 	int INSTANCEOF                           = 0x43;
38 	int NEW                                  = 0x44;
39 	int CONSTRUCTOR_REFERENCE                = 0x45;
40 	int METHOD_REFERENCE                     = 0x46;
41 	int CAST                                 = 0x47;
42 	int CONSTRUCTOR_INVOCATION_TYPE_ARGUMENT = 0x48;
43 	int METHOD_INVOCATION_TYPE_ARGUMENT      = 0x49;
44 	int CONSTRUCTOR_REFERENCE_TYPE_ARGUMENT  = 0x4A;
45 	int METHOD_REFERENCE_TYPE_ARGUMENT       = 0x4B;
46 
47 	// Details for type_path:
48 	int NEXT_ARRAY_DIMENSION				 = 0x00;
49 	int NEXT_NESTED_TYPE					 = 0x01;
50 	int WILDCARD_BOUND						 = 0x02;
51 	int TYPE_ARGUMENT						 = 0x03;
52 }
53