Package org.hibernate.bytecode.spi
Interface ClassTransformer
-
- All Superinterfaces:
ClassTransformer
- All Known Implementing Classes:
EnhancingClassTransformerImpl
public interface ClassTransformer extends ClassTransformer
A persistence provider provides an instance of this interface to thePersistenceUnitInfo.addTransformer(jakarta.persistence.spi.ClassTransformer)
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 void
discoverTypes(ClassLoader loader, String className)
byte[]
transform(@Nullable ClassLoader loader, String className, @Nullable Class<?> classBeingRedefined, 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(@Nullable ClassLoader loader, String className, @Nullable Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws TransformerException
Invoked when a class is being loaded or redefined to add hooks for persistence bytecode manipulation.- Specified by:
transform
in interfaceClassTransformer
- Parameters:
loader
- The defining class loader of the class being transformed. It may be null if using bootstrap loaderclassName
- The name of the class being transformedclassBeingRedefined
- If an already loaded class is being redefined, then pass this as a parameterprotectionDomain
- ProtectionDomain of the class being (re)-definedclassfileBuffer
- The input byte buffer in class file format- Returns:
- A well-formed class file that can be loaded
- Throws:
TransformerException
-
discoverTypes
void discoverTypes(ClassLoader loader, String className)
-
-