public class SignatureAttribute extends AttributeInfo
Signature_attribute
.Modifier and Type | Class and 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.
|
Modifier and Type | Field and Description |
---|---|
static java.lang.String |
tag
The name of this attribute
"Signature" . |
constPool, info, name
Constructor and Description |
---|
SignatureAttribute(ConstPool cp,
int n,
java.io.DataInputStream in) |
SignatureAttribute(ConstPool cp,
java.lang.String signature)
Constructs a
Signature attribute. |
Modifier and Type | Method and 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 by
signature_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.util.Map classnames) |
(package private) static java.lang.String |
renameClass(java.lang.String desc,
java.util.Map map) |
(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) |
void |
setSignature(java.lang.String sig)
Sets
signature_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.
|
copyAll, get, getConstPool, getLength, getName, getRefClasses, getRefClasses, length, lookup, read, remove, renameClass, renameClass, set, write, writeAll
public static final java.lang.String tag
"Signature"
.SignatureAttribute(ConstPool cp, int n, java.io.DataInputStream in) throws java.io.IOException
java.io.IOException
public SignatureAttribute(ConstPool cp, java.lang.String signature)
Signature
attribute.cp
- a constant pool table.signature
- the signature represented by this attribute.public java.lang.String getSignature()
signature_index
.public void setSignature(java.lang.String sig)
signature_index
to the index of the given generic signature,
which is added to a constant pool.sig
- new signature.public AttributeInfo copy(ConstPool newCp, java.util.Map classnames)
Map
object.copy
in class AttributeInfo
newCp
- the constant pool table used by the new copy.classnames
- pairs of replaced and substituted
class names.void renameClass(java.lang.String oldname, java.lang.String newname)
renameClass
in class AttributeInfo
void renameClass(java.util.Map classnames)
renameClass
in class AttributeInfo
static java.lang.String renameClass(java.lang.String desc, java.lang.String oldname, java.lang.String newname)
static java.lang.String renameClass(java.lang.String desc, java.util.Map map)
private static boolean isNamePart(int c)
public static SignatureAttribute.ClassSignature toClassSignature(java.lang.String sig) throws BadBytecode
sig
- the signature obtained from the SignatureAttribute
of a ClassFile
.BadBytecode
- thrown when a syntactical error is found.getSignature()
public static SignatureAttribute.MethodSignature toMethodSignature(java.lang.String sig) throws BadBytecode
sig
- the signature obtained from the SignatureAttribute
of a MethodInfo
.BadBytecode
- thrown when a syntactical error is found.getSignature()
public static SignatureAttribute.ObjectType toFieldSignature(java.lang.String sig) throws BadBytecode
sig
- the signature string obtained from the SignatureAttribute
of a FieldInfo
.BadBytecode
- thrown when a syntactical error is found.getSignature()
public static SignatureAttribute.Type toTypeSignature(java.lang.String sig) throws BadBytecode
void
type.BadBytecode
- thrown when a syntactical error is found.private static SignatureAttribute.ClassSignature parseSig(java.lang.String sig) throws BadBytecode, java.lang.IndexOutOfBoundsException
BadBytecode
java.lang.IndexOutOfBoundsException
private static SignatureAttribute.MethodSignature parseMethodSig(java.lang.String sig) throws BadBytecode
BadBytecode
private static SignatureAttribute.TypeParameter[] parseTypeParams(java.lang.String sig, SignatureAttribute.Cursor cur) throws BadBytecode
BadBytecode
private static SignatureAttribute.ObjectType parseObjectType(java.lang.String sig, SignatureAttribute.Cursor c, boolean dontThrow) throws BadBytecode
BadBytecode
private static SignatureAttribute.ClassType parseClassType(java.lang.String sig, SignatureAttribute.Cursor c) throws BadBytecode
BadBytecode
private static SignatureAttribute.ClassType parseClassType2(java.lang.String sig, SignatureAttribute.Cursor c, SignatureAttribute.ClassType parent) throws BadBytecode
BadBytecode
private static SignatureAttribute.TypeArgument[] parseTypeArgs(java.lang.String sig, SignatureAttribute.Cursor c) throws BadBytecode
BadBytecode
private static SignatureAttribute.ObjectType parseArray(java.lang.String sig, SignatureAttribute.Cursor c) throws BadBytecode
BadBytecode
private static SignatureAttribute.Type parseType(java.lang.String sig, SignatureAttribute.Cursor c) throws BadBytecode
BadBytecode
private static BadBytecode error(java.lang.String sig)