/*
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 *
 *    http://www.apache.org/licenses/LICENSE-2.0
 *
 *  Unless required by applicable law or agreed to in writing, software
 *  distributed under the License is distributed on an "AS IS" BASIS,
 *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *  See the License for the specific language governing permissions and
 *  limitations under the License.
 *
 */
package org.apache.tomcat.util.bcel;

Constants for the project, mostly defined in the JVM specification.
/** * Constants for the project, mostly defined in the JVM specification. */
public final class Const { /** One of the access flags for fields, methods, or classes. * @see <a href="https://docs.oracle.com/javase/specs/jvms/se9/html/jvms-4.html#jvms-4.1-200-E.1"> * Flag definitions for Classes in the Java Virtual Machine Specification (Java SE 9 Edition).</a> * @see <a href="https://docs.oracle.com/javase/specs/jvms/se9/html/jvms-4.html#jvms-4.5"> * Flag definitions for Fields in the Java Virtual Machine Specification (Java SE 9 Edition).</a> * @see <a href="https://docs.oracle.com/javase/specs/jvms/se9/html/jvms-4.html#jvms-4.6"> * Flag definitions for Methods in the Java Virtual Machine Specification (Java SE 9 Edition).</a> * @see <a href="https://docs.oracle.com/javase/specs/jvms/se9/html/jvms-4.html#jvms-4.7.6-300-D.1-D.1"> * Flag definitions for Inner Classes in the Java Virtual Machine Specification (Java SE 9 Edition).</a> */ public static final short ACC_FINAL = 0x0010;
One of the access flags for fields, methods, or classes.
/** One of the access flags for fields, methods, or classes. */
public static final short ACC_INTERFACE = 0x0200;
One of the access flags for fields, methods, or classes.
/** One of the access flags for fields, methods, or classes. */
public static final short ACC_ABSTRACT = 0x0400;
One of the access flags for fields, methods, or classes.
/** One of the access flags for fields, methods, or classes. */
public static final short ACC_ANNOTATION = 0x2000;
Marks a constant pool entry as type UTF-8.
See Also:
/** * Marks a constant pool entry as type UTF-8. * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.4.7"> * The Constant Pool in The Java Virtual Machine Specification</a> */
public static final byte CONSTANT_Utf8 = 1;
Marks a constant pool entry as type Integer.
See Also:
/** * Marks a constant pool entry as type Integer. * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.4.4"> * The Constant Pool in The Java Virtual Machine Specification</a> */
public static final byte CONSTANT_Integer = 3;
Marks a constant pool entry as type Float.
See Also:
/** * Marks a constant pool entry as type Float. * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.4.4"> * The Constant Pool in The Java Virtual Machine Specification</a> */
public static final byte CONSTANT_Float = 4;
Marks a constant pool entry as type Long.
See Also:
/** * Marks a constant pool entry as type Long. * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.4.5"> * The Constant Pool in The Java Virtual Machine Specification</a> */
public static final byte CONSTANT_Long = 5;
Marks a constant pool entry as type Double.
See Also:
/** * Marks a constant pool entry as type Double. * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.4.5"> * The Constant Pool in The Java Virtual Machine Specification</a> */
public static final byte CONSTANT_Double = 6;
Marks a constant pool entry as a Class
See Also:
/** * Marks a constant pool entry as a Class * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.4.1"> * The Constant Pool in The Java Virtual Machine Specification</a> */
public static final byte CONSTANT_Class = 7;
Marks a constant pool entry as type String
See Also:
/** * Marks a constant pool entry as type String * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.4.3"> * The Constant Pool in The Java Virtual Machine Specification</a> */
public static final byte CONSTANT_String = 8;
Marks a constant pool entry as a Field Reference.
See Also:
/** * Marks a constant pool entry as a Field Reference. * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.4.2"> * The Constant Pool in The Java Virtual Machine Specification</a> */
public static final byte CONSTANT_Fieldref = 9;
Marks a constant pool entry as a Method Reference.
See Also:
/** * Marks a constant pool entry as a Method Reference. * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.4.2"> * The Constant Pool in The Java Virtual Machine Specification</a> */
public static final byte CONSTANT_Methodref = 10;
Marks a constant pool entry as an Interface Method Reference.
See Also:
/** * Marks a constant pool entry as an Interface Method Reference. * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.4.2"> * The Constant Pool in The Java Virtual Machine Specification</a> */
public static final byte CONSTANT_InterfaceMethodref = 11;
Marks a constant pool entry as a name and type.
See Also:
/** * Marks a constant pool entry as a name and type. * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.4.6"> * The Constant Pool in The Java Virtual Machine Specification</a> */
public static final byte CONSTANT_NameAndType = 12;
Marks a constant pool entry as a Method Handle.
See Also:
/** * Marks a constant pool entry as a Method Handle. * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.4.8"> * The Constant Pool in The Java Virtual Machine Specification</a> */
public static final byte CONSTANT_MethodHandle = 15;
Marks a constant pool entry as a Method Type.
See Also:
/** * Marks a constant pool entry as a Method Type. * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.4.9"> * The Constant Pool in The Java Virtual Machine Specification</a> */
public static final byte CONSTANT_MethodType = 16;
Marks a constant pool entry as dynamically computed.
See Also:
/** * Marks a constant pool entry as dynamically computed. * @see <a href="https://bugs.openjdk.java.net/secure/attachment/74618/constant-dynamic.html"> * Change request for JEP 309</a> */
public static final byte CONSTANT_Dynamic = 17;
Marks a constant pool entry as an Invoke Dynamic
See Also:
/** * Marks a constant pool entry as an Invoke Dynamic * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.4.10"> * The Constant Pool in The Java Virtual Machine Specification</a> */
public static final byte CONSTANT_InvokeDynamic = 18;
Marks a constant pool entry as a Module Reference.

Note: Early access Java 9 support- currently subject to change

See Also:
/** * Marks a constant pool entry as a Module Reference. * * <p>Note: Early access Java 9 support- currently subject to change</p> * * @see <a href="https://cr.openjdk.java.net/~mr/jigsaw/spec/lang-vm.html#jigsaw-2.6"> * JPMS: Modules in the Java Language and JVM</a> */
public static final byte CONSTANT_Module = 19;
Marks a constant pool entry as a Package Reference.

Note: Early access Java 9 support- currently subject to change

See Also:
/** * Marks a constant pool entry as a Package Reference. * * <p>Note: Early access Java 9 support- currently subject to change</p> * * @see <a href="https://cr.openjdk.java.net/~mr/jigsaw/spec/lang-vm.html#jigsaw-2.6"> * JPMS: Modules in the Java Language and JVM</a> */
public static final byte CONSTANT_Package = 20;
The names of the types of entries in a constant pool. Use getConstantName instead
/** * The names of the types of entries in a constant pool. * Use getConstantName instead */
private static final String[] CONSTANT_NAMES = { "", "CONSTANT_Utf8", "", "CONSTANT_Integer", "CONSTANT_Float", "CONSTANT_Long", "CONSTANT_Double", "CONSTANT_Class", "CONSTANT_String", "CONSTANT_Fieldref", "CONSTANT_Methodref", "CONSTANT_InterfaceMethodref", "CONSTANT_NameAndType", "", "", "CONSTANT_MethodHandle", "CONSTANT_MethodType", "CONSTANT_Dynamic", "CONSTANT_InvokeDynamic", "CONSTANT_Module", "CONSTANT_Package"}; public static String getConstantName(int index) { return CONSTANT_NAMES[index]; } }