@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 typeName,
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.DescriptionStrategytrue 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 typeName, Class<?> type, TypePool typePool, AgentBuilder.CircularityLock circularityLock, ClassLoader classLoader, JavaModule module)
apply in interface AgentBuilder.DescriptionStrategytypeName - 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–2019. All rights reserved.