Class MethodRebaseResolver.Default
- java.lang.Object
-
- net.bytebuddy.dynamic.scaffold.inline.MethodRebaseResolver.Default
-
- All Implemented Interfaces:
MethodRebaseResolver
- Enclosing interface:
- MethodRebaseResolver
@Enhance public static class MethodRebaseResolver.Default extends java.lang.Object implements MethodRebaseResolver
A default implementation of a method rebase resolver.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface net.bytebuddy.dynamic.scaffold.inline.MethodRebaseResolver
MethodRebaseResolver.Default, MethodRebaseResolver.Disabled, MethodRebaseResolver.Resolution
-
-
Field Summary
Fields Modifier and Type Field Description private java.util.List<DynamicType>
dynamicTypes
A list of dynamic types that need to be appended to the created type in order to allow for the rebasement.private java.util.Map<MethodDescription.InDefinedShape,MethodRebaseResolver.Resolution>
resolutions
A mapping of rebased methods to their existing resolutions.
-
Constructor Summary
Constructors Modifier Constructor Description protected
Default(java.util.Map<MethodDescription.InDefinedShape,MethodRebaseResolver.Resolution> resolutions, java.util.List<DynamicType> dynamicTypes)
Creates a new default method rebased resolver.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description java.util.Map<MethodDescription.SignatureToken,MethodRebaseResolver.Resolution>
asTokenMap()
Returns a map of all rebasable methods' signature tokens to their resolution.java.util.List<DynamicType>
getAuxiliaryTypes()
Returns a (potentially empty) list of auxiliary types that are required by this method rebase resolver.static MethodRebaseResolver
make(TypeDescription instrumentedType, java.util.Set<? extends MethodDescription.SignatureToken> rebaseables, ClassFileVersion classFileVersion, AuxiliaryType.NamingStrategy auxiliaryTypeNamingStrategy, MethodNameTransformer methodNameTransformer)
Creates a new method rebase resolver.MethodRebaseResolver.Resolution
resolve(MethodDescription.InDefinedShape methodDescription)
Checks if a method is eligible for rebasing and resolves this possibly rebased method.
-
-
-
Field Detail
-
resolutions
private final java.util.Map<MethodDescription.InDefinedShape,MethodRebaseResolver.Resolution> resolutions
A mapping of rebased methods to their existing resolutions.
-
dynamicTypes
private final java.util.List<DynamicType> dynamicTypes
A list of dynamic types that need to be appended to the created type in order to allow for the rebasement.
-
-
Constructor Detail
-
Default
protected Default(java.util.Map<MethodDescription.InDefinedShape,MethodRebaseResolver.Resolution> resolutions, java.util.List<DynamicType> dynamicTypes)
Creates a new default method rebased resolver.- Parameters:
resolutions
- A mapping of rebased methods to their existing resolutions.dynamicTypes
- A list of dynamic types that need to be appended to the created type in order to allow for the rebasement.
-
-
Method Detail
-
make
public static MethodRebaseResolver make(TypeDescription instrumentedType, java.util.Set<? extends MethodDescription.SignatureToken> rebaseables, ClassFileVersion classFileVersion, AuxiliaryType.NamingStrategy auxiliaryTypeNamingStrategy, MethodNameTransformer methodNameTransformer)
Creates a new method rebase resolver.- Parameters:
instrumentedType
- The instrumented type.rebaseables
- Tokens describing all methods that can possibly be rebased.classFileVersion
- The class file version for the instrumentation.auxiliaryTypeNamingStrategy
- The naming strategy for naming a potential auxiliary type.methodNameTransformer
- A transformer for method names.- Returns:
- A method rebase resolver that is capable of rebasing any of the provided methods.
-
resolve
public MethodRebaseResolver.Resolution resolve(MethodDescription.InDefinedShape methodDescription)
Checks if a method is eligible for rebasing and resolves this possibly rebased method.- Specified by:
resolve
in interfaceMethodRebaseResolver
- Parameters:
methodDescription
- A description of the method to resolve.- Returns:
- A resolution for the given method.
-
getAuxiliaryTypes
public java.util.List<DynamicType> getAuxiliaryTypes()
Returns a (potentially empty) list of auxiliary types that are required by this method rebase resolver.- Specified by:
getAuxiliaryTypes
in interfaceMethodRebaseResolver
- Returns:
- A list of auxiliary types that are required by this method rebase resolver.
-
asTokenMap
public java.util.Map<MethodDescription.SignatureToken,MethodRebaseResolver.Resolution> asTokenMap()
Returns a map of all rebasable methods' signature tokens to their resolution.- Specified by:
asTokenMap
in interfaceMethodRebaseResolver
- Returns:
- A map of all rebasable methods' signature tokens to their resolution.
-
-