public void display()

in commands/src/main/java/org/jclouds/karaf/commands/table/BasicShellTable.java [56:102]


  public void display(PrintStream out, boolean showHeaders, boolean showData) {
    List<String[]> table = new ArrayList<String[]>();
    Iterable iterableData = null;

    //If display data is an iterable use as is, else wrap data inside a collection.
    if (Iterable.class.isAssignableFrom(displayData.getClass())) {
      iterableData = (Iterable) displayData;
    } else {
      iterableData = Lists.newArrayList(displayData);
    }

    //Populate table
    for (Object obj : iterableData) {
      String[] values = new String[displayExpression.size()];
      for (int i=0; i < displayExpression.size(); i++) {
        values[i] = evaluate(obj, displayExpression.get(i));
      }
      table.add(values);
    }

    List<Integer> sizes = calculateSizes(headers, table);
    if (!Strings.isNullOrEmpty(sortBy) && headers.contains(sortBy))
      Collections.sort(table, new Comparator<String[]>() {

        @Override
        public int compare(String[] left, String[] right) {
          int column = headers.indexOf(sortBy);
          String leftValue = left[column];
          String rightValue = right[column];
          return comparator.compare(leftValue,rightValue);
        }
      });

    String dataFormat = getStringFormat(sizes, alignments);
    //Check if we need to display headers
    if (showHeaders) {
      out.println(String.format(dataFormat, headers.toArray(new String[headers.size()])));
    }

    //Check if we need and can display data.
    if (showData && table != null) {
      for (String[] row : table) {
        //Populate display data
        out.println(String.format(dataFormat, row));
      }
    }
  }