Class ConstantPool

  • Direct Known Subclasses:
    MutableConstantPool

    public class ConstantPool
    extends java.lang.Object
    • Constructor Detail

      • ConstantPool

        public ConstantPool​(java.lang.Object[] pool)
    • Method Detail

      • size

        public int size()
      • entry

        public <T> T entry​(int index)
      • tag

        public int tag​(int index)
      • utf8

        public java.lang.String utf8​(int utf8_index)
      • className

        public java.lang.String className​(int class_info_index)
      • moduleName

        public java.lang.String moduleName​(int module_info_index)
      • packageName

        public java.lang.String packageName​(int package_info_index)
      • string

        public java.lang.String string​(int string_info_index)
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object
      • read

        public static ConstantPool read​(java.io.DataInput in)
                                 throws java.io.IOException
        Throws:
        java.io.IOException
      • readUtf8Info

        static java.lang.String readUtf8Info​(java.io.DataInput in)
                                      throws java.io.IOException
        Throws:
        java.io.IOException
      • writeUtf8Info

        static void writeUtf8Info​(java.io.DataOutput out,
                                  java.lang.String constant)
                           throws java.io.IOException
        Throws:
        java.io.IOException
      • readIntegerInfo

        static java.lang.Integer readIntegerInfo​(java.io.DataInput in)
                                          throws java.io.IOException
        Throws:
        java.io.IOException
      • writeIntegerInfo

        static void writeIntegerInfo​(java.io.DataOutput out,
                                     java.lang.Integer constant)
                              throws java.io.IOException
        Throws:
        java.io.IOException
      • readFloatInfo

        static java.lang.Float readFloatInfo​(java.io.DataInput in)
                                      throws java.io.IOException
        Throws:
        java.io.IOException
      • writeFloatInfo

        static void writeFloatInfo​(java.io.DataOutput out,
                                   java.lang.Float constant)
                            throws java.io.IOException
        Throws:
        java.io.IOException
      • readLongInfo

        static java.lang.Long readLongInfo​(java.io.DataInput in)
                                    throws java.io.IOException
        Throws:
        java.io.IOException
      • writeLongInfo

        static void writeLongInfo​(java.io.DataOutput out,
                                  java.lang.Long constant)
                           throws java.io.IOException
        Throws:
        java.io.IOException
      • readDoubleInfo

        static java.lang.Double readDoubleInfo​(java.io.DataInput in)
                                        throws java.io.IOException
        Throws:
        java.io.IOException
      • writeDoubleInfo

        static void writeDoubleInfo​(java.io.DataOutput out,
                                    java.lang.Double constant)
                             throws java.io.IOException
        Throws:
        java.io.IOException
      • index

        protected <I> int index​(java.lang.Class<I> infoType,
                                java.util.function.Predicate<I> match,
                                java.util.function.Supplier<I> supplier)
      • add

        protected <I> int add​(java.lang.Class<I> infoType,
                              java.util.function.Supplier<I> supplier)
      • integerInfo

        public int integerInfo​(int constant)
      • integerInfo

        public int integerInfo​(java.lang.Integer constant)
      • integerInfo

        public int integerInfo​(java.lang.Byte constant)
      • integerInfo

        public int integerInfo​(java.lang.Character constant)
      • integerInfo

        public int integerInfo​(java.lang.Short constant)
      • integerInfo

        public int integerInfo​(java.lang.Boolean constant)
      • equalsInteger

        private static boolean equalsInteger​(int a,
                                             int b)
      • longInfo

        public int longInfo​(java.lang.Long constant)
      • longInfo

        public int longInfo​(long constant)
      • equalsLong

        private static boolean equalsLong​(long a,
                                          long b)
      • floatInfo

        public int floatInfo​(java.lang.Float constant)
      • floatInfo

        public int floatInfo​(float constant)
      • equalsFloat

        private static boolean equalsFloat​(float a,
                                           float b)
      • doubleInfo

        public int doubleInfo​(java.lang.Double constant)
      • doubleInfo

        public int doubleInfo​(double constant)
      • equalsDouble

        private static boolean equalsDouble​(double a,
                                            double b)
      • utf8Info

        public int utf8Info​(java.lang.String utf8)
      • stringInfo

        public int stringInfo​(java.lang.String string)
      • equalsStringInfo

        private boolean equalsStringInfo​(java.lang.String string,
                                         ConstantPool.StringInfo stringInfo)
      • moduleInfo

        public int moduleInfo​(java.lang.String module_name)
      • equalsModuleInfo

        private boolean equalsModuleInfo​(java.lang.String module_name,
                                         ConstantPool.ModuleInfo moduleInfo)
      • packageInfo

        public int packageInfo​(java.lang.String package_name)
      • equalsPackageInfo

        private boolean equalsPackageInfo​(java.lang.String package_name,
                                          ConstantPool.PackageInfo packageInfo)
      • classInfo

        public int classInfo​(java.lang.String class_name)
      • equalsClassInfo

        private boolean equalsClassInfo​(java.lang.String class_name,
                                        ConstantPool.ClassInfo classInfo)
      • fieldrefInfo

        public int fieldrefInfo​(java.lang.String class_name,
                                java.lang.String name,
                                java.lang.String descriptor)
      • equalsAbstractRefInfo

        private boolean equalsAbstractRefInfo​(java.lang.String class_name,
                                              java.lang.String name,
                                              java.lang.String descriptor,
                                              ConstantPool.AbstractRefInfo refInfo)
      • methodrefInfo

        public int methodrefInfo​(java.lang.String class_name,
                                 java.lang.String name,
                                 java.lang.String descriptor)
      • interfaceMethodrefInfo

        public int interfaceMethodrefInfo​(java.lang.String class_name,
                                          java.lang.String name,
                                          java.lang.String descriptor)
      • nameAndTypeInfo

        public int nameAndTypeInfo​(java.lang.String name,
                                   java.lang.String descriptor)
      • equalsNameAndTypeInfo

        private boolean equalsNameAndTypeInfo​(java.lang.String name,
                                              java.lang.String descriptor,
                                              ConstantPool.NameAndTypeInfo nameAndTypeInfo)
      • methodHandleInfo

        public int methodHandleInfo​(int reference_kind,
                                    java.lang.String class_name,
                                    java.lang.String name,
                                    java.lang.String descriptor,
                                    ConstantPool.RefInfoFunction refInfoFunction)
      • equalsMethodHandleInfo

        private boolean equalsMethodHandleInfo​(int reference_kind,
                                               java.lang.String class_name,
                                               java.lang.String name,
                                               java.lang.String descriptor,
                                               ConstantPool.MethodHandleInfo methodHandleInfo)
      • methodTypeInfo

        public int methodTypeInfo​(java.lang.String descriptor)
      • equalsMethodTypeInfo

        private boolean equalsMethodTypeInfo​(java.lang.String descriptor,
                                             ConstantPool.MethodTypeInfo methodTypeInfo)
      • dynamicInfo

        public int dynamicInfo​(int bootstrap_method_attr_index,
                               java.lang.String name,
                               java.lang.String descriptor)
      • equalsAbstractDynamicInfo

        private boolean equalsAbstractDynamicInfo​(int bootstrap_method_attr_index,
                                                  java.lang.String name,
                                                  java.lang.String descriptor,
                                                  ConstantPool.AbstractDynamicInfo abstractDynamicInfo)
      • invokeDynamicInfo

        public int invokeDynamicInfo​(int bootstrap_method_attr_index,
                                     java.lang.String name,
                                     java.lang.String descriptor)
      • write

        public void write​(java.io.DataOutput out)
                   throws java.io.IOException
        Throws:
        java.io.IOException