Hi there. I'm having trouble figuring out the best method to do something and I was hoping someone out there with more AspectJ experience might be able to help.

I am trying to use inter-type declarations on interfaces to simulate multiple inheritance. The trouble comes in when I want to override the inherited method from an interface. For instance if I have:

public interface SelectAction<T>{

        public void select(T selection);

}

public aspect SelectAspect{

        private T SelectAction<T>.selection;

        public void SelectAction<T>.select(T selection){
                this.selection = selection;
        }

}

then:

public class StringSelectAction implements SelectAction<T>{...}

Causes StringSelectAction to inherit the select method correctly, but what if I wanted to override the inherited method and say check permissions before selecting an object? I can't have:

public void select(String selection){
        checkPermissions(selection);
        super.select(selection);
}

because the select method is not a member of the super class. Is there a syntax in AspectJ to indicate I want to call the inherited method? If not, what is the best practice for this type of thing?


_______________________________________________
aspectj-users mailing list
[email protected]
https://dev.eclipse.org/mailman/listinfo/aspectj-users

Reply via email to