Open Source Repository

Home /hibernate/hibernate-3.2.7.ga | Repository Home


org/hibernate/intercept/cglib/CGLIBHelper.java
package org.hibernate.intercept.cglib;

import org.hibernate.intercept.FieldInterceptor;
import org.hibernate.engine.SessionImplementor;
import net.sf.cglib.transform.impl.InterceptFieldEnabled;

import java.util.Set;

/**
 @author Steve Ebersole
 */
public class CGLIBHelper {
  private CGLIBHelper() {
  }

  public static FieldInterceptor extractFieldInterceptor(Object entity) {
    return FieldInterceptor ) ( ( InterceptFieldEnabled entity ).getInterceptFieldCallback();
  }

  public static FieldInterceptor injectFieldInterceptor(
      Object entity,
          String entityName,
          Set uninitializedFieldNames,
          SessionImplementor session) {
    FieldInterceptorImpl fieldInterceptor = new FieldInterceptorImpl(
        session, uninitializedFieldNames, entityName
    );
    ( ( InterceptFieldEnabled entity ).setInterceptFieldCallbackfieldInterceptor );
    return fieldInterceptor;

  }
}