Class TypeProxy.ForSuperMethodByReflectionFactory
java.lang.Object
net.bytebuddy.implementation.bytecode.StackManipulation.AbstractBase
net.bytebuddy.implementation.auxiliary.TypeProxy.ForSuperMethodByReflectionFactory
- All Implemented Interfaces:
StackManipulation
- Enclosing class:
TypeProxy
@Enhance
public static class TypeProxy.ForSuperMethodByReflectionFactory
extends StackManipulation.AbstractBase
Loads a type proxy onto the operand stack which is created by constructing a serialization constructor using
the Oracle JDK's
ReflectionFactory.newConstructorForSerialization(Class, java.lang.reflect.Constructor)
method which might not be available in any Java runtime. When this stack manipulation is applied, an instance of
the instrumented type must lie on top of the operand stack.-
Nested Class Summary
Nested classes/interfaces inherited from interface StackManipulation
StackManipulation.AbstractBase, StackManipulation.Compound, StackManipulation.Illegal, StackManipulation.Simple, StackManipulation.Size, StackManipulation.Trivial -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final booleantruetrueif any finalizer methods should be ignored for proxying.private final Implementation.TargetThe implementation target of the proxied type.private final TypeDescriptionThe type for which a proxy type is created.private final booleanDetermines if the proxy should be serializable. -
Constructor Summary
ConstructorsConstructorDescriptionForSuperMethodByReflectionFactory(TypeDescription proxiedType, Implementation.Target implementationTarget, boolean ignoreFinalizer, boolean serializableProxy) Creates a new stack operation for reflectively creating a type proxy for the given arguments. -
Method Summary
Modifier and TypeMethodDescriptionapply(org.objectweb.asm.MethodVisitor methodVisitor, Implementation.Context implementationContext) Applies the stack manipulation that is described by this instance.Methods inherited from class StackManipulation.AbstractBase
isValid
-
Field Details
-
proxiedType
The type for which a proxy type is created. -
implementationTarget
The implementation target of the proxied type. -
ignoreFinalizer
private final boolean ignoreFinalizertruetrueif any finalizer methods should be ignored for proxying. -
serializableProxy
private final boolean serializableProxyDetermines if the proxy should be serializable.
-
-
Constructor Details
-
ForSuperMethodByReflectionFactory
public ForSuperMethodByReflectionFactory(TypeDescription proxiedType, Implementation.Target implementationTarget, boolean ignoreFinalizer, boolean serializableProxy) Creates a new stack operation for reflectively creating a type proxy for the given arguments.- Parameters:
proxiedType- The type for the type proxy to subclass or implement.implementationTarget- The implementation target this type proxy is created for.ignoreFinalizer-trueif any finalizer methods should be ignored for proxying.serializableProxy- Determines if the proxy should be serializable.
-
-
Method Details
-
apply
public StackManipulation.Size apply(org.objectweb.asm.MethodVisitor methodVisitor, Implementation.Context implementationContext) Applies the stack manipulation that is described by this instance.- Parameters:
methodVisitor- The method visitor used to write the method implementation to.implementationContext- The context of the current implementation.- Returns:
- The changes to the size of the operand stack that are implied by this stack manipulation.
-