@Override
  protected void checkDomElement(@NotNull DomElement element, @NotNull DomElementAnnotationHolder holder, @NotNull DomHighlightingHelper helper) {
    int oldSize = holder.getSize();
    if (element instanceof GenericDomValue<?> genericDomValue) {
      if (shouldCheckResolveProblems(genericDomValue)) {
        helper.checkResolveProblems(genericDomValue, holder);
      }
    }
    if (!holder.getFileElement().getFileDescription().isAutomaticHighlightingEnabled()) {
      for (Class<? extends T> aClass : getDomClasses()) {
        helper.runAnnotators(element, holder, aClass);
      }
    }
    if (oldSize != holder.getSize() || !helper.checkRequired(element, holder).isEmpty()) {
      return;
    }

    if (!(element instanceof GenericAttributeValue) &&
        !GenericDomValue.class.equals(ClassUtil.getRawType(element.getDomElementType())) &&
        !helper.checkNameIdentity(element, holder).isEmpty()) {
      return;
    }

    helper.checkCustomAnnotations(element, holder);
  }
@Override
  protected void checkDomElement(@NotNull DomElement element, @NotNull DomElementAnnotationHolder holder, @NotNull DomHighlightingHelper helper)