@HashCodeAndEqualsPlugin.Enhance public static class AgentBuilder.DescriptionStrategy.SuperTypeLoading extends Object implements AgentBuilder.DescriptionStrategy
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.
Warning: When using this description strategy, a type is not instrumented if any of its subtypes is loaded first. The instrumentation API does not submit such types to a class file transformer on most VM implementations.
Modifier and Type | Class and Description |
---|---|
static class |
AgentBuilder.DescriptionStrategy.SuperTypeLoading.Asynchronous
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.
|
protected static class |
AgentBuilder.DescriptionStrategy.SuperTypeLoading.UnlockingClassLoadingDelegate
A class loading delegate that unlocks the circularity lock during class loading.
|
AgentBuilder.DescriptionStrategy.Default, AgentBuilder.DescriptionStrategy.SuperTypeLoading
Constructor and Description |
---|
SuperTypeLoading(AgentBuilder.DescriptionStrategy delegate)
Creates a new description strategy that enforces loading of a super type.
|
Modifier and Type | Method and Description |
---|---|
TypeDescription |
apply(String name,
Class<?> type,
TypePool typePool,
AgentBuilder.CircularityLock circularityLock,
ClassLoader classLoader,
JavaModule module)
Describes the given type.
|
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.
|
public SuperTypeLoading(AgentBuilder.DescriptionStrategy delegate)
delegate
- The delegate description strategy.public boolean isLoadedFirst()
isLoadedFirst
in interface AgentBuilder.DescriptionStrategy
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.public TypeDescription apply(String name, @MaybeNull Class<?> type, TypePool typePool, AgentBuilder.CircularityLock circularityLock, @MaybeNull ClassLoader classLoader, @MaybeNull JavaModule module)
apply
in interface AgentBuilder.DescriptionStrategy
name
- The binary name of the type to describe.type
- The type that is being redefined, if a redefinition is applied or null
if no redefined type is available.typePool
- The type pool to use for locating a type if required.circularityLock
- The currently used circularity lock.classLoader
- The type's class loader where null
represents the bootstrap class loader.module
- The type's module or null
if the current VM does not support modules.Copyright © 2014–2023. All rights reserved.