/* * JBoss, the OpenSource J2EE webOS * * Distributable under LGPL license. * See terms of license at gnu.org. */ import org.jboss.aop.Bind; import org.jboss.aop.InterceptorDef; import org.jboss.aop.joinpoint.ConstructorInvocation; import org.jboss.aop.joinpoint.FieldInvocation; import org.jboss.aop.joinpoint.Invocation; import org.jboss.aop.joinpoint.MethodInvocation; import org.jboss.aop.advice.Interceptor; /** * * @author Kabir Khan * @version $Revision: 1.1 $ */ @InterceptorDef @Bind (pointcut = "all(POJO)")//All constructors and methods //@Bind (pointcut = "execution(* POJO->*(..))")//All methods //@Bind (pointcut = "execution(POJO->new(..))")//All constructors public class SimpleInterceptor implements Interceptor { public String getName() { return "SimpleInterceptor"; } public Object invoke(Invocation invocation) throws Throwable { try { if (invocation instanceof MethodInvocation) { MethodInvocation mi = (MethodInvocation)invocation; System.out.println("<<< Entering SimpleInterceptor for: " + mi.getMethod().toString()); } else if (invocation instanceof ConstructorInvocation) { ConstructorInvocation ci = (ConstructorInvocation)invocation; System.out.println("<<< Entering SimpleInterceptor for: " + ci.getConstructor().toString()); } else if (invocation instanceof ConstructorInvocation) { FieldInvocation fi = (FieldInvocation)invocation; System.out.println("<<< Entering SimpleInterceptor for: " + fi.getField().toString()); } else { System.out.println("<<< Entering SimpleInterceptor for a caller invocation"); } return invocation.invokeNext(); } finally { System.out.println(">>> Leaving SimpleInterceptor"); } } }