BeforeAnalysisAccess#registerFieldValueTransformer.
Mechanism to change the value of a field. Normally, field values in the native image heap of the
Substrate VM are just taken from the host VM. This annotation allows the field value to be
intercepted and recomputed.
This annotation must be used on a field also annotated with Alias to specify the field
whose value needs to be changed.
| Modifier and Type | Class and Description |
|---|---|
| public static enum |
| Modifier and Type | Method and Description |
|---|---|
| public Class | |
| public String | |
| public boolean | |
| public RecomputeFieldValue. | |
| public String |
| declClass | back to summary |
|---|---|
| public Class The class parameter for the recomputation. If this attribute is not specified, then the class
specified by
| |
| declClassName | back to summary |
|---|---|
| public String declClassName() The class parameter for the recomputation. If this attribute is not specified, then the class
specified by
| |
| isFinal | back to summary |
|---|---|
| public boolean isFinal() Treat the value as final, to enforce constant folding already during static analysis.
| |
| kind | back to summary |
|---|---|
| public RecomputeFieldValue. The kind of the recomputation performed.
| |
| name | back to summary |
|---|---|
| public String name() The name parameter for the recomputation.
| |
| Modifier and Type | Field and Description |
|---|---|
| public static final RecomputeFieldValue. | ArrayBaseOffset
The int or long field is set to the offset of the first array element of the array class
|
| public static final RecomputeFieldValue. | ArrayIndexScale
The int or long field is set to the element size array class |
| public static final RecomputeFieldValue. | ArrayIndexShift
The int or long field is set to the log2 of |
| public static final RecomputeFieldValue. | AtomicFieldUpdaterOffset
Special support for field offsets used by java.util.concurrent.atomic.AtomicXxxFieldUpdater. |
| public static final RecomputeFieldValue. | Custom
Use a |
| public static final RecomputeFieldValue. | FieldOffset
The int or long field is set to the offset of the field named |
| public static final RecomputeFieldValue. | |
| public static final RecomputeFieldValue. | Manual
Marker value that the field is intercepted by some manual logic. |
| public static final RecomputeFieldValue. | NewInstance
The object field is set to a instance of |
| public static final RecomputeFieldValue. | NewInstanceWhenNotNull
The object field is set to a instance of |
| public static final RecomputeFieldValue. | None
The initial field value is not modified. |
| public static final RecomputeFieldValue. | Reset
The field is reset to the default value (null, 0, false). |
| public static final RecomputeFieldValue. | StaticFieldBase
The static field base Object as it would be computed by
|
| public static final RecomputeFieldValue. | TranslateFieldOffset
The field offset stored in this int or long field is updated. |
| Access | Constructor and Description |
|---|---|
| private |
| Modifier and Type | Method and Description |
|---|---|
| public static RecomputeFieldValue. | |
| public static RecomputeFieldValue. |
| ArrayBaseOffset | back to summary |
|---|---|
| public static final RecomputeFieldValue. The int or long field is set to the offset of the first array element of the array class
| |
| ArrayIndexScale | back to summary |
|---|---|
| public static final RecomputeFieldValue. The int or long field is set to the element size array class
| |
| ArrayIndexShift | back to summary |
|---|---|
| public static final RecomputeFieldValue. The int or long field is set to the log2 of
| |
| AtomicFieldUpdaterOffset | back to summary |
|---|---|
| public static final RecomputeFieldValue. Special support for field offsets used by java.util.concurrent.atomic.AtomicXxxFieldUpdater.
| |
| Custom | back to summary |
|---|---|
| public static final RecomputeFieldValue. Use a
| |
| FieldOffset | back to summary |
|---|---|
| public static final RecomputeFieldValue. The int or long field is set to the offset of the field named
| |
| FromAlias | back to summary |
|---|---|
| public static final RecomputeFieldValue. The field is set to the value assigned to the
| |
| Manual | back to summary |
|---|---|
| public static final RecomputeFieldValue. Marker value that the field is intercepted by some manual logic.
| |
| NewInstance | back to summary |
|---|---|
| public static final RecomputeFieldValue. The object field is set to a instance of
| |
| NewInstanceWhenNotNull | back to summary |
|---|---|
| public static final RecomputeFieldValue. The object field is set to a instance of
| |
| None | back to summary |
|---|---|
| public static final RecomputeFieldValue. The initial field value is not modified. This is the default behavior when no
| |
| Reset | back to summary |
|---|---|
| public static final RecomputeFieldValue. The field is reset to the default value (null, 0, false).
| |
| StaticFieldBase | back to summary |
|---|---|
| public static final RecomputeFieldValue. The static field base Object as it would be computed by
| |
| TranslateFieldOffset | back to summary |
|---|---|
| public static final RecomputeFieldValue. The field offset stored in this int or long field is updated. The original value must be
a valid field offset in the hosted universe, and the new value is the field offset of the
same field in the substrate universe. The field is looked up in the class
| |
| Kind | back to summary |
|---|---|
| private Kind() | |
| valueOf | back to summary |
|---|---|
| public static RecomputeFieldValue. | |
| values | back to summary |
|---|---|
| public static RecomputeFieldValue. | |