@Override public JsonObject setAll(final Iterable<JsonField> fields) { requireNonNull(fields, "The JSON fields to add must not be null!"); final JsonObject result; if (isEmpty(fields)) { result = this; } else { result = new ImmutableJsonObject(fieldMap.putAll(fields)); } return result; }
@Override public JsonObject setAll(final Iterable<JsonField> fields) { requireNonNull(fields, "The JSON fields to add must not be null!"); final JsonObject result; if (isEmpty(fields)) { result = this; } else { final Map<String, JsonField> fieldsCopy = copyFields(); fields.forEach(jsonField -> fieldsCopy.put(jsonField.getKeyName(), jsonField)); result = new ImmutableJsonObject(fieldsCopy); } return result; }
@Override public JsonObject get(final JsonFieldSelector fieldSelector) { requireNonNull(fieldSelector, "The JSON field selector must not be null!"); if (isEmpty()) { return this; } final List<JsonPointer> pointersContainedInThis = fieldSelector.getPointers() .stream() .filter(this::contains) .collect(Collectors.toList()); if (pointersContainedInThis.isEmpty()) { return JsonFactory.newObject(); } else { return filterByTrie(this, JsonFieldSelectorTrie.of(pointersContainedInThis)); } }
@Override public JsonObject get(final JsonFieldSelector fieldSelector) { requireNonNull(fieldSelector, "The JSON field selector must not be null!"); if (isEmpty()) { return this; } final List<JsonPointer> pointersContainedInThis = fieldSelector.getPointers() .stream() .filter(this::contains) .collect(Collectors.toList()); if (pointersContainedInThis.isEmpty()) { return empty(); } else { return filterByTrie(this, JsonFieldSelectorTrie.of(pointersContainedInThis)); } }