Package net.bytebuddy.dynamic.loading
Class ClassReloadingStrategy.Dispatcher.ForJava6CapableVm
- java.lang.Object
-
- net.bytebuddy.dynamic.loading.ClassReloadingStrategy.Dispatcher.ForJava6CapableVm
-
- All Implemented Interfaces:
ClassReloadingStrategy.Dispatcher
- Enclosing interface:
- ClassReloadingStrategy.Dispatcher
public static class ClassReloadingStrategy.Dispatcher.ForJava6CapableVm extends Object implements ClassReloadingStrategy.Dispatcher
A dispatcher for a Java 6 capable VM that is potentially capable of retransformation.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface net.bytebuddy.dynamic.loading.ClassReloadingStrategy.Dispatcher
ClassReloadingStrategy.Dispatcher.CreationAction, ClassReloadingStrategy.Dispatcher.ForJava6CapableVm, ClassReloadingStrategy.Dispatcher.ForLegacyVm
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
ForJava6CapableVm(Method isModifiableClass, Method isRetransformClassesSupported, Method addTransformer, Method retransformClasses)
Creates a dispatcher for a Java 6 compatible VM.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addTransformer(Instrumentation instrumentation, ClassFileTransformer classFileTransformer, boolean canRetransform)
Registers a transformer.boolean
isModifiableClass(Instrumentation instrumentation, Class<?> type)
Invokes theInstrumentation#isModifiableClass
method.boolean
isRetransformClassesSupported(Instrumentation instrumentation)
Invokes theInstrumentation#isRetransformClassesSupported
method.void
retransformClasses(Instrumentation instrumentation, Class<?>[] type)
Retransforms the supplied classes.
-
-
-
Constructor Detail
-
ForJava6CapableVm
protected ForJava6CapableVm(Method isModifiableClass, Method isRetransformClassesSupported, Method addTransformer, Method retransformClasses)
Creates a dispatcher for a Java 6 compatible VM.- Parameters:
isModifiableClass
- TheInstrumentation#isModifiableClass
method.isRetransformClassesSupported
- TheInstrumentation#isRetransformClassesSupported
method.addTransformer
- TheInstrumentation#addTransformer
method.retransformClasses
- TheInstrumentation#retransformClasses
method.
-
-
Method Detail
-
isModifiableClass
public boolean isModifiableClass(Instrumentation instrumentation, Class<?> type)
Invokes theInstrumentation#isModifiableClass
method.- Specified by:
isModifiableClass
in interfaceClassReloadingStrategy.Dispatcher
- Parameters:
instrumentation
- The instrumentation instance to invoke the method on.type
- The type to consider for modifiability.- Returns:
true
if the supplied type can be modified.
-
isRetransformClassesSupported
public boolean isRetransformClassesSupported(Instrumentation instrumentation)
Invokes theInstrumentation#isRetransformClassesSupported
method.- Specified by:
isRetransformClassesSupported
in interfaceClassReloadingStrategy.Dispatcher
- Parameters:
instrumentation
- The instrumentation instance to invoke the method on.- Returns:
true
if the supplied instrumentation instance supports retransformation.
-
addTransformer
public void addTransformer(Instrumentation instrumentation, ClassFileTransformer classFileTransformer, boolean canRetransform)
Registers a transformer.- Specified by:
addTransformer
in interfaceClassReloadingStrategy.Dispatcher
- Parameters:
instrumentation
- The instrumentation instance to invoke the method on.classFileTransformer
- The class file transformer to register.canRetransform
-true
if the class file transformer should be invoked upon a retransformation.
-
retransformClasses
public void retransformClasses(Instrumentation instrumentation, Class<?>[] type) throws UnmodifiableClassException
Retransforms the supplied classes.- Specified by:
retransformClasses
in interfaceClassReloadingStrategy.Dispatcher
- Parameters:
instrumentation
- The instrumentation instance to invoke the method on.type
- The types to retransform.- Throws:
UnmodifiableClassException
- If any of the supplied types are unmodifiable.
-
-