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:
- EJB 3.0 version.
- Author:
- Florent Benoit
- See Also:
- EJB 3.0 specification
Method Summary |
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. |
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. 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:
java.lang.instrument.IllegalClassFormatException
- If the input does not represent a
well-formed class file