[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
RE: [aspectj-users] Implementing abstract pointcut that includes nojoinpoints


This syntax will do it, although it is a little counterintuitive when you
first encounter it:

protected pointcut overriddenAbstractPointcut();

You can also define a default empty value in a concrete pointcut (like this)
in an abstract aspect and then override it with a non-empty definition in
some concrete aspects. E.g.,

abstract aspect Base {
   protected pointcut optionalPoint(); // empty

aspect Derived1 extends Base {
   protected pointcut optionalPoint() : within(foo..*); // defines for this

aspect Derived2 extends Base {
   // optional is empty for this concrete aspect

-----Original Message-----
From: aspectj-users-bounces@xxxxxxxxxxx
[mailto:aspectj-users-bounces@xxxxxxxxxxx] On Behalf Of Ken Pelletier
Sent: Thursday, October 20, 2005 10:06 PM
To: aspectj-users@xxxxxxxxxxx
Subject: [aspectj-users] Implementing abstract pointcut that includes

I have an abstract aspect that declares a couple of abstract  
pointcuts to be overridden in concrete subclasses.

In a particular subclass, however I want to nullify one of those  
pointcuts; include no joinpoints at all.

Is there a common idiom for implementing a concrete pointcut that  
explicitly includes no joinpoints?

I know I can nullify with && if(false), but it smells funny to  
declare any advice type at all if really none applies.


protected overriddenAbstractPointcut() :  
<what_would_advice_spec_be_here> && if(false;


- Ken

PS: it's probably a design smell in the first place to have abstract  
pointcuts that sometimes have no applicable concrete implementation,  
but that's another matter.  :-)
aspectj-users mailing list