class JacksonUtils {

    public static JsonNode merge(JsonNode newNode, JsonNode originalNode) {
        if(newNode == null || newNode.isNull())
            return originalNode;
        else if(originalNode == null || originalNode.isNull())
            return newNode;

        if(newNode.isObject())
            newNode = mergeObjectNodes( (ObjectNode) newNode, (ObjectNode) originalNode);
        else if(newNode.isArray())
            newNode = mergeArrayNode( (ArrayNode) newNode, (ArrayNode) originalNode);

        return newNode;
    }

}