Java 类org.eclipse.lsp4j.jsonrpc.json.MethodProvider 实例源码

项目:dsp4e    文件:DebugMessageTypeAdapterFactory.java   
private Object parseResult(JsonReader in, String id) {
    Object result;
    Type type = null;
    MethodProvider methodProvider = handler.getMethodProvider();
    if (methodProvider != null && id != null) {
        String resolvedMethod = methodProvider.resolveMethod(id);
        if (resolvedMethod != null) {
            JsonRpcMethod jsonRpcMethod = handler.getJsonRpcMethod(resolvedMethod);
            if (jsonRpcMethod != null)
                type = jsonRpcMethod.getReturnType();
        }
    }
    if (type == null)
        result = new JsonParser().parse(in);
    else
        result = gson.fromJson(in, type);
    return result;
}
项目:lsp4j    文件:MessageTypeAdapter.java   
/**
 * Convert the json input into the result object corresponding to the call made
 * by id.
 *
 * If the id is not known until after parsing, call
 * {@link #parseResult(Object, String)} on the return value of this call for a
 * second chance conversion.
 *
 * @param in
 *            json input to read from
 * @param id
 *            id of request message this is in response to
 * @return correctly typed object if the correct expected type can be
 *         determined, or a JsonElement representing the result
 */
protected Object parseResult(JsonReader in, String id) {
    Object result;
    Type type = null;
    MethodProvider methodProvider = handler.getMethodProvider();
    if (methodProvider != null && id != null) {
        String resolvedMethod = methodProvider.resolveMethod(id);
        if (resolvedMethod != null) {
            JsonRpcMethod jsonRpcMethod = handler.getJsonRpcMethod(resolvedMethod);
            if (jsonRpcMethod != null)
                type = jsonRpcMethod.getReturnType();
        }
    }
    if (type == null)
        result = new JsonParser().parse(in);
    else
        result = gson.fromJson(in, type);
    return result;
}
项目:lsp4j    文件:MessageTypeAdapter.java   
/**
 * Convert the JsonElement into the result object corresponding to the call made
 * by id. If the result is already converted, does nothing.
 *
 * @param result
 *            json element to read from
 * @param id
 *            id of request message this is in response to
 * @return correctly typed object if the correct expected type can be
 *         determined, or result unmodified if no conversion can be done.
 */
protected Object parseResult(Object result, String id) {
    if (isNull(result)) {
        return null;
    }
    if (result instanceof JsonElement) {
        // Type of result could not be resolved - try again with the parsed JSON tree
        MethodProvider methodProvider = handler.getMethodProvider();
        if (methodProvider != null) {
            String resolvedMethod = methodProvider.resolveMethod(id);
            if (resolvedMethod != null) {
                JsonRpcMethod jsonRpcMethod = handler.getJsonRpcMethod(resolvedMethod);
                if (jsonRpcMethod != null)
                    result = gson.fromJson((JsonElement) result, jsonRpcMethod.getReturnType());
            }
        }
    }
    return result;
}
项目:SOMns-vscode    文件:MessageTypeAdapter.java   
@Override
public Message read(JsonReader in) throws IOException {
    if (in.peek() == JsonToken.NULL) {
        in.nextNull();
        return null;
    }

    in.beginObject();
    String jsonrpc = null, id = null, method = null;
    Object rawParams = null;
    Object result = null;
    ResponseError error = null;
    while (in.hasNext()) {
        String name = in.nextName();
        switch (name) {
        case "jsonrpc": {
            jsonrpc = in.nextString();
            break;
        }
        case "id": {
            id = in.nextString();
            break;
        }
        case "method": {
            method = in.nextString();
            break;
        }
        case "params": {
            rawParams = parseParams(in, method);
            break;
        }
        case "result": {
            Type type = null;
            MethodProvider methodProvider = handler.getMethodProvider();
            if (methodProvider != null && id != null) {
                String resolvedMethod = methodProvider.resolveMethod(id);
                if (resolvedMethod != null) {
                    JsonRpcMethod jsonRpcMethod = handler.getJsonRpcMethod(resolvedMethod);
                    if (jsonRpcMethod != null)
                        type = jsonRpcMethod.getReturnType();
                }
            }
            if (type == null)
                result = new JsonParser().parse(in);
            else
                result = gson.fromJson(in, type);
            break;
        }
        case "error": {
            error = gson.fromJson(in, ResponseError.class);
            break;
        }
        default:
            in.skipValue();
        }
    }
    in.endObject();
    Object params = parseParams(rawParams, method);
    return createMessage(jsonrpc, id, method, params, result, error);
}