Example usage for com.google.gson.stream JsonReader peek

List of usage examples for com.google.gson.stream JsonReader peek

Introduction

In this page you can find the example usage for com.google.gson.stream JsonReader peek.

Prototype

public JsonToken peek() throws IOException 

Source Link

Document

Returns the type of the next token without consuming it.

Usage

From source file:org.eclipse.epp.internal.logging.aeri.ui.utils.UuidTypeAdapter.java

License:Open Source License

@Override
public UUID read(JsonReader in) throws IOException {
    if (in.peek() == JsonToken.NULL) {
        in.nextNull();//from   w  w  w  .j a  v a  2 s .co  m
        return null;
    } else {
        return UUID.fromString(in.nextString());
    }
}

From source file:org.eclipse.lsp4j.adapters.HoverTypeAdapter.java

License:Open Source License

protected Either<List<Either<String, MarkedString>>, MarkupContent> readContents(final JsonReader in)
        throws IOException {
    final JsonToken nextToken = in.peek();
    boolean _equals = Objects.equal(nextToken, JsonToken.STRING);
    if (_equals) {
        final List<Either<String, MarkedString>> value = CollectionLiterals
                .<Either<String, MarkedString>>newArrayList(
                        Either.<String, MarkedString>forLeft(in.nextString()));
        return Either.<List<Either<String, MarkedString>>, MarkupContent>forLeft(value);
    } else {//w  ww . j a  v a 2 s . c  om
        boolean _equals_1 = Objects.equal(nextToken, JsonToken.BEGIN_ARRAY);
        if (_equals_1) {
            final List<Either<String, MarkedString>> value_1 = this.gson
                    .<List<Either<String, MarkedString>>>fromJson(in,
                            HoverTypeAdapter.LIST_STRING_MARKEDSTRING.getType());
            return Either.<List<Either<String, MarkedString>>, MarkupContent>forLeft(value_1);
        } else {
            JsonElement _parse = new JsonParser().parse(in);
            final JsonObject object = ((JsonObject) _parse);
            boolean _has = object.has("language");
            if (_has) {
                final List<Either<String, MarkedString>> value_2 = CollectionLiterals
                        .<Either<String, MarkedString>>newArrayList(Either.<String, MarkedString>forRight(
                                this.gson.<MarkedString>fromJson(object, MarkedString.class)));
                return Either.<List<Either<String, MarkedString>>, MarkupContent>forLeft(value_2);
            } else {
                return Either.<List<Either<String, MarkedString>>, MarkupContent>forRight(
                        this.gson.<MarkupContent>fromJson(object, MarkupContent.class));
            }
        }
    }
}

From source file:org.eclipse.lsp4j.adapters.HoverTypeAdapter.java

License:Open Source License

public Hover read(final JsonReader in) throws IOException {
    JsonToken nextToken = in.peek();
    if (nextToken == JsonToken.NULL) {
        return null;
    }//ww  w. j av  a  2s .c om

    Hover result = new Hover();
    in.beginObject();
    while (in.hasNext()) {
        String name = in.nextName();
        switch (name) {
        case "contents":
            result.setContents(readContents(in));
            break;
        case "range":
            result.setRange(readRange(in));
            break;
        default:
            in.skipValue();
        }
    }
    in.endObject();
    return result;
}

From source file:org.eclipse.lsp4j.adapters.InitializeParamsTypeAdapter.java

License:Open Source License

public InitializeParams read(final JsonReader in) throws IOException {
    JsonToken nextToken = in.peek();
    if (nextToken == JsonToken.NULL) {
        return null;
    }/*w  w w .j  a v  a  2  s. c om*/

    InitializeParams result = new InitializeParams();
    in.beginObject();
    while (in.hasNext()) {
        String name = in.nextName();
        switch (name) {
        case "processId":
            result.setProcessId(readProcessId(in));
            break;
        case "rootPath":
            result.setRootPath(readRootPath(in));
            break;
        case "rootUri":
            result.setRootUri(readRootUri(in));
            break;
        case "initializationOptions":
            result.setInitializationOptions(readInitializationOptions(in));
            break;
        case "capabilities":
            result.setCapabilities(readCapabilities(in));
            break;
        case "clientName":
            result.setClientName(readClientName(in));
            break;
        case "trace":
            result.setTrace(readTrace(in));
            break;
        case "workspaceFolders":
            result.setWorkspaceFolders(readWorkspaceFolders(in));
            break;
        default:
            in.skipValue();
        }
    }
    in.endObject();
    return result;
}

From source file:org.eclipse.lsp4j.adapters.VersionedTextDocumentIdentifierTypeAdapter.java

License:Open Source License

public VersionedTextDocumentIdentifier read(final JsonReader in) throws IOException {
    JsonToken nextToken = in.peek();
    if (nextToken == JsonToken.NULL) {
        return null;
    }//from  ww w . j  av  a 2s .c om

    VersionedTextDocumentIdentifier result = new VersionedTextDocumentIdentifier();
    in.beginObject();
    while (in.hasNext()) {
        String name = in.nextName();
        switch (name) {
        case "version":
            result.setVersion(readVersion(in));
            break;
        case "uri":
            result.setUri(readUri(in));
            break;
        default:
            in.skipValue();
        }
    }
    in.endObject();
    return result;
}

From source file:org.eclipse.lsp4j.jsonrpc.debug.adapters.DebugEnumTypeAdapter.java

License:Open Source License

@Override
public T read(JsonReader in) throws IOException {
    if (in.peek() == JsonToken.NULL) {
        in.nextNull();/*from w  ww.  j  a  v a  2  s .  c o  m*/
        return null;
    }
    return serializedFormToEnum.get(in.nextString());
}

From source file:org.eclipse.lsp4j.jsonrpc.debug.adapters.DebugMessageTypeAdapter.java

License:Open Source License

@Override
public Message read(JsonReader in) throws IOException {
    if (in.peek() == JsonToken.NULL) {
        in.nextNull();/*from  w ww  .j  a v a  2s .  c  o m*/
        return null;
    }

    in.beginObject();
    String messageType = null, method = null, message = null;
    int seq = 0, request_seq = 0;
    Boolean rawSuccess = null;
    Object rawParams = null;
    Object rawBody = null;

    try {

        while (in.hasNext()) {
            String name = in.nextName();
            switch (name) {
            case "seq": {
                seq = in.nextInt();
                break;
            }
            case "request_seq": {
                // on responses we treat the request_seq as the id
                request_seq = in.nextInt();
                break;
            }
            case "type": {
                messageType = in.nextString();
                break;
            }
            case "success": {
                rawSuccess = in.nextBoolean();
                break;
            }
            case "command": {
                method = in.nextString();
                break;
            }
            case "event": {
                method = in.nextString();
                break;
            }
            case "message": {
                if (in.peek() == JsonToken.NULL) {
                    in.nextNull();
                } else {
                    message = in.nextString();
                }
                break;
            }
            case "arguments": {
                rawParams = parseParams(in, method);
                break;
            }
            case "body": {
                rawBody = parseBody(in, messageType, request_seq, method, rawSuccess);
                break;
            }
            default:
                in.skipValue();
            }
        }
        boolean success = rawSuccess != null ? rawSuccess : false;
        Object params = parseParams(rawParams, method);
        Object body = parseBody(rawBody, messageType, request_seq, method, success);

        in.endObject();
        return createMessage(messageType, seq, request_seq, method, success, message, params, body);

    } catch (JsonSyntaxException | MalformedJsonException | EOFException exception) {
        if ("request".equals(messageType) || "event".equals(messageType) || "response".equals(messageType)) {
            // Create a message and bundle it to an exception with an issue that wraps the original exception
            boolean success = rawSuccess != null ? rawSuccess : false;
            Message resultMessage = createMessage(messageType, seq, request_seq, method, success, message,
                    rawParams, rawBody);
            MessageIssue issue = new MessageIssue("Message could not be parsed.",
                    ResponseErrorCode.ParseError.getValue(), exception);
            throw new MessageIssueException(resultMessage, issue);
        } else {
            throw exception;
        }
    }
}

From source file:org.eclipse.lsp4j.jsonrpc.json.adapters.CollectionTypeAdapter.java

License:Open Source License

@Override
public Collection<E> read(JsonReader in) throws IOException {
    JsonToken peek = in.peek();
    if (peek == JsonToken.NULL) {
        in.nextNull();//from   www.  j  ava2s. c o m
        return null;
    } else if (peek == JsonToken.BEGIN_ARRAY) {
        Collection<E> collection = constructor.get();
        in.beginArray();
        while (in.hasNext()) {
            E instance = elementTypeAdapter.read(in);
            collection.add(instance);
        }
        in.endArray();
        return collection;
    } else {
        Collection<E> collection = constructor.get();
        E instance = elementTypeAdapter.read(in);
        collection.add(instance);
        return collection;
    }
}

From source file:org.eclipse.lsp4j.jsonrpc.json.adapters.EitherTypeAdapter.java

License:Open Source License

@Override
public Either<L, R> read(JsonReader in) throws IOException {
    JsonToken next = in.peek();
    if (next == JsonToken.NULL) {
        in.nextNull();//  w  w  w . j  a  v a2 s . c om
        return null;
    }
    return create(next, in);
}

From source file:org.eclipse.lsp4j.jsonrpc.json.adapters.EnumTypeAdapter.java

License:Open Source License

@Override
public T read(JsonReader in) throws IOException {
    JsonToken peek = in.peek();
    if (peek == JsonToken.NULL) {
        in.nextNull();// ww w.  ja va2 s  .c  om
        return null;
    } else if (peek == JsonToken.NUMBER) {
        return valueToConstant.get(in.nextInt());
    } else {
        String string = in.nextString();
        try {
            return valueToConstant.get(Integer.parseInt(string));
        } catch (NumberFormatException e) {
            return nameToConstant.get(string);
        }
    }
}