diff --git a/json-path/src/main/java/com/jayway/jsonpath/JsonPath.java b/json-path/src/main/java/com/jayway/jsonpath/JsonPath.java index 01c7db03..2965e538 100644 --- a/json-path/src/main/java/com/jayway/jsonpath/JsonPath.java +++ b/json-path/src/main/java/com/jayway/jsonpath/JsonPath.java @@ -496,6 +496,17 @@ public class JsonPath { } } + /** + * As JsonPath accepts a vary number of functions like min(), max(), + * avg(), stddev(), length(), sum(), keys(), concat(X), append(X), + * this function will return true if the path is a function + * + * @return true if the path is a function + */ + public Boolean isFunctionPath() { + return path.isFunctionPath(); + } + // -------------------------------------------------------- // // Static factory methods diff --git a/json-path/src/test/java/com/jayway/jsonpath/PathCompilerTest.java b/json-path/src/test/java/com/jayway/jsonpath/PathCompilerTest.java index ef220619..e65159d9 100644 --- a/json-path/src/test/java/com/jayway/jsonpath/PathCompilerTest.java +++ b/json-path/src/test/java/com/jayway/jsonpath/PathCompilerTest.java @@ -304,6 +304,12 @@ public class PathCompilerTest { assertThat(compile("$.aaa.foo(5,10,15)").toString()).isEqualTo("$['aaa'].foo(...)"); } + @Test + public void path_is_a_function() { + assertThat(compile("concat($.aaa, $.bbb)").isFunctionPath()).isTrue(); + assertThat(compile("$.aaa").isFunctionPath()).isFalse(); + } + @Test(expected = InvalidPathException.class) public void array_indexes_must_be_separated_by_commas() { compile("$[0, 1, 2 4]");