Package net.bytebuddy.agent.builder
Interface AgentBuilder.DescriptionStrategy
- All Known Implementing Classes:
AgentBuilder.DescriptionStrategy.Default
,AgentBuilder.DescriptionStrategy.SuperTypeLoading
,AgentBuilder.DescriptionStrategy.SuperTypeLoading.Asynchronous
- Enclosing interface:
- AgentBuilder
public static interface AgentBuilder.DescriptionStrategy
A description strategy is responsible for resolving a
TypeDescription
when transforming or retransforming/-defining a type.-
Nested Class Summary
Nested ClassesModifier and TypeInterfaceDescriptionstatic enum
Default implementations of aAgentBuilder.DescriptionStrategy
.static class
A description strategy that enforces the loading of any super type of a type description but delegates the actual type description to another description strategy. -
Method Summary
Modifier and TypeMethodDescriptionapply
(String name, Class<?> type, TypePool typePool, AgentBuilder.CircularityLock circularityLock, ClassLoader classLoader, JavaModule module) Describes the given type.boolean
Indicates if this description strategy makes use of loaded type information and yields a different type description if no loaded type is available.
-
Method Details
-
isLoadedFirst
boolean isLoadedFirst()Indicates if this description strategy makes use of loaded type information and yields a different type description if no loaded type is available.- Returns:
true
if this description strategy prefers loaded type information when describing a type and only uses a type pool if loaded type information is not available.
-
apply
TypeDescription apply(String name, @MaybeNull Class<?> type, TypePool typePool, AgentBuilder.CircularityLock circularityLock, @MaybeNull ClassLoader classLoader, @MaybeNull JavaModule module) Describes the given type.- Parameters:
name
- The binary name of the type to describe.type
- The type that is being redefined, if a redefinition is applied ornull
if no redefined type is available.typePool
- The type pool to use for locating a type if required.classLoader
- The type's class loader wherenull
represents the bootstrap class loader.circularityLock
- The currently used circularity lock.module
- The type's module ornull
if the current VM does not support modules.- Returns:
- An appropriate type description.
-