Package net.bytebuddy.pool
Class TypePool.Default.TypeExtractor.MethodExtractor
- java.lang.Object
-
- org.objectweb.asm.MethodVisitor
-
- net.bytebuddy.pool.TypePool.Default.TypeExtractor.MethodExtractor
-
- All Implemented Interfaces:
TypePool.Default.AnnotationRegistrant
- Enclosing class:
- TypePool.Default.TypeExtractor
protected class TypePool.Default.TypeExtractor.MethodExtractor extends org.objectweb.asm.MethodVisitor implements TypePool.Default.AnnotationRegistrant
A method extractor reads a method within a class file and collects data that is relevant to creating a related method description.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface net.bytebuddy.pool.TypePool.Default.AnnotationRegistrant
TypePool.Default.AnnotationRegistrant.AbstractBase, TypePool.Default.AnnotationRegistrant.ForByteCodeElement, TypePool.Default.AnnotationRegistrant.ForTypeVariable
-
-
Field Summary
Fields Modifier and Type Field Description private java.util.List<TypePool.Default.LazyTypeDescription.AnnotationToken>
annotationTokens
A list of annotation tokens declared on the found method.private AnnotationValue<?,?>
defaultValue
The default value of the found method ornull
if no such value exists.private java.lang.String
descriptor
The descriptor found for this method.private java.lang.String[]
exceptionName
An array of internal names of the exceptions of the found method ornull
if there are no such exceptions.private java.util.Map<java.lang.Integer,java.util.Map<java.lang.String,java.util.List<TypePool.Default.LazyTypeDescription.AnnotationToken>>>
exceptionTypeAnnotationTokens
A mapping of the exception types' type annotations by their indices.private org.objectweb.asm.Label
firstLabel
The first label that is found in the method's body, if any, denoting the start of the method.private java.lang.String
genericSignature
The generic signature of the method ornull
if it is not generic.private java.lang.String
internalName
The internal name found for this method.private int
invisibleParameterShift
A shift index for invisible parameters that indicates a deviation of the actual parameter index.private TypePool.Default.ParameterBag
legacyParameterBag
A bag of parameter meta information representing debugging information which allows to extract a method's parameter names.private int
modifiers
The modifiers found for this method.private java.util.Map<java.lang.Integer,java.util.List<TypePool.Default.LazyTypeDescription.AnnotationToken>>
parameterAnnotationTokens
A mapping of parameter indices to annotation tokens found for the parameters at these indices.private java.util.List<TypePool.Default.LazyTypeDescription.MethodToken.ParameterToken>
parameterTokens
A list of tokens representing meta information of a parameter as it is available for method's that are compiled in the Java 8 version format.private java.util.Map<java.lang.Integer,java.util.Map<java.lang.String,java.util.List<TypePool.Default.LazyTypeDescription.AnnotationToken>>>
parameterTypeAnnotationTokens
A mapping of the parameters' type annotations by their indices.private java.util.Map<java.lang.String,java.util.List<TypePool.Default.LazyTypeDescription.AnnotationToken>>
receiverTypeAnnotationTokens
A mapping of the receiver type's type annotations.private java.util.Map<java.lang.String,java.util.List<TypePool.Default.LazyTypeDescription.AnnotationToken>>
returnTypeAnnotationTokens
A mapping of the method's return type's type annotations.private java.util.Map<java.lang.Integer,java.util.Map<java.lang.String,java.util.List<TypePool.Default.LazyTypeDescription.AnnotationToken>>>
typeVariableAnnotationTokens
A mapping of the method's type variables' type annotations by their indices.private java.util.Map<java.lang.Integer,java.util.Map<java.lang.Integer,java.util.Map<java.lang.String,java.util.List<TypePool.Default.LazyTypeDescription.AnnotationToken>>>>
typeVariableBoundAnnotationTokens
A mapping of the method's type variables' bounds' type annotations by their indices and each variable's index.private int
visibleParameterShift
A shift index for visible parameters that indicates a deviation of the actual parameter index.
-
Constructor Summary
Constructors Modifier Constructor Description protected
MethodExtractor(int modifiers, java.lang.String internalName, java.lang.String descriptor, java.lang.String genericSignature, java.lang.String[] exceptionName)
Creates a method extractor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
onComplete()
Called once all annotation values are visited.void
register(java.lang.String ignored, AnnotationValue<?,?> annotationValue)
Registers an annotation value.void
visitAnnotableParameterCount(int count, boolean visible)
org.objectweb.asm.AnnotationVisitor
visitAnnotation(java.lang.String descriptor, boolean visible)
org.objectweb.asm.AnnotationVisitor
visitAnnotationDefault()
void
visitEnd()
void
visitLabel(org.objectweb.asm.Label label)
void
visitLocalVariable(java.lang.String name, java.lang.String descriptor, java.lang.String signature, org.objectweb.asm.Label start, org.objectweb.asm.Label end, int index)
void
visitParameter(java.lang.String name, int modifiers)
org.objectweb.asm.AnnotationVisitor
visitParameterAnnotation(int index, java.lang.String descriptor, boolean visible)
org.objectweb.asm.AnnotationVisitor
visitTypeAnnotation(int rawTypeReference, org.objectweb.asm.TypePath typePath, java.lang.String descriptor, boolean visible)
-
Methods inherited from class org.objectweb.asm.MethodVisitor
visitAttribute, visitCode, visitFieldInsn, visitFrame, visitIincInsn, visitInsn, visitInsnAnnotation, visitIntInsn, visitInvokeDynamicInsn, visitJumpInsn, visitLdcInsn, visitLineNumber, visitLocalVariableAnnotation, visitLookupSwitchInsn, visitMaxs, visitMethodInsn, visitMethodInsn, visitMultiANewArrayInsn, visitTableSwitchInsn, visitTryCatchAnnotation, visitTryCatchBlock, visitTypeInsn, visitVarInsn
-
-
-
-
Field Detail
-
modifiers
private final int modifiers
The modifiers found for this method.
-
internalName
private final java.lang.String internalName
The internal name found for this method.
-
descriptor
private final java.lang.String descriptor
The descriptor found for this method.
-
genericSignature
private final java.lang.String genericSignature
The generic signature of the method ornull
if it is not generic.
-
exceptionName
private final java.lang.String[] exceptionName
An array of internal names of the exceptions of the found method ornull
if there are no such exceptions.
-
typeVariableAnnotationTokens
private final java.util.Map<java.lang.Integer,java.util.Map<java.lang.String,java.util.List<TypePool.Default.LazyTypeDescription.AnnotationToken>>> typeVariableAnnotationTokens
A mapping of the method's type variables' type annotations by their indices.
-
typeVariableBoundAnnotationTokens
private final java.util.Map<java.lang.Integer,java.util.Map<java.lang.Integer,java.util.Map<java.lang.String,java.util.List<TypePool.Default.LazyTypeDescription.AnnotationToken>>>> typeVariableBoundAnnotationTokens
A mapping of the method's type variables' bounds' type annotations by their indices and each variable's index.
-
returnTypeAnnotationTokens
private final java.util.Map<java.lang.String,java.util.List<TypePool.Default.LazyTypeDescription.AnnotationToken>> returnTypeAnnotationTokens
A mapping of the method's return type's type annotations.
-
parameterTypeAnnotationTokens
private final java.util.Map<java.lang.Integer,java.util.Map<java.lang.String,java.util.List<TypePool.Default.LazyTypeDescription.AnnotationToken>>> parameterTypeAnnotationTokens
A mapping of the parameters' type annotations by their indices.
-
exceptionTypeAnnotationTokens
private final java.util.Map<java.lang.Integer,java.util.Map<java.lang.String,java.util.List<TypePool.Default.LazyTypeDescription.AnnotationToken>>> exceptionTypeAnnotationTokens
A mapping of the exception types' type annotations by their indices.
-
receiverTypeAnnotationTokens
private final java.util.Map<java.lang.String,java.util.List<TypePool.Default.LazyTypeDescription.AnnotationToken>> receiverTypeAnnotationTokens
A mapping of the receiver type's type annotations.
-
annotationTokens
private final java.util.List<TypePool.Default.LazyTypeDescription.AnnotationToken> annotationTokens
A list of annotation tokens declared on the found method.
-
parameterAnnotationTokens
private final java.util.Map<java.lang.Integer,java.util.List<TypePool.Default.LazyTypeDescription.AnnotationToken>> parameterAnnotationTokens
A mapping of parameter indices to annotation tokens found for the parameters at these indices.
-
parameterTokens
private final java.util.List<TypePool.Default.LazyTypeDescription.MethodToken.ParameterToken> parameterTokens
A list of tokens representing meta information of a parameter as it is available for method's that are compiled in the Java 8 version format.
-
legacyParameterBag
private final TypePool.Default.ParameterBag legacyParameterBag
A bag of parameter meta information representing debugging information which allows to extract a method's parameter names.
-
firstLabel
private org.objectweb.asm.Label firstLabel
The first label that is found in the method's body, if any, denoting the start of the method. This label can be used to identify names of local variables that describe the method's parameters.
-
visibleParameterShift
private int visibleParameterShift
A shift index for visible parameters that indicates a deviation of the actual parameter index.
-
invisibleParameterShift
private int invisibleParameterShift
A shift index for invisible parameters that indicates a deviation of the actual parameter index.
-
defaultValue
private AnnotationValue<?,?> defaultValue
The default value of the found method ornull
if no such value exists.
-
-
Constructor Detail
-
MethodExtractor
protected MethodExtractor(int modifiers, java.lang.String internalName, java.lang.String descriptor, java.lang.String genericSignature, java.lang.String[] exceptionName)
Creates a method extractor.- Parameters:
modifiers
- The modifiers found for this method.internalName
- The internal name found for this method.descriptor
- The descriptor found for this method.genericSignature
- The generic signature of the method ornull
if it is not generic.exceptionName
- An array of internal names of the exceptions of the found method ornull
if there are no such exceptions.
-
-
Method Detail
-
visitTypeAnnotation
public org.objectweb.asm.AnnotationVisitor visitTypeAnnotation(int rawTypeReference, org.objectweb.asm.TypePath typePath, java.lang.String descriptor, boolean visible)
- Overrides:
visitTypeAnnotation
in classorg.objectweb.asm.MethodVisitor
-
visitAnnotation
public org.objectweb.asm.AnnotationVisitor visitAnnotation(java.lang.String descriptor, boolean visible)
- Overrides:
visitAnnotation
in classorg.objectweb.asm.MethodVisitor
-
visitAnnotableParameterCount
public void visitAnnotableParameterCount(int count, boolean visible)
- Overrides:
visitAnnotableParameterCount
in classorg.objectweb.asm.MethodVisitor
-
visitParameterAnnotation
public org.objectweb.asm.AnnotationVisitor visitParameterAnnotation(int index, java.lang.String descriptor, boolean visible)
- Overrides:
visitParameterAnnotation
in classorg.objectweb.asm.MethodVisitor
-
visitLabel
public void visitLabel(org.objectweb.asm.Label label)
- Overrides:
visitLabel
in classorg.objectweb.asm.MethodVisitor
-
visitLocalVariable
public void visitLocalVariable(java.lang.String name, java.lang.String descriptor, java.lang.String signature, org.objectweb.asm.Label start, org.objectweb.asm.Label end, int index)
- Overrides:
visitLocalVariable
in classorg.objectweb.asm.MethodVisitor
-
visitParameter
public void visitParameter(java.lang.String name, int modifiers)
- Overrides:
visitParameter
in classorg.objectweb.asm.MethodVisitor
-
visitAnnotationDefault
public org.objectweb.asm.AnnotationVisitor visitAnnotationDefault()
- Overrides:
visitAnnotationDefault
in classorg.objectweb.asm.MethodVisitor
-
register
public void register(java.lang.String ignored, AnnotationValue<?,?> annotationValue)
Registers an annotation value.- Specified by:
register
in interfaceTypePool.Default.AnnotationRegistrant
- Parameters:
ignored
- The name of the annotation value.annotationValue
- The value of the annotation.
-
onComplete
public void onComplete()
Called once all annotation values are visited.- Specified by:
onComplete
in interfaceTypePool.Default.AnnotationRegistrant
-
visitEnd
public void visitEnd()
- Overrides:
visitEnd
in classorg.objectweb.asm.MethodVisitor
-
-