Module java.base
Package java.lang.classfile

# Interface MethodTransform

≠
@FunctionalInterface
public abstract interface MethodTransform
extends java.lang.classfile.ClassFileTransform<java.lang.classfile.MethodTransform, java.lang.classfile.MethodElement, java.lang.classfile.MethodBuilder>
Comparing master and cf

All Superinterfaces:
  `ClassFileTransform<MethodTransform, MethodElement, MethodBuilder>`

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 MethodTransform extends ClassFileTransform<MethodTransform, MethodElement, MethodBuilder>
A transformation on streams of `MethodElement` .

Moved to a paragraph. Refer to `ClassFileTransform` for general guidance and caution around the use of transforms for structures in the `class` file format.

A method transform can be lifted to a class transform via `ClassTransform.transformingMethods(MethodTransform)` , transforming only the `MethodModel` among the class members and passing all other elements to the builders.

Since:
  24
See Also:
  Moved out of an unordered list with class tag-list.Moved to an unordered list with class tag-list-long.
  - `ClassFileTransform`
  - `MethodModel`
  - `ClassBuilder.transformMethod(MethodModel, MethodTransform)`

## Fields

- ≠
  public static final java.lang.classfile.MethodTransform ACCEPT_ALL
  Comparing master and cf

  ### ACCEPT_ALL

  static final MethodTransform ACCEPT_ALL
  A method transform that sends passes all elements to the builder.

## Methods

- ≠
  public default java.lang.classfile.MethodTransform andThen(java.lang.classfile.MethodTransform arg0)
  Comparing master and cf

  ### andThen

  default MethodTransform andThen (MethodTransform 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.

  Moved to a paragraph. 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<MethodTransform, MethodElement, MethodBuilder>`
  Implementation Requirements:
    The default implementation returns this method transform chained with another method 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
- ≠
  public static java.lang.classfile.MethodTransform dropping(java.util.function.Predicate<java.lang.classfile.MethodElement> arg0)
  Comparing master and cf

  ### dropping

  static MethodTransform dropping (Predicate<MethodElement> filter)
  Create Creates a method 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 method transform
- ≠
  public static java.lang.classfile.MethodTransform endHandler(java.util.function.Consumer<java.lang.classfile.MethodBuilder> arg0)
  Comparing master and cf

  ### endHandler

  static MethodTransform endHandler (Consumer<MethodBuilder> finisher)
  Create Creates a method 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 method transform
- ≠
  public static java.lang.classfile.MethodTransform ofStateful(java.util.function.Supplier<java.lang.classfile.MethodTransform> arg0)
  Comparing master and cf

  ### ofStateful

  static MethodTransform ofStateful (Supplier<MethodTransform> supplier)
  Create Creates a stateful method 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 method transform
- ≠
  public static java.lang.classfile.MethodTransform transformingCode(java.lang.classfile.CodeTransform arg0)
  Comparing master and cf

  ### transformingCode

  static MethodTransform transformingCode (CodeTransform xform)
  Create Creates a method transform that transforms `CodeModel` elements with the supplied code transform, passing every other element through to the builder.
  Parameters:
    `xform` - the method transform
  Returns:
    the class transform

## Summary

Differences
| Elements | Comments | Descriptions | Total
Added | Changed | Removed | Added | Changed | Removed | Added | Changed | Removed
--- | --- | --- | --- | --- | --- | --- | --- | ---
MethodTransform |  |  |  |  |  |  | 10 | 2 | 1 | 13
andThen(MethodTransform) |  |  |  |  |  |  |  | 1 |  | 1
dropping(Predicate) |  |  |  |  |  |  |  | 1 |  | 1
endHandler(Consumer) |  |  |  |  |  |  |  | 1 |  | 1
ofStateful(Supplier) |  |  |  |  |  |  |  | 1 |  | 1
transformingCode(CodeTransform) |  |  |  |  |  |  | 1 | 1 |  | 2
ACCEPT_ALL |  |  |  |  |  |  |  | 1 |  | 1
Total |  |  |  |  |  |  | 11 | 8 | 1 | 20