public static Object parseMockValue()

in dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc/support/MockInvoker.java [68:97]


    public static Object parseMockValue(String mock, Type[] returnTypes) throws Exception {
        Object value;
        if ("empty".equals(mock)) {
            value = ReflectUtils.getEmptyObject(
                    returnTypes != null && returnTypes.length > 0 ? (Class<?>) returnTypes[0] : null);
        } else if ("null".equals(mock)) {
            value = null;
        } else if ("true".equals(mock)) {
            value = true;
        } else if ("false".equals(mock)) {
            value = false;
        } else if (mock.length() >= 2
                && (mock.startsWith("\"") && mock.endsWith("\"") || mock.startsWith("\'") && mock.endsWith("\'"))) {
            value = mock.subSequence(1, mock.length() - 1);
        } else if (returnTypes != null && returnTypes.length > 0 && returnTypes[0] == String.class) {
            value = mock;
        } else if (StringUtils.isNumeric(mock, false)) {
            value = JsonUtils.toJavaObject(mock, Object.class);
        } else if (mock.startsWith("{")) {
            value = JsonUtils.toJavaObject(mock, Map.class);
        } else if (mock.startsWith("[")) {
            value = JsonUtils.toJavaList(mock, Object.class);
        } else {
            value = mock;
        }
        if (ArrayUtils.isNotEmpty(returnTypes)) {
            value = PojoUtils.realize(value, (Class<?>) returnTypes[0], returnTypes.length > 1 ? returnTypes[1] : null);
        }
        return value;
    }