Top Description Inners Methods
org.easymock.bytebuddy.implementation

public Interface Implementation

extends Prepareable
Known Direct Subinterfaces
org.easymock.bytebuddy.implementation.Implementation.Composable, org.easymock.bytebuddy.implementation.FieldAccessor.PropertyConfigurable, org.easymock.bytebuddy.implementation.FixedValue.AssignerConfigurable
Known Direct Implementers
org.easymock.bytebuddy.implementation.Implementation.Compound, org.easymock.bytebuddy.implementation.Implementation.Simple, org.easymock.bytebuddy.implementation.Implementation.Simple.ForDispatcher, org.easymock.bytebuddy.implementation.SuperMethodCall.WithoutReturn, org.easymock.bytebuddy.implementation.ToStringMethod, org.easymock.bytebuddy.implementation.auxiliary.MethodCallProxy.ConstructorCall, org.easymock.bytebuddy.implementation.auxiliary.MethodCallProxy.MethodCall, org.easymock.bytebuddy.implementation.auxiliary.TypeProxy.SilentConstruction, org.easymock.bytebuddy.implementation.auxiliary.TypeProxy.MethodCall, org.easymock.bytebuddy.implementation.bind.annotation.FieldProxy.Binder.StaticFieldConstructor, org.easymock.bytebuddy.implementation.bind.annotation.FieldProxy.Binder.InstanceFieldConstructor, org.easymock.bytebuddy.implementation.bind.annotation.FieldProxy.Binder.FieldGetter, org.easymock.bytebuddy.implementation.bind.annotation.FieldProxy.Binder.FieldSetter, org.easymock.bytebuddy.implementation.bind.annotation.Morph.Binder.RedirectionProxy.StaticFieldConstructor, org.easymock.bytebuddy.implementation.bind.annotation.Morph.Binder.RedirectionProxy.InstanceFieldConstructor, org.easymock.bytebuddy.implementation.bind.annotation.Morph.Binder.RedirectionProxy.MethodCall, org.easymock.bytebuddy.implementation.bind.annotation.Pipe.Binder.RedirectionProxy.ConstructorCall, org.easymock.bytebuddy.implementation.bind.annotation.Pipe.Binder.RedirectionProxy.MethodCall, org.easymock.bytebuddy.ByteBuddy.EnumerationImplementation, org.easymock.bytebuddy.ByteBuddy.RecordConstructorStrategy, org.easymock.bytebuddy.ByteBuddy.RecordObjectMethod, org.easymock.bytebuddy.agent.builder.AgentBuilder.LambdaInstrumentationStrategy.LambdaInstanceFactory.ConstructorImplementation, org.easymock.bytebuddy.agent.builder.AgentBuilder.LambdaInstrumentationStrategy.LambdaInstanceFactory.FactoryImplementation, org.easymock.bytebuddy.agent.builder.AgentBuilder.LambdaInstrumentationStrategy.LambdaInstanceFactory.LambdaMethodImplementation, org.easymock.bytebuddy.agent.builder.AgentBuilder.LambdaInstrumentationStrategy.LambdaInstanceFactory.SerializationImplementation, org.easymock.bytebuddy.agent.builder.AgentBuilder.LambdaInstrumentationStrategy.LambdaInstanceFactory.BridgeMethodImplementation, org.easymock.bytebuddy.asm.Advice, org.easymock.bytebuddy.implementation.DefaultMethodCall, org.easymock.bytebuddy.implementation.EqualsMethod, org.easymock.bytebuddy.implementation.ExceptionMethod, org.easymock.bytebuddy.implementation.FieldAccessor, org.easymock.bytebuddy.implementation.FixedValue, org.easymock.bytebuddy.implementation.FixedValue.ForNullValue, org.easymock.bytebuddy.implementation.HashCodeMethod
Imports
org.easymock.bytebuddy.ClassFileVersion, org.easymock.bytebuddy.build.CachedReturnPlugin, .HashCodeAndEqualsPlugin, org.easymock.bytebuddy.description.annotation.AnnotationList, .AnnotationValue, org.easymock.bytebuddy.description.field.FieldDescription, org.easymock.bytebuddy.description.method.MethodDescription, .ParameterDescription, .ParameterList, org.easymock.bytebuddy.description.modifier.Visibility, org.easymock.bytebuddy.description.type.TypeDefinition, .TypeDescription, .TypeList, org.easymock.bytebuddy.dynamic.DynamicType, org.easymock.bytebuddy.dynamic.scaffold.InstrumentedType, .MethodGraph, .TypeInitializer, .TypeWriter, org.easymock.bytebuddy.implementation.attribute.AnnotationValueFilter, org.easymock.bytebuddy.implementation.auxiliary.AuxiliaryType, org.easymock.bytebuddy.implementation.bytecode.ByteCodeAppender, .StackManipulation, org.easymock.bytebuddy.implementation.bytecode.member.FieldAccess, .MethodInvocation, .MethodReturn, .MethodVariableAccess, org.easymock.bytebuddy.utility.CompoundList, .JavaConstant, .RandomString, org.easymock.bytebuddy.utility.nullability.MaybeNull, org.easymock.bytebuddy.jar.asm.ClassVisitor, .FieldVisitor, .MethodVisitor, .Opcodes, javax.annotation.Nonnull, java.util.*

An implementation is responsible for implementing methods of a dynamically created type as byte code. An implementation is applied in two stages:
  1. The implementation is able to prepare an instrumented type by adding fields and/or helper methods that are required for the methods implemented by this implementation. Furthermore, LoadedTypeInitializers and byte code for the type initializer can be registered for the instrumented type.
  2. Any implementation is required to supply a byte code appender that is responsible for providing the byte code to the instrumented methods that were delegated to this implementation. This byte code appender is also be responsible for providing implementations for the methods added in step 1.

 

An implementation should provide meaningful implementations of both java.lang.Object#equals(Object) and Object#hashCode() if it wants to avoid to be used twice within the creation of a dynamic type. For two equal implementations only one will be applied on the creation of a dynamic type.

Nested and Inner Type Summary

Modifier and TypeClass and Description
public static interface
Implementation.Composable

Represents an implementation that can be chained together with another implementation.

public static class
Implementation.Compound

A compound implementation that allows to combine several implementations.

public static interface
Implementation.Context

The context for an implementation application.

public static class
Implementation.Simple

A simple implementation that does not register any members with the instrumented type.

public static interface
Implementation.SpecialMethodInvocation

Represents a type-specific method invocation on the current instrumented type which is not legal from outside the type such as a super method or default method invocation.

public static interface
Implementation.Target

The target of an implementation.

Method Summary

Modifier and TypeMethod and Description
public ByteCodeAppender

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 Implementation#prepare(InstrumentedType).
appender
(Implementation.Target
The target of the current implementation.
implementationTarget
)

Creates a byte code appender that determines the implementation of the instrumented type's methods.

Inherited from org.easymock.bytebuddy.dynamic.scaffold.InstrumentedType.Prepareable:
prepare