Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[aspectj-users] Super calls to inter-type methods

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?




Back to the top