org.hibernate.bytecode

Interface BytecodeProvider

Known Implementing Classes:
BytecodeProviderImpl, BytecodeProviderImpl

public interface BytecodeProvider

Contract for providers of bytecode services to Hibernate.

Bytecode requirements break down into basically 3 areas

  1. proxy generation (both for runtime-lazy-loading and basic proxy generation) getProxyFactoryFactory()
  2. bean relection optimization getReflectionOptimizer(Class,String[],String[],Class[])
  3. field-access instumentation getTransformer(ClassFilter,FieldFilter)
Author:
Steve Ebersole

Method Summary

ProxyFactoryFactory
getProxyFactoryFactory()
Retrieve the specific factory for this provider capable of generating run-time proxies for lazy-loading purposes.
ReflectionOptimizer
getReflectionOptimizer(Class clazz, String[] getterNames, String[] setterNames, Class[] types)
Retrieve the ReflectionOptimizer delegate for this provider capable of generating reflection optimization components.
ClassTransformer
getTransformer(ClassFilter classFilter, FieldFilter fieldFilter)
Generate a ClassTransformer capable of performing bytecode manipulation.

Method Details

getProxyFactoryFactory

public ProxyFactoryFactory getProxyFactoryFactory()
Retrieve the specific factory for this provider capable of generating run-time proxies for lazy-loading purposes.
Returns:
The provider specifc factory.

getReflectionOptimizer

public ReflectionOptimizer getReflectionOptimizer(Class clazz,
                                                  String[] getterNames,
                                                  String[] setterNames,
                                                  Class[] types)
Retrieve the ReflectionOptimizer delegate for this provider capable of generating reflection optimization components.
Parameters:
clazz - The class to be reflected upon.
getterNames - Names of all property getters to be accessed via reflection.
setterNames - Names of all property setters to be accessed via reflection.
types - The types of all properties to be accessed.
Returns:
The reflection optimization delegate.

getTransformer

public ClassTransformer getTransformer(ClassFilter classFilter,
                                       FieldFilter fieldFilter)
Generate a ClassTransformer capable of performing bytecode manipulation.
Parameters:
classFilter - filter used to limit which classes are to be instrumented via this ClassTransformer.
fieldFilter - filter used to limit which fields are to be instrumented via this ClassTransformer.
Returns:
The appropriate ClassTransformer.