Search in sources :

Example 1 with CoreIssueModificationContext

use of com.avaloq.tools.ddk.check.runtime.ui.quickfix.CoreIssueModificationContext in project dsl-devkit by dsldevkit.

the class AbstractQuickFixTest method sortResolutionsByOffsetDecreasing.

/**
 * Sort issue resolutions by offset in document decreasing.
 *
 * @param resolutions
 *          resolutions to sort
 * @return a copy of {@code resolutions} sorted by offset in document decreasing
 */
protected List<IssueResolution> sortResolutionsByOffsetDecreasing(final List<IssueResolution> resolutions) {
    final Function<IssueResolution, Integer> getLocationFunction = new Function<IssueResolution, Integer>() {

        /**
         * {@inheritDoc}
         */
        @Override
        public Integer apply(final IssueResolution from) {
            if (from != null) {
                if (from instanceof IssueResolutionWrapper) {
                    ICoreModificationContext context = ((IssueResolutionWrapper) from).getCoreModificationContext();
                    if (context instanceof CoreIssueModificationContext) {
                        return ((CoreIssueModificationContext) context).getIssue().getOffset();
                    }
                } else {
                    IModificationContext context = from.getModificationContext();
                    if (context instanceof IssueModificationContext) {
                        return ((IssueModificationContext) context).getIssue().getOffset();
                    }
                }
            }
            return Integer.MIN_VALUE;
        }
    };
    Ordering<IssueResolution> ordering = Ordering.natural().onResultOf(getLocationFunction).reverse();
    return new ArrayList<IssueResolution>(ordering.sortedCopy(resolutions));
}
Also used : ICoreModificationContext(com.avaloq.tools.ddk.check.runtime.quickfix.ICoreModificationContext) IssueModificationContext(org.eclipse.xtext.ui.editor.model.edit.IssueModificationContext) CoreIssueModificationContext(com.avaloq.tools.ddk.check.runtime.ui.quickfix.CoreIssueModificationContext) Function(com.google.common.base.Function) CoreIssueModificationContext(com.avaloq.tools.ddk.check.runtime.ui.quickfix.CoreIssueModificationContext) IssueResolution(org.eclipse.xtext.ui.editor.quickfix.IssueResolution) IModificationContext(org.eclipse.xtext.ui.editor.model.edit.IModificationContext) ArrayList(java.util.ArrayList) IssueResolutionWrapper(com.avaloq.tools.ddk.check.runtime.ui.quickfix.IssueResolutionWrapper)

Aggregations

ICoreModificationContext (com.avaloq.tools.ddk.check.runtime.quickfix.ICoreModificationContext)1 CoreIssueModificationContext (com.avaloq.tools.ddk.check.runtime.ui.quickfix.CoreIssueModificationContext)1 IssueResolutionWrapper (com.avaloq.tools.ddk.check.runtime.ui.quickfix.IssueResolutionWrapper)1 Function (com.google.common.base.Function)1 ArrayList (java.util.ArrayList)1 IModificationContext (org.eclipse.xtext.ui.editor.model.edit.IModificationContext)1 IssueModificationContext (org.eclipse.xtext.ui.editor.model.edit.IssueModificationContext)1 IssueResolution (org.eclipse.xtext.ui.editor.quickfix.IssueResolution)1