void (PsiDocTag @NotNull [] tags, @NotNull Options options, @NotNull PsiElement toHighlight, @NotNull ProblemsHolder holder) { boolean[] isTagRequired = new boolean[TAGS_TO_CHECK.length]; boolean[] isTagPresent = new boolean[TAGS_TO_CHECK.length]; boolean someTagsAreRequired = false; for (int i = 0; i < TAGS_TO_CHECK.length; i++) { someTagsAreRequired |= (isTagRequired[i] = options.isTagRequired(TAGS_TO_CHECK[i])); } if (!someTagsAreRequired) return; for (PsiDocTag tag : tags) { int p = ArrayUtil.find(TAGS_TO_CHECK, tag.getName()); if (p >= 0) isTagPresent[p] = true; } for (int i = 0; i < TAGS_TO_CHECK.length; i++) { if (isTagRequired[i] && !isTagPresent[i]) { String tagName = TAGS_TO_CHECK[i]; String message = JavaBundle.message("inspection.javadoc.problem.missing.tag", "<code>@" + tagName + "</code>"); problem(holder, toHighlight, message, new JavaDocFixes.AddMissingTagFix(tagName, "")); } } }