javax.persistence.spi.ClassTransformer - JPA interface

javax.persistence.spi
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:
JPA 1.0
byte[] transform(ClassLoader loader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer)
Invoked when a class is being loaded or redefined.
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 loader
className - the name of the class in the internal form of fully qualified class and interface names
classBeingRedefined - if this is a redefine, the class being redefined, otherwise null
protectionDomain - the protection domain of the class being defined or redefined
classfileBuffer - 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
Since:
JPA 1.0

This documentation page is derived (with some adjustments) from the open source JPA 2 RI (EclipseLink)
and is available under the terms of the Eclipse Public License, v. 1.0 and Eclipse Distribution License, v. 1.0.
Object Relational Mapping (ORM) JPA 2 providers include Hibernate, EclipseLink, TopLink, OpenJPA and DataNucleus.
ObjectDB is not an ORM JPA implementation but an Object Database for Java with built in JPA 2 support.