Package net.bytebuddy.implementation
Class FieldAccessor.ForSetter.OfFieldValue
- java.lang.Object
-
- net.bytebuddy.implementation.FieldAccessor
-
- net.bytebuddy.implementation.FieldAccessor.ForSetter<FieldAccessor.FieldLocation.Prepared>
-
- net.bytebuddy.implementation.FieldAccessor.ForSetter.OfFieldValue
-
- All Implemented Interfaces:
InstrumentedType.Prepareable,Implementation,Implementation.Composable
- Enclosing class:
- FieldAccessor.ForSetter<T>
@Enhance protected static class FieldAccessor.ForSetter.OfFieldValue extends FieldAccessor.ForSetter<FieldAccessor.FieldLocation.Prepared>
A setter that reads a value of another field and sets this value.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class net.bytebuddy.implementation.FieldAccessor.ForSetter
FieldAccessor.ForSetter.Appender, FieldAccessor.ForSetter.OfConstantValue, FieldAccessor.ForSetter.OfDefaultValue, FieldAccessor.ForSetter.OfFieldValue, FieldAccessor.ForSetter.OfParameterValue, FieldAccessor.ForSetter.OfReferenceValue, FieldAccessor.ForSetter.TerminationHandler
-
Nested classes/interfaces inherited from class net.bytebuddy.implementation.FieldAccessor
FieldAccessor.AssignerConfigurable, FieldAccessor.FieldLocation, FieldAccessor.FieldNameExtractor, FieldAccessor.ForImplicitProperty, FieldAccessor.ForSetter<T>, FieldAccessor.OwnerTypeLocatable, FieldAccessor.PropertyConfigurable
-
Nested classes/interfaces inherited from interface net.bytebuddy.implementation.Implementation
Implementation.Composable, Implementation.Compound, Implementation.Context, Implementation.Simple, Implementation.SpecialMethodInvocation, Implementation.Target
-
-
Field Summary
Fields Modifier and Type Field Description private FieldAccessor.FieldLocationtargetThe target field locator.-
Fields inherited from class net.bytebuddy.implementation.FieldAccessor
assigner, fieldLocation, typing
-
-
Constructor Summary
Constructors Modifier Constructor Description protectedOfFieldValue(FieldAccessor.FieldLocation fieldLocation, Assigner assigner, Assigner.Typing typing, FieldAccessor.ForSetter.TerminationHandler terminationHandler, FieldAccessor.FieldLocation target)Creates a setter that sets another field value.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description ImplementationandThen(Implementation implementation)Appends the supplied implementation to this implementation.Implementation.ComposableandThen(Implementation.Composable implementation)Appends the supplied composable implementation to this implementation.protected FieldAccessor.FieldLocation.Preparedinitialize(TypeDescription instrumentedType)Initializes a value to be used during method instrumentation.InstrumentedTypeprepare(InstrumentedType instrumentedType)Prepares a given instrumented type.protected StackManipulationresolve(FieldAccessor.FieldLocation.Prepared target, FieldDescription fieldDescription, TypeDescription instrumentedType, MethodDescription instrumentedMethod)Resolves the stack manipulation to load the value being set.-
Methods inherited from class net.bytebuddy.implementation.FieldAccessor.ForSetter
appender
-
Methods inherited from class net.bytebuddy.implementation.FieldAccessor
of, of, of, ofBeanProperty, ofField
-
-
-
-
Field Detail
-
target
private final FieldAccessor.FieldLocation target
The target field locator.
-
-
Constructor Detail
-
OfFieldValue
protected OfFieldValue(FieldAccessor.FieldLocation fieldLocation, Assigner assigner, Assigner.Typing typing, FieldAccessor.ForSetter.TerminationHandler terminationHandler, FieldAccessor.FieldLocation target)
Creates a setter that sets another field value.- Parameters:
fieldLocation- The field's location.assigner- The assigner to use.typing- Indicates if dynamic type castings should be attempted for incompatible assignments.terminationHandler- The termination handler to apply.target- The target field locator.
-
-
Method Detail
-
prepare
public InstrumentedType prepare(InstrumentedType instrumentedType)
Prepares a given instrumented type.- Parameters:
instrumentedType- The instrumented type in its current form.- Returns:
- The prepared instrumented type.
-
initialize
protected FieldAccessor.FieldLocation.Prepared initialize(TypeDescription instrumentedType)
Initializes a value to be used during method instrumentation.- Specified by:
initializein classFieldAccessor.ForSetter<FieldAccessor.FieldLocation.Prepared>- Parameters:
instrumentedType- The instrumented type.- Returns:
- The initialized value.
-
resolve
protected StackManipulation resolve(FieldAccessor.FieldLocation.Prepared target, FieldDescription fieldDescription, TypeDescription instrumentedType, MethodDescription instrumentedMethod)
Resolves the stack manipulation to load the value being set.- Specified by:
resolvein classFieldAccessor.ForSetter<FieldAccessor.FieldLocation.Prepared>- Parameters:
target- The method that was initialized for the instrumented type.fieldDescription- The field to set the value for.instrumentedType- The instrumented type.instrumentedMethod- The instrumented method.- Returns:
- The stack manipulation to apply.
-
andThen
public Implementation andThen(Implementation implementation)
Appends the supplied implementation to this implementation.- Parameters:
implementation- The subsequent implementation.- Returns:
- An implementation that combines this implementation with the provided one.
-
andThen
public Implementation.Composable andThen(Implementation.Composable implementation)
Appends the supplied composable implementation to this implementation.- Parameters:
implementation- The subsequent composable implementation.- Returns:
- A composable implementation that combines this implementation with the provided one.
-
-