class JSONBrowseUtil {

    public static <T, R> JsonNode mapValues(JsonNode jsonNode, Function<T, R> valueMapper) {
        if(jsonNode.isArray()) {
            jsonNode = mapValuesForArrayNode((ArrayNode) jsonNode, valueMapper);
        } else if(jsonNode.isObject()) {
            jsonNode = mapValuesForObjectNode((ObjectNode) jsonNode, valueMapper);
        } else if(jsonNode.isValueNode()) {
            jsonNode = mapValuesForValueNode((ValueNode) jsonNode, valueMapper);
        }
        return jsonNode;
    }

}