From a6da64241640359837d4ebdf0aa42216b42f926a Mon Sep 17 00:00:00 2001 From: Jake Swenson Date: Sun, 4 Dec 2016 10:04:26 -0800 Subject: [PATCH] Adding support for custom path functions Adding a configuration value for a path function factory --- .../com/jayway/jsonpath/Configuration.java | 55 ++++++++++++++++++- .../function/JsonPathFunctionFactory.java | 24 ++++++++ .../function/MapJsonPathFunctionFactory.java | 30 ++++++++++ .../function/PathFunctionFactory.java | 16 ++---- .../internal/path/FunctionPathToken.java | 2 +- 5 files changed, 111 insertions(+), 16 deletions(-) create mode 100644 json-path/src/main/java/com/jayway/jsonpath/internal/function/JsonPathFunctionFactory.java create mode 100644 json-path/src/main/java/com/jayway/jsonpath/internal/function/MapJsonPathFunctionFactory.java diff --git a/json-path/src/main/java/com/jayway/jsonpath/Configuration.java b/json-path/src/main/java/com/jayway/jsonpath/Configuration.java index 1a591ea8d..b4aa86596 100644 --- a/json-path/src/main/java/com/jayway/jsonpath/Configuration.java +++ b/json-path/src/main/java/com/jayway/jsonpath/Configuration.java @@ -15,6 +15,10 @@ package com.jayway.jsonpath; import com.jayway.jsonpath.internal.DefaultsImpl; +import com.jayway.jsonpath.internal.function.JsonPathFunctionFactory; +import com.jayway.jsonpath.internal.function.MapJsonPathFunctionFactory; +import com.jayway.jsonpath.internal.function.PathFunction; +import com.jayway.jsonpath.internal.function.PathFunctionFactory; import com.jayway.jsonpath.spi.json.JsonProvider; import com.jayway.jsonpath.spi.mapper.MappingProvider; @@ -23,6 +27,8 @@ import java.util.Collection; import java.util.Collections; import java.util.EnumSet; +import java.util.HashMap; +import java.util.Map; import java.util.Set; import static com.jayway.jsonpath.internal.Utils.notNull; @@ -55,16 +61,24 @@ private static Defaults getEffectiveDefaults(){ private final MappingProvider mappingProvider; private final Set