org.hibernate.bytecode
Interface BytecodeProvider

All 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(java.lang.Class, java.lang.String[], java.lang.String[], java.lang.Class[])
  3. field-access instumentation getTransformer(org.hibernate.bytecode.util.ClassFilter, org.hibernate.bytecode.util.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 Detail

getProxyFactoryFactory

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

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

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.