## org.hibernate.bytecode.buildtime
Class CGLIBInstrumenter

    java.lang.Object
      org.hibernate.bytecode.buildtime.AbstractInstrumenter
          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.