Module java.base
Package java.lang.classfile

# Interface CodeTransform

≠
@FunctionalInterface
public abstract interface CodeTransform
extends java.lang.classfile.ClassFileTransform<java.lang.classfile.CodeTransform, java.lang.classfile.CodeElement, java.lang.classfile.CodeBuilder>
Comparing master and cf

All Superinterfaces:
  `ClassFileTransform<CodeTransform, CodeElement, CodeBuilder>`

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 CodeTransform extends ClassFileTransform<CodeTransform, CodeElement, CodeBuilder>
A transformation on streams of `CodeElement` . The stream can come from a `CodeModel` , or a handler to a `CodeBuilder` as in `CodeBuilder.transforming(CodeTransform, Consumer)` .

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 code transform can be lifted to a method or a class transform via `MethodTransform.transformingCode(CodeTransform)` and `ClassTransform.transformingMethodBodies(CodeTransform)` , transforming only the `CodeModel` within those structures 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`
  - `CodeModel`
  - `MethodBuilder.transformCode(CodeModel, CodeTransform)`
  - `CodeBuilder.transforming(CodeTransform, Consumer)`

## Fields

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

  ### ACCEPT_ALL

  static final CodeTransform ACCEPT_ALL
  A code transform that sends passes all elements to the builder.

## Methods

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

  ### andThen

  default CodeTransform andThen (CodeTransform 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<CodeTransform, CodeElement, CodeBuilder>`
  Implementation Requirements:
    The default implementation returns this code transform chained with another code 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.CodeTransform endHandler(java.util.function.Consumer<java.lang.classfile.CodeBuilder> arg0)
  Comparing master and cf

  ### endHandler

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

  ### ofStateful

  static CodeTransform ofStateful (Supplier<CodeTransform> supplier)
  Create Creates a stateful code 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 code transform

## Summary

Differences
| Elements | Comments | Descriptions | Total
Added | Changed | Removed | Added | Changed | Removed | Added | Changed | Removed
--- | --- | --- | --- | --- | --- | --- | --- | ---
CodeTransform |  |  |  |  |  |  | 14 | 1 | 1 | 16
andThen(CodeTransform) |  |  |  |  |  |  |  | 1 |  | 1
endHandler(Consumer) |  |  |  |  |  |  |  | 1 |  | 1
ofStateful(Supplier) |  |  |  |  |  |  |  | 1 |  | 1
ACCEPT_ALL |  |  |  |  |  |  |  | 1 |  | 1
Total |  |  |  |  |  |  | 14 | 5 | 1 | 20