Package net.bytebuddy.implementation
Class InvocationHandlerAdapter.ForField
java.lang.Object
net.bytebuddy.implementation.InvocationHandlerAdapter
net.bytebuddy.implementation.InvocationHandlerAdapter.ForField
- All Implemented Interfaces:
InstrumentedType.Prepareable
,Implementation
,Implementation.Composable
,InvocationHandlerAdapter.AssignerConfigurable
,InvocationHandlerAdapter.WithoutPrivilegeConfiguration
- Enclosing class:
InvocationHandlerAdapter
@Enhance
protected static class InvocationHandlerAdapter.ForField
extends InvocationHandlerAdapter
implements InvocationHandlerAdapter.WithoutPrivilegeConfiguration
An implementation of an
InvocationHandlerAdapter
that delegates method
invocations to an adapter that is stored in an instance field.-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprotected class
An appender for implementing theInvocationHandlerAdapter.ForField
.Nested classes/interfaces inherited from class net.bytebuddy.implementation.InvocationHandlerAdapter
InvocationHandlerAdapter.AssignerConfigurable, InvocationHandlerAdapter.ForField, InvocationHandlerAdapter.ForInstance, InvocationHandlerAdapter.WithoutPrivilegeConfiguration
Nested classes/interfaces inherited from interface net.bytebuddy.implementation.Implementation
Implementation.Composable, Implementation.Compound, Implementation.Context, Implementation.Simple, Implementation.SpecialMethodInvocation, Implementation.Target
Nested classes/interfaces inherited from interface net.bytebuddy.dynamic.scaffold.InstrumentedType.Prepareable
InstrumentedType.Prepareable.NoOp
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final FieldLocator.Factory
The field locator factory to use.Fields inherited from class net.bytebuddy.implementation.InvocationHandlerAdapter
assigner, cached, fieldName, privileged, returning
-
Constructor Summary
ConstructorsModifierConstructorDescriptionprotected
ForField
(String fieldName, boolean cached, boolean privileged, boolean returning, Assigner assigner, FieldLocator.Factory fieldLocatorFactory) Creates a new invocation handler adapter that loads its value from a field. -
Method Summary
Modifier and TypeMethodDescriptionandThen
(Implementation implementation) Appends the supplied implementation to this implementation.andThen
(Implementation.Composable implementation) Appends the supplied composable implementation to this implementation.appender
(Implementation.Target implementationTarget) Creates a byte code appender that determines the implementation of the instrumented type's methods.prepare
(InstrumentedType instrumentedType) Prepares a given instrumented type.withAssigner
(Assigner assigner) Configures an assigner to use with this invocation handler adapter.By default, anyMethod
instance that is handed over to anInvocationHandler
is cached in a static field.Configures that the method constants supplied to the invocation handler adapter are resolved using anjava.security.AccessController
.
-
Field Details
-
fieldLocatorFactory
The field locator factory to use.
-
-
Constructor Details
-
ForField
protected ForField(String fieldName, boolean cached, boolean privileged, boolean returning, Assigner assigner, FieldLocator.Factory fieldLocatorFactory) Creates a new invocation handler adapter that loads its value from a field.- Parameters:
fieldName
- The name of the field.cached
- Determines if theMethod
instances that are handed to the intercepted methods are cached instatic
fields.privileged
- Determines if theMethod
instances are retrieved by using anjava.security.AccessController
.returning
- Determines if this implementation is returning the result value or is dropping it.assigner
- The assigner to apply when defining this implementation.fieldLocatorFactory
- The field locator factory to use.
-
-
Method Details
-
withoutMethodCache
Description copied from class:InvocationHandlerAdapter
By default, anyMethod
instance that is handed over to anInvocationHandler
is cached in a static field. By invoking this method, this feature can be disabled.- Specified by:
withoutMethodCache
in classInvocationHandlerAdapter
- Returns:
- A similar invocation handler adapter that applies caching.
-
withAssigner
Description copied from class:InvocationHandlerAdapter
Configures an assigner to use with this invocation handler adapter.- Specified by:
withAssigner
in interfaceInvocationHandlerAdapter.AssignerConfigurable
- Specified by:
withAssigner
in classInvocationHandlerAdapter
- Parameters:
assigner
- The assigner to apply when defining this implementation.- Returns:
- This instrumentation with the given
assigner
configured.
-
withPrivilegedLookup
Description copied from class:InvocationHandlerAdapter
Configures that the method constants supplied to the invocation handler adapter are resolved using anjava.security.AccessController
.- Specified by:
withPrivilegedLookup
in interfaceInvocationHandlerAdapter.WithoutPrivilegeConfiguration
- Specified by:
withPrivilegedLookup
in classInvocationHandlerAdapter
- Returns:
- This instrumentation with a privileged lookup configured.
-
andThen
Appends the supplied implementation to this implementation.- Specified by:
andThen
in interfaceImplementation.Composable
- Parameters:
implementation
- The subsequent implementation.- Returns:
- An implementation that combines this implementation with the provided one.
-
andThen
Appends the supplied composable implementation to this implementation.- Specified by:
andThen
in interfaceImplementation.Composable
- Parameters:
implementation
- The subsequent composable implementation.- Returns:
- A composable implementation that combines this implementation with the provided one.
-
prepare
Prepares a given instrumented type.- Specified by:
prepare
in interfaceInstrumentedType.Prepareable
- Parameters:
instrumentedType
- The instrumented type in its current form.- Returns:
- The prepared instrumented type.
-
appender
Creates a byte code appender that determines the implementation of the instrumented type's methods.- Specified by:
appender
in interfaceImplementation
- Parameters:
implementationTarget
- The target of the current implementation.- Returns:
- A byte code appender for implementing methods delegated to this implementation. This byte code appender
is also responsible for handling methods that were added by this implementation on the call to
InstrumentedType.Prepareable.prepare(InstrumentedType)
.
-