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