Package net.bytebuddy.implementation
Class FieldAccessor.ForSetter.OfConstantValue
- java.lang.Object
-
- net.bytebuddy.implementation.FieldAccessor
-
- net.bytebuddy.implementation.FieldAccessor.ForSetter<java.lang.Void>
-
- net.bytebuddy.implementation.FieldAccessor.ForSetter.OfConstantValue
-
- All Implemented Interfaces:
InstrumentedType.Prepareable,Implementation,Implementation.Composable
- Enclosing class:
- FieldAccessor.ForSetter<T>
@Enhance protected static class FieldAccessor.ForSetter.OfConstantValue extends FieldAccessor.ForSetter<java.lang.Void>
An instrumentation that sets a constant value to a field.
-
-
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
-
Nested classes/interfaces inherited from interface net.bytebuddy.dynamic.scaffold.InstrumentedType.Prepareable
InstrumentedType.Prepareable.NoOp
-
-
Field Summary
Fields Modifier and Type Field Description private StackManipulationstackManipulationA stack manipulation to load the constant value.private TypeDescription.GenerictypeDescriptionThe value's type.-
Fields inherited from class net.bytebuddy.implementation.FieldAccessor
assigner, fieldLocation, typing
-
-
Constructor Summary
Constructors Modifier Constructor Description protectedOfConstantValue(FieldAccessor.FieldLocation fieldLocation, Assigner assigner, Assigner.Typing typing, FieldAccessor.ForSetter.TerminationHandler terminationHandler, TypeDescription.Generic typeDescription, StackManipulation stackManipulation)Creates a setter instrumentation for setting a constant 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 java.lang.Voidinitialize(TypeDescription instrumentedType)Initializes a value to be used during method instrumentation.InstrumentedTypeprepare(InstrumentedType instrumentedType)Prepares a given instrumented type.protected StackManipulationresolve(java.lang.Void unused, 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, of, of, ofBeanProperty, ofField
-
-
-
-
Field Detail
-
typeDescription
private final TypeDescription.Generic typeDescription
The value's type.
-
stackManipulation
private final StackManipulation stackManipulation
A stack manipulation to load the constant value.
-
-
Constructor Detail
-
OfConstantValue
protected OfConstantValue(FieldAccessor.FieldLocation fieldLocation, Assigner assigner, Assigner.Typing typing, FieldAccessor.ForSetter.TerminationHandler terminationHandler, TypeDescription.Generic typeDescription, StackManipulation stackManipulation)
Creates a setter instrumentation for setting a constant 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.typeDescription- The value's type.stackManipulation- A stack manipulation to load the constant value.
-
-
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
@AlwaysNull protected java.lang.Void initialize(TypeDescription instrumentedType)
Initializes a value to be used during method instrumentation.- Specified by:
initializein classFieldAccessor.ForSetter<java.lang.Void>- Parameters:
instrumentedType- The instrumented type.- Returns:
- The initialized value.
-
resolve
protected StackManipulation resolve(@MaybeNull java.lang.Void unused, FieldDescription fieldDescription, TypeDescription instrumentedType, MethodDescription instrumentedMethod)
Resolves the stack manipulation to load the value being set.- Specified by:
resolvein classFieldAccessor.ForSetter<java.lang.Void>- Parameters:
unused- 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.
-
-