package org.xpect.ui.quickfix;
import java.util.List;
import org.eclipse.xtext.ui.editor.quickfix.IssueResolution;
import org.eclipse.xtext.ui.editor.quickfix.IssueResolutionProvider;
import org.eclipse.xtext.ui.editor.quickfix.IssueResolutionProviderExtension;
import org.eclipse.xtext.validation.Issue;
import org.xpect.registry.DefaultBinding;
import com.google.inject.Inject;
public class XtIssueResolutionProvider implements IssueResolutionProvider, IssueResolutionProviderExtension {
@Inject
@DefaultBinding
private IssueResolutionProvider original;
@Inject
private XpectQuickfixProvider xpect;
@Override
public boolean hasResolutionFor(String issueCode) {
return xpect.hasExplicitResolutionFor(issueCode) || original.hasResolutionFor(issueCode);
}
@Override
public List<IssueResolution> getResolutions(Issue issue) {
if (xpect.hasExplicitResolutionFor(issue.getCode())) {
return xpect.getResolutions(issue);
} else {
return original.getResolutions(issue);
}
}
@Override
public boolean hasResolutionFor(Issue issue) {
if (xpect.hasExplicitResolutionFor(issue.getCode())) {
return true;
}
if (original instanceof IssueResolutionProviderExtension) {
return ((IssueResolutionProviderExtension) original).hasResolutionFor(issue);
}
return false;
}
}