Just as a concrete class at the bottom of a hierarchy must implement any
inherited abstract methods, so a concrete aspect must provide a definition
('concretize') any abstract pointcuts it inherits, otherwise it is still an
abstract aspect.

abstract aspect Foo {
  abstract pointcut scope();

  before(): execution(* *(..)) && scope() {
      System.out.println("Entering >"+thisJoinPoint);
  }
}

aspect Goo extends Foo {
  // must provide a definition of scope()
  pointcut scope(): within(com.mypackages..*);
}

Andy.

2008/7/30 Jordi Monné <[EMAIL PROTECTED]>

> Hi all.
>
> I was working on some exercises to learn how AspectJ works. One of them was
> to see how to extend abstracts aspects with AspectJ. I was trying to do
> something like this:
>
> B(abstract) extends A(abstract)
> C(concrete) extends B(abstract).
>
> Where A,B,C are aspects.
>
> I was wondering why Eclipse says to me that an inherited pointcut from A
> was not made concrete in B. I read "Aspects extending aspects" from
> http://www.eclipse.org/aspectj/doc/released/progguide/semantics-aspects.html#aspect-extensionbut
>  it didn't help to me at all.
>
> Can someone give me some light about it?.
>
> Any help or pointers would be most appreciated.
>
> Thanks.
>
>
>
> _______________________________________________
> aspectj-users mailing list
> [email protected]
> https://dev.eclipse.org/mailman/listinfo/aspectj-users
>
>
_______________________________________________
aspectj-users mailing list
[email protected]
https://dev.eclipse.org/mailman/listinfo/aspectj-users

Reply via email to