[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
[aspectj-users] Interface introduction, introduced method inheritance problem: Help!
|
I am working on my Senior project, and I have run into a blocking problem...
I have the aspect below:
privileged public aspect CachingAspect {
declare parents : AbstractServerPage implements
CacheableProcessingComponent;
public Serializable AbstractServerPage.generateKey() {
return null;
}
public SourceValidity AbstractServerPage.generateValidity() {
if (hasContentChanged(request))
return null;
else
return NOPValidity.SHARED_INSTANCE;
}
}
AbstractServerPage is an abstract class that implements the
CacheAbleProcessingComponent interface. I then have another abstract class
XSPGenerator as a subclass of AbstractServerPage, and JSGenerator as a
subclass of XSPGenerator.
I recieve a compilation error for JSGenerator that says: class must
implement the inherited abstract method
CacheableProcessingComponent.generateKey() and the same for
generateValidity(). BUT I have already implemented these methods in
AbstractServerPage via the introductions in the aspect above... and so
JSGenerator should inherit them from AbstractServerPage!
I clearly see the introduction in AbstractServerPage and XSPGenerator does
not have any errors! If I manually re-introduce these methods/interfaces
into AbstractServerPage my errors go away. It seems pretty clear it is an
inhertance problem with AspectJ and introduced methods.... am I wrong?
What am I missing??
- Jeff