APIdia Launch Partner
Top Description Fields Methods
java.lang.classfile

public non-sealed Interface MethodTransform

extends ClassFileTransform<MethodTransform, MethodElement, MethodBuilder>
Known Direct Subinterfaces
jdk.internal.classfile.impl.TransformImpl.UnresolvedMethodTransform
Annotations
@FunctionalInterface
Imports
java.util.function.Consumer, .Predicate, .Supplier, jdk.internal.classfile.impl.TransformImpl

A transformation on streams of MethodElement.

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
MethodModel, ClassBuilder#transformMethod

Field Summary

Modifier and TypeField and Description
public static final MethodTransform
ACCEPT_ALL

A method transform that passes all elements to the builder.

Method Summary

Modifier and TypeMethod and Description
public default MethodTransform
andThen(MethodTransform t)

Implements java.lang.classfile.ClassFileTransform.andThen.

Chain this transform with another; elements presented to the builder of this transform will become the input to the next transform.

public static MethodTransform

Returns:

the method transform
dropping
(Predicate<MethodElement>
the predicate that determines which elements to drop
filter
)

Creates a method transform that passes each element through to the builder, except for those that the supplied Predicate is true for.

public static MethodTransform

Returns:

the method transform
endHandler
(Consumer<MethodBuilder>
the function to call when transformation is complete
finisher
)

Creates a method transform that passes each element through to the builder, and calls the specified function when transformation is complete.

public static MethodTransform

Returns:

the stateful method transform
ofStateful
(Supplier<MethodTransform>
a Supplier that produces a fresh transform object for each traversal
supplier
)

Creates a stateful method transform from a Supplier.

public static MethodTransform

Returns:

the class transform
transformingCode
(CodeTransform
the method transform
xform
)

Creates a method transform that transforms CodeModel elements with the supplied code transform, passing every other element through to the builder.

Inherited from java.lang.classfile.ClassFileTransform:
acceptatEndatStart

Field Detail

ACCEPT_ALLback to summary
public static final MethodTransform ACCEPT_ALL

A method transform that passes all elements to the builder.

Method Detail

andThenback to summary
public default MethodTransform andThen(MethodTransform t)

Implements java.lang.classfile.ClassFileTransform.andThen.

Doc from java.lang.classfile.ClassFileTransform.andThen.

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.

Implementation Specification

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.

Annotations
@Override
droppingback to summary
public static MethodTransform dropping(Predicate<MethodElement> filter)

Creates a method transform that passes each element through to the builder, except for those that the supplied Predicate is true for.

Parameters
filter:Predicate<MethodElement>

the predicate that determines which elements to drop

Returns:MethodTransform

the method transform

endHandlerback to summary
public static MethodTransform endHandler(Consumer<MethodBuilder> finisher)

Creates a method transform that passes each element through to the builder, and calls the specified function when transformation is complete.

Parameters
finisher:Consumer<MethodBuilder>

the function to call when transformation is complete

Returns:MethodTransform

the method transform

ofStatefulback to summary
public static MethodTransform ofStateful(Supplier<MethodTransform> supplier)

Creates a stateful method transform from a Supplier. The supplier will be invoked for each transformation.

Parameters
supplier:Supplier<MethodTransform>

a Supplier that produces a fresh transform object for each traversal

Returns:MethodTransform

the stateful method transform

transformingCodeback to summary
public static MethodTransform transformingCode(CodeTransform xform)

Creates a method transform that transforms CodeModel elements with the supplied code transform, passing every other element through to the builder.

Parameters
xform:CodeTransform

the method transform

Returns:MethodTransform

the class transform