question: 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 ) ; }
target:  Display a table of property values. 