code: protected TableColumnHeader createTableColumnHeader(TableColumnBase col) {
          return col.getColumns().isEmpty() ?
              new JFXTableColumnHeader(getTableViewSkin(), col) :
              new NestedTableColumnHeader(getTableViewSkin(), col);
      }
docs: protected to allow subclasses to customise the column header types