ColumnIndexUtilities { public static int getMaxUiHeaderRowIndexOfColumn(final GridData model, final int uiColumnIndex) { return model.getColumns().get(uiColumnIndex).getHeaderMetaData().size() - 1; }  static int findUiColumnIndex(final List<GridColumn<?>> columns,
                                        final int modelColumnIndex); @SuppressWarnings("unchecked") static int getHeaderBlockStartColumnIndex(final List<GridColumn<?>> allColumns,
                                                     final GridColumn.HeaderMetaData headerMetaData,
                                                     final int headerRowIndex,
                                                     final int headerColumnIndex); @SuppressWarnings("unchecked") static int getHeaderBlockEndColumnIndex(final List<GridColumn<?>> allColumns,
                                                   final GridColumn.HeaderMetaData headerMetaData,
                                                   final int headerRowIndex,
                                                   final int headerColumnIndex); static int getMaxUiHeaderRowIndexOfColumn(final GridData model, final int uiColumnIndex);  }
@Test public void testGetUiHeaderRowIndex() { final BaseGridData model = new BaseGridData(); columns.forEach(col -> model.appendColumn(col)); assertEquals(0, ColumnIndexUtilities.getMaxUiHeaderRowIndexOfColumn(model, 0)); columns.get(1).getHeaderMetaData().add(new BaseHeaderMetaData("col1", "second-row")); assertEquals(1, ColumnIndexUtilities.getMaxUiHeaderRowIndexOfColumn(model, 1)); }