Package net.bytebuddy.implementation
Class FixedValue.ForValue
- java.lang.Object
-
- net.bytebuddy.implementation.FixedValue
-
- net.bytebuddy.implementation.FixedValue.ForValue
-
- All Implemented Interfaces:
InstrumentedType.Prepareable
,FixedValue.AssignerConfigurable
,Implementation
- Enclosing class:
- FixedValue
@Enhance protected static class FixedValue.ForValue extends FixedValue implements FixedValue.AssignerConfigurable
A fixed value implementation that represents its fixed value as a static field of the instrumented class.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private class
FixedValue.ForValue.StaticFieldByteCodeAppender
A byte code appender for returning the fixed value that was stored in a static field.-
Nested classes/interfaces inherited from class net.bytebuddy.implementation.FixedValue
FixedValue.AssignerConfigurable, FixedValue.ForArgument, FixedValue.ForNullValue, FixedValue.ForOriginType, FixedValue.ForPoolValue, FixedValue.ForThisValue, FixedValue.ForValue
-
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 java.lang.String
fieldName
The name of the field in which the fixed value is stored.private TypeDescription.Generic
fieldType
The type if the field for storing the fixed value.private static java.lang.String
PREFIX
The prefix of the static field that is created for storing the fixed value.private java.lang.Object
value
The value that is to be stored in the static field.-
Fields inherited from class net.bytebuddy.implementation.FixedValue
assigner, typing
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
ForValue(java.lang.Object value)
Creates a new static field fixed value implementation with a random name for the field containing the fixed value.protected
ForValue(java.lang.String fieldName, java.lang.Object value)
Creates a new static field fixed value implementation.private
ForValue(Assigner assigner, Assigner.Typing typing, java.lang.String fieldName, java.lang.Object value)
Creates a new static field fixed value implementation.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method 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.Implementation
withAssigner(Assigner assigner, Assigner.Typing typing)
Defines an explicit assigner to this fixed value implementation.
-
-
-
Field Detail
-
PREFIX
private static final java.lang.String PREFIX
The prefix of the static field that is created for storing the fixed value.- See Also:
- Constant Field Values
-
fieldName
private final java.lang.String fieldName
The name of the field in which the fixed value is stored.
-
value
private final java.lang.Object value
The value that is to be stored in the static field.
-
fieldType
@ValueHandling(IGNORE) private final TypeDescription.Generic fieldType
The type if the field for storing the fixed value.
-
-
Constructor Detail
-
ForValue
protected ForValue(java.lang.Object value)
Creates a new static field fixed value implementation with a random name for the field containing the fixed value.- Parameters:
value
- The fixed value to be returned.
-
ForValue
protected ForValue(java.lang.String fieldName, java.lang.Object value)
Creates a new static field fixed value implementation.- Parameters:
fieldName
- The name of the field for storing the fixed value.value
- The fixed value to be returned.
-
ForValue
private ForValue(Assigner assigner, Assigner.Typing typing, java.lang.String fieldName, java.lang.Object value)
Creates a new static field fixed value implementation.- Parameters:
fieldName
- The name of the field for storing the fixed value.value
- The fixed value to be returned.assigner
- The assigner to use for assigning the fixed value to the return type of the instrumented value.typing
- Indicates if dynamic type castings should be attempted for incompatible assignments.
-
-
Method Detail
-
withAssigner
public Implementation withAssigner(Assigner assigner, Assigner.Typing typing)
Defines an explicit assigner to this fixed value implementation.- Specified by:
withAssigner
in interfaceFixedValue.AssignerConfigurable
- Parameters:
assigner
- The assigner to use for assigning the fixed value to the return type of the instrumented value.typing
- Indicates if dynamic type castings should be attempted for incompatible assignments.- Returns:
- A fixed value implementation that makes use of the given assigner.
-
prepare
public InstrumentedType prepare(InstrumentedType instrumentedType)
Prepares a given instrumented type.- Specified by:
prepare
in interfaceInstrumentedType.Prepareable
- Parameters:
instrumentedType
- The instrumented type in its current form.- Returns:
- The prepared instrumented type.
-
appender
public ByteCodeAppender appender(Implementation.Target implementationTarget)
Creates a byte code appender that determines the implementation of the instrumented type's methods.- Specified by:
appender
in interfaceImplementation
- Parameters:
implementationTarget
- The target of the current implementation.- 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
InstrumentedType.Prepareable.prepare(InstrumentedType)
.
-
-