All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.apache.tomcat.util.bcel.Const Maven / Gradle / Ivy

There is a newer version: 11.0.0-M26
Show newest version
/*
 * 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.
 */
public final class Const {

    /** One of the access flags for fields, methods, or classes.
     *  @see 
     *  Flag definitions for Fields in the Java Virtual Machine Specification (Java SE 8 Edition).
     *  @see 
     *  Flag definitions for Methods in the Java Virtual Machine Specification (Java SE 8 Edition).
     *  @see 
     *  Flag definitions for Classes in the Java Virtual Machine Specification (Java SE 8 Edition).
     */
    public static final short ACC_FINAL      = 0x0010;

    /** 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.
     */
    public static final short ACC_ABSTRACT     = 0x0400;

    /** 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  
     * The Constant Pool in The Java Virtual Machine Specification */
    public static final byte CONSTANT_Utf8           = 1;

    /** Marks a constant pool entry as type Integer.
     * @see  
     * The Constant Pool in The Java Virtual Machine Specification */
    public static final byte CONSTANT_Integer        = 3;

    /** Marks a constant pool entry as type Float.
     * @see  
     * The Constant Pool in The Java Virtual Machine Specification */
    public static final byte CONSTANT_Float          = 4;

    /** Marks a constant pool entry as type Long.
     * @see  
     * The Constant Pool in The Java Virtual Machine Specification */
    public static final byte CONSTANT_Long           = 5;

    /** Marks a constant pool entry as type Double.
     * @see  
     * The Constant Pool in The Java Virtual Machine Specification */
    public static final byte CONSTANT_Double         = 6;

    /** Marks a constant pool entry as a Class
     * @see  
     * The Constant Pool in The Java Virtual Machine Specification */
    public static final byte CONSTANT_Class          = 7;

    /** Marks a constant pool entry as a Field Reference.
     * @see  
     * The Constant Pool in The Java Virtual Machine Specification */
    public static final byte CONSTANT_Fieldref         = 9;

    /** Marks a constant pool entry as type String
     * @see  
     * The Constant Pool in The Java Virtual Machine Specification */
    public static final byte CONSTANT_String         = 8;

    /** Marks a constant pool entry as a Method Reference.
     * @see  
     * The Constant Pool in The Java Virtual Machine Specification */
    public static final byte CONSTANT_Methodref        = 10;

    /** Marks a constant pool entry as an Interface Method Reference.
     * @see  
     * The Constant Pool in The Java Virtual Machine Specification */
    public static final byte CONSTANT_InterfaceMethodref = 11;

    /** Marks a constant pool entry as a name and type.
     * @see  
     * The Constant Pool in The Java Virtual Machine Specification */
    public static final byte CONSTANT_NameAndType      = 12;

    /** Marks a constant pool entry as a Method Handle.
     * @see  
     * The Constant Pool in The Java Virtual Machine Specification */
    public static final byte CONSTANT_MethodHandle     = 15;

    /** Marks a constant pool entry as a Method Type.
     * @see  
     * The Constant Pool in The Java Virtual Machine Specification */
    public static final byte CONSTANT_MethodType       = 16;

    /** Marks a constant pool entry as an Invoke Dynamic
     * @see  
     * The Constant Pool in The Java Virtual Machine Specification */
    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 
     * JPMS: Modules in the Java Language and JVM */
    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 
     * JPMS: Modules in the Java Language and JVM */
    public static final byte CONSTANT_Package            = 20;

    /**
     * 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_InvokeDynamic",
    "CONSTANT_Module", "CONSTANT_Package"};

    public static String getConstantName(int index) {
        return CONSTANT_NAMES[index];
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy