public static interface RecomputeFieldValue.CustomFieldValueTransformer
RecomputeFieldValue.CustomFieldValueTransformer.transform(jdk.vm.ci.meta.MetaAccessProvider, jdk.vm.ci.meta.ResolvedJavaField, jdk.vm.ci.meta.ResolvedJavaField, java.lang.Object, java.lang.Object)
.
In contrast to RecomputeFieldValue.CustomFieldValueComputer
, the RecomputeFieldValue.CustomFieldValueTransformer.transform(jdk.vm.ci.meta.MetaAccessProvider, jdk.vm.ci.meta.ResolvedJavaField, jdk.vm.ci.meta.ResolvedJavaField, java.lang.Object, java.lang.Object)
method also has the
original field value as a parameter. This is convenient if the new value depends on the
original value, but also requires the original field to be present, e.g., it cannot be use
for injected fields
.Modifier and Type | Method and Description |
---|---|
Object |
transform(jdk.vm.ci.meta.MetaAccessProvider metaAccess,
jdk.vm.ci.meta.ResolvedJavaField original,
jdk.vm.ci.meta.ResolvedJavaField annotated,
Object receiver,
Object originalValue)
Computes the new field value.
|
Object transform(jdk.vm.ci.meta.MetaAccessProvider metaAccess, jdk.vm.ci.meta.ResolvedJavaField original, jdk.vm.ci.meta.ResolvedJavaField annotated, Object receiver, Object originalValue)
original
- The original field.annotated
- The field annotated with RecomputeFieldValue
.receiver
- The original object for instance fields, or null
for static
fields.originalValue
- The original value of the field.