protected static class InvocationHandlerAdapter.ForInstanceDelegation extends InvocationHandlerAdapter implements InvocationHandlerAdapter.AssignerConfigurable
InvocationHandlerAdapter
that delegates method
invocations to an adapter that is stored in an instance field.Modifier and Type | Class and Description |
---|---|
protected class |
InvocationHandlerAdapter.ForInstanceDelegation.Appender
An appender for implementing the
InvocationHandlerAdapter.ForInstanceDelegation . |
InvocationHandlerAdapter.AssignerConfigurable, InvocationHandlerAdapter.ForInstanceDelegation, InvocationHandlerAdapter.ForStaticDelegation
Implementation.Composable, Implementation.Compound, Implementation.Context, Implementation.Simple, Implementation.SpecialMethodInvocation, Implementation.Target
assigner, cacheMethods, CACHING, fieldName
Modifier | Constructor and Description |
---|---|
protected |
ForInstanceDelegation(String fieldName,
boolean cacheMethods,
Assigner assigner)
Creates a new invocation handler adapter for delegating invocations to an invocation handler that is stored
in an instance field.
|
Modifier and Type | Method and Description |
---|---|
ByteCodeAppender |
appender(Implementation.Target implementationTarget)
Creates a byte code appender that determines the implementation of the instrumented type's methods.
|
InstrumentedType |
prepare(InstrumentedType instrumentedType)
Prepares a given instrumented type.
|
String |
toString() |
Implementation |
withAssigner(Assigner assigner)
Configures an assigner to use with this invocation handler adapter.
|
InvocationHandlerAdapter.AssignerConfigurable |
withMethodCache()
By default, any
Method instance that is handed over to an
InvocationHandler is created on each invocation of the method. |
apply, equals, hashCode, of, of, toInstanceField
protected ForInstanceDelegation(String fieldName, boolean cacheMethods, Assigner assigner)
fieldName
- The name of the field.cacheMethods
- Determines if the Method
instances that are handed to the
intercepted methods are cached in static
fields.assigner
- The assigner to apply when defining this implementation.public InvocationHandlerAdapter.AssignerConfigurable withMethodCache()
InvocationHandlerAdapter
Method
instance that is handed over to an
InvocationHandler
is created on each invocation of the method.
Method
look-ups are normally cached by its defining Class
what
makes a repeated look-up of a method little expensive. However, because Method
instances are mutable by their AccessibleObject
contact, any looked-up instance
needs to be copied by its defining Class
before exposing it. This can cause performance
deficits when a method is for example called repeatedly in a loop. By enabling the method cache, this
performance penalty can be avoided by caching a single Method
instance for
any intercepted method as a static
field in the instrumented type.withMethodCache
in class InvocationHandlerAdapter
Method
instance
in form of a static
field.public Implementation withAssigner(Assigner assigner)
InvocationHandlerAdapter.AssignerConfigurable
withAssigner
in interface InvocationHandlerAdapter.AssignerConfigurable
assigner
- The assigner to apply when defining this implementation.assigner
configured.public InstrumentedType prepare(InstrumentedType instrumentedType)
InstrumentedType.Prepareable
prepare
in interface InstrumentedType.Prepareable
instrumentedType
- The instrumented type in its current form.public ByteCodeAppender appender(Implementation.Target implementationTarget)
Implementation
appender
in interface Implementation
implementationTarget
- The target of the current implementation.InstrumentedType.Prepareable.prepare(InstrumentedType)
.Copyright © 2014–2016. All rights reserved.