prospring3.ch6.CompositeAdvice.java Source code

Java tutorial

Introduction

Here is the source code for prospring3.ch6.CompositeAdvice.java

Source

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;
    }
}