Top Description Methods
org.hibernate.bytecode.spi

public Interface ClassTransformer

extends ClassTransformer
Known Direct Implementers
org.hibernate.jpa.internal.enhance.EnhancingClassTransformerImpl
Imports
java.lang.instrument.IllegalClassFormatException, java.security.ProtectionDomain

A persistence provider provides 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 and redefined. The transformation occurs before the class is defined by the JVM
Authors
Bill Burke, Emmanuel Bernard

Method Summary

Modifier and TypeMethod and Description
public byte[]

Returns:

A well-formed class file that can be loaded
transform
(ClassLoader
the defining class loader of the class being transformed. It may be null if using bootstrap loader
loader
,
String
The name of the class being transformed
className
,
Class<?>
If an already loaded class is being redefined, then pass this as a parameter
classBeingRedefined
,
ProtectionDomain
ProtectionDomain of the class being (re)-defined
protectionDomain
,
byte[]
The input byte buffer in class file format
classfileBuffer
)

Redeclares javax.persistence.spi.ClassTransformer.transform.

Invoked when a class is being loaded or redefined to add hooks for persistence bytecode manipulation.

Method Detail

transformback to summary
public byte[] transform(ClassLoader loader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws IllegalClassFormatException

Redeclares javax.persistence.spi.ClassTransformer.transform.

Invoked when a class is being loaded or redefined to add hooks for persistence bytecode manipulation.

Parameters
loader:ClassLoader

the defining class loader of the class being transformed. It may be null if using bootstrap loader

className:String

The name of the class being transformed

classBeingRedefined:Class<?>

If an already loaded class is being redefined, then pass this as a parameter

protectionDomain:ProtectionDomain

ProtectionDomain of the class being (re)-defined

classfileBuffer:byte[]

The input byte buffer in class file format

Returns:byte[]

A well-formed class file that can be loaded

Annotations
@Override
Exceptions
IllegalClassFormatException:

Doc from javax.persistence.spi.ClassTransformer.transform.

if the input does not represent a well-formed class file