Search in sources :

Example 1 with MWEDiagnostic

use of org.eclipse.emf.mwe.core.issues.MWEDiagnostic in project xtext-core by eclipse.

the class Validator method groupByURI.

protected Multimap<URI, MWEDiagnostic> groupByURI(MWEDiagnostic[] diagnostic) {
    Multimap<URI, MWEDiagnostic> result = Multimaps.newMultimap(Maps.<URI, Collection<MWEDiagnostic>>newLinkedHashMap(), new Supplier<Collection<MWEDiagnostic>>() {

        @Override
        public Collection<MWEDiagnostic> get() {
            return Sets.newTreeSet(getDiagnosticComparator());
        }
    });
    result.putAll(Multimaps.index(Arrays.asList(diagnostic), new Function<MWEDiagnostic, URI>() {

        @Override
        public URI apply(MWEDiagnostic from) {
            Issue issue = (Issue) from.getElement();
            URI uriToProblem = issue.getUriToProblem();
            return uriToProblem != null ? uriToProblem.trimFragment() : NullURI;
        }
    }));
    return result;
}
Also used : Function(com.google.common.base.Function) Issue(org.eclipse.xtext.validation.Issue) MWEDiagnostic(org.eclipse.emf.mwe.core.issues.MWEDiagnostic) Collection(java.util.Collection) URI(org.eclipse.emf.common.util.URI)

Example 2 with MWEDiagnostic

use of org.eclipse.emf.mwe.core.issues.MWEDiagnostic in project xtext-core by eclipse.

the class Validator method appendMessages.

protected void appendMessages(StringBuilder result, MWEDiagnostic[] diagnostics) {
    Multimap<URI, MWEDiagnostic> issuesPerURI = groupByURI(diagnostics);
    boolean first = true;
    for (URI uri : issuesPerURI.keySet()) {
        if (!first)
            result.append('\n');
        first = false;
        if (uri != null) {
            result.append('\t').append(uri.lastSegment()).append(" - ");
            if (uri.isFile())
                result.append(uri.toFileString());
            else
                result.append(uri);
        }
        for (MWEDiagnostic diagnostic : issuesPerURI.get(uri)) {
            Issue issue = (Issue) diagnostic.getElement();
            result.append("\n\t\t").append(issue.getLineNumber()).append(": ").append(diagnostic.getMessage());
        }
    }
}
Also used : Issue(org.eclipse.xtext.validation.Issue) MWEDiagnostic(org.eclipse.emf.mwe.core.issues.MWEDiagnostic) URI(org.eclipse.emf.common.util.URI)

Example 3 with MWEDiagnostic

use of org.eclipse.emf.mwe.core.issues.MWEDiagnostic in project xtext-core by eclipse.

the class ValidatorTest method testBugFix322645.

/**
 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=322645
 */
@Test
public void testBugFix322645() throws Exception {
    Issues issues = issues();
    Issue a = new Issue.IssueImpl();
    Issue b = new Issue.IssueImpl();
    issues.addError("foo", a);
    issues.addWarning(null, a);
    issues.addError(null, b);
    MWEDiagnostic[] errors = issues.getErrors();
    assertEquals(2, errors.length);
    final Validator validator = new Validator();
    final String string = validator.toString(issues);
    assert (string.contains("foo"));
}
Also used : Issue(org.eclipse.xtext.validation.Issue) Issues(org.eclipse.emf.mwe.core.issues.Issues) MWEDiagnostic(org.eclipse.emf.mwe.core.issues.MWEDiagnostic) Test(org.junit.Test)

Aggregations

MWEDiagnostic (org.eclipse.emf.mwe.core.issues.MWEDiagnostic)3 Issue (org.eclipse.xtext.validation.Issue)3 URI (org.eclipse.emf.common.util.URI)2 Function (com.google.common.base.Function)1 Collection (java.util.Collection)1 Issues (org.eclipse.emf.mwe.core.issues.Issues)1 Test (org.junit.Test)1