public Object handleResult()

in dubbo-mock-extensions/dubbo-mock-admin/src/main/java/org/apache/dubbo/mock/handler/CommonTypeHandler.java [57:89]


    public Object handleResult(ResultContext resultContext) {
        if (Objects.isNull(resultContext.getData())) {
            return null;
        }
        try {
            // support generic service.
            if (Objects.isNull(resultContext.getTargetType())) {
                Class<?> serviceType = Class.forName(resultContext.getServiceName());
                if (Objects.isNull(serviceType)) {
                    return null;
                }
                Method[] methods = serviceType.getMethods();
                for (int i = 0; i < methods.length; i++) {
                    Method method = methods[i];
                    if (Objects.equals(resultContext.getMethodName(), method.getName())) {
                        resultContext.setTargetType(method.getReturnType());
                        break;
                    }
                }
            }

            Optional<TypeHandler> typeHandler = typeHandlers.stream()
                .filter(th -> th.isMatch(resultContext))
                .findFirst();
            if (typeHandler.isPresent()) {
                return typeHandler.get().handleResult(resultContext);
            }
            return jsonTypeHandler.handleResult(resultContext);
        } catch (Exception e) {
            logger.warn("[Dubbo Mock] handle the common result failed, will use unknown type handler.", e);
            return unknownTypeHandler.handleResult(resultContext);
        }
    }