-
public interface ClassTransformer
A persistence provider supplies 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 or redefined. The transformation occurs before the class is defined by the JVM.- Since:
- 1.0
-
-
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.
-
-
-
Method Detail
-
transform
byte[] transform(java.lang.ClassLoader loader, java.lang.String className, java.lang.Class<?> classBeingRedefined, java.security.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 loaderclassName
- the name of the class in the internal form of fully qualified class and interface namesclassBeingRedefined
- if this is a redefine, the class being redefined, otherwise nullprotectionDomain
- the protection domain of the class being defined or redefinedclassfileBuffer
- 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
-
-