Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Language IDEs » AJDT » AspectJ and method overriding
AspectJ and method overriding [message #596164] Wed, 11 July 2007 05:45
Mickael GAUVIN is currently offline Mickael GAUVIN
Messages: 38
Registered: July 2009
Member
Hello,

I'm working on a project where OSGi mecanism is hidden in Aspects.

I have somme problem with methods overriding. Currently I have 2
interfaces A and B, B inheriting from A. I have the interface
ServiceListener provided by OSGi framework. All objects implementing A
and B must implement ServiceListener so they must have the method
serviceChanged(ServiceEvent event) implemented.

Here it is my two aspects :

aspect A {

declare parents: A implements ServiceListener;

public void A.serviceChanged(ServiceEvent evt) {
// Beginning of A treatment
...
// End of A treatment
}

}

aspect B {

declare parents: B implements ServiceListener;

public void B.serviceChanged(ServiceEvent evt) {
// Beginning of A treatment
...
// End of A treatment

// Beginning of B treatment
...
// End of B treatment
}

}

As I wish B execute the same code of A (its parent), I'm obliged to
rewrite all the A treatment. To avoid this useless recopy I wanted to
use the key word "super" to obtain this B aspect:

aspect B {

declare parents: B implements ServiceListener;

public void B.serviceChanged(ServiceEvent evt) {
-> super.serviceChanged(evt);

// Debut traitment B
...
// Fin traitement B
}

}

but that code doesn't work, surely because here, super is interpreted as
the aspect B parent that is Object and not as the B parent that is A.

If you have any help for this problem, I will be happy.

Thanks

Mickaƫl Gauvin
Previous Topic:AJDT 1.5 for Eclipse 3.3 released as part of Europa
Next Topic:AspectJ and method overriding
Goto Forum:
  


Current Time: Wed Aug 20 02:51:46 EDT 2014

Powered by FUDForum. Page generated in 0.01502 seconds