private ResultModel buildAsyncEventQueueInfo(List<CliFunctionResult> results) {
    if (results.stream().filter(CliFunctionResult::isSuccessful)
        .noneMatch(r -> {
          @SuppressWarnings("unchecked")
          final List<AsyncEventQueueDetails> resultObject =
              (List<AsyncEventQueueDetails>) r.getResultObject();
          return resultObject.size() > 0;
        })) {
      return ResultModel.createInfo(CliStrings.LIST_ASYNC_EVENT_QUEUES__NO_QUEUES_FOUND_MESSAGE);
    }

    ResultModel result = new ResultModel();
    TabularResultModel detailsTable = result.addTable(ASYNC_EVENT_QUEUES_TABLE_SECTION);
    detailsTable.setColumnHeader(DETAILS_OUTPUT_COLUMNS);

    results.stream().filter(CliFunctionResult::isSuccessful).forEach(successfulResult -> {
      String memberName = successfulResult.getMemberIdOrName();
      @SuppressWarnings("unchecked")
      final List<AsyncEventQueueDetails> resultObject =
          (List<AsyncEventQueueDetails>) successfulResult.getResultObject();
      resultObject
          .forEach(entry -> detailsTable.addRow(memberName, entry.getId(),
              String.valueOf(entry.getBatchSize()), String.valueOf(entry.isPersistent()),
              String.valueOf(entry.getDiskStoreName()), String.valueOf(entry.getMaxQueueMemory()),
              getListenerEntry(entry), String.valueOf(entry.isCreatedWithPausedEventProcessing()),
              String.valueOf(entry.isPausedEventProcessing())));
    });
    return result;
  }
@return An info result containing the table of AsyncEventQueueDetails.
        If no details are found, returns an info result message indicating so.
geode-gfsh/src/main/java/org/apache/geode/management/internal/cli/commands/ListAsyncEventQueuesCommand.java