Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[ajdt-dev] (no subject)

I am having problems with Eclipse 3.3 Europa and AJDT 1.5.0 (and 1.5.1 too). I have an Eclipse plugin with the following
aspect:

////////////////////////////////////////////////////////////
package com.mapfre.general.eclipse.extensions.model.observer;

import com.mapfre.general.eclipse.extensions.model.IModelData;

import java.util.Iterator;

public aspect PropertyChangeAspect extends PropertyChangeSource perthis(this(IModelData)) {

    pointcut add(IModelData affected, Object newElement) : this(affected)
        && args(newElement)
        && execution(public * IModelData +.* ((Object +)));
       

    pointcut touch(IModelData affected) : this(affected)
        && execution(public * IModelData +.touch());

       
    after(IModelData affected, Object newElement) returning: add(affected, newElement) {       
        Iterator iter = listeners();
        while (iter.hasNext()) {
            PropertyChangeEvent event = new PropertyChangeEvent(null, newElement, PropertyChangeEvent.NONTOUCH_EVENT);
            IPropertyChangeListener listener = (IPropertyChangeListener) iter.next();
            listener.propertyChanged(event);
        }
    }

    after(IModelData affected) returning: touch(affected) {       
        Iterator iter = listeners();
        while (iter.hasNext()) {
            PropertyChangeEvent event = new PropertyChangeEvent(null, null, PropertyChangeEvent.TOUCH_EVENT);
            IPropertyChangeListener listener = (IPropertyChangeListener) iter.next();
            listener.propertyChanged(event);
        }
    }

}
/////////////////////////////////////////////////////////////
whic extends the next class:

////////////////////////////////////////////////////////////

public class PropertyChangeSource {
   
    Collection listeners = new ArrayList();

    public void addListener(IPropertyChangeListener listener){
        listeners.add(listener);   
    }

    public void removeListener(IPropertyChangeListener listener){
        listeners.remove(listener);   
    }
       
    protected Iterator listeners() {
        return listeners.iterator();
    }

}
//////////////////////////////////////////////////////////


I get a NoAspectBoundException when i try this sentence:

PropertyChangeSource source = PropertyChangeAspect.aspectOf(model.getModelData());

This same code works perfectly in previous Eclipse versions such as Eclipse 3.2. I am using java 5.

Can anybody help me with this problem?

Thanks!!!


Sigue de cerca las últimas tendencias y lo que más rompe MSN Vídeo

Back to the top