javax.persistence.spi

## Interface ClassTransformer

-     public interface ClassTransformer

  A persistence provider supplies an instance of this interface to the `PersistenceUnitInfo.addTransformer` 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:
    Java Persistence 1.0

- - ### Method Summary

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

- - ### Method Detail

    - #### transform

          byte[] transform(ClassLoader loader,
                         String className,
                         Class<?> classBeingRedefined,
                         ProtectionDomain protectionDomain,
                         byte[] classfileBuffer)
                           throws IllegalClassFormatException

      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:
        `IllegalClassFormatException` - if the input does not represent a well-formed class file

Copyright © 1996-2013, Oracle and/or its affiliates. All Rights Reserved. Use is subject to license terms.