Interface ClassTransformer

  • All Superinterfaces:
    ClassTransformer

    public interface ClassTransformer
    extends ClassTransformer
    A persistence provider provides 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 and redefined. The transformation occurs before the class is defined by the JVM
    • Method Summary

      All Methods Instance Methods Abstract Methods 
      Modifier and Type Method Description
      byte[] transform​(java.lang.ClassLoader loader, java.lang.String className, java.lang.Class<?> classBeingRedefined, java.security.ProtectionDomain protectionDomain, byte[] classfileBuffer)
      Invoked when a class is being loaded or redefined to add hooks for persistence bytecode manipulation.
    • Method Detail

      • transform

        byte[] transform​(java.lang.ClassLoader loader,
                         java.lang.String className,
                         java.lang.Class<?> classBeingRedefined,
                         java.security.ProtectionDomain protectionDomain,
                         byte[] classfileBuffer)
                  throws java.lang.instrument.IllegalClassFormatException
        Invoked when a class is being loaded or redefined to add hooks for persistence bytecode manipulation.
        Specified by:
        transform in interface ClassTransformer
        Parameters:
        loader - the defining class loader of the class being transformed. It may be null if using bootstrap loader
        className - The name of the class being transformed
        classBeingRedefined - If an already loaded class is being redefined, then pass this as a parameter
        protectionDomain - ProtectionDomain of the class being (re)-defined
        classfileBuffer - The input byte buffer in class file format
        Returns:
        A well-formed class file that can be loaded
        Throws:
        java.lang.instrument.IllegalClassFormatException