Repository: johnzon Updated Branches: refs/heads/master 7c6933dcd -> 356c7f587
JOHNZON-139 add preliminary stream support Project: http://git-wip-us.apache.org/repos/asf/johnzon/repo Commit: http://git-wip-us.apache.org/repos/asf/johnzon/commit/356c7f58 Tree: http://git-wip-us.apache.org/repos/asf/johnzon/tree/356c7f58 Diff: http://git-wip-us.apache.org/repos/asf/johnzon/diff/356c7f58 Branch: refs/heads/master Commit: 356c7f587f870fac18ceee84a433234264c42f2c Parents: 7c6933d Author: Mark Struberg <[email protected]> Authored: Fri Nov 10 12:13:49 2017 +0100 Committer: Mark Struberg <[email protected]> Committed: Fri Nov 10 12:13:49 2017 +0100 ---------------------------------------------------------------------- .../johnzon/core/JohnzonJsonParserImpl.java | 33 ++++++++++++++++++++ 1 file changed, 33 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/johnzon/blob/356c7f58/johnzon-core/src/main/java/org/apache/johnzon/core/JohnzonJsonParserImpl.java ---------------------------------------------------------------------- diff --git a/johnzon-core/src/main/java/org/apache/johnzon/core/JohnzonJsonParserImpl.java b/johnzon-core/src/main/java/org/apache/johnzon/core/JohnzonJsonParserImpl.java index 5939119..5fa051a 100644 --- a/johnzon-core/src/main/java/org/apache/johnzon/core/JohnzonJsonParserImpl.java +++ b/johnzon-core/src/main/java/org/apache/johnzon/core/JohnzonJsonParserImpl.java @@ -17,6 +17,9 @@ package org.apache.johnzon.core; +import java.util.Map; +import java.util.stream.Stream; + import javax.json.JsonArray; import javax.json.JsonObject; import javax.json.JsonValue; @@ -94,4 +97,34 @@ public abstract class JohnzonJsonParserImpl implements JohnzonJsonParser { } } + @Override + public Stream<JsonValue> getArrayStream() { + //X TODO this implementation is very simplistic + //X I find it unintuitive what the spec intends here + //X we probably need to improve this + return getArray().stream(); + } + + @Override + public Stream<Map.Entry<String, JsonValue>> getObjectStream() { + //X TODO this implementation is very simplistic + //X I find it unintuitive what the spec intends here + //X we probably need to improve this + return getObject().entrySet().stream(); + } + + @Override + public Stream<JsonValue> getValueStream() { + //X TODO this implementation is very simplistic + //X I find it unintuitive what the spec intends here + //X we probably need to improve this + Event current = current(); + if (current == Event.START_ARRAY) { + return getArrayStream(); + } + if (current == Event.START_OBJECT) { + return getObject().values().stream(); + } + throw new IllegalStateException(current + " doesn't support getValueStream"); + } }
