void (JsonValueAdapter inspectedValue, JsonSchemaObject schema, JsonValidationHost validationHost, JsonComplianceCheckerOptions options) { var objectValueAdapter = inspectedValue.getAsObject(); if (!options.isReportMissingOptionalProperties() || objectValueAdapter == null) { return; } var existingProperties = ContainerUtil.map(objectValueAdapter.getPropertyList(), JsonPropertyAdapter::getName); var missingProperties = new HashSet<>(ContainerUtil.filter(schema.getProperties().keySet(), it -> !existingProperties.contains(it))); var missingPropertiesData = createMissingPropertiesData(schema, missingProperties, validationHost); validationHost.error( JsonBundle.message("schema.validation.missing.not.required.property.or.properties", missingPropertiesData.getMessage(false)), inspectedValue.getDelegate(), JsonValidationError.FixableIssueKind.MissingOptionalProperty, missingPropertiesData, JsonErrorPriority.MISSING_PROPS); }