diff --git a/platform/lang-impl/src/com/intellij/openapi/paths/WebReferencesAnnotatorBase.java b/platform/lang-impl/src/com/intellij/openapi/paths/WebReferencesAnnotatorBase.java index 3414a997e189..c7395fd88849 100644 --- a/platform/lang-impl/src/com/intellij/openapi/paths/WebReferencesAnnotatorBase.java +++ b/platform/lang-impl/src/com/intellij/openapi/paths/WebReferencesAnnotatorBase.java @@ -78,7 +78,7 @@ public abstract class WebReferencesAnnotatorBase extends ExternalAnnotator is valid only as the root node of an FXML document", ValidationHost.ERROR); + host.addMessage(context.getNavigationElement(), " is valid only as the root node of an FXML document", + ValidationHost.ErrorType.ERROR); } } else { final XmlTag referencedTag = getReferencedTag(context); @@ -310,7 +311,8 @@ public class JavaFxDefaultPropertyElementDescriptor implements XmlElementDescrip } } if (!copyConstructorFound) { - host.addMessage(context.getNavigationElement(), "Copy constructor not found for \'" + psiClass.getName() + "\'", ValidationHost.ERROR); + host.addMessage(context.getNavigationElement(), "Copy constructor not found for \'" + psiClass.getName() + "\'", + ValidationHost.ErrorType.ERROR); } } } diff --git a/xml/impl/src/com/intellij/codeInsight/daemon/impl/analysis/XmlHighlightVisitor.java b/xml/impl/src/com/intellij/codeInsight/daemon/impl/analysis/XmlHighlightVisitor.java index 3e0d3f086b73..ed7102fd314b 100644 --- a/xml/impl/src/com/intellij/codeInsight/daemon/impl/analysis/XmlHighlightVisitor.java +++ b/xml/impl/src/com/intellij/codeInsight/daemon/impl/analysis/XmlHighlightVisitor.java @@ -675,15 +675,7 @@ public class XmlHighlightVisitor extends XmlElementVisitor implements HighlightV @Override public void addMessage(PsiElement context, String message, int type) { - if (message != null && !message.isEmpty()) { - if (context instanceof XmlTag && XmlExtension.getExtension(context.getContainingFile()).shouldBeHighlightedAsTag((XmlTag)context)) { - HighlightInfoType infoType = type == ERROR ? HighlightInfoType.ERROR : type == WARNING ? HighlightInfoType.WARNING : HighlightInfoType.WEAK_WARNING; - addElementsForTag((XmlTag)context, message, infoType, null); - } - else { - addToResults(HighlightInfo.newHighlightInfo(HighlightInfoType.ERROR).range(context).descriptionAndTooltip(message).create()); - } - } + throw new UnsupportedOperationException(); } @Override @@ -692,7 +684,7 @@ public class XmlHighlightVisitor extends XmlElementVisitor implements HighlightV } @Override - public void addMessageWithFixes(final PsiElement context, final String message, @NotNull final ErrorType type, final IntentionAction... fixes) { + public void addMessageWithFixes(final PsiElement context, final String message, @NotNull final ErrorType type, @NotNull final IntentionAction... fixes) { if (message != null && !message.isEmpty()) { final PsiFile containingFile = context.getContainingFile(); final HighlightInfoType defaultInfoType = type == ErrorType.ERROR ? HighlightInfoType.ERROR : type == ErrorType.WARNING ? HighlightInfoType.WARNING : HighlightInfoType.WEAK_WARNING; @@ -713,11 +705,9 @@ public class XmlHighlightVisitor extends XmlElementVisitor implements HighlightV HighlightInfo.newHighlightInfo(HighlightInfoType.WRONG_REF).range(context).descriptionAndTooltip(message).create(); } - if (fixes != null) { - for (final IntentionAction quickFixAction : fixes) { - if (quickFixAction == null) continue; - QuickFixAction.registerQuickFixAction(highlightInfo, quickFixAction); - } + for (final IntentionAction quickFixAction : fixes) { + if (quickFixAction == null) continue; + QuickFixAction.registerQuickFixAction(highlightInfo, quickFixAction); } addToResults(highlightInfo); } diff --git a/xml/impl/src/com/intellij/lang/xml/XMLExternalAnnotator.java b/xml/impl/src/com/intellij/lang/xml/XMLExternalAnnotator.java index c77bebd7f2cd..599ed5dc44a0 100644 --- a/xml/impl/src/com/intellij/lang/xml/XMLExternalAnnotator.java +++ b/xml/impl/src/com/intellij/lang/xml/XMLExternalAnnotator.java @@ -15,12 +15,12 @@ */ package com.intellij.lang.xml; -import com.intellij.codeInsight.daemon.IdeValidationHost; import com.intellij.codeInsight.daemon.Validator; import com.intellij.codeInsight.intention.IntentionAction; import com.intellij.lang.annotation.Annotation; import com.intellij.lang.annotation.AnnotationHolder; import com.intellij.lang.annotation.ExternalAnnotator; +import com.intellij.openapi.util.Trinity; import com.intellij.psi.PsiElement; import com.intellij.psi.PsiFile; import com.intellij.psi.xml.XmlDocument; @@ -30,87 +30,114 @@ import com.intellij.psi.xml.XmlToken; import com.intellij.xml.XmlNSDescriptor; import com.intellij.xml.util.XmlTagUtil; import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.util.ArrayList; +import java.util.List; /** * @author ven */ -public class XMLExternalAnnotator extends ExternalAnnotator { - - public void annotate(PsiFile file, AnnotationHolder holder) { - if (!(file instanceof XmlFile)) return; +public class XMLExternalAnnotator extends ExternalAnnotator { + @Nullable + @Override + public MyHost collectInformation(@NotNull PsiFile file) { + if (!(file instanceof XmlFile)) return null; final XmlDocument document = ((XmlFile)file).getDocument(); - if (document == null) return; + if (document == null) return null; XmlTag rootTag = document.getRootTag(); XmlNSDescriptor nsDescriptor = rootTag == null ? null : rootTag.getNSDescriptor(rootTag.getNamespace(), false); if (nsDescriptor instanceof Validator) { - //noinspection unchecked - ((Validator)nsDescriptor).validate(document, new MyHost(holder)); + //noinspection unchecked + MyHost host = new MyHost(); + ((Validator)nsDescriptor).validate(document, host); + return host; } + return null; } - private static final Validator.ValidationHost.ErrorType[] types = Validator.ValidationHost.ErrorType.values(); + @Nullable + @Override + public MyHost doAnnotate(MyHost collectedInfo) { + return collectedInfo; + } + + @Override + public void apply(@NotNull PsiFile file, MyHost annotationResult, @NotNull AnnotationHolder holder) { + annotationResult.apply(holder); + } private static void appendFixes(final Annotation annotation, final IntentionAction... actions) { if (actions != null) { - for(IntentionAction action:actions) annotation.registerFix(action); + for (IntentionAction action : actions) annotation.registerFix(action); } } - private static class MyHost implements IdeValidationHost { - - private final AnnotationHolder myHolder; - - public MyHost(AnnotationHolder holder) { - - myHolder = holder; - } + static class MyHost implements Validator.ValidationHost { + private final List> messages = new ArrayList>(); + @Override public void addMessage(PsiElement context, String message, int type) { - addMessage(context, message, types[type]); + throw new UnsupportedOperationException(); } @Override public void addMessage(PsiElement context, String message, @NotNull ErrorType type) { - addMessageWithFixes(context, message, type); + messages.add(Trinity.create(context, message, type)); } - public void addMessageWithFixes(final PsiElement context, final String message, @NotNull final ErrorType type, final IntentionAction... fixes) { - if (message != null && message.length() > 0) { - if (context instanceof XmlTag) { - addMessagesForTag((XmlTag)context, message, type, fixes); - } - else { - if (type == Validator.ValidationHost.ErrorType.ERROR) { - appendFixes(myHolder.createErrorAnnotation(context, message), fixes); - } else { - appendFixes(myHolder.createWarningAnnotation(context, message), fixes); - } - } - } - } - - private void addMessagesForTag(XmlTag tag, String message, ErrorType type, IntentionAction... actions) { - XmlToken childByRole = XmlTagUtil.getStartTagNameElement(tag); - - addMessagesForTreeChild(childByRole, type, message, actions); - - childByRole = XmlTagUtil.getEndTagNameElement(tag); - addMessagesForTreeChild(childByRole, type, message, actions); - } - - private void addMessagesForTreeChild(final XmlToken childByRole, final ErrorType type, final String message, IntentionAction... actions) { - if (childByRole != null) { - Annotation annotation; - if (type == ErrorType.ERROR) { - annotation = myHolder.createErrorAnnotation(childByRole, message); - } - else { - annotation = myHolder.createWarningAnnotation(childByRole, message); - } - - appendFixes(annotation, actions); + void apply (AnnotationHolder holder) { + for (Trinity message : messages) { + addMessageWithFixes(message.first, message.second, message.third, holder); } } } + + + public static void addMessageWithFixes(final PsiElement context, + final String message, + @NotNull final Validator.ValidationHost.ErrorType type, + AnnotationHolder myHolder, + @NotNull final IntentionAction... fixes) { + if (message != null && !message.isEmpty()) { + if (context instanceof XmlTag) { + addMessagesForTag((XmlTag)context, message, type, myHolder, fixes); + } + else { + if (type == Validator.ValidationHost.ErrorType.ERROR) { + appendFixes(myHolder.createErrorAnnotation(context, message), fixes); + } + else { + appendFixes(myHolder.createWarningAnnotation(context, message), fixes); + } + } + } + } + + private static void addMessagesForTag(XmlTag tag, String message, Validator.ValidationHost.ErrorType type, AnnotationHolder myHolder, IntentionAction... actions) { + XmlToken childByRole = XmlTagUtil.getStartTagNameElement(tag); + + addMessagesForTreeChild(childByRole, type, message, myHolder, actions); + + childByRole = XmlTagUtil.getEndTagNameElement(tag); + addMessagesForTreeChild(childByRole, type, message, myHolder, actions); + } + + private static void addMessagesForTreeChild(final XmlToken childByRole, + final Validator.ValidationHost.ErrorType type, + final String message, + AnnotationHolder myHolder, IntentionAction... actions) { + if (childByRole != null) { + Annotation annotation; + if (type == Validator.ValidationHost.ErrorType.ERROR) { + annotation = myHolder.createErrorAnnotation(childByRole, message); + } + else { + annotation = myHolder.createWarningAnnotation(childByRole, message); + } + + appendFixes(annotation, actions); + } + } } diff --git a/xml/relaxng/src/org/intellij/plugins/relaxNG/validation/RngSchemaValidator.java b/xml/relaxng/src/org/intellij/plugins/relaxNG/validation/RngSchemaValidator.java index 99c1b6c1a6ff..fe052df70892 100644 --- a/xml/relaxng/src/org/intellij/plugins/relaxNG/validation/RngSchemaValidator.java +++ b/xml/relaxng/src/org/intellij/plugins/relaxNG/validation/RngSchemaValidator.java @@ -25,6 +25,7 @@ import com.intellij.openapi.editor.Document; import com.intellij.openapi.fileTypes.FileType; import com.intellij.openapi.fileTypes.StdFileTypes; import com.intellij.openapi.util.Comparing; +import com.intellij.openapi.util.Pair; import com.intellij.openapi.vfs.VfsUtil; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.openapi.vfs.VirtualFileManager; @@ -37,57 +38,110 @@ import org.intellij.plugins.relaxNG.compact.RncFileType; import org.intellij.plugins.relaxNG.compact.psi.RncFile; import org.intellij.plugins.relaxNG.model.resolve.RelaxIncludeIndex; import org.jetbrains.annotations.NonNls; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; import org.xml.sax.ErrorHandler; -import org.xml.sax.SAXException; import org.xml.sax.SAXParseException; import org.xml.sax.helpers.DefaultHandler; import java.net.URL; +import java.util.ArrayList; +import java.util.List; /** * Created by IntelliJ IDEA. * User: sweinreuter * Date: 18.07.2007 */ -public class RngSchemaValidator extends ExternalAnnotator { +public class RngSchemaValidator extends ExternalAnnotator { private static final Logger LOG = Logger.getInstance(RngSchemaValidator.class.getName()); - public void annotate(final PsiFile file, final AnnotationHolder holder) { + @Nullable + @Override + public MyValidationMessageConsumer collectInformation(@NotNull final PsiFile file) { final FileType type = file.getFileType(); if (type != StdFileTypes.XML && type != RncFileType.getInstance()) { - return; + return null; } final XmlFile xmlfile = (XmlFile)file; final XmlDocument document = xmlfile.getDocument(); if (document == null) { - return; + return null; } if (type == StdFileTypes.XML) { final XmlTag rootTag = document.getRootTag(); if (rootTag == null) { - return; + return null; } if (!ApplicationLoader.RNG_NAMESPACE.equals(rootTag.getNamespace())) { - return; + return null; } } else { if (!ApplicationManager.getApplication().isUnitTestMode() && MyErrorFinder.hasError(xmlfile)) { - return; + return null; } } final Document doc = PsiDocumentManager.getInstance(file.getProject()).getDocument(file); + final MyValidationMessageConsumer consumer = new MyValidationMessageConsumer(); ErrorHandler eh = new DefaultHandler() { - public void warning(SAXParseException e) throws SAXException { - handleError(e, file, doc, new WarningMessageConsumer(holder)); + @Override + public void warning(SAXParseException e) { + handleError(e, file, doc, consumer.warning()); } - public void error(SAXParseException e) throws SAXException { - handleError(e, file, doc, new ErrorMessageConsumer(holder)); + @Override + public void error(SAXParseException e) { + handleError(e, file, doc, consumer.error()); } }; RngParser.parsePattern(file, eh, true); + return consumer; + } + + @Nullable + @Override + public MyValidationMessageConsumer doAnnotate(MyValidationMessageConsumer collectedInfo) { + return collectedInfo; + } + + @Override + public void apply(@NotNull PsiFile file, + MyValidationMessageConsumer annotationResult, + @NotNull AnnotationHolder holder) { + annotationResult.apply(holder); + } + + static class MyValidationMessageConsumer { + List> errors = new ArrayList>(); + List> warnings = new ArrayList>(); + ValidationMessageConsumer error() { + return new ValidationMessageConsumer() { + @Override + public void onMessage(PsiElement context, String message) { + errors.add(Pair.create(context, message)); + } + }; + } + ValidationMessageConsumer warning() { + return new ValidationMessageConsumer() { + @Override + public void onMessage(PsiElement context, String message) { + warnings.add(Pair.create(context, message)); + } + }; + } + void apply(AnnotationHolder holder) { + MessageConsumerImpl errorc = new ErrorMessageConsumer(holder); + MessageConsumerImpl warningc = new WarningMessageConsumer(holder); + for (Pair error : errors) { + errorc.onMessage(error.first, error.second); + } + for (Pair warning : warnings) { + warningc.onMessage(warning.first, warning.second); + } + } } public static void handleError(SAXParseException ex, PsiFile file, Document document, ValidationMessageConsumer consumer) { @@ -158,13 +212,14 @@ public class RngSchemaValidator extends ExternalAnnotator { void onMessage(PsiElement context, String message); } - private static abstract class MessageConsumerImpl implements ValidationMessageConsumer { + private abstract static class MessageConsumerImpl implements ValidationMessageConsumer { protected final AnnotationHolder myHolder; public MessageConsumerImpl(AnnotationHolder holder) { myHolder = holder; } + @Override public void onMessage(PsiElement host, String message) { final ASTNode node = host.getNode(); assert node != null; @@ -199,6 +254,7 @@ public class RngSchemaValidator extends ExternalAnnotator { super(holder); } + @Override protected void createAnnotation(ASTNode node, String message) { if (MISSING_START_ELEMENT.equals(message)) { final PsiFile psiFile = node.getPsi().getContainingFile(); @@ -225,6 +281,7 @@ public class RngSchemaValidator extends ExternalAnnotator { super(holder); } + @Override protected void createAnnotation(ASTNode node, String message) { myHolder.createWarningAnnotation(node, message); } @@ -237,6 +294,7 @@ public class RngSchemaValidator extends ExternalAnnotator { } private static final HasError FOUND = new HasError(); + @Override public void visitErrorElement(PsiErrorElement element) { throw FOUND; } @@ -250,4 +308,5 @@ public class RngSchemaValidator extends ExternalAnnotator { } } } + } diff --git a/xml/relaxng/src/org/intellij/plugins/relaxNG/validation/XmlInstanceValidator.java b/xml/relaxng/src/org/intellij/plugins/relaxNG/validation/XmlInstanceValidator.java index 04e308ea328b..1468ce5a2198 100644 --- a/xml/relaxng/src/org/intellij/plugins/relaxNG/validation/XmlInstanceValidator.java +++ b/xml/relaxng/src/org/intellij/plugins/relaxNG/validation/XmlInstanceValidator.java @@ -86,26 +86,32 @@ public class XmlInstanceValidator { myDocument = PsiDocumentManager.getInstance(myFile.getProject()).getDocument(myFile); } + @Override public void warning(SAXParseException exception) throws SAXException { RngSchemaValidator.handleError(exception, myFile, myDocument, new RngSchemaValidator.ValidationMessageConsumer() { + @Override public void onMessage(PsiElement context, String message) { - myHost.addMessage(context, message, Validator.ValidationHost.WARNING); + myHost.addMessage(context, message, Validator.ValidationHost.ErrorType.WARNING); } }); } + @Override public void error(SAXParseException exception) throws SAXException { RngSchemaValidator.handleError(exception, myFile, myDocument, new RngSchemaValidator.ValidationMessageConsumer() { + @Override public void onMessage(PsiElement context, String message) { - myHost.addMessage(context, message, Validator.ValidationHost.ERROR); + myHost.addMessage(context, message, Validator.ValidationHost.ErrorType.ERROR); } }); } + @Override public void fatalError(SAXParseException exception) throws SAXException { RngSchemaValidator.handleError(exception, myFile, myDocument, new RngSchemaValidator.ValidationMessageConsumer() { + @Override public void onMessage(PsiElement context, String message) { - myHost.addMessage(context, message, Validator.ValidationHost.ERROR); + myHost.addMessage(context, message, Validator.ValidationHost.ErrorType.ERROR); } }); } diff --git a/xml/xml-psi-impl/src/com/intellij/xml/impl/ExternalDocumentValidator.java b/xml/xml-psi-impl/src/com/intellij/xml/impl/ExternalDocumentValidator.java index 32f592d77441..ba7f346e7006 100644 --- a/xml/xml-psi-impl/src/com/intellij/xml/impl/ExternalDocumentValidator.java +++ b/xml/xml-psi-impl/src/com/intellij/xml/impl/ExternalDocumentValidator.java @@ -84,9 +84,15 @@ public class ExternalDocumentValidator { private static final String ATTRIBUTE_MESSAGE_PREFIX = "cvc-attribute."; private static class ValidationInfo { - PsiElement element; - String message; - int type; + final PsiElement element; + final String message; + final Validator.ValidationHost.ErrorType type; + + private ValidationInfo(PsiElement element, String message, Validator.ValidationHost.ErrorType type) { + this.element = element; + this.message = message; + this.type = type; + } } private WeakReference> myInfos; // last jaxp validation result @@ -115,17 +121,13 @@ public class ExternalDocumentValidator { myHost = new Validator.ValidationHost() { @Override public void addMessage(PsiElement context, String message, int type) { - final ValidationInfo o = new ValidationInfo(); - - results.add(o); - o.element = context; - o.message = message; - o.type = type; + addMessage(context, message, type==ERROR?ErrorType.ERROR : type==WARNING?ErrorType.WARNING : ErrorType.INFO); } @Override public void addMessage(final PsiElement context, final String message, @NotNull final ErrorType type) { - addMessage(context, message, type.ordinal()); + final ValidationInfo o = new ValidationInfo(context, message, type); + results.add(o); } }; @@ -154,7 +156,7 @@ public class ExternalDocumentValidator { return; } - int problemType = getProblemType(warning); + Validator.ValidationHost.ErrorType problemType = getProblemType(warning); int offset = Math.max(0, document.getLineStartOffset(e.getLineNumber() - 1) + e.getColumnNumber() - 2); if (offset >= document.getTextLength()) return; PsiElement currentElement = PsiDocumentManager.getInstance(project).getPsiFile(document).findElementAt(offset); @@ -245,7 +247,7 @@ public class ExternalDocumentValidator { } } else if (localizedMessage.startsWith(STRING_ERROR_PREFIX)) { if (currentElement != null) { - myHost.addMessage(currentElement,localizedMessage,Validator.ValidationHost.WARNING); + myHost.addMessage(currentElement,localizedMessage, Validator.ValidationHost.ErrorType.WARNING); } } else { @@ -277,8 +279,8 @@ public class ExternalDocumentValidator { addAllInfos(host,results); } - private int getProblemType(ValidateXmlActionHandler.ProblemType warning) { - return warning == ValidateXmlActionHandler.ProblemType.WARNING ? Validator.ValidationHost.WARNING : Validator.ValidationHost.ERROR; + private static Validator.ValidationHost.ErrorType getProblemType(ValidateXmlActionHandler.ProblemType warning) { + return warning == ValidateXmlActionHandler.ProblemType.WARNING ? Validator.ValidationHost.ErrorType.WARNING : Validator.ValidationHost.ErrorType.ERROR; } private static PsiElement getNodeForMessage(final PsiElement currentElement) { diff --git a/xml/xml-psi-impl/src/com/intellij/xml/impl/schema/SchemaNSDescriptor.java b/xml/xml-psi-impl/src/com/intellij/xml/impl/schema/SchemaNSDescriptor.java index 8601554f62a4..f29bf32f1878 100644 --- a/xml/xml-psi-impl/src/com/intellij/xml/impl/schema/SchemaNSDescriptor.java +++ b/xml/xml-psi-impl/src/com/intellij/xml/impl/schema/SchemaNSDescriptor.java @@ -58,7 +58,7 @@ public class SchemaNSDescriptor extends XmlNSDescriptorImpl { host.addMessage( attr.getNameElement(), XmlErrorMessages.message("xml.schema.validation.attr.not.allowed.with.ref", name), - ValidationHost.ERROR + ValidationHost.ErrorType.ERROR ); } } @@ -75,7 +75,7 @@ public class SchemaNSDescriptor extends XmlNSDescriptorImpl { host.addMessage( tag.getAttribute(MAX_OCCURS_ATTR_VALUE, null).getValueElement(), XmlErrorMessages.message("xml.schema.validation.max.occurs.should.be.not.less.than.min.occurs"), - Validator.ValidationHost.ERROR + ValidationHost.ErrorType.ERROR ); } } @@ -88,7 +88,7 @@ public class SchemaNSDescriptor extends XmlNSDescriptorImpl { host.addMessage( tag, XmlErrorMessages.message("xml.schema.validation.name.or.ref.should.present"), - Validator.ValidationHost.ERROR + ValidationHost.ErrorType.ERROR ); } } @@ -102,7 +102,7 @@ public class SchemaNSDescriptor extends XmlNSDescriptorImpl { host.addMessage( tag, XmlErrorMessages.message("xml.schema.validation.name.or.ref.should.present"), - Validator.ValidationHost.ERROR + ValidationHost.ErrorType.ERROR ); } @@ -110,13 +110,13 @@ public class SchemaNSDescriptor extends XmlNSDescriptorImpl { host.addMessage( tag.getAttribute(DEFAULT_ATTR_NAME, null).getNameElement(), XmlErrorMessages.message("xml.schema.validation.default.or.fixed.should.be.specified.but.not.both"), - Validator.ValidationHost.ERROR + ValidationHost.ErrorType.ERROR ); host.addMessage( tag.getAttribute(FIXED_ATTR_NAME, null).getNameElement(), XmlErrorMessages.message("xml.schema.validation.default.or.fixed.should.be.specified.but.not.both"), - Validator.ValidationHost.ERROR + ValidationHost.ErrorType.ERROR ); } } diff --git a/xml/xml-psi-impl/src/com/intellij/xml/util/XmlUtil.java b/xml/xml-psi-impl/src/com/intellij/xml/util/XmlUtil.java index abbddfcf654c..b6e1f2f7720c 100644 --- a/xml/xml-psi-impl/src/com/intellij/xml/util/XmlUtil.java +++ b/xml/xml-psi-impl/src/com/intellij/xml/util/XmlUtil.java @@ -467,10 +467,10 @@ public class XmlUtil { if (psiElement != null) { presentNames.put(nameKey, null); - host.addMessage(provider.getNodeForMessage(psiElement), message, Validator.ValidationHost.ERROR); + host.addMessage(provider.getNodeForMessage(psiElement), message, Validator.ValidationHost.ErrorType.ERROR); } - host.addMessage(provider.getNodeForMessage(t), message, Validator.ValidationHost.ERROR); + host.addMessage(provider.getNodeForMessage(t), message, Validator.ValidationHost.ErrorType.ERROR); } else { presentNames.put(nameKey, t);