/** */ public void setReporter(ValidationReporter reporter) { super.setReporter(reporter); Iterator i = components.iterator(); while (i.hasNext()) { ValidationAdapter component = (ValidationAdapter) i.next(); if (component == null) continue; component.setReporter(reporter); } }
private void report(int state, Segment errorSeg, Node node) { ErrorInfo info = new ErrorInfoImpl(state, errorSeg, node); reporter.report(MessageFactory.createMessage(info)); } }
public void validate(IndexedRegion node) { if (node == null) return; getValidator().validate(node); propagateToChildElements(getPropagatee(), (Node) node); }
private void propagateToChildElements(ValidationComponent validator, Node parent) { if (parent == null) return; Class clazz = validator.getClass(); NodeList children = parent.getChildNodes(); for (int i = 0; i < children.getLength(); i++) { Node child = children.item(i); if (child == null || child.getNodeType() != Node.ELEMENT_NODE) continue; INodeNotifier notifier = (INodeNotifier) child; ValidationAdapter va = (ValidationAdapter) notifier.getExistingAdapter(clazz); if (va == null) { notifier.addAdapter(validator); va = validator; } // bug 143213 - Can't batch validate open HTML files when // as-you-type validation is enabled va.setReporter(validator.getReporter()); va.validate((IndexedRegion) child); } }
/** */ public static ValidationMessage createMessage(ErrorInfo info) { String errorMsg = getErrorMessage(info); int errorSeverity = getErrorSeverity(info); return new ValidationMessage(errorMsg, info.getOffset(), info.getLength(), errorSeverity); }
/** * Translate ValidationMessage to IMessage and generate result log */ private IMessage translateMessage(ValidationMessage message) { int severity = IMessage.LOW_SEVERITY; switch (message.getSeverity()) { case ValidationMessage.ERROR : severity = IMessage.HIGH_SEVERITY; break; case ValidationMessage.WARNING : severity = IMessage.NORMAL_SEVERITY; break; default : break; } IMessage mes = new LocalizedMessage(severity, message.getMessage(), this.file); mes.setOffset(message.getOffset()); mes.setLength(message.getLength()); if (this.model != null) { IStructuredDocument flatModel = this.model.getStructuredDocument(); if (flatModel != null) { int line = flatModel.getLineOfOffset(message.getOffset()); mes.setLineNo(line + 1); } } return mes; } }
private void validate(IReporter reporter, IFile file, IDOMModel model) { if (file == null || model == null) return; // error IDOMDocument document = model.getDocument(); if (document == null) return; // error // This validator currently only handles validating HTML content in // JSP if (hasHTMLFeature(document)) { INodeAdapterFactory factory = HTMLValidationAdapterFactory.getInstance(); ValidationAdapter adapter = (ValidationAdapter) factory.adapt(document); if (adapter == null) return; // error HTMLValidationReporter rep = getReporter(reporter, file, model); rep.clear(); adapter.setReporter(rep); adapter.validate(document); } }
protected ValidationMessage createValidationMessage(IDOMElement target, String attrName, String message, int severity) { String tagName = target.getTagName(); Segment segment = CustomValidatorUtil.getAttributeSegment((IDOMNode) target.getAttributeNode(attrName), CustomValidatorUtil.ATTR_REGION_NAME); return new ValidationMessage(message, segment.getOffset(), segment.getLength(), severity); }
private void reportCorruptedEndTagError(ElementInfo info) { String hint = getEndTagFullText(info); TagErrorInfoImpl error = new TagErrorInfoImpl(UNDEFINED_NAME_ERROR, info.endTag, hint); this.reporter.report(MessageFactory.createMessage(error)); }
public static void propagateToChildElements(ValidationComponent validator, Node parent) { if (parent == null) return; Class clazz = validator.getClass(); NodeList children = parent.getChildNodes(); for (int i = 0; i < children.getLength(); i++) { Node child = children.item(i); if (child == null || child.getNodeType() != Node.ELEMENT_NODE) continue; INodeNotifier notifier = (INodeNotifier) child; ValidationAdapter va = (ValidationAdapter) notifier.getExistingAdapter(clazz); if (va == null) { notifier.addAdapter(validator); va = validator; } va.validate((IndexedRegion) child); } }
Segment segment = CustomValidatorUtil.getAttributeSegment( (IDOMNode) target.getAttributeNode(attrName), CustomValidatorUtil.ATTR_REGION_NAME); return new ValidationMessage( NLS.bind(AngularCoreMessages.UndefinedKeyEventBinding_error, part), segment.getOffset() + partOffset + getStartsWith().length(), part.length(),
private void validateTagCase(ElementInfo info) { String declared = info.decl.getElementName(); String startTagName = "";//$NON-NLS-1$ String endTagName = "";//$NON-NLS-1$ if (declared == null) return; // start tag if (info.hasStartTag) { startTagName = getTagName(info.startTag); if (!declared.equals(startTagName)) { TagErrorInfoImpl error = new TagErrorInfoImpl(MISMATCHED_ERROR, info.startTag, startTagName); this.reporter.report(MessageFactory.createMessage(error)); } } // end tag if (info.hasEndTag) { endTagName = getTagName(info.endTag); if (!info.hasStartTag || (!endTagName.equals(startTagName))) { if (!declared.equals(endTagName)) { TagErrorInfoImpl error = new TagErrorInfoImpl(MISMATCHED_ERROR, info.endTag, endTagName); this.reporter.report(MessageFactory.createMessage(error)); } } } }
@Override public ValidationMessage validateAttribute(IDOMElement target, String attrName) { // Attribute is a directive or directive parameter. if (restriction == Restriction.A) { // - 1) attribute is an angular attribute directive like @ng-app the // attribute is valid. return validateAttributeValue(target, attrName); } // - 2) attribute is an angular parameter directive like // ng-pluralize/@src, check if it's a valid directive parameter if (directive.getParameter(attrName) == null) { String tagName = target.getTagName(); Segment segment = CustomValidatorUtil.getAttributeSegment((IDOMNode) target.getAttributeNode(attrName), CustomValidatorUtil.ATTR_REGION_NAME); return new ValidationMessage("Unknown directive parameter for directive " + tagName, segment.getOffset(), segment.getLength(), ValidationMessage.ERROR); } return null; }
/** */ public void validate(IndexedRegion node) { // isFragment check should be more intelligent. boolean isFragment = true; Document target = (Document) node; NodeList children = target.getChildNodes(); if (children == null) return; Division division = new Division(target, children); if (division.hasExplicitHtmls()) { isFragment = false; List explicits = division.getExplicitHtmls(); if (explicits.size() > 1) { for (int i = 1; i < explicits.size(); i++) { Element html = (Element) explicits.get(i); // report error (duplicate) Segment errorSeg = FMUtil.getSegment((IDOMNode) html, FMUtil.SEG_START_TAG); if (errorSeg != null) reporter.report(MessageFactory.createMessage(new ErrorInfoImpl(ErrorState.DUPLICATE_ERROR, errorSeg, html))); } } } validateContent(division.getRestNodes(), isFragment); }
private ValidationMessage validateAttributeValue(IDOMElement target, String attrName) { AngularType type = directive.getDirectiveType(); switch (type) { case module: case controller: try { IFile file = getFile(); IDocument document = getDocument(); IIDETernProject ternProject = AngularProject.getTernProject(file.getProject()); IDOMAttr attr = (IDOMAttr) target.getAttributeNode(attrName); boolean exists = isAngularElementExists(attr, file, document, ternProject, type); if (!exists) { Segment segment = CustomValidatorUtil.getAttributeSegment( (IDOMNode) target.getAttributeNode(attrName), CustomValidatorUtil.ATTR_REGION_VALUE); return new ValidationMessage( NLS.bind(AngularCoreMessages.Validation_AngularElementNotFound, type.name(), attr.getValue()), segment.getOffset(), segment.getLength(), ValidationMessage.ERROR); } } catch (Exception e) { Trace.trace(Trace.SEVERE, "Error while Angular validator.", e); } break; } return null; }
Segment errorSeg = FMUtil.getSegment(child, segType); if (errorSeg != null) reporter.report(MessageFactory.createMessage(new ErrorInfoImpl(error, errorSeg, child)));
reporter.report(MessageFactory.createMessage(new ErrorInfoImpl(UNDEFINED_NAME_ERROR, errorSeg, e))); int a_offset = a.getNameRegionStartOffset(); int a_length = a.getNameRegion().getLength(); reporter.report(MessageFactory.createMessage(new ErrorInfoImpl(UNDEFINED_NAME_ERROR, new Segment(a_offset, a_length), a)));
Segment errorSeg = FMUtil.getSegment((IDOMNode) node, FMUtil.SEG_START_TAG); if (errorSeg != null) reporter.report(MessageFactory.createMessage(new ErrorInfoImpl(ErrorState.INVALID_CONTENT_ERROR, errorSeg, target))); break; // If one prohibited ancestor is found, it's enough.
Segment seg = getErrorSegment((IDOMNode) a, rgnType); if (seg != null) reporter.report(MessageFactory.createMessage(new ErrorInfoImpl(state, seg, a)));
Segment errorSeg = FMUtil.getSegment((IDOMNode) child, segType); if (errorSeg != null) reporter.report(MessageFactory.createMessage(new ErrorInfoImpl(error, errorSeg, child)));