private static <T>void displayPropertyValues(ConsoleApplication app,PropertyDefinition<T> pd,Collection<T> values){
  TableBuilder builder=new TableBuilder();
  PropertyValuePrinter valuePrinter=new PropertyValuePrinter(null,null,false);
  int sz=values.size();
  boolean useMultipleColumns=(sz >= MULTI_COLUMN_THRESHOLD);
  int rows=sz;
  if (useMultipleColumns) {
    rows/=2;
    rows+=sz % 2;
  }
  List<T> vl=new ArrayList<>(values);
  for (int i=0, j=rows; i < rows; i++, j++) {
    builder.startRow();
    builder.appendCell("*)");
    builder.appendCell(valuePrinter.print(pd,vl.get(i)));
    if (useMultipleColumns && j < sz) {
      builder.appendCell();
      builder.appendCell("*)");
      builder.appendCell(valuePrinter.print(pd,vl.get(j)));
    }
  }
  TextTablePrinter printer=new TextTablePrinter(app.getErrorStream());
  printer.setDisplayHeadings(false);
  printer.setIndentWidth(4);
  printer.setColumnWidth(1,0);
  if (useMultipleColumns) {
    printer.setColumnWidth(2,2);
    printer.setColumnWidth(4,0);
  }
  builder.print(printer);
}

private static < T > void displayPropertyValues ( ConsoleApplication app , PropertyDefinition < T > pd , Collection < T > values ) { TableBuilder builder = new TableBuilder ( ) ; PropertyValuePrinter valuePrinter = new PropertyValuePrinter ( null , null , false ) ; int sz = values . size ( ) ; boolean useMultipleColumns = ( sz >= MULTI_COLUMN_THRESHOLD ) ; int rows = sz ; if ( useMultipleColumns ) { rows /= 2 ; rows += sz % 2 ; } List < T > vl = new ArrayList < > ( values ) ; for ( int i = 0 , j = rows ; i < rows ; i ++ , j ++ ) { builder . startRow ( ) ; builder . appendCell ( "*)" ) ; builder . appendCell ( valuePrinter . print ( pd , vl . get ( i ) ) ) ; if ( useMultipleColumns && j < sz ) { builder . appendCell ( ) ; builder . appendCell ( "*)" ) ; builder . appendCell ( valuePrinter . print ( pd , vl . get ( j ) ) ) ; } } TextTablePrinter printer = new TextTablePrinter ( app . getErrorStream ( ) ) ; printer . setDisplayHeadings ( false ) ; printer . setIndentWidth ( 4 ) ; printer . setColumnWidth ( 1 , 0 ) ; if ( useMultipleColumns ) { printer . setColumnWidth ( 2 , 2 ) ; printer . setColumnWidth ( 4 , 0 ) ; } builder . print ( printer ) ; }
display a table of property values .
