-
CSR
-
Resolution: Approved
-
P4
-
source
-
minimal
-
Changes to preview APIs have minimal impact.
-
Java API
-
SE
Summary
Rename ClassFile::transform
to ClassFile::transformClass
.
Problem
ClassFile::transform
has a name too similar to ClassBuilder::transform
; yet ClassFile::transform
acts more like ClassBuilder::transformMethod
, which transforms a subordinate class/method, while ClassBuilder::transform
transform an equal object (the object of the built type) to this builder, allowing users to perform extra actions on the builder at the same time.
Solution
Rename ClassFile::transform
to ClassFile::transformClass
, to match up with ClassBuilder::transformMethod
, ClassBuilder::transformField
, MethodBuilder::transformCode
.
Specification
There are various updates of the method reference in other specifications; those are ignored.
diff --git a/src/java.base/share/classes/java/lang/classfile/ClassFile.java b/src/java.base/share/classes/java/lang/classfile/ClassFile.java
index 1997ffb487c..08745f7e1ba 100644
--- a/src/java.base/share/classes/java/lang/classfile/ClassFile.java
+++ b/src/java.base/share/classes/java/lang/classfile/ClassFile.java
@@ -435,15 +434,15 @@ default void buildModuleTo(Path path,
* This method behaves as if:
* {@snippet lang=java :
* this.build(model.thisClass(), ConstantPoolBuilder.of(model),
- * b -> b.transform(model, transform));
+ * clb -> clb.transform(model, transform));
* }
*
* @param model the class model to transform
* @param transform the transform
* @return the bytes of the new class
*/
- default byte[] transform(ClassModel model, ClassTransform transform) {
- return transform(model, model.thisClass(), transform);
+ default byte[] transformClass(ClassModel model, ClassTransform transform) {
+ return transformClass(model, model.thisClass(), transform);
}
/**
@@ -458,8 +457,8 @@ default byte[] transform(ClassModel model, ClassTransform transform) {
* @param transform the transform
* @return the bytes of the new class
*/
- default byte[] transform(ClassModel model, ClassDesc newClassName, ClassTransform transform) {
- return transform(model, TemporaryConstantPool.INSTANCE.classEntry(newClassName), transform);
+ default byte[] transformClass(ClassModel model, ClassDesc newClassName, ClassTransform transform) {
+ return transformClass(model, TemporaryConstantPool.INSTANCE.classEntry(newClassName), transform);
}
/**
@@ -473,7 +472,7 @@ default byte[] transform(ClassModel model, ClassDesc newClassName, ClassTransfor
* This method behaves as if:
* {@snippet lang=java :
* this.build(newClassName, ConstantPoolBuilder.of(model),
- * b -> b.transform(model, transform));
+ * clb -> clb.transform(model, transform));
* }
*
* @param model the class model to transform
@@ -481,7 +480,7 @@ default byte[] transform(ClassModel model, ClassDesc newClassName, ClassTransfor
* @param transform the transform
* @return the bytes of the new class
*/
- byte[] transform(ClassModel model, ClassEntry newClassName, ClassTransform transform);
+ byte[] transformClass(ClassModel model, ClassEntry newClassName, ClassTransform transform);
/**
* Verify a classfile. Any verification errors found will be returned..
- csr of
-
JDK-8335290 Rename ClassFile::transform to ClassFile::transformClass
- Resolved
- relates to
-
JDK-8334712 JEP 484: Class-File API
- Completed