Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [aspectj-dev] Aspect per object instance

This has been posted and should be answered on aspectj-users@xxxxxxxxxxx.

Wes

"Enrique J. Amodeo Rubio" wrote:
> 
> Hi,
> 
> I have a question about aspect instantiation, how can I have an aspect
> instance per each object of a determinated class? In this way we could
> create an aspect like the following (some sintax, like perobject are
> invented):
> 
> public abstract aspect SubjectObserverProtocol perobject(Subject+)
> {
>     private Set observers = new HashSet();
>     public void notifyObservers(Event ev)
>     {
>         Iterator it=observers.iterator();
>         while(it.hasNext())
>         {
>             update((Observer)it.next(),ev);
>         }
>     }
> 
>     public void addObserver(Observer o)
>     {
>         observers.add(o);
>     }
> 
>     // follows point-cuts and advice to capture when is necesary to
>     // update the subject.
> 
>     pointcut abstract updateObserver(Subject o,Event e);
>     protected abstract void update(Observer o,Event ev);
>     void after(Subject o,Event e) : updateObserver(o,e)
>     {
>         o.aspectOf().notifyObservers(e);
>     }
> }
> 
> It should be a concrete aspect implementing updateObserver and update
> method for each. Subject and Observer are empty interfaces. An important
> point is avoiding collisions.
> 
> Does anybody know how to do this with aspectJ? Is necesary add more
> functionality like the perobject keyword? Is there any work-around or
> idiom? I feel there should be a good way to implement this kind of
> functionality in an elegant way using aspectJ.
> 
> Thank you in advance,
> 
>     Enrique J. Amodeo Rubio
> 
> _______________________________________________
> aspectj-dev mailing list
> aspectj-dev@xxxxxxxxxxx
> http://dev.eclipse.org/mailman/listinfo/aspectj-dev


Back to the top