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 01c7db03a..09e06964b 100644 --- a/json-path/src/main/java/com/jayway/jsonpath/JsonPath.java +++ b/json-path/src/main/java/com/jayway/jsonpath/JsonPath.java @@ -96,7 +96,7 @@ private JsonPath(String jsonPath, Predicate[] filters) { notNull(jsonPath, "path can not be null"); this.path = PathCompiler.compile(jsonPath, filters); } - + /** * Returns the string representation of this JsonPath * @@ -105,6 +105,14 @@ private JsonPath(String jsonPath, Predicate[] filters) { public String getPath() { return this.path.toString(); } + + /** + * Gets the internal path implementation. For advanced use cases. + * @return the path implementation + */ + public Path getPathImpl() { + return path; + } /** * @see JsonPath#isDefinite() diff --git a/json-path/src/main/java/com/jayway/jsonpath/internal/path/ArrayIndexToken.java b/json-path/src/main/java/com/jayway/jsonpath/internal/path/ArrayIndexToken.java index 3e4b36e2e..6a194f1b5 100644 --- a/json-path/src/main/java/com/jayway/jsonpath/internal/path/ArrayIndexToken.java +++ b/json-path/src/main/java/com/jayway/jsonpath/internal/path/ArrayIndexToken.java @@ -14,9 +14,9 @@ */ package com.jayway.jsonpath.internal.path; -import com.jayway.jsonpath.internal.PathRef; +import java.util.List; -import static java.lang.String.format; +import com.jayway.jsonpath.internal.PathRef; public class ArrayIndexToken extends ArrayPathToken { @@ -48,5 +48,8 @@ public String getPathFragment() { public boolean isTokenDefinite() { return arrayIndexOperation.isSingleIndexOperation(); } - + + public List getIndexes() { + return arrayIndexOperation.indexes(); + } } diff --git a/json-path/src/main/java/com/jayway/jsonpath/internal/path/PathToken.java b/json-path/src/main/java/com/jayway/jsonpath/internal/path/PathToken.java index 34cf1402b..33dde4610 100644 --- a/json-path/src/main/java/com/jayway/jsonpath/internal/path/PathToken.java +++ b/json-path/src/main/java/com/jayway/jsonpath/internal/path/PathToken.java @@ -222,7 +222,7 @@ public void invoke(PathFunction pathFunction, String currentPath, PathRef parent public abstract boolean isTokenDefinite(); - protected abstract String getPathFragment(); + public abstract String getPathFragment(); public void setNext(final PathToken next) { this.next = next; @@ -231,4 +231,8 @@ public void setNext(final PathToken next) { public PathToken getNext() { return this.next; } + + public PathToken getPrevious() { + return this.prev; + } }