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);
}
}