Package javassist.bytecode
Class SignatureAttribute
- java.lang.Object
-
- javassist.bytecode.AttributeInfo
-
- javassist.bytecode.SignatureAttribute
-
public class SignatureAttribute extends AttributeInfo
Signature_attribute
.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
SignatureAttribute.ArrayType
Array types.static class
SignatureAttribute.BaseType
Primitive types.static class
SignatureAttribute.ClassSignature
Class signature.static class
SignatureAttribute.ClassType
Class types.private static class
SignatureAttribute.Cursor
static class
SignatureAttribute.MethodSignature
Method type signature.static class
SignatureAttribute.NestedClassType
Nested class types.static class
SignatureAttribute.ObjectType
Class types, array types, and type variables.static class
SignatureAttribute.Type
Primitive types and object types.static class
SignatureAttribute.TypeArgument
Type argument.static class
SignatureAttribute.TypeParameter
Formal type parameters.static class
SignatureAttribute.TypeVariable
Type variables.
-
Field Summary
Fields Modifier and Type Field Description static java.lang.String
tag
The name of this attribute"Signature"
.-
Fields inherited from class javassist.bytecode.AttributeInfo
constPool, info, name
-
-
Constructor Summary
Constructors Constructor Description SignatureAttribute(ConstPool cp, int n, java.io.DataInputStream in)
SignatureAttribute(ConstPool cp, java.lang.String signature)
Constructs aSignature
attribute.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description AttributeInfo
copy(ConstPool newCp, java.util.Map classnames)
Makes a copy.private static BadBytecode
error(java.lang.String sig)
java.lang.String
getSignature()
Returns the generic signature indicated bysignature_index
.private static boolean
isNamePart(int c)
private static SignatureAttribute.ObjectType
parseArray(java.lang.String sig, SignatureAttribute.Cursor c)
private static SignatureAttribute.ClassType
parseClassType(java.lang.String sig, SignatureAttribute.Cursor c)
private static SignatureAttribute.ClassType
parseClassType2(java.lang.String sig, SignatureAttribute.Cursor c, SignatureAttribute.ClassType parent)
private static SignatureAttribute.MethodSignature
parseMethodSig(java.lang.String sig)
private static SignatureAttribute.ObjectType
parseObjectType(java.lang.String sig, SignatureAttribute.Cursor c, boolean dontThrow)
private static SignatureAttribute.ClassSignature
parseSig(java.lang.String sig)
private static SignatureAttribute.Type
parseType(java.lang.String sig, SignatureAttribute.Cursor c)
private static SignatureAttribute.TypeArgument[]
parseTypeArgs(java.lang.String sig, SignatureAttribute.Cursor c)
private static SignatureAttribute.TypeParameter[]
parseTypeParams(java.lang.String sig, SignatureAttribute.Cursor cur)
(package private) void
renameClass(java.lang.String oldname, java.lang.String newname)
(package private) static java.lang.String
renameClass(java.lang.String desc, java.lang.String oldname, java.lang.String newname)
(package private) static java.lang.String
renameClass(java.lang.String desc, java.util.Map map)
(package private) void
renameClass(java.util.Map classnames)
void
setSignature(java.lang.String sig)
Setssignature_index
to the index of the given generic signature, which is added to a constant pool.static SignatureAttribute.ClassSignature
toClassSignature(java.lang.String sig)
Parses the given signature string as a class signature.static SignatureAttribute.ObjectType
toFieldSignature(java.lang.String sig)
Parses the given signature string as a field type signature.static SignatureAttribute.MethodSignature
toMethodSignature(java.lang.String sig)
Parses the given signature string as a method type signature.static SignatureAttribute.Type
toTypeSignature(java.lang.String sig)
Parses the given signature string as a type signature.-
Methods inherited from class javassist.bytecode.AttributeInfo
copyAll, get, getConstPool, getLength, getName, getRefClasses, getRefClasses, length, lookup, read, remove, renameClass, renameClass, set, write, writeAll
-
-
-
-
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 aSignature
attribute.- Parameters:
cp
- a constant pool table.signature
- the signature represented by this attribute.
-
-
Method Detail
-
getSignature
public java.lang.String getSignature()
Returns the generic signature indicated bysignature_index
.
-
setSignature
public void setSignature(java.lang.String sig)
Setssignature_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 classnames)
Makes a copy. Class names are replaced according to the givenMap
object.- Overrides:
copy
in classAttributeInfo
- 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 classAttributeInfo
-
renameClass
void renameClass(java.util.Map classnames)
- Overrides:
renameClass
in classAttributeInfo
-
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 map)
-
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 theSignatureAttribute
of aClassFile
.- 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 theSignatureAttribute
of aMethodInfo
.- 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 theSignatureAttribute
of aFieldInfo
.- 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 includingvoid
type.- Throws:
BadBytecode
- thrown when a syntactical error is found.- Since:
- 3.18
-
parseSig
private static SignatureAttribute.ClassSignature parseSig(java.lang.String sig) throws BadBytecode, java.lang.IndexOutOfBoundsException
- Throws:
BadBytecode
java.lang.IndexOutOfBoundsException
-
parseMethodSig
private static SignatureAttribute.MethodSignature parseMethodSig(java.lang.String sig) throws BadBytecode
- Throws:
BadBytecode
-
parseTypeParams
private static SignatureAttribute.TypeParameter[] parseTypeParams(java.lang.String sig, SignatureAttribute.Cursor cur) throws BadBytecode
- Throws:
BadBytecode
-
parseObjectType
private static SignatureAttribute.ObjectType parseObjectType(java.lang.String sig, SignatureAttribute.Cursor c, boolean dontThrow) throws BadBytecode
- Throws:
BadBytecode
-
parseClassType
private static SignatureAttribute.ClassType parseClassType(java.lang.String sig, SignatureAttribute.Cursor c) throws BadBytecode
- Throws:
BadBytecode
-
parseClassType2
private static SignatureAttribute.ClassType parseClassType2(java.lang.String sig, SignatureAttribute.Cursor c, SignatureAttribute.ClassType parent) throws BadBytecode
- Throws:
BadBytecode
-
parseTypeArgs
private static SignatureAttribute.TypeArgument[] parseTypeArgs(java.lang.String sig, SignatureAttribute.Cursor c) throws BadBytecode
- Throws:
BadBytecode
-
parseArray
private static SignatureAttribute.ObjectType parseArray(java.lang.String sig, SignatureAttribute.Cursor c) throws BadBytecode
- Throws:
BadBytecode
-
parseType
private static SignatureAttribute.Type parseType(java.lang.String sig, SignatureAttribute.Cursor c) throws BadBytecode
- Throws:
BadBytecode
-
error
private static BadBytecode error(java.lang.String sig)
-
-