org.hibernate.bytecode.buildtime
Class CGLIBInstrumenter

java.lang.Object
  extended by org.hibernate.bytecode.buildtime.AbstractInstrumenter
      extended by org.hibernate.bytecode.buildtime.CGLIBInstrumenter
All Implemented Interfaces:
Instrumenter

public class CGLIBInstrumenter
extends AbstractInstrumenter

Strategy for performing build-time instrumentation of persistent classes in order to enable field-level interception using CGLIB.

Author:
Steve Ebersole, Gavin King

Nested Class Summary
 
Nested classes/interfaces inherited from class org.hibernate.bytecode.buildtime.AbstractInstrumenter
AbstractInstrumenter.CustomFieldFilter
 
Nested classes/interfaces inherited from interface org.hibernate.bytecode.buildtime.Instrumenter
Instrumenter.Options
 
Field Summary
 
Fields inherited from class org.hibernate.bytecode.buildtime.AbstractInstrumenter
logger, options
 
Constructor Summary
CGLIBInstrumenter(Logger logger, Instrumenter.Options options)
           
 
Method Summary
protected  ClassDescriptor getClassDescriptor(byte[] byecode)
          Given the bytecode of a java class, retrieve the descriptor for that class.
protected  ClassTransformer getClassTransformer(ClassDescriptor descriptor, Set classNames)
          Create class transformer for the class.
 
Methods inherited from class org.hibernate.bytecode.buildtime.AbstractInstrumenter
checkMagic, execute, isClassFile, isJarFile, processClassFile, processFile, processJarFile
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

CGLIBInstrumenter

public CGLIBInstrumenter(Logger logger,
                         Instrumenter.Options options)
Method Detail

getClassDescriptor

protected ClassDescriptor getClassDescriptor(byte[] byecode)
                                      throws Exception
Description copied from class: AbstractInstrumenter
Given the bytecode of a java class, retrieve the descriptor for that class.

Specified by:
getClassDescriptor in class AbstractInstrumenter
Parameters:
byecode - The class bytecode.
Returns:
The class's descriptor
Throws:
Exception - Indicates problems access the bytecode.

getClassTransformer

protected ClassTransformer getClassTransformer(ClassDescriptor descriptor,
                                               Set classNames)
Description copied from class: AbstractInstrumenter
Create class transformer for the class.

Specified by:
getClassTransformer in class AbstractInstrumenter
Parameters:
descriptor - The descriptor of the class to be instrumented.
classNames - The names of all classes to be instrumented; the "pipeline" if you will.
Returns:
The transformer for the given class; may return null to indicate that transformation should be skipped (ala already instrumented).


Copyright © 2001-2010 Red Hat, Inc. All Rights Reserved.