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 voiddiscoverTypes(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:
transformin 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)
-
-