package melnorme.lang.ide.ui.navigator; import org.eclipse.core.filesystem.IFileStore; import com.googlecode.goclipse.ui.navigator.elements.GoPathElement; import melnorme.lang.tooling.LANG_SPECIFIC; @LANG_SPECIFIC public interface NavigatorElementsSwitcher<RET> extends NavigatorElementsSwitcher_Default<RET> { @Override default RET switchElement(Object element) { if(element instanceof GoPathElement) { return visitGoPathElement((GoPathElement) element); } if(element instanceof IFileStore) { return visitFileStoreElement((IFileStore) element); } return NavigatorElementsSwitcher_Default.super.switchElement(element); } public abstract RET visitGoPathElement(GoPathElement goPathElement); public abstract RET visitFileStoreElement(IFileStore fileStore); }