[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
Re: [aspectj-users] AspectJ issue or ...
|
There is an article here on caching:
http://www.aspectprogrammer.org/blogs/adrian/2004/06/implementing_ca_1.html
Something like this might work for you:
public privileged aspect WriteBack extends WritePolicy
perthis(writeMethodCalled(Object)) {
private ICache myCache;
pointcut writingMethodCalled(Object o):
(execution(@WritingMethod void *(*))) && // my methods in Aclass
(or somewhere else)
args(o);
void around(Object o): writingMethodCalled(o) {
// We need to find out the current cache
// myCache is the current cache
(...)
}
you will get a different cache instance for every different execution
of an @WritingMethod annotated method (that takes a single argument).
Andy
On 01/04/2008, joss <jonathan.clairembault@xxxxxxxxx> wrote:
> Hi all,
>
> I got an issue with AspectJ. Actually I have got 2 classes (Cache and
> Aclass) and 1 aspect (WriteBack).
> I'd like to advise methods in Aclass by declaring pointcuts in
> WriteBack, but I need to write the result of those functions in Cache.
> My issue is how can I recuperate my Cache in which I want to write to.
>
> here is an example :
>
> public privileged aspect WriteBack extends WritePolicy {
>
> pointcut writingMethodCalled(Object o):
> (execution(@WritingMethod void *(*))) && // my methods in Aclass
> (or somewhere else)
> args(o);
>
> void around(Object o): writingMethodCalled(o) {
> // We need to find out the current cache
> ICache currentCache = ; // HERE IS THE ISSUE
>
> (...)
> }
>
> public interface ICache<D> extends Iterable<IEntry<D>>{
> int getSize();
> int getMaxSize();
> // entries with the same tag are merely modified (Data)
> void putEntry(IEntry<D> e);
> IEntry<D> getEntry(Taggable tag);
> IEntry<D> getEntry(Object data);
> void removeEntry(IEntry<D> e);
> }
>
> I wondering if I use my aspect with the clause perthis(cacheCreation()),
> may I recuperate the Cache instance linked with this aspect ?
>
> Thanks in advance,
> Jonathan Clairembault
> _______________________________________________
> aspectj-users mailing list
> aspectj-users@xxxxxxxxxxx
> https://dev.eclipse.org/mailman/listinfo/aspectj-users
>