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 Details

    • ACCEPT_ALL

      static final FieldTransform ACCEPT_ALL
      A field transform that passes all elements to the builder.
  • Method Details

    • ofStateful

      static FieldTransform ofStateful(Supplier<FieldTransform> supplier)
      Creates a stateful field transform from a Supplier. The supplier will be invoked for each transformation.
      Parameters:
      supplier - a Supplier that produces a fresh transform object for each traversal
      Returns:
      the stateful field transform
    • endHandler

      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.
      Parameters:
      finisher - the function to call when transformation is complete
      Returns:
      the field transform
    • dropping

      static FieldTransform dropping(Predicate<FieldElement> filter)
      Creates a field transform that passes each element through to the builder, except for those that the supplied Predicate is true for.
      Parameters:
      filter - the predicate that determines which elements to drop
      Returns:
      the field transform
    • andThen

      default FieldTransform andThen(FieldTransform t)
      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 interface ClassFileTransform<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