Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8335359

Rename ClassFile::transform to ClassFile::transformClass

XMLWordPrintable

    • 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..

            liach Chen Liang
            liach Chen Liang
            Adam Sotona
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: