public static MethodInterceptorRdf getMethodInterceptor(Object o) { MethodInterceptorRdf result = null; if(o != null && Enhancer.isEnhanced(o.getClass())) { Factory factory = (Factory)o; Callback callback = factory.getCallback(0); result = callback != null && callback instanceof MethodInterceptorRdf ? (MethodInterceptorRdf)callback : null; } return result; }
/** * Returns the base class if the clazz is a CGLIB proxy. * Returns the clazz otherwise. * @deprecated Consider using {@link AopProxyUtils#ultimateTargetClass(Object)} */ public static Class<?> unproxySpringAspect(Class<?> clazz) { if (Enhancer.isEnhanced(clazz) /* spring ver <= 3.1 */ || org.springframework.cglib.proxy.Enhancer.isEnhanced(clazz) /* spring ver >= 3.2 */) { return clazz.getSuperclass(); } return clazz; }
public static MethodInterceptorRdf getMethodInterceptor(Object o) { MethodInterceptorRdf result = null; if(o != null && Enhancer.isEnhanced(o.getClass())) { Factory factory = (Factory)o; Callback callback = factory.getCallback(0); result = callback != null && callback instanceof MethodInterceptorRdf ? (MethodInterceptorRdf)callback : null; } return result; }
/** * Register dao to be called after updating an object of type clazz for updating search index of dependent objects managed by the given * dao. * @param clazz Type of modified object * @param dao Dao to notify. */ public void registerDependent(Class< ? extends BaseDO< ? >> clazz, BaseDao< ? > dao) { if (Enhancer.isEnhanced(dao.getClass()) == true) { return; } Set<BaseDao< ? >> set = this.registeredDependents.get(clazz); if (set == null) { set = new HashSet<BaseDao< ? >>(); this.registeredDependents.put(clazz, set); } set.add(dao); }
@Override public void convertAnother(Object item) { Class<?> targetClass = item.getClass(); while (Enhancer.isEnhanced(targetClass) == true) { targetClass = targetClass.getSuperclass(); } Converter converter = converterLookup.lookupConverterForType(targetClass); Object realItem = HibernateProxyHelper.get(item); if (classMapper.isImmutableValueType(realItem.getClass())) { // strings, ints, dates, etc... don't bother using references. converter.marshal(item, writer, this); } else { Object idOfExistingReference = references.lookupId(realItem); if (idOfExistingReference != null) { writer.addAttribute("reference", idOfExistingReference.toString()); return; } String newId = idGenerator.next(realItem); writer.addAttribute("id", newId); references.associateId(realItem, newId); if (log.isDebugEnabled()) { log.debug("marshalling object " + realItem.getClass() + " to stream"); } converter.marshal(realItem, writer, this); } }