Class AgentBuilder.RedefinitionStrategy.Collector
java.lang.Object
net.bytebuddy.agent.builder.AgentBuilder.RedefinitionStrategy.Collector
- Direct Known Subclasses:
AgentBuilder.RedefinitionStrategy.Collector.ForRedefinition, AgentBuilder.RedefinitionStrategy.Collector.ForRetransformation
- Enclosing class:
AgentBuilder.RedefinitionStrategy
A collector is responsible for collecting classes that are to be considered for modification.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprotected static classA collector that applies a redefinition of already loaded classes.protected static classA collector that applies a retransformation of already loaded classes.protected static classAn iterator that allows prepending of iterables to be applied previous to another iterator. -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected final AgentBuilder.CircularityLockThe circularity lock to use.protected final AgentBuilder.ListenerThe listener to notify on transformations.protected final AgentBuilder.LocationStrategyThe location strategy to use.All types that were collected for redefinition. -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedCollector(AgentBuilder.RawMatcher matcher, AgentBuilder.PoolStrategy poolStrategy, AgentBuilder.LocationStrategy locationStrategy, AgentBuilder.DescriptionStrategy descriptionStrategy, AgentBuilder.Listener listener, AgentBuilder.FallbackStrategy fallbackStrategy, AgentBuilder.CircularityLock circularityLock) Creates a new collector. -
Method Summary
Modifier and TypeMethodDescriptionprotected intapply(Instrumentation instrumentation, AgentBuilder.RedefinitionStrategy.BatchAllocator redefinitionBatchAllocator, AgentBuilder.RedefinitionStrategy.Listener redefinitionListener, int batch) Applies all types that this collector collected.protected voidConsiders a loaded class for collection.protected abstract voiddoApply(Instrumentation instrumentation, List<Class<?>> types) Applies this collector.
-
Field Details
-
locationStrategy
The location strategy to use. -
listener
The listener to notify on transformations. -
circularityLock
The circularity lock to use. -
types
-
-
Constructor Details
-
Collector
protected Collector(AgentBuilder.RawMatcher matcher, AgentBuilder.PoolStrategy poolStrategy, AgentBuilder.LocationStrategy locationStrategy, AgentBuilder.DescriptionStrategy descriptionStrategy, AgentBuilder.Listener listener, AgentBuilder.FallbackStrategy fallbackStrategy, AgentBuilder.CircularityLock circularityLock) Creates a new collector.- Parameters:
matcher- The matcher to identify what types to redefine.poolStrategy- The pool strategy to use.locationStrategy- The location strategy to use.descriptionStrategy- The description strategy for resolving type descriptions for types.listener- The listener to notify on transformations.fallbackStrategy- The fallback strategy to apply.circularityLock- The circularity lock to use.
-
-
Method Details
-
consider
Considers a loaded class for collection.- Parameters:
type- The loaded type being considered.modifiable-trueif the considered type is considered modifiable.
-
apply
protected int apply(Instrumentation instrumentation, AgentBuilder.RedefinitionStrategy.BatchAllocator redefinitionBatchAllocator, AgentBuilder.RedefinitionStrategy.Listener redefinitionListener, int batch) Applies all types that this collector collected.- Parameters:
instrumentation- The instrumentation instance to apply changes to.redefinitionBatchAllocator- The redefinition batch allocator to use.redefinitionListener- The redefinition listener to use.batch- The next batch's index.- Returns:
- The next batch's index after this application.
-
doApply
protected abstract void doApply(Instrumentation instrumentation, List<Class<?>> types) throws UnmodifiableClassException, ClassNotFoundException Applies this collector.- Parameters:
instrumentation- The instrumentation instance to apply the transformation for.types- The types of the current patch to transform.- Throws:
UnmodifiableClassException- If a class is not modifiable.ClassNotFoundException- If a class could not be found.
-