@Override @SuppressWarnings("unchecked") public <T> TypeAdapter<T> create(Gson gson, TypeToken<T> typeToken) { if (!Message.class.isAssignableFrom(typeToken.getRawType())) return null; return (TypeAdapter<T>) new MessageTypeAdapter(handler, gson); }
if (isNull(params)) { return null; Type[] parameterTypes = getParameterTypes(method); if (parameterTypes.length == 1) { return fromJson(rawParams, parameterTypes[0]); while (iterator.hasNext()) { Type parameterType = index < parameterTypes.length ? parameterTypes[index] : null; Object parameter = fromJson(iterator.next(), parameterType); parameters.add(parameter); index++;
protected Object fromJson(JsonElement element, Type type) { if (isNull(element)) { return null; } if (isNullOrVoidType(type)) { return element; } Object value = gson.fromJson(element, type); if (isNull(value)) { return null; } return value; }
rawParams = parseParams(in, method); break; rawResult = parseResult(in, id != null ? id.get().toString() : null); break; Object params = parseParams(rawParams, method); Object result = parseResult(rawResult, id != null ? id.get().toString() : null); return createMessage(jsonrpc, id, method, params, result, responseError); Message message = createMessage(jsonrpc, id, method, rawParams, rawResult, responseError); MessageIssue issue = new MessageIssue("Message could not be parsed.", ResponseErrorCode.ParseError.getValue(), exception); throw new MessageIssueException(message, issue);
return null; Type[] parameterTypes = getParameterTypes(method); if (parameterTypes.length == 1) { return fromJson(in, parameterTypes[0]); while (in.hasNext()) { Type parameterType = index < parameterTypes.length ? parameterTypes[index] : null; Object parameter = fromJson(in, parameterType); parameters.add(parameter); index++;
RequestMessage requestMessage = (RequestMessage) message; out.name("id"); writeId(out, requestMessage.getRawId()); out.name("method"); out.value(requestMessage.getMethod()); Object params = requestMessage.getParams(); if (params == null) writeNullValue(out); else gson.toJson(params, params.getClass(), out); ResponseMessage responseMessage = (ResponseMessage) message; out.name("id"); writeId(out, responseMessage.getRawId()); if (responseMessage.getError() != null) { out.name("error"); Object result = responseMessage.getResult(); if (result == null) writeNullValue(out); else gson.toJson(result, result.getClass(), out); Object params = notificationMessage.getParams(); if (params == null) writeNullValue(out); else gson.toJson(params, params.getClass(), out);
return parseParams(in, method); } else if ("response".equals(messageType) && success != null && success) { return super.parseResult(in, Integer.toString(request_seq)); } else { return new JsonParser().parse(in);
return fromJson((JsonElement) result, type);
protected Object fromJson(JsonReader in, Type type) throws JsonIOException { if (isNullOrVoidType(type)) { return new JsonParser().parse(in); } return gson.fromJson(in, type); }
protected void writeId(JsonWriter out, Either<String, Number> id) throws IOException { if (id == null) writeNullValue(out); else if (id.isLeft()) out.value(id.getLeft()); else if (id.isRight()) out.value(id.getRight()); }
rawParams = parseParams(in, method); break; rawResult = parseResult(in, id != null ? id.get().toString() : null); break; Object params = parseParams(rawParams, method); Object result = parseResult(rawResult, id != null ? id.get().toString() : null); return createMessage(jsonrpc, id, method, params, result, responseError); Message message = createMessage(jsonrpc, id, method, rawParams, rawResult, responseError); MessageIssue issue = new MessageIssue("Message could not be parsed.", ResponseErrorCode.ParseError.getValue(), exception); throw new MessageIssueException(message, issue);
return null; Type[] parameterTypes = getParameterTypes(method); if (parameterTypes.length == 1) { return fromJson(in, parameterTypes[0]); while (in.hasNext()) { Type parameterType = index < parameterTypes.length ? parameterTypes[index] : null; Object parameter = fromJson(in, parameterType); parameters.add(parameter); index++;
RequestMessage requestMessage = (RequestMessage) message; out.name("id"); writeId(out, requestMessage.getRawId()); out.name("method"); out.value(requestMessage.getMethod()); Object params = requestMessage.getParams(); if (params == null) writeNullValue(out); else gson.toJson(params, params.getClass(), out); ResponseMessage responseMessage = (ResponseMessage) message; out.name("id"); writeId(out, responseMessage.getRawId()); if (responseMessage.getError() != null) { out.name("error"); Object result = responseMessage.getResult(); if (result == null) writeNullValue(out); else gson.toJson(result, result.getClass(), out); Object params = notificationMessage.getParams(); if (params == null) writeNullValue(out); else gson.toJson(params, params.getClass(), out);
} else if ("response".equals(messageType)) { if (success != null && success) { return super.parseResult(rawBody, Integer.toString(request_seq));
return fromJson((JsonElement) result, type);
protected Object fromJson(JsonReader in, Type type) throws JsonIOException { if (isNullOrVoidType(type)) { return new JsonParser().parse(in); } return gson.fromJson(in, type); }
protected void writeId(JsonWriter out, Either<String, Number> id) throws IOException { if (id == null) writeNullValue(out); else if (id.isLeft()) out.value(id.getLeft()); else if (id.isRight()) out.value(id.getRight()); }
if (isNull(params)) { return null; Type[] parameterTypes = getParameterTypes(method); if (parameterTypes.length == 1) { return fromJson(rawParams, parameterTypes[0]); while (iterator.hasNext()) { Type parameterType = index < parameterTypes.length ? parameterTypes[index] : null; Object parameter = fromJson(iterator.next(), parameterType); parameters.add(parameter); index++;
protected Object fromJson(JsonElement element, Type type) { if (isNull(element)) { return null; } if (isNullOrVoidType(type)) { return element; } Object value = gson.fromJson(element, type); if (isNull(value)) { return null; } return value; }
return fromJson(in, type);