Interface CodeTransform
- 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>
CodeElement. The stream can come from a CodeModel, or a handler to a CodeBuilder as in CodeBuilder.transforming(CodeTransform, Consumer). 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:
Field Summary
| Modifier and Type | Field | Description |
|---|---|---|
static final CodeTransform |
ACCEPT_ALL |
A code transform that passes all elements to the builder. |
Method Summary
| Modifier and Type | Method | Description |
|---|---|---|
default CodeTransform |
andThen |
Chain this transform with another; elements presented to the builder of this transform will become the input to the next transform. |
static CodeTransform |
endHandler |
Creates a code transform that passes each element through to the builder, and calls the specified function when transformation is complete. |
static CodeTransform |
ofStateful |
Creates a stateful code transform from a Supplier. |
Methods declared in interface ClassFileTransform
accept, atEnd, atStart
Field Details
ACCEPT_ALL
static final CodeTransform ACCEPT_ALL
Method Details
ofStateful
endHandler
static CodeTransform endHandler(Consumer<CodeBuilder> finisher)
- Parameters:
-
finisher- the function to call when transformation is complete - Returns:
- the code transform
andThen
default CodeTransform andThen(CodeTransform t)
ClassFileTransformThis 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<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
© 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.
https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/lang/classfile/CodeTransform.html