[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [aspectj-users] Help with defining pointcut for method execution on interface hierarchy

I'm afraid I can't come up with a pointcut for that.  Best I could do
is something like:

aspect X {
	public static boolean check(JoinPoint.StaticPart jpsp) {
		Object o = ((MethodSignature)jpsp.getSignature()).getDeclaringType();
		boolean b = // work out what you want...
		return b;
	}
	before(): execution(* A+.*(..)) && if(check(thisJoinPointStaticPart))  {
		System.out.println(thisJoinPoint);
	}

}

where you do your extra analysis in the check() method.  But this is
not a purely static match of course.

Andy

2009/9/10 Johan Haleby <johan.haleby@xxxxxxxxx>:
> Hi,
>
> I'd like to get some help to define a pointcut. I have an empty marker
> interface (A) from which several other interfaces extends e.g.
>
> public interface B extends A {
>       void myMethodInB();
> }
>
> Then I have an implementation of B (BImpl) which also extends other
> interfaces that doesn't extend from A such as X, Y, and Z, e.g.
>
> public class BImpl implements B, X, Y, Z {
>    public void myMethodInB() {
>       ....
>   }
>
>    public void myMethodInX() {
>       ....
>   }
>     ...
> }
>
> I want to define a pointcut that only intercepts methods declared in a
> subinterface of A. So for example the only method that should be intercepted
> in BImpl is the myMethodInB method since B extends A. The other methods such
> as myMethodInX should not be intercepted. Does anyone know how a pointcut
> like this would look like?
>
> Thanks
> /Johan
>
>
>
> _______________________________________________
> aspectj-users mailing list
> aspectj-users@xxxxxxxxxxx
> https://dev.eclipse.org/mailman/listinfo/aspectj-users
>
>