Package 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
Modifier and TypeMethodDescriptionbyte[]
transform
(ClassLoader loader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) Invoked when a class is being loaded or redefined.
-
Method Details
-
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 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:
IllegalClassFormatException
- if the input does not represent a well-formed class file
-