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 reflection optimization getReflectionOptimizer(java.lang.Class, java.lang.String[], java.lang.String[], java.lang.Class[])
  3. field-access instrumentation getTransformer(org.hibernate.bytecode.util.ClassFilter, org.hibernate.bytecode.util.FieldFilter)
  • Method Details

    • getProxyFactoryFactory

      ProxyFactoryFactory getProxyFactoryFactory()
      Retrieve the specific factory for this provider capable of generating run-time proxies for lazy-loading purposes.
      Returns:
      The provider specific 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.