public class TypeProxy extends Object implements AuxiliaryType, MethodLookupEngine.Factory
| Modifier and Type | Class and Description |
|---|---|
protected static class |
TypeProxy.AbstractMethodErrorThrow
A stack manipulation that throws an abstract method error in case that a given super method cannot be invoked.
|
static class |
TypeProxy.ForDefaultMethod
Creates a type proxy which delegates its super method calls to any invokable default method of
a given interface and loads an instance of this proxy onto the operand stack.
|
static class |
TypeProxy.ForSuperMethodByConstructor
Loads a type proxy onto the operand stack which is created by calling one of its constructors.
|
static class |
TypeProxy.ForSuperMethodByReflectionFactory
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. |
static interface |
TypeProxy.InvocationFactory
An invocation factory is responsible for creating a special method invocation for any method that is to be
invoked.
|
protected class |
TypeProxy.MethodCall
An implementation for a method call of a
TypeProxy. |
protected static class |
TypeProxy.SilentConstruction
An implementation of a silent construction of a given type by using the non-standardized
ReflectionFactory. |
AuxiliaryType.MethodAccessorFactory, AuxiliaryType.NamingStrategy| Modifier and Type | Field and Description |
|---|---|
static String |
INSTANCE_FIELD
The name of the field that stores the delegation instance.
|
static String |
REFLECTION_METHOD
The name of the
static method that is added to this auxiliary type for creating instances by using the
Oracle JDK's ReflectionFactory. |
DEFAULT_TYPE_MODIFIER| Constructor and Description |
|---|
TypeProxy(TypeDescription proxiedType,
Implementation.Target implementationTarget,
TypeProxy.InvocationFactory invocationFactory,
boolean ignoreFinalizer,
boolean serializableProxy)
Creates a new type proxy.
|
| Modifier and Type | Method and Description |
|---|---|
boolean |
equals(Object other) |
int |
hashCode() |
MethodLookupEngine |
make(boolean extractDefaultMethods)
Returns a
MethodLookupEngine. |
DynamicType |
make(String auxiliaryTypeName,
ClassFileVersion classFileVersion,
AuxiliaryType.MethodAccessorFactory methodAccessorFactory)
Creates a new auxiliary type.
|
String |
toString() |
public static final String REFLECTION_METHOD
static method that is added to this auxiliary type for creating instances by using the
Oracle JDK's ReflectionFactory.public static final String INSTANCE_FIELD
public TypeProxy(TypeDescription proxiedType, Implementation.Target implementationTarget, TypeProxy.InvocationFactory invocationFactory, boolean ignoreFinalizer, boolean serializableProxy)
proxiedType - The type this proxy should implement which can either be a non-final class or an interface.implementationTarget - The implementation target this type proxy is created for.invocationFactory - The invocation factory for creating special method invocations.ignoreFinalizer - true if any finalizer methods should be ignored for proxying.serializableProxy - Determines if the proxy should be serializable.public DynamicType make(String auxiliaryTypeName, ClassFileVersion classFileVersion, AuxiliaryType.MethodAccessorFactory methodAccessorFactory)
AuxiliaryTypemake in interface AuxiliaryTypeauxiliaryTypeName - The fully qualified non-internal name for this auxiliary type. The type should be in
the same package than the instrumented type this auxiliary type is providing services
to in order to allow package-private access.classFileVersion - The class file version the auxiliary class should be written in.methodAccessorFactory - A factory for accessor methods.public MethodLookupEngine make(boolean extractDefaultMethods)
MethodLookupEngine.FactoryMethodLookupEngine.make in interface MethodLookupEngine.FactoryextractDefaultMethods - true if interface default methods should be resolved.MethodLookupEngine.Copyright © 2014–2015. All rights reserved.