aboutsummaryrefslogtreecommitdiffstats
path: root/document/src/main/java/com/yahoo/document/json/LazyTokenBuffer.java
diff options
context:
space:
mode:
Diffstat (limited to 'document/src/main/java/com/yahoo/document/json/LazyTokenBuffer.java')
-rw-r--r--document/src/main/java/com/yahoo/document/json/LazyTokenBuffer.java64
1 files changed, 0 insertions, 64 deletions
diff --git a/document/src/main/java/com/yahoo/document/json/LazyTokenBuffer.java b/document/src/main/java/com/yahoo/document/json/LazyTokenBuffer.java
deleted file mode 100644
index 0fbdd0b28c7..00000000000
--- a/document/src/main/java/com/yahoo/document/json/LazyTokenBuffer.java
+++ /dev/null
@@ -1,64 +0,0 @@
-package com.yahoo.document.json;
-
-import com.fasterxml.jackson.core.JsonParser;
-import com.fasterxml.jackson.core.JsonToken;
-
-import java.io.IOException;
-import java.util.function.Supplier;
-
-/**
- * A {@link TokenBuffer} which only buffers tokens when needed, i.e., when peeking.
- *
- * @author jonmv
- */
-public class LazyTokenBuffer extends TokenBuffer {
-
- private final JsonParser parser;
-
- public LazyTokenBuffer(JsonParser parser) {
- this.parser = parser;
- try { addFromParser(parser); }
- catch (IOException e) { throw new IllegalArgumentException("failed parsing document JSON", e); }
- if (JsonToken.START_OBJECT != current())
- throw new IllegalArgumentException("expected start of JSON object, but got " + current());
- updateNesting(current());
- }
-
- void advance() {
- super.advance();
- if (tokens.isEmpty() && nesting() > 0) tokens.add(nextToken()); // Fill current token if needed and possible.
- }
-
- @Override
- public Supplier<Token> lookahead() {
- return new Supplier<>() {
- int localNesting = nesting();
- Supplier<Token> buffered = LazyTokenBuffer.super.lookahead();
- @Override public Token get() {
- if (localNesting == 0)
- return null;
-
- Token token = buffered.get();
- if (token == null) {
- token = nextToken();
- tokens.add(token);
- }
- localNesting += nestingOffset(token.token);
- return token;
- }
- };
- }
-
- private Token nextToken() {
- try {
- JsonToken token = parser.nextValue();
- if (token == null)
- throw new IllegalStateException("no more JSON tokens");
- return new Token(token, parser.getCurrentName(), parser.getText());
- }
- catch (IOException e) {
- throw new IllegalArgumentException("failed reading document JSON", e);
- }
- }
-
-}