From 4ad46477549df60ff9f18f848301b27402730d3e Mon Sep 17 00:00:00 2001 From: Kalle Stenflo Date: Mon, 22 Sep 2014 12:20:32 +0200 Subject: [PATCH] Removed createNull from JsonProvider --- .../spi/json/AbstractJsonProvider.java | 4 ---- .../internal/spi/json/GsonJsonProvider.java | 6 ----- .../jsonpath/internal/token/PathToken.java | 5 ++-- .../jsonpath/spi/json/JsonProvider.java | 24 +++++++++++++++++-- 4 files changed, 24 insertions(+), 15 deletions(-) diff --git a/json-path/src/main/java/com/jayway/jsonpath/internal/spi/json/AbstractJsonProvider.java b/json-path/src/main/java/com/jayway/jsonpath/internal/spi/json/AbstractJsonProvider.java index 42ed62bb..2da2b284 100644 --- a/json-path/src/main/java/com/jayway/jsonpath/internal/spi/json/AbstractJsonProvider.java +++ b/json-path/src/main/java/com/jayway/jsonpath/internal/spi/json/AbstractJsonProvider.java @@ -26,10 +26,6 @@ public abstract class AbstractJsonProvider implements JsonProvider { private static final Logger logger = LoggerFactory.getLogger(AbstractJsonProvider.class); - @Override - public Object createNull(){ - return null; - } /** * checks if object is an array diff --git a/json-path/src/main/java/com/jayway/jsonpath/internal/spi/json/GsonJsonProvider.java b/json-path/src/main/java/com/jayway/jsonpath/internal/spi/json/GsonJsonProvider.java index 7fb38d16..4b9a3dd4 100644 --- a/json-path/src/main/java/com/jayway/jsonpath/internal/spi/json/GsonJsonProvider.java +++ b/json-path/src/main/java/com/jayway/jsonpath/internal/spi/json/GsonJsonProvider.java @@ -98,12 +98,6 @@ public class GsonJsonProvider extends AbstractJsonProvider { return obj.toString(); } - - @Override - public Object createNull() { - return JsonNull.INSTANCE; - } - @Override public Object createArray() { return new JsonArray(); diff --git a/json-path/src/main/java/com/jayway/jsonpath/internal/token/PathToken.java b/json-path/src/main/java/com/jayway/jsonpath/internal/token/PathToken.java index 9b8c7673..fe9a7351 100644 --- a/json-path/src/main/java/com/jayway/jsonpath/internal/token/PathToken.java +++ b/json-path/src/main/java/com/jayway/jsonpath/internal/token/PathToken.java @@ -27,7 +27,7 @@ public abstract class PathToken { if(propertyVal == JsonProvider.UNDEFINED){ if(isLeaf()) { if(ctx.options().contains(Option.DEFAULT_PATH_LEAF_TO_NULL)){ - propertyVal = ctx.jsonProvider().createNull(); + propertyVal = null; } else { if(ctx.options().contains(Option.SUPPRESS_EXCEPTIONS)){ return; @@ -38,7 +38,6 @@ public abstract class PathToken { } } else { throw new PathNotFoundException(); - //return; } } if (isLeaf()) { @@ -58,7 +57,7 @@ public abstract class PathToken { Object propertyVal = readObjectProperty(property, model, ctx); if(propertyVal == JsonProvider.UNDEFINED){ if(ctx.options().contains(Option.DEFAULT_PATH_LEAF_TO_NULL)){ - propertyVal = ctx.jsonProvider().createNull();; + propertyVal = null; } else { continue; } diff --git a/json-path/src/main/java/com/jayway/jsonpath/spi/json/JsonProvider.java b/json-path/src/main/java/com/jayway/jsonpath/spi/json/JsonProvider.java index e5c40ab8..bf6a559f 100644 --- a/json-path/src/main/java/com/jayway/jsonpath/spi/json/JsonProvider.java +++ b/json-path/src/main/java/com/jayway/jsonpath/spi/json/JsonProvider.java @@ -23,14 +23,34 @@ public interface JsonProvider { static final Object UNDEFINED = new Object(); + /** + * Parse the given json string + * @param json json string to parse + * @return Object representation of json + * @throws InvalidJsonException + */ Object parse(String json) throws InvalidJsonException; + /** + * Parse the given json string + * @param jsonStream input stream to parse + * @param charset charset to use + * @return Object representation of json + * @throws InvalidJsonException + */ Object parse(InputStream jsonStream, String charset) throws InvalidJsonException; + /** + * Convert given json object to a json string + * @param obj object to transform + * @return json representation of object + */ String toJson(Object obj); - Object createNull(); - + /** + * Creates a provider specific json array + * @return new array + */ Object createArray(); /**