Interface ClassTransform
- 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. Refer to ClassFileTransform for general guidance and caution around the use of transforms for structures in the class file format.
- Since:
- 24
- See Also:
Field Summary
| Modifier and Type | Field | Description |
|---|---|---|
static final ClassTransform |
ACCEPT_ALL |
A class transform that passes all elements to the builder. |
Method Summary
| Modifier and Type | Method | Description |
|---|---|---|
default ClassTransform |
andThen |
Chain this transform with another; elements presented to the builder of this transform will become the input to the next transform. |
static ClassTransform |
dropping |
Creates a class transform that passes each element through to the builder, except for those that the supplied Predicate returns true for. |
static ClassTransform |
endHandler |
Creates a class transform that passes each element through to the builder, and calls the specified function when transformation is complete. |
static ClassTransform |
ofStateful |
Creates a stateful class transform from a Supplier. |
static ClassTransform |
transformingFields |
Creates a class transform that transforms FieldModel elements with the supplied field transform, passing other elements through to the builder. |
static ClassTransform |
transformingMethodBodies |
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. |
static ClassTransform |
transformingMethodBodies |
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. |
static ClassTransform |
transformingMethods |
Creates a class transform that transforms MethodModel elements with the supplied method transform, passing other elements through to the builder. |
static ClassTransform |
transformingMethods |
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. |
Methods declared in interface ClassFileTransform
accept, atEnd, atStart | Modifier and Type | Method | Description |
|---|---|---|
void |
accept |
Transform an element by taking the appropriate actions on the builder. |
default void |
atEnd |
Take any final action during transformation of a classfile entity. |
default void |
atStart |
Take any preliminary action during transformation of a classfile entity. |
Field Details
ACCEPT_ALL
static final ClassTransform ACCEPT_ALL
A class transform that passes all elements to the builder.
Method Details
ofStateful
static ClassTransform ofStateful(Supplier<ClassTransform> supplier)
Creates a stateful class transform from a
Supplier. The supplier will be invoked for each transformation.- Parameters:
-
supplier- aSupplierthat produces a fresh transform object for each traversal - Returns:
- the stateful class transform
endHandler
static ClassTransform endHandler(Consumer<ClassBuilder> finisher)
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
dropping
static ClassTransform dropping(Predicate<ClassElement> filter)
Creates a class transform that passes each element through to the builder, except for those that the supplied
Predicate returns true for.- Parameters:
-
filter- the predicate that determines which elements to drop - Returns:
- the class transform
transformingMethods
static ClassTransform transformingMethods(Predicate<MethodModel> filter, MethodTransform xform)
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
transformingMethods
static ClassTransform transformingMethods(MethodTransform xform)
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
transformingMethodBodies
static ClassTransform transformingMethodBodies(Predicate<MethodModel> filter, CodeTransform xform)
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
transformingMethodBodies
static ClassTransform transformingMethodBodies(CodeTransform xform)
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
transformingFields
static ClassTransform transformingFields(FieldTransform xform)
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
andThen
default ClassTransform andThen(ClassTransform t)
Description copied from interface:
ClassFileTransformChain 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:
-
andThenin interfaceClassFileTransform<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
© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.