Top Description Methods
org.hibernate.bytecode.spi

public Interface ClassTransformer

extends ClassTransformer
Known Direct Implementers
org.hibernate.jpa.internal.enhance.EnhancingClassTransformerImpl
Imports
java.security.ProtectionDomain, jakarta.persistence.spi.TransformerException, org.checkerframework.checker.nullness.qual.Nullable

A persistence provider provides an instance of this interface to the jakarta.persistence.spi.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 void
discoverTypes(ClassLoader loader, String className)

public byte[]

Returns:

A well-formed class file that can be loaded
transform
(@Nullable 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
,
@Nullable 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 jakarta.persistence.spi.ClassTransformer.transform.

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

Method Detail

discoverTypesback to summary
public void discoverTypes(ClassLoader loader, String className)
transformback to summary
public byte[] transform(@Nullable ClassLoader loader, String className, @Nullable Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws TransformerException

Redeclares jakarta.persistence.spi.ClassTransformer.transform.

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

Parameters
loader:@Nullable 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:@Nullable 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
TransformerException:

Doc from jakarta.persistence.spi.ClassTransformer.transform.

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