Class SignatureAttribute


  • public class SignatureAttribute
    extends AttributeInfo
    Signature_attribute.
    • Field Detail

      • tag

        public static final java.lang.String tag
        The name of this attribute "Signature".
        See Also:
        Constant Field Values
    • Constructor Detail

      • SignatureAttribute

        SignatureAttribute​(ConstPool cp,
                           int n,
                           java.io.DataInputStream in)
                    throws java.io.IOException
        Throws:
        java.io.IOException
      • SignatureAttribute

        public SignatureAttribute​(ConstPool cp,
                                  java.lang.String signature)
        Constructs a Signature attribute.
        Parameters:
        cp - a constant pool table.
        signature - the signature represented by this attribute.
    • Method Detail

      • setSignature

        public void setSignature​(java.lang.String sig)
        Sets signature_index to the index of the given generic signature, which is added to a constant pool.
        Parameters:
        sig - new signature.
        Since:
        3.11
      • copy

        public AttributeInfo copy​(ConstPool newCp,
                                  java.util.Map<java.lang.String,​java.lang.String> classnames)
        Makes a copy. Class names are replaced according to the given Map object.
        Overrides:
        copy in class AttributeInfo
        Parameters:
        newCp - the constant pool table used by the new copy.
        classnames - pairs of replaced and substituted class names.
      • renameClass

        void renameClass​(java.lang.String oldname,
                         java.lang.String newname)
        Overrides:
        renameClass in class AttributeInfo
      • renameClass

        void renameClass​(java.util.Map<java.lang.String,​java.lang.String> classnames)
        Overrides:
        renameClass in class AttributeInfo
      • renameClass

        static java.lang.String renameClass​(java.lang.String desc,
                                            java.lang.String oldname,
                                            java.lang.String newname)
      • renameClass

        static java.lang.String renameClass​(java.lang.String desc,
                                            java.util.Map<java.lang.String,​java.lang.String> map)
      • parseClassName

        private static int parseClassName​(java.util.ArrayList<java.lang.StringBuilder> nameBufs,
                                          java.util.ArrayList<java.lang.StringBuilder> genericParamBufs,
                                          java.lang.String desc,
                                          int j)
      • makeNewClassName

        private static boolean makeNewClassName​(java.lang.String desc,
                                                java.util.Map<java.lang.String,​java.lang.String> map,
                                                java.lang.String name,
                                                java.lang.String newname,
                                                java.lang.StringBuilder newdesc,
                                                int head,
                                                int j,
                                                java.util.ArrayList<java.lang.StringBuilder> nameBufs,
                                                java.util.ArrayList<java.lang.StringBuilder> genericParamBufs)
      • replaceTypeArguments

        private static boolean replaceTypeArguments​(java.lang.String desc,
                                                    java.util.Map<java.lang.String,​java.lang.String> map,
                                                    java.lang.StringBuilder newdesc,
                                                    int head,
                                                    int j,
                                                    java.util.ArrayList<java.lang.StringBuilder> nameBufs,
                                                    java.util.ArrayList<java.lang.StringBuilder> genericParamBufs)
      • isNamePart

        private static boolean isNamePart​(int c)
      • toClassSignature

        public static SignatureAttribute.ClassSignature toClassSignature​(java.lang.String sig)
                                                                  throws BadBytecode
        Parses the given signature string as a class signature.
        Parameters:
        sig - the signature obtained from the SignatureAttribute of a ClassFile.
        Returns:
        a tree-like data structure representing a class signature. It provides convenient accessor methods.
        Throws:
        BadBytecode - thrown when a syntactical error is found.
        Since:
        3.5
        See Also:
        getSignature()
      • toMethodSignature

        public static SignatureAttribute.MethodSignature toMethodSignature​(java.lang.String sig)
                                                                    throws BadBytecode
        Parses the given signature string as a method type signature.
        Parameters:
        sig - the signature obtained from the SignatureAttribute of a MethodInfo.
        Returns:
        Throws:
        BadBytecode - thrown when a syntactical error is found.
        Since:
        3.5
        See Also:
        getSignature()
      • toFieldSignature

        public static SignatureAttribute.ObjectType toFieldSignature​(java.lang.String sig)
                                                              throws BadBytecode
        Parses the given signature string as a field type signature.
        Parameters:
        sig - the signature string obtained from the SignatureAttribute of a FieldInfo.
        Returns:
        the field type signature.
        Throws:
        BadBytecode - thrown when a syntactical error is found.
        Since:
        3.5
        See Also:
        getSignature()
      • toTypeSignature

        public static SignatureAttribute.Type toTypeSignature​(java.lang.String sig)
                                                       throws BadBytecode
        Parses the given signature string as a type signature. The type signature is either the field type signature or a base type descriptor including void type.
        Throws:
        BadBytecode - thrown when a syntactical error is found.
        Since:
        3.18
      • error

        private static BadBytecode error​(java.lang.String sig)