@HashCodeAndEqualsPlugin.Enhance(includeSyntheticFields=true) protected class MethodCall.Appender extends java.lang.Object implements ByteCodeAppender
MethodCall
.ByteCodeAppender.Compound, ByteCodeAppender.Simple, ByteCodeAppender.Size
Modifier and Type | Field and Description |
---|---|
private java.util.List<MethodCall.ArgumentLoader.ArgumentProvider> |
argumentProviders
The argument providers to use.
|
private Implementation.Target |
implementationTarget
The implementation target.
|
private MethodCall.MethodInvoker |
methodInvoker
The method invoker to use.
|
private MethodCall.MethodLocator |
methodLocator
The method locator to use.
|
private MethodCall.TargetHandler |
targetHandler
The target handler to use.
|
private MethodCall.TerminationHandler |
terminationHandler
The termination handler to use.
|
Modifier | Constructor and Description |
---|---|
protected |
Appender(Implementation.Target implementationTarget,
MethodCall.TerminationHandler terminationHandler)
Creates a new appender.
|
Modifier and Type | Method and Description |
---|---|
ByteCodeAppender.Size |
apply(org.objectweb.asm.MethodVisitor methodVisitor,
Implementation.Context implementationContext,
MethodDescription instrumentedMethod)
Applies this byte code appender to a type creation process.
|
protected MethodDescription |
toInvokedMethod(MethodDescription instrumentedMethod,
MethodCall.TargetHandler.Resolved targetHandler)
Resolves this appender to the method being invoked.
|
protected StackManipulation |
toStackManipulation(MethodDescription instrumentedMethod,
MethodDescription invokedMethod,
MethodCall.TargetHandler.Resolved targetHandler)
Resolves this appender to a stack manipulation.
|
private final Implementation.Target implementationTarget
private final MethodCall.MethodLocator methodLocator
private final java.util.List<MethodCall.ArgumentLoader.ArgumentProvider> argumentProviders
private final MethodCall.MethodInvoker methodInvoker
private final MethodCall.TargetHandler targetHandler
private final MethodCall.TerminationHandler terminationHandler
protected Appender(Implementation.Target implementationTarget, MethodCall.TerminationHandler terminationHandler)
implementationTarget
- The implementation target.terminationHandler
- The termination handler to use.public ByteCodeAppender.Size apply(org.objectweb.asm.MethodVisitor methodVisitor, Implementation.Context implementationContext, MethodDescription instrumentedMethod)
apply
in interface ByteCodeAppender
methodVisitor
- The method visitor to which the byte code appender writes its code to.implementationContext
- The implementation context of the current type creation process.instrumentedMethod
- The method that is the target of the instrumentation.protected MethodDescription toInvokedMethod(MethodDescription instrumentedMethod, MethodCall.TargetHandler.Resolved targetHandler)
instrumentedMethod
- The instrumented method.targetHandler
- The resolved target handler to base the stack manipulation upon.protected StackManipulation toStackManipulation(MethodDescription instrumentedMethod, MethodDescription invokedMethod, MethodCall.TargetHandler.Resolved targetHandler)
instrumentedMethod
- The instrumented method.invokedMethod
- The invoked method.targetHandler
- The resolved target handler to base the stack manipulation upon.