Package org.objectweb.asm.util
Class TraceSignatureVisitor
- java.lang.Object
-
- org.objectweb.asm.signature.SignatureVisitor
-
- org.objectweb.asm.util.TraceSignatureVisitor
-
public final class TraceSignatureVisitor extends SignatureVisitor
ASignatureVisitor
that builds the Java generic type declaration corresponding to the signature it visits.
-
-
Field Summary
Fields Modifier and Type Field Description private int
argumentStack
The stack used to keep track of class types that have arguments.private int
arrayStack
The stack used to keep track of array class types.private static java.util.Map<java.lang.Character,java.lang.String>
BASE_TYPES
private static java.lang.String
COMMA_SEPARATOR
private java.lang.StringBuilder
declaration
The Java generic type declaration corresponding to the visited signature.private java.lang.StringBuilder
exceptions
The Java generic exception types declaration corresponding to the visited signature.private static java.lang.String
EXTENDS_SEPARATOR
private boolean
formalTypeParameterVisited
WhethervisitFormalTypeParameter(java.lang.String)
has been called.private static java.lang.String
IMPLEMENTS_SEPARATOR
private boolean
interfaceBoundVisited
WhethervisitInterfaceBound()
has been called.private boolean
interfaceVisited
WhethervisitInterface()
has been called.private boolean
isInterface
Whether the visited signature is a class signature of a Java interface.private boolean
parameterTypeVisited
WhethervisitParameterType()
has been called.private java.lang.StringBuilder
returnType
The Java generic method return type declaration corresponding to the visited signature.private java.lang.String
separator
The separator to append before the next visited class or inner class type.-
Fields inherited from class org.objectweb.asm.signature.SignatureVisitor
api, EXTENDS, INSTANCEOF, SUPER
-
-
Constructor Summary
Constructors Modifier Constructor Description TraceSignatureVisitor(int accessFlags)
Constructs a newTraceSignatureVisitor
.private
TraceSignatureVisitor(java.lang.StringBuilder stringBuilder)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description private void
endFormals()
private void
endType()
java.lang.String
getDeclaration()
Returns the Java generic type declaration corresponding to the visited signature.java.lang.String
getExceptions()
Returns the Java generic exception types declaration corresponding to the visited signature.java.lang.String
getReturnType()
Returns the Java generic method return type declaration corresponding to the visited signature.private void
startType()
SignatureVisitor
visitArrayType()
Visits a signature corresponding to an array type.void
visitBaseType(char descriptor)
Visits a signature corresponding to a primitive type.SignatureVisitor
visitClassBound()
Visits the class bound of the last visited formal type parameter.void
visitClassType(java.lang.String name)
Starts the visit of a signature corresponding to a class or interface type.void
visitEnd()
Ends the visit of a signature corresponding to a class or interface type.SignatureVisitor
visitExceptionType()
Visits the type of a method exception.void
visitFormalTypeParameter(java.lang.String name)
Visits a formal type parameter.void
visitInnerClassType(java.lang.String name)
Visits an inner class.SignatureVisitor
visitInterface()
Visits the type of an interface implemented by the class.SignatureVisitor
visitInterfaceBound()
Visits an interface bound of the last visited formal type parameter.SignatureVisitor
visitParameterType()
Visits the type of a method parameter.SignatureVisitor
visitReturnType()
Visits the return type of the method.SignatureVisitor
visitSuperclass()
Visits the type of the super class.void
visitTypeArgument()
Visits an unbounded type argument of the last visited class or inner class type.SignatureVisitor
visitTypeArgument(char tag)
Visits a type argument of the last visited class or inner class type.void
visitTypeVariable(java.lang.String name)
Visits a signature corresponding to a type variable.
-
-
-
Field Detail
-
COMMA_SEPARATOR
private static final java.lang.String COMMA_SEPARATOR
- See Also:
- Constant Field Values
-
EXTENDS_SEPARATOR
private static final java.lang.String EXTENDS_SEPARATOR
- See Also:
- Constant Field Values
-
IMPLEMENTS_SEPARATOR
private static final java.lang.String IMPLEMENTS_SEPARATOR
- See Also:
- Constant Field Values
-
BASE_TYPES
private static final java.util.Map<java.lang.Character,java.lang.String> BASE_TYPES
-
isInterface
private final boolean isInterface
Whether the visited signature is a class signature of a Java interface.
-
declaration
private final java.lang.StringBuilder declaration
The Java generic type declaration corresponding to the visited signature.
-
returnType
private java.lang.StringBuilder returnType
The Java generic method return type declaration corresponding to the visited signature.
-
exceptions
private java.lang.StringBuilder exceptions
The Java generic exception types declaration corresponding to the visited signature.
-
formalTypeParameterVisited
private boolean formalTypeParameterVisited
WhethervisitFormalTypeParameter(java.lang.String)
has been called.
-
interfaceBoundVisited
private boolean interfaceBoundVisited
WhethervisitInterfaceBound()
has been called.
-
parameterTypeVisited
private boolean parameterTypeVisited
WhethervisitParameterType()
has been called.
-
interfaceVisited
private boolean interfaceVisited
WhethervisitInterface()
has been called.
-
argumentStack
private int argumentStack
The stack used to keep track of class types that have arguments. Each element of this stack is a boolean encoded in one bit. The top of the stack is the least significant bit. Pushing false = *2, pushing true = *2+1, popping = /2.
-
arrayStack
private int arrayStack
The stack used to keep track of array class types. Each element of this stack is a boolean encoded in one bit. The top of the stack is the lowest order bit. Pushing false = *2, pushing true = *2+1, popping = /2.
-
separator
private java.lang.String separator
The separator to append before the next visited class or inner class type.
-
-
Constructor Detail
-
TraceSignatureVisitor
public TraceSignatureVisitor(int accessFlags)
Constructs a newTraceSignatureVisitor
.- Parameters:
accessFlags
- for class type signatures, the access flags of the class.
-
TraceSignatureVisitor
private TraceSignatureVisitor(java.lang.StringBuilder stringBuilder)
-
-
Method Detail
-
visitFormalTypeParameter
public void visitFormalTypeParameter(java.lang.String name)
Description copied from class:SignatureVisitor
Visits a formal type parameter.- Overrides:
visitFormalTypeParameter
in classSignatureVisitor
- Parameters:
name
- the name of the formal parameter.
-
visitClassBound
public SignatureVisitor visitClassBound()
Description copied from class:SignatureVisitor
Visits the class bound of the last visited formal type parameter.- Overrides:
visitClassBound
in classSignatureVisitor
- Returns:
- a non null visitor to visit the signature of the class bound.
-
visitInterfaceBound
public SignatureVisitor visitInterfaceBound()
Description copied from class:SignatureVisitor
Visits an interface bound of the last visited formal type parameter.- Overrides:
visitInterfaceBound
in classSignatureVisitor
- Returns:
- a non null visitor to visit the signature of the interface bound.
-
visitSuperclass
public SignatureVisitor visitSuperclass()
Description copied from class:SignatureVisitor
Visits the type of the super class.- Overrides:
visitSuperclass
in classSignatureVisitor
- Returns:
- a non null visitor to visit the signature of the super class type.
-
visitInterface
public SignatureVisitor visitInterface()
Description copied from class:SignatureVisitor
Visits the type of an interface implemented by the class.- Overrides:
visitInterface
in classSignatureVisitor
- Returns:
- a non null visitor to visit the signature of the interface type.
-
visitParameterType
public SignatureVisitor visitParameterType()
Description copied from class:SignatureVisitor
Visits the type of a method parameter.- Overrides:
visitParameterType
in classSignatureVisitor
- Returns:
- a non null visitor to visit the signature of the parameter type.
-
visitReturnType
public SignatureVisitor visitReturnType()
Description copied from class:SignatureVisitor
Visits the return type of the method.- Overrides:
visitReturnType
in classSignatureVisitor
- Returns:
- a non null visitor to visit the signature of the return type.
-
visitExceptionType
public SignatureVisitor visitExceptionType()
Description copied from class:SignatureVisitor
Visits the type of a method exception.- Overrides:
visitExceptionType
in classSignatureVisitor
- Returns:
- a non null visitor to visit the signature of the exception type.
-
visitBaseType
public void visitBaseType(char descriptor)
Description copied from class:SignatureVisitor
Visits a signature corresponding to a primitive type.- Overrides:
visitBaseType
in classSignatureVisitor
- Parameters:
descriptor
- the descriptor of the primitive type, or 'V' forvoid
.
-
visitTypeVariable
public void visitTypeVariable(java.lang.String name)
Description copied from class:SignatureVisitor
Visits a signature corresponding to a type variable.- Overrides:
visitTypeVariable
in classSignatureVisitor
- Parameters:
name
- the name of the type variable.
-
visitArrayType
public SignatureVisitor visitArrayType()
Description copied from class:SignatureVisitor
Visits a signature corresponding to an array type.- Overrides:
visitArrayType
in classSignatureVisitor
- Returns:
- a non null visitor to visit the signature of the array element type.
-
visitClassType
public void visitClassType(java.lang.String name)
Description copied from class:SignatureVisitor
Starts the visit of a signature corresponding to a class or interface type.- Overrides:
visitClassType
in classSignatureVisitor
- Parameters:
name
- the internal name of the class or interface.
-
visitInnerClassType
public void visitInnerClassType(java.lang.String name)
Description copied from class:SignatureVisitor
Visits an inner class.- Overrides:
visitInnerClassType
in classSignatureVisitor
- Parameters:
name
- the local name of the inner class in its enclosing class.
-
visitTypeArgument
public void visitTypeArgument()
Description copied from class:SignatureVisitor
Visits an unbounded type argument of the last visited class or inner class type.- Overrides:
visitTypeArgument
in classSignatureVisitor
-
visitTypeArgument
public SignatureVisitor visitTypeArgument(char tag)
Description copied from class:SignatureVisitor
Visits a type argument of the last visited class or inner class type.- Overrides:
visitTypeArgument
in classSignatureVisitor
- Parameters:
tag
- '+', '-' or '='.- Returns:
- a non null visitor to visit the signature of the type argument.
-
visitEnd
public void visitEnd()
Description copied from class:SignatureVisitor
Ends the visit of a signature corresponding to a class or interface type.- Overrides:
visitEnd
in classSignatureVisitor
-
getDeclaration
public java.lang.String getDeclaration()
Returns the Java generic type declaration corresponding to the visited signature.- Returns:
- the Java generic type declaration corresponding to the visited signature.
-
getReturnType
public java.lang.String getReturnType()
Returns the Java generic method return type declaration corresponding to the visited signature.- Returns:
- the Java generic method return type declaration corresponding to the visited signature.
-
getExceptions
public java.lang.String getExceptions()
Returns the Java generic exception types declaration corresponding to the visited signature.- Returns:
- the Java generic exception types declaration corresponding to the visited signature.
-
endFormals
private void endFormals()
-
startType
private void startType()
-
endType
private void endType()
-
-