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.ForStaticDelegationImplementation.Composable, Implementation.Compound, Implementation.Context, Implementation.Simple, Implementation.SpecialMethodInvocation, Implementation.Targetassigner, 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, toInstanceFieldprotected 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()
InvocationHandlerAdapterMethod 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 InvocationHandlerAdapterMethod instance
in form of a static field.public Implementation withAssigner(Assigner assigner)
InvocationHandlerAdapter.AssignerConfigurablewithAssigner in interface InvocationHandlerAdapter.AssignerConfigurableassigner - The assigner to apply when defining this implementation.assigner configured.public InstrumentedType prepare(InstrumentedType instrumentedType)
InstrumentedType.Prepareableprepare in interface InstrumentedType.PrepareableinstrumentedType - The instrumented type in its current form.public ByteCodeAppender appender(Implementation.Target implementationTarget)
Implementationappender in interface ImplementationimplementationTarget - The target of the current implementation.InstrumentedType.Prepareable.prepare(InstrumentedType).Copyright © 2014–2016. All rights reserved.