Interface FieldTransform
- All Superinterfaces:
ClassFileTransform<FieldTransform, FieldElement, FieldBuilder>
- Functional Interface:
- This is a functional interface and can therefore be used as the assignment target for a lambda expression or method reference.
@FunctionalInterface
public non-sealed interface FieldTransform
extends ClassFileTransform<FieldTransform, FieldElement, FieldBuilder>
A transformation on streams of
FieldElement
.
Refer to ClassFileTransform
for general guidance and caution around
the use of transforms for structures in the class
file format.
A field transform can be lifted to a class transform via ClassTransform.transformingFields(FieldTransform)
, transforming only
the FieldModel
among the class members and passing all other elements
to the builders.
- Since:
- 24
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final FieldTransform
A field transform that passes all elements to the builder. -
Method Summary
Modifier and TypeMethodDescriptiondefault FieldTransform
Chain this transform with another; elements presented to the builder of this transform will become the input to the next transform.static FieldTransform
dropping
(Predicate<FieldElement> filter) Creates a field transform that passes each element through to the builder, except for those that the suppliedPredicate
is true for.static FieldTransform
endHandler
(Consumer<FieldBuilder> finisher) Creates a field transform that passes each element through to the builder, and calls the specified function when transformation is complete.static FieldTransform
ofStateful
(Supplier<FieldTransform> supplier) Creates a stateful field transform from aSupplier
.Methods declared in interface ClassFileTransform
accept, atEnd, atStart
Modifier and TypeMethodDescriptionvoid
accept
(FieldBuilder builder, FieldElement element) Transform an element by taking the appropriate actions on the builder.default void
atEnd
(FieldBuilder builder) Take any final action during transformation of a classfile entity.default void
atStart
(FieldBuilder builder) Take any preliminary action during transformation of a classfile entity.
-
Field Details
-
ACCEPT_ALL
A field transform that passes all elements to the builder.
-
-
Method Details
-
ofStateful
-
endHandler
Creates a field transform that passes each element through to the builder, and calls the specified function when transformation is complete.- Parameters:
finisher
- the function to call when transformation is complete- Returns:
- the field transform
-
dropping
Creates a field transform that passes each element through to the builder, except for those that the suppliedPredicate
is true for.- Parameters:
filter
- the predicate that determines which elements to drop- Returns:
- the field transform
-
andThen
Description copied from interface:ClassFileTransform
Chain this transform with another; elements presented to the builder of this transform will become the input to the next transform.This method is implemented by the Class-File API. Users usually don't have sufficient access to Class-File API functionalities to override this method correctly for generic downstream transforms.
- Specified by:
andThen
in interfaceClassFileTransform<FieldTransform, FieldElement, FieldBuilder>
- Implementation Requirements:
- The default implementation returns this field transform chained with another field transform from the argument. Chaining of two transforms requires to involve a chained builder serving as a target builder for this transform and also as a source of elements for the downstream transform.
- Parameters:
t
- the downstream transform- Returns:
- the chained transform
-