Java tutorial
package prospring3.ch6; import org.aspectj.lang.ProceedingJoinPoint; import java.util.List; /** * *********************************************************************** * <p/> * Copyright: * 2012 1&1 Internet AG, Germany, http://www.1und1.de * <p/> * License: * commercial * <p/> * Authors: * Antonel (Tony) Pazargic (antonel.pazargic@1and1.ro) * <p/> * Date: 5/15/12 * Time: 9:33 AM * <p/> * *********************************************************************** */ public class CompositeAdvice { private List<IDeassociation> deassociateAdvices; public Object deassociate(ProceedingJoinPoint pjp, Deassociate deassociate) throws Throwable { System.out.println("[BEFORE] RemoveScheduledPostsAdvice.around"); final String name = pjp.getSignature().getName(); final DeassociateTarget deassociateTarget = deassociate.target(); System.out.println("deassociateTarget = " + deassociateTarget); System.out.println("signature name = " + name); System.out.println("this.getClass().getCanonicalName() = " + this.getClass().getCanonicalName()); for (IDeassociation advice : deassociateAdvices) { advice.deassociate(pjp, deassociate); } final Object ret = pjp.proceed(pjp.getArgs()); System.out.println("this.getClass().getCanonicalName() = " + this.getClass().getCanonicalName()); System.out.println("[AFTER] RemoveScheduledPostsAdvice.around"); return ret; } public void setDeassociateAdvices(List deassociateAdvices) { this.deassociateAdvices = deassociateAdvices; } }