1 /*******************************************************************************
2  * Copyright (c) 2000, 2018 IBM Corporation and others.
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  *     IBM Corporation - initial API and implementation
13  *******************************************************************************/
14 package org.eclipse.jdt.core.util;
15 
16 /**
17  * Description of constant pool constants as described in the JVM specifications.
18  *
19  * @since 2.0
20  * @noimplement This interface is not intended to be implemented by clients.
21  */
22 public interface IConstantPoolConstant {
23 
24 	int CONSTANT_Class = 7;
25 	int CONSTANT_Fieldref = 9;
26 	int CONSTANT_Methodref = 10;
27 	int CONSTANT_InterfaceMethodref = 11;
28 	int CONSTANT_String = 8;
29 	int CONSTANT_Integer = 3;
30 	int CONSTANT_Float = 4;
31 	int CONSTANT_Long = 5;
32 	int CONSTANT_Double = 6;
33 	int CONSTANT_NameAndType = 12;
34 	int CONSTANT_Utf8 = 1;
35 	/**
36 	 * @since 3.8
37 	 */
38 	int CONSTANT_MethodHandle = 15;
39 	/**
40 	 * @since 3.8
41 	 */
42 	int CONSTANT_MethodType = 16;
43 	/**
44 	 * @since 3.8
45 	 */
46 	int CONSTANT_InvokeDynamic = 18;
47 	/**
48 	 * proposed new name in JVMLS11
49 	 * @since 3.16
50 	 */
51 	int CONSTANT_DynamicCallSite = CONSTANT_InvokeDynamic;
52 
53 	/**
54 	 * @since 3.14
55 	 */
56 	int CONSTANT_Module = 19;
57 	/**
58 	 * @since 3.14
59 	 */
60 	int CONSTANT_Package = 20;
61 	/**
62 	 * For the proposed section of JVMLS11 4.4.13 The CONSTANT_Dynamic_info Structure
63 	 * @since 3.16
64 	 */
65 	int CONSTANT_Dynamic = 17;
66 
67 	int CONSTANT_Methodref_SIZE = 5;
68 	int CONSTANT_Class_SIZE = 3;
69 	int CONSTANT_Double_SIZE = 9;
70 	int CONSTANT_Fieldref_SIZE = 5;
71 	int CONSTANT_Float_SIZE = 5;
72 	int CONSTANT_Integer_SIZE = 5;
73 	int CONSTANT_InterfaceMethodref_SIZE = 5;
74 	int CONSTANT_Long_SIZE = 9;
75 	int CONSTANT_String_SIZE = 3;
76 	int CONSTANT_Utf8_SIZE = 3;
77 	int CONSTANT_NameAndType_SIZE = 5;
78 	/**
79 	 * @since 3.8
80 	 */
81 	int CONSTANT_MethodHandle_SIZE = 4;
82 	/**
83 	 * @since 3.8
84 	 */
85 	int CONSTANT_MethodType_SIZE = 3;
86 	/**
87 	 * @since 3.8
88 	 */
89 	int CONSTANT_InvokeDynamic_SIZE = 5;
90 
91 	/**
92 	 * @since 3.16
93 	 */
94 	int CONSTANT_Dynamic_SIZE = 5;
95 	/**
96 	 * @since 3.14
97 	 */
98 	int CONSTANT_Module_SIZE = 3;
99 
100 	/**
101 	 * @since 3.14
102 	 */
103 	int CONSTANT_Package_SIZE = 3;
104 	/**
105 	 * The constant is described at 5.4.3.5 in the Java 7 VM specification (part 3).
106 	 * @since 3.8
107 	 */
108 	int METHOD_TYPE_REF_GetField = 1;
109 	/**
110 	 * The constant is described at 5.4.3.5 in the Java 7 VM specification (part 3).
111 	 * @since 3.8
112 	 */
113 	int METHOD_TYPE_REF_GetStatic = 2;
114 	/**
115 	 * The constant is described at 5.4.3.5 in the Java 7 VM specification (part 3).
116 	 * @since 3.8
117 	 */
118 	int METHOD_TYPE_REF_PutField = 3;
119 	/**
120 	 * The constant is described at 5.4.3.5 in the Java 7 VM specification (part 3).
121 	 * @since 3.8
122 	 */
123 	int METHOD_TYPE_REF_PutStatic = 4;
124 	/**
125 	 * The constant is described at 5.4.3.5 in the Java 7 VM specification (part 3).
126 	 * @since 3.8
127 	 */
128 	int METHOD_TYPE_REF_InvokeVirtual = 5;
129 	/**
130 	 * The constant is described at 5.4.3.5 in the Java 7 VM specification (part 3).
131 	 * @since 3.8
132 	 */
133 	int METHOD_TYPE_REF_InvokeStatic = 6;
134 	/**
135 	 * The constant is described at 5.4.3.5 in the Java 7 VM specification (part 3).
136 	 * @since 3.8
137 	 */
138 	int METHOD_TYPE_REF_InvokeSpecial = 7;
139 	/**
140 	 * The constant is described at 5.4.3.5 in the Java 7 VM specification (part 3).
141 	 * @since 3.8
142 	 */
143 	int METHOD_TYPE_REF_NewInvokeSpecial = 8;
144 	/**
145 	 * The constant is described at 5.4.3.5 in the Java 7 VM specification (part 3).
146 	 * @since 3.8
147 	 */
148 	int METHOD_TYPE_REF_InvokeInterface = 9;
149 }
150