Module java.base
Package java.lang.classfile

# Interface ClassTransform

≠
@FunctionalInterface
public abstract interface ClassTransform
extends java.lang.classfile.ClassFileTransform<java.lang.classfile.ClassTransform, java.lang.classfile.ClassElement, java.lang.classfile.ClassBuilder>
Comparing master and cf

All Superinterfaces:
  `ClassFileTransform<ClassTransform, ClassElement, ClassBuilder>`

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 ClassTransform extends ClassFileTransform<ClassTransform, ClassElement, ClassBuilder>
A transformation on streams of `ClassElement` .

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

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`
  - `ClassModel`
  - `ClassFile.transformClass(ClassModel, ClassTransform)`

## Fields

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

  ### ACCEPT_ALL

  static final ClassTransform ACCEPT_ALL
  A class transform that sends passes all elements to the builder.

## Methods

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

  ### andThen

  default ClassTransform andThen (ClassTransform 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<ClassTransform, ClassElement, ClassBuilder>`
  Implementation Requirements:
    The default implementation returns this class transform chained with another class 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.ClassTransform dropping(java.util.function.Predicate<java.lang.classfile.ClassElement> arg0)
  Comparing master and cf

  ### dropping

  static ClassTransform dropping (Predicate<ClassElement> filter)
  Create Creates a class transform that passes each element through to the builder, except for those that the supplied `Predicate` is returns true for.
  Parameters:
    `filter` - the predicate that determines which elements to drop
  Returns:
    the class transform
- ≠
  public static java.lang.classfile.ClassTransform endHandler(java.util.function.Consumer<java.lang.classfile.ClassBuilder> arg0)
  Comparing master and cf

  ### endHandler

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

  ### ofStateful

  static ClassTransform ofStateful (Supplier<ClassTransform> supplier)
  Create Creates a stateful class 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 class transform
- ≠
  public static java.lang.classfile.ClassTransform transformingFields(java.lang.classfile.FieldTransform arg0)
  Comparing master and cf

  ### transformingFields

  static ClassTransform transformingFields (FieldTransform xform)
  Create Creates a class transform that transforms `FieldModel` elements with the supplied field transform, passing other elements through to the builder.
  Parameters:
    `xform` - the field transform
  Returns:
    the class transform
- ≠
  public static java.lang.classfile.ClassTransform transformingMethodBodies(java.lang.classfile.CodeTransform arg0)
  Comparing master and cf

  ### transformingMethodBodies

  static ClassTransform transformingMethodBodies (CodeTransform xform)
  Create Creates a class transform that transforms the `CodeAttribute` (method body) of `MethodModel` elements with the supplied code transform, passing other elements through to the builder.
  Parameters:
    `xform` - the code transform
  Returns:
    the class transform
- ≠
  public static java.lang.classfile.ClassTransform transformingMethodBodies(java.util.function.Predicate<java.lang.classfile.MethodModel> arg0, java.lang.classfile.CodeTransform arg1)
  Comparing master and cf

  ### transformingMethodBodies

  static ClassTransform transformingMethodBodies (Predicate<MethodModel> filter, CodeTransform xform)
  Create Creates a class transform that transforms the `CodeAttribute` (method body) of `MethodModel` elements with the supplied code transform for methods that the supplied `Predicate` returns true for, passing other elements through to the builder.
  Parameters:
    `filter` - a predicate that determines which methods to transform
    `xform` - the code transform
  Returns:
    the class transform
- ≠
  public static java.lang.classfile.ClassTransform transformingMethods(java.lang.classfile.MethodTransform arg0)
  Comparing master and cf

  ### transformingMethods

  static ClassTransform transformingMethods (MethodTransform xform)
  Create Creates a class transform that transforms `MethodModel` elements with the supplied method transform, passing other elements through to the builder.
  Parameters:
    `xform` - the method transform
  Returns:
    the class transform
- ≠
  public static java.lang.classfile.ClassTransform transformingMethods(java.util.function.Predicate<java.lang.classfile.MethodModel> arg0, java.lang.classfile.MethodTransform arg1)
  Comparing master and cf

  ### transformingMethods

  static ClassTransform transformingMethods (Predicate<MethodModel> filter, MethodTransform xform)
  Create Creates a class transform that transforms `MethodModel` elements with the supplied method transform for methods that the supplied `Predicate` returns true for, passing other elements through to the builder.
  Parameters:
    `filter` - a predicate that determines which methods to transform
    `xform` - the method transform
  Returns:
    the class transform

## Summary

Differences
| Elements | Comments | Descriptions | Total
Added | Changed | Removed | Added | Changed | Removed | Added | Changed | Removed
--- | --- | --- | --- | --- | --- | --- | --- | ---
ClassTransform |  |  |  |  |  |  | 7 | 2 | 1 | 10
andThen(ClassTransform) |  |  |  |  |  |  |  | 1 |  | 1
dropping(Predicate) |  |  |  |  |  |  |  | 2 |  | 2
endHandler(Consumer) |  |  |  |  |  |  |  | 1 |  | 1
ofStateful(Supplier) |  |  |  |  |  |  |  | 1 |  | 1
transformingFields(FieldTransform) |  |  |  |  |  |  | 1 | 1 |  | 2
transformingMethodBodies(CodeTransform) |  |  |  |  |  |  | 1 | 1 |  | 2
transformingMethodBodies(Predicate,CodeTransform) |  |  |  |  |  |  | 2 | 1 |  | 3
transformingMethods(MethodTransform) |  |  |  |  |  |  | 1 | 1 |  | 2
transformingMethods(Predicate,MethodTransform) |  |  |  |  |  |  | 2 | 1 |  | 3
ACCEPT_ALL |  |  |  |  |  |  |  | 1 |  | 1
Total |  |  |  |  |  |  | 14 | 13 | 1 | 28