01: package org.hibernate.intercept.cglib;
02:
03: import org.hibernate.intercept.FieldInterceptor;
04: import org.hibernate.engine.SessionImplementor;
05: import net.sf.cglib.transform.impl.InterceptFieldEnabled;
06:
07: import java.util.Set;
08:
09: /**
10: * @author Steve Ebersole
11: */
12: public class CGLIBHelper {
13: private CGLIBHelper() {
14: }
15:
16: public static FieldInterceptor extractFieldInterceptor(Object entity) {
17: return (FieldInterceptor) ((InterceptFieldEnabled) entity)
18: .getInterceptFieldCallback();
19: }
20:
21: public static FieldInterceptor injectFieldInterceptor(
22: Object entity, String entityName,
23: Set uninitializedFieldNames, SessionImplementor session) {
24: FieldInterceptorImpl fieldInterceptor = new FieldInterceptorImpl(
25: session, uninitializedFieldNames, entityName);
26: ((InterceptFieldEnabled) entity)
27: .setInterceptFieldCallback(fieldInterceptor);
28: return fieldInterceptor;
29:
30: }
31: }
|