static JsonNode addToObject(final JsonPointer path, final JsonNode node, final JsonNode value) { final ObjectNode target = (ObjectNode) node.at(path.head()); target.set(path.last().getMatchingProperty(), value); return node; } }
static JsonNode addToObject(final JsonPointer path, final JsonNode node, final JsonNode value) { final ObjectNode target = (ObjectNode) node.at(path.head()); target.set(path.last().getMatchingProperty(), value); return node; } }
static JsonNode addToObject(final JsonPointer path, final JsonNode node, final JsonNode value) { final ObjectNode target = (ObjectNode) node.at(path.head()); target.set(path.last().getMatchingProperty(), value); return node; } }
@Override JsonNode apply(final JsonNode node) { ensureExistence(node); final JsonNode replacement = valueCopy(); if (path.toString().isEmpty()) { return replacement; } final JsonNode parent = node.at(path.head()); final String rawToken = path.last().getMatchingProperty(); if (parent.isObject()) { ((ObjectNode) parent).set(rawToken, replacement); } else { ((ArrayNode) parent).set(Integer.parseInt(rawToken), replacement); } return node; } }
static JsonNode addToArray(final JsonPointer path, final JsonNode node, final JsonNode value) { final ArrayNode target = (ArrayNode) node.at(path.head()); final String rawToken = path.last().getMatchingProperty(); if (rawToken.equals(LAST_ARRAY_ELEMENT)) { target.add(value); return node; } final int size = target.size(); final int index; try { index = Integer.parseInt(rawToken); } catch (NumberFormatException ignored) { throw new JsonPatchException("not an index: " + rawToken + " (expected: a non-negative integer)"); } if (index < 0 || index > size) { throw new JsonPatchException("index out of bounds: " + index + " (expected: >= 0 && <= " + size + ')'); } target.insert(index, value); return node; }
@Override JsonNode apply(final JsonNode node) { ensureExistence(node); final JsonNode replacement = valueCopy(); if (path.toString().isEmpty()) { return replacement; } final JsonNode parent = node.at(path.head()); final String rawToken = path.last().getMatchingProperty(); if (parent.isObject()) { ((ObjectNode) parent).set(rawToken, replacement); } else { ((ArrayNode) parent).set(Integer.parseInt(rawToken), replacement); } return node; } }
@Override JsonNode apply(final JsonNode node) { ensureExistence(node); final JsonNode replacement = valueCopy(); if (path.toString().isEmpty()) { return replacement; } final JsonNode parent = node.at(path.head()); final String rawToken = path.last().getMatchingProperty(); if (parent.isObject()) { ((ObjectNode) parent).set(rawToken, replacement); } else { ((ArrayNode) parent).set(Integer.parseInt(rawToken), replacement); } return node; } }
@Override JsonNode apply(final JsonNode node) { if (path.toString().isEmpty()) { return MissingNode.getInstance(); } ensureExistence(node); final JsonNode parentNode = node.at(path.head()); final String raw = path.last().getMatchingProperty(); if (parentNode.isObject()) { ((ObjectNode) parentNode).remove(raw); } else { ((ArrayNode) parentNode).remove(Integer.parseInt(raw)); } return node; }
@Override JsonNode apply(final JsonNode node) { if (path.toString().isEmpty()) { return MissingNode.getInstance(); } ensureExistence(node); final JsonNode parentNode = node.at(path.head()); final String raw = path.last().getMatchingProperty(); if (parentNode.isObject()) { ((ObjectNode) parentNode).remove(raw); } else { ((ArrayNode) parentNode).remove(Integer.parseInt(raw)); } return node; }
@Override JsonNode apply(final JsonNode node) { if (path.toString().isEmpty()) { return MissingNode.getInstance(); } ensureExistence(node); final JsonNode parentNode = node.at(path.head()); final String raw = path.last().getMatchingProperty(); if (parentNode.isObject()) { ((ObjectNode) parentNode).remove(raw); } else { ((ArrayNode) parentNode).remove(Integer.parseInt(raw)); } return node; }
@Override JsonNode apply(final JsonNode node) { if (path.toString().isEmpty()) { return MissingNode.getInstance(); } final JsonNode found = node.at(path); if (found.isMissingNode()) { return node; } final JsonNode parentNode = node.at(path.head()); final String raw = path.last().getMatchingProperty(); if (parentNode.isObject()) { ((ObjectNode) parentNode).remove(raw); } else if (parentNode.isArray()) { ((ArrayNode) parentNode).remove(Integer.parseInt(raw)); } return node; }
@Override JsonNode apply(final JsonNode node) { if (path.toString().isEmpty()) { return MissingNode.getInstance(); } final JsonNode found = node.at(path); if (found.isMissingNode()) { return node; } final JsonNode parentNode = node.at(path.head()); final String raw = path.last().getMatchingProperty(); if (parentNode.isObject()) { ((ObjectNode) parentNode).remove(raw); } else if (parentNode.isArray()) { ((ArrayNode) parentNode).remove(Integer.parseInt(raw)); } return node; }
@Override JsonNode apply(JsonNode node) { final JsonNode actual = ensureExistence(node); if (!EQUIVALENCE.equivalent(actual, oldValue)) { throw new JsonPatchException("mismatching value at '" + path + "': " + actual + " (expected: " + oldValue + ')'); } final JsonNode replacement = newValue.deepCopy(); if (path.toString().isEmpty()) { return replacement; } final JsonNode parent = node.at(path.head()); final String rawToken = path.last().getMatchingProperty(); if (parent.isObject()) { ((ObjectNode) parent).set(rawToken, replacement); } else { ((ArrayNode) parent).set(Integer.parseInt(rawToken), replacement); } return node; }
@Override JsonNode apply(final JsonNode node) { if (path.toString().isEmpty()) { return MissingNode.getInstance(); } final JsonNode found = node.at(path); if (found.isMissingNode()) { return node; } final JsonNode parentNode = node.at(path.head()); final String raw = path.last().getMatchingProperty(); if (parentNode.isObject()) { ((ObjectNode) parentNode).remove(raw); } else if (parentNode.isArray()) { ((ArrayNode) parentNode).remove(Integer.parseInt(raw)); } return node; }
@Override JsonNode apply(JsonNode node) { final JsonNode actual = ensureExistence(node); if (!EQUIVALENCE.equivalent(actual, oldValue)) { throw new JsonPatchException("mismatching value at '" + path + "': " + actual + " (expected: " + oldValue + ')'); } final JsonNode replacement = newValue.deepCopy(); if (path.toString().isEmpty()) { return replacement; } final JsonNode parent = node.at(path.head()); final String rawToken = path.last().getMatchingProperty(); if (parent.isObject()) { ((ObjectNode) parent).set(rawToken, replacement); } else { ((ArrayNode) parent).set(Integer.parseInt(rawToken), replacement); } return node; }
@Override JsonNode apply(JsonNode node) { final JsonNode actual = ensureExistence(node); if (!EQUIVALENCE.equivalent(actual, oldValue)) { throw new JsonPatchException("mismatching value at '" + path + "': " + actual + " (expected: " + oldValue + ')'); } final JsonNode replacement = newValue.deepCopy(); if (path.toString().isEmpty()) { return replacement; } final JsonNode parent = node.at(path.head()); final String rawToken = path.last().getMatchingProperty(); if (parent.isObject()) { ((ObjectNode) parent).set(rawToken, replacement); } else { ((ArrayNode) parent).set(Integer.parseInt(rawToken), replacement); } return node; }
private static JsonNode ensureParent(JsonNode node, JsonPointer path, String typeName) { /* * Check the parent node: it must exist and be a container (ie an array * or an object) for the add operation to work. */ final JsonPointer parentPath = path.head(); final JsonNode parentNode = node.at(parentPath); if (parentNode.isMissingNode()) { throw new JsonPatchException("non-existent " + typeName + " parent: " + parentPath); } if (!parentNode.isContainerNode()) { throw new JsonPatchException(typeName + " parent is not a container: " + parentPath + " (" + parentNode.getNodeType() + ')'); } return parentNode; } }
private static JsonNode ensureParent(JsonNode node, JsonPointer path, String typeName) { /* * Check the parent node: it must exist and be a container (ie an array * or an object) for the add operation to work. */ final JsonPointer parentPath = path.head(); final JsonNode parentNode = node.at(parentPath); if (parentNode.isMissingNode()) { throw new JsonPatchException("non-existent " + typeName + " parent: " + parentPath); } if (!parentNode.isContainerNode()) { throw new JsonPatchException(typeName + " parent is not a container: " + parentPath + " (" + parentNode.getNodeType() + ')'); } return parentNode; } }
private static JsonNode ensureParent(JsonNode node, JsonPointer path, String typeName) { /* * Check the parent node: it must exist and be a container (ie an array * or an object) for the add operation to work. */ final JsonPointer parentPath = path.head(); final JsonNode parentNode = node.at(parentPath); if (parentNode.isMissingNode()) { throw new JsonPatchException("non-existent " + typeName + " parent: " + parentPath); } if (!parentNode.isContainerNode()) { throw new JsonPatchException(typeName + " parent is not a container: " + parentPath + " (" + parentNode.getNodeType() + ')'); } return parentNode; } }
protected boolean isReferenceToComponent(Model model, JsonPointer pointer) { AbstractNode parentNode = model.find(pointer.head()); if (parentNode == null) { return false; } TypeDefinition parentType = parentNode.getType(); if (parentType instanceof ComplexTypeDefinition) { Collection<TypeDefinition> types = ((ComplexTypeDefinition) parentType).getComplexTypes(); for (TypeDefinition type : types) { if (hasRefToComponent(type.getContent())) { return true; } } } return hasRefToComponent(parentType.getContent()); }