@Nullable private <T extends JsonValue & JsonValueContainer> T filterCandidate(final T candidate, final Set<String> subjectIds, final Collection<String> permissions) { if (!candidate.isEmpty() || grantRevokeIndex.hasPermissions(subjectIds, permissions)) { return candidate; } return null; }
protected static Map<String, String> toMap(final JsonValueContainer<JsonField> jsonObject) { checkNotNull(jsonObject, "JSON object"); final Map<String, String> result = new HashMap<>(jsonObject.getSize()); jsonObject.forEach(jsonField -> { final JsonValue jsonValue = jsonField.getValue(); final String stringValue = jsonValue.isString() ? jsonValue.asString() : jsonValue.toString(); result.put(jsonField.getKeyName(), stringValue); }); return result; }
@Nullable private JsonValue getViewForJsonArrayOrNull(final JsonValueContainer<JsonValue> jsonArray, final Set<String> subjectIds, final Permissions permissions) { final JsonArray candidate = jsonArray.stream() .map(value -> getViewForJsonValueOrNull(value, subjectIds, permissions)) .filter(Objects::nonNull) .collect(JsonCollectors.valuesToArray()); return filterCandidate(candidate, subjectIds, permissions); }
protected static Map<String, String> toMap(final JsonValueContainer<JsonField> jsonObject) { checkNotNull(jsonObject, "JSON object"); final Map<String, String> result = new HashMap<>(jsonObject.getSize()); jsonObject.forEach(jsonField -> { final JsonValue jsonValue = jsonField.getValue(); final String stringValue = jsonValue.isString() ? jsonValue.asString() : jsonValue.toString(); result.put(jsonField.getKeyName(), stringValue); }); return result; }