List of usage examples for com.google.gson.stream JsonReader peek
public JsonToken peek() throws IOException
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); } } }