@Override public ImmutableJsonObjectBuilder set(final CharSequence key, final boolean value, final Predicate<JsonField> predicate) { return set(key, JsonFactory.newValue(value), predicate); }
private static JsonObjectBuilder setFieldInHierarchy(final ImmutableJsonObjectBuilder target, final JsonPointer pointer, final JsonField field) { if (1 >= pointer.getLevelCount()) { return target.set(field); } final JsonKey rootKey = pointer.getRoot().orElse(ROOT_KEY); final ImmutableJsonObjectBuilder newTarget = newInstance(); final JsonField rootJsonField = target.fields.get(rootKey.toString()); if (null != rootJsonField) { final JsonValue rootValue = rootJsonField.getValue(); if (rootValue.isObject() && !rootValue.isNull()) { newTarget.setAll(rootValue.asObject()); } } // let the recursion begin >:-( final JsonObject jsonObject = setFieldInHierarchy(newTarget, pointer.nextLevel(), field).build(); return target.set(rootKey, jsonObject); }
private static JsonObjectBuilder setFieldInHierarchy(final ImmutableJsonObjectBuilder target, final JsonPointer pointer, final JsonField field) { if (1 >= pointer.getLevelCount()) { return target.set(field); } final JsonKey rootKey = pointer.getRoot().orElse(ROOT_KEY); final ImmutableJsonObjectBuilder newTarget = newInstance(); final JsonField rootJsonField = target.fields.get(rootKey.toString()); if (null != rootJsonField) { final JsonValue rootValue = rootJsonField.getValue(); if (rootValue.isObject() && !rootValue.isNull()) { newTarget.setAll(rootValue.asObject()); } } // let the recursion begin >:-( final JsonObject jsonObject = setFieldInHierarchy(newTarget, pointer.nextLevel(), field).build(); return target.set(rootKey, jsonObject); }
@Override public ImmutableJsonObjectBuilder set(final CharSequence key, final int value, final Predicate<JsonField> predicate) { return set(key, JsonFactory.newValue(value), predicate); }
@Override public ImmutableJsonObjectBuilder set(final CharSequence key, final double value, final Predicate<JsonField> predicate) { return set(key, JsonFactory.newValue(value), predicate); }
@Override public ImmutableJsonObjectBuilder set(final CharSequence key, final boolean value, final Predicate<JsonField> predicate) { return set(key, JsonFactory.newValue(value), predicate); }
@Override public ImmutableJsonObjectBuilder set(final CharSequence key, final String value, final Predicate<JsonField> predicate) { return set(key, JsonFactory.newValue(value), predicate); }
@Override public ImmutableJsonObjectBuilder set(final CharSequence key, final long value, final Predicate<JsonField> predicate) { return set(key, JsonFactory.newValue(value), predicate); }
@Override public ImmutableJsonObjectBuilder set(final CharSequence key, final long value, final Predicate<JsonField> predicate) { return set(key, JsonFactory.newValue(value), predicate); }
@Override public ImmutableJsonObjectBuilder set(final CharSequence key, final String value, final Predicate<JsonField> predicate) { return set(key, JsonFactory.newValue(value), predicate); }
@Override public ImmutableJsonObjectBuilder set(final CharSequence key, final int value, final Predicate<JsonField> predicate) { return set(key, JsonFactory.newValue(value), predicate); }
@Override public ImmutableJsonObjectBuilder set(final CharSequence key, final double value, final Predicate<JsonField> predicate) { return set(key, JsonFactory.newValue(value), predicate); }
private ImmutableJsonObjectBuilder remove(final JsonPointer pointer) { pointer.getRoot() .map(JsonKey::toString) .map(fields::get) .ifPresent(jsonField -> { final JsonValue rootValue = jsonField.getValue(); final JsonPointer nextPointerLevel = pointer.nextLevel(); if (rootValue.isObject() && !nextPointerLevel.isEmpty()) { JsonObject rootObject = rootValue.asObject(); rootObject = rootObject.remove(nextPointerLevel); set(JsonFactory.newField(jsonField.getKey(), rootObject, jsonField.getDefinition().orElse(null))); } else { fields.remove(jsonField.getKeyName()); } }); return this; }
private ImmutableJsonObjectBuilder remove(final JsonPointer pointer) { pointer.getRoot() .map(JsonKey::toString) .map(fields::get) .ifPresent(jsonField -> { final JsonValue rootValue = jsonField.getValue(); final JsonPointer nextPointerLevel = pointer.nextLevel(); if (rootValue.isObject() && !nextPointerLevel.isEmpty()) { JsonObject rootObject = rootValue.asObject(); rootObject = rootObject.remove(nextPointerLevel); set(JsonFactory.newField(jsonField.getKey(), rootObject, jsonField.getDefinition().orElse(null))); } else { fields.remove(jsonField.getKeyName()); } }); return this; }