protected static boolean validateUniqueItems(@NotNull JsonValueAdapter array,
                                @NotNull List<JsonValueAdapter> list,
                                JsonSchemaObject schema,
                                JsonValidationHost consumer,
                                @NotNull JsonComplianceCheckerOptions options) {
    if (schema.isUniqueItems()) {
      final MultiMap<String, JsonValueAdapter> valueTexts = new MultiMap<>();
      final JsonLikePsiWalker walker = JsonLikePsiWalker.getWalker(array.getDelegate(), schema);
      assert walker != null;
      for (JsonValueAdapter adapter : list) {
        valueTexts.putValue(walker.getNodeTextForValidation(adapter.getDelegate()), adapter);
      }

      for (Map.Entry<String, Collection<JsonValueAdapter>> entry: valueTexts.entrySet()) {
        if (entry.getValue().size() > 1) {
          for (JsonValueAdapter item: entry.getValue()) {
            if (!item.shouldCheckAsValue()) continue;
            consumer.error(JsonBundle.message("schema.validation.not.unique"), item.getDelegate(), JsonErrorPriority.TYPE_MISMATCH);
            if (options.shouldStopValidationAfterAnyErrorFound()) return false;
          }
        }
      }
    }
    return true;
  }
protected static boolean validateUniqueItems(@NotNull JsonValueAdapter array,
                                @NotNull List<JsonValueAdapter> list,
                                JsonSchemaObject schema,
                                JsonValidationHost consumer,
                                @NotNull JsonComplianceCheckerOptions options)