private void annotateExtension(Extension extension, DomElementAnnotationHolder holder) {
    final ExtensionPoint extensionPoint = extension.getExtensionPoint();
    if (extensionPoint == null) return;
    final Module module = extension.getModule();
    final String effectiveQualifiedName = extensionPoint.getEffectiveQualifiedName();

    annotateExtensionPointStatus(holder, extension, extensionPoint, effectiveQualifiedName, module);
    annotateErrorHandler(holder, extension, effectiveQualifiedName, module);

    for (DomAttributeChildDescription<?> attributeDescription : extension.getGenericInfo().getAttributeChildrenDescriptions()) {
      final GenericAttributeValue<?> attributeValue = attributeDescription.getDomAttributeValue(extension);
      if (attributeValue == null || !DomUtil.hasXml(attributeValue)) continue;

      // IconsReferencesContributor
      if ("icon".equals(attributeDescription.getXmlElementName())) {
        annotateResolveProblems(holder, attributeValue);
      }
      else if ("order".equals(attributeDescription.getXmlElementName())) {
        annotateOrderAttributeProblems(holder, attributeValue);
      }
      annotateReferencedFieldStatus(holder, extension, attributeDescription, attributeValue, module);
    }
  }
private void annotateExtension(Extension extension, DomElementAnnotationHolder holder)