Interface ClassTransformer


public interface ClassTransformer
A persistence provider supplies an instance of this interface to the PersistenceUnitInfo.addTransformer(jakarta.persistence.spi.ClassTransformer) method. The supplied transformer instance will get called to transform entity class files when they are loaded or redefined. The transformation occurs before the class is defined by the JVM.
Since:
1.0
  • Method Summary

    Modifier and Type
    Method
    Description
    byte[]
    transform(ClassLoader loader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer)
    Invoked when a class is being loaded or redefined.
  • Method Details

    • transform

      byte[] transform(ClassLoader loader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws TransformerException
      Invoked when a class is being loaded or redefined. The implementation of this method may transform the supplied class file and return a new replacement class file.
      Parameters:
      loader - the defining loader of the class to be transformed, may be null if the bootstrap loader
      className - the name of the class in the internal form of fully qualified class and interface names
      classBeingRedefined - if this is a redefine, the class being redefined, otherwise null
      protectionDomain - the protection domain of the class being defined or redefined
      classfileBuffer - the input byte buffer in class file format - must not be modified
      Returns:
      a well-formed class file buffer (the result of the transform), or null if no transform is performed
      Throws:
      TransformerException - if the input does not represent a well-formed class file