/** * Enhances the object on load. * * @param <T> Type of the object to enhance. * @param obj Object to augment/enhance. * @return Enhanced object. */ @SuppressWarnings({"unchecked"}) public static <T> T enhance(T obj) { ProxyFactory proxyFac = new ProxyFactory(obj); proxyFac.addAdvice(dfltAsp); proxyFac.addAdvice(setToValAsp); proxyFac.addAdvice(setToSetAsp); while (proxyFac.getAdvisors().length > 0) { proxyFac.removeAdvisor(0); } proxyFac.addAdvisor( new DefaultPointcutAdvisor( new GridifySpringPointcut(GridifySpringPointcutType.DFLT), dfltAsp)); proxyFac.addAdvisor( new DefaultPointcutAdvisor( new GridifySpringPointcut(GridifySpringPointcutType.SET_TO_VALUE), setToValAsp)); proxyFac.addAdvisor( new DefaultPointcutAdvisor( new GridifySpringPointcut(GridifySpringPointcutType.SET_TO_SET), setToSetAsp)); return (T) proxyFac.getProxy(); }