private static Map computeColumnWidths()

in platforms/commands/commands-core/src/main/java/org/apache/camel/commands/RouteListCommand.java [79:125]


    private static Map<String, Integer> computeColumnWidths(final Iterable<Map<String, String>> routes) throws Exception {
        if (routes == null) {
            throw new IllegalArgumentException("Unable to determine column widths from null Iterable<Route>");
        } else {
            int maxContextLen = 0;
            int maxRouteLen = 0;
            int maxStatusLen = 0;
            int maxTotalLen = 0;
            int maxFailedLen = 0;
            int maxInflightLen = 0;
            int maxUptimeLen = 0;

            for (Map<String, String> row : routes) {
                final String contextId = row.get("camelContextName");
                maxContextLen = java.lang.Math.max(maxContextLen, contextId == null ? 0 : contextId.length());

                final String routeId = row.get("routeId");
                maxRouteLen = java.lang.Math.max(maxRouteLen, routeId == null ? 0 : routeId.length());

                final String status = row.get("state");
                maxStatusLen = java.lang.Math.max(maxStatusLen, status == null ? 0 : status.length());

                final String total = row.get("exchangesTotal");
                maxTotalLen = java.lang.Math.max(maxTotalLen, total == null ? 0 : total.length());

                final String failed = row.get("exchangesFailed");
                maxFailedLen = java.lang.Math.max(maxFailedLen, failed == null ? 0 : failed.length());

                final String inflight = row.get("exchangesInflight");
                maxInflightLen = java.lang.Math.max(maxInflightLen, inflight == null ? 0 : inflight.length());

                final String uptime = row.get("uptime");
                maxUptimeLen = java.lang.Math.max(maxUptimeLen, uptime == null ? 0 : uptime.length());
            }

            final Map<String, Integer> retval = new Hashtable<>(3);
            retval.put(CONTEXT_COLUMN_LABEL, maxContextLen);
            retval.put(ROUTE_COLUMN_LABEL, maxRouteLen);
            retval.put(STATUS_COLUMN_LABEL, maxStatusLen);
            retval.put(TOTAL_COLUMN_LABEL, maxTotalLen);
            retval.put(FAILED_COLUMN_LABEL, maxFailedLen);
            retval.put(INFLIGHT_COLUMN_LABEL, maxInflightLen);
            retval.put(UPTIME_COLUMN_LABEL, maxUptimeLen);

            return retval;
        }
    }