Enum MemberSubstitution.Source
- All Implemented Interfaces:
Serializable, Comparable<MemberSubstitution.Source>, java.lang.constant.Constable
- Enclosing class:
MemberSubstitution
Identifies the source of an instruction that might describe a value of the substituted element
or the instrumented method.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprotected static classRepresents a value that can be loaded from a given offset.Nested classes/interfaces inherited from class Enum
Enum.EnumDesc<E> -
Enum Constant Summary
Enum ConstantsEnum ConstantDescriptionIndicates that an element should be loaded in context of the instrumented method.Indicates that an element should be loaded in context of the substituted method, constructor or field. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected abstract MemberSubstitution.Source.Valueargument(int index, TypeList.Generic parameters, Map<Integer, Integer> offsets, MemberSubstitution.Target target, MethodDescription instrumentedMethod) Resolves a value representation of the parameter of the specified index ornullif no such parameter is available.protected abstract List<MemberSubstitution.Source.Value> arguments(boolean includesSelf, TypeList.Generic parameters, Map<Integer, Integer> offsets, MemberSubstitution.Target target, MethodDescription instrumentedMethod) Resolves a list of value representation of all parameters.protected abstract JavaConstant.MethodHandlehandle(JavaConstant.MethodHandle methodHandle, MethodDescription instrumentedMethod) Resolves a method handle.protected abstract booleanisRepresentable(MemberSubstitution.Substitution.Chain.Step.ForDelegation.OffsetMapping.ForOrigin.Sort sort, MemberSubstitution.Target target, MethodDescription instrumentedMethod) Validates if the supplied origin sort is representable.protected abstract StackManipulationresolve(MemberSubstitution.Substitution.Chain.Step.ForDelegation.OffsetMapping.ForOrigin.Sort sort, MemberSubstitution.Target target, TypeList.Generic parameters, TypeDescription.Generic result, MethodDescription instrumentedMethod) Resolves a stack manipulation that loads the supplied sort of origin onto the operand stack.protected abstract MemberSubstitution.Source.Valueself(TypeList.Generic parameters, Map<Integer, Integer> offsets, MemberSubstitution.Target target, MethodDescription instrumentedMethod) Resolves a value representation of thethisreference ornullif no such reference is available.static MemberSubstitution.SourceReturns the enum constant of this type with the specified name.static MemberSubstitution.Source[]values()Returns an array containing the constants of this enum type, in the order they are declared.
-
Enum Constant Details
-
SUBSTITUTED_ELEMENT
Indicates that an element should be loaded in context of the substituted method, constructor or field. -
ENCLOSING_METHOD
Indicates that an element should be loaded in context of the instrumented method.
-
-
Constructor Details
-
Source
private Source()
-
-
Method Details
-
values
Returns an array containing the constants of this enum type, in the order they are declared.- Returns:
- an array containing the constants of this enum type, in the order they are declared
-
valueOf
Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)- Parameters:
name- the name of the enum constant to be returned.- Returns:
- the enum constant with the specified name
- Throws:
IllegalArgumentException- if this enum type has no constant with the specified nameNullPointerException- if the argument is null
-
self
@MaybeNull protected abstract MemberSubstitution.Source.Value self(TypeList.Generic parameters, Map<Integer, Integer> offsets, MemberSubstitution.Target target, MethodDescription instrumentedMethod) Resolves a value representation of thethisreference ornullif no such reference is available.- Parameters:
parameters- The list of parameters of the substituted element.offsets- A mapping of offsets of parameter indices to offsets.target- The target member of invokedynamic invocation.instrumentedMethod- The instrumented method.- Returns:
- A representation of the
thisreference ornullif no such reference is available.
-
argument
@MaybeNull protected abstract MemberSubstitution.Source.Value argument(int index, TypeList.Generic parameters, Map<Integer, Integer> offsets, MemberSubstitution.Target target, MethodDescription instrumentedMethod) Resolves a value representation of the parameter of the specified index ornullif no such parameter is available.- Parameters:
index- The index of the targeted parameter.parameters- The list of parameters of the substituted element.offsets- A mapping of offsets of parameter indices to offsets.target- The target member of invokedynamic invocation.instrumentedMethod- The instrumented method.- Returns:
- A representation of the parameter of the specified index or
nullif no such parameter is available.
-
arguments
protected abstract List<MemberSubstitution.Source.Value> arguments(boolean includesSelf, TypeList.Generic parameters, Map<Integer, Integer> offsets, MemberSubstitution.Target target, MethodDescription instrumentedMethod) Resolves a list of value representation of all parameters.- Parameters:
includesSelf-trueif thethisreference should be included if available.parameters- The list of parameters of the substituted element.offsets- A mapping of offsets of parameter indices to offsets.target- The target member of invokedynamic invocation.instrumentedMethod- The instrumented method.- Returns:
- A list of representation of all values of all parameters.
-
handle
protected abstract JavaConstant.MethodHandle handle(JavaConstant.MethodHandle methodHandle, MethodDescription instrumentedMethod) Resolves a method handle.- Parameters:
methodHandle- A method handle of the substituted element.instrumentedMethod- The instrumented method.- Returns:
- An appropriate method handle.
-
isRepresentable
protected abstract boolean isRepresentable(MemberSubstitution.Substitution.Chain.Step.ForDelegation.OffsetMapping.ForOrigin.Sort sort, MemberSubstitution.Target target, MethodDescription instrumentedMethod) Validates if the supplied origin sort is representable.- Parameters:
sort- The sort of origin.target- The target member of invokedynamic invocation.instrumentedMethod- The instrumented method.- Returns:
trueif the supplied sort of origin is representable.
-
resolve
protected abstract StackManipulation resolve(MemberSubstitution.Substitution.Chain.Step.ForDelegation.OffsetMapping.ForOrigin.Sort sort, MemberSubstitution.Target target, TypeList.Generic parameters, TypeDescription.Generic result, MethodDescription instrumentedMethod) Resolves a stack manipulation that loads the supplied sort of origin onto the operand stack.- Parameters:
sort- The sort of origin.target- The target member of invokedynamic invocation.parameters- The parameters to the substituted element.result- The type upon which the substituted element is invoked.instrumentedMethod- The instrumented method.- Returns:
- A stack manipulation loading the supplied sort of origin onto the operand stack.
-