JsonSchemaAnnotatorChecker (@NotNull Project project, @NotNull List<JsonSchemaAnnotatorChecker> list, @NotNull JsonComplianceCheckerOptions options, @NotNull List<Collection<? extends JsonSchemaObject>> excludingSchemas) { final JsonSchemaAnnotatorChecker checker = new JsonSchemaAnnotatorChecker(project, options); for (JsonSchemaAnnotatorChecker ch: list) { for (Map.Entry<PsiElement, JsonValidationError> element: ch.myErrors.entrySet()) { JsonValidationError error = element.getValue(); if (error.getFixableIssueKind() == JsonValidationError.FixableIssueKind.ProhibitedProperty) { String propertyName = ((JsonValidationError.ProhibitedPropertyIssueData)error.getIssueData()).propertyName; boolean skip = false; for (Collection<? extends JsonSchemaObject> objects : excludingSchemas) { Set<String> keys = objects.stream() .filter(o -> !o.hasOwnExtraPropertyProhibition()) .map(o -> o.getProperties().keySet()).flatMap(Set::stream).collect(Collectors.toSet()); if (keys.contains(propertyName)) skip = true; } if (skip) continue; } checker.myErrors.put(element.getKey(), error); } } return checker; }