public static <ROW_TYPE> Collection<DynamicTableColumn<ROW_TYPE, ?, ?>> getDynamicTableColumns(
			Class<ROW_TYPE> rowTypeClass) {

		Collection<DynamicTableColumn<?, ?, ?>> columnExtensions = getTableColumExtensions();
		Set<DynamicTableColumn<ROW_TYPE, ?, ?>> dataSet = new HashSet<>();
		for (DynamicTableColumn<?, ?, ?> column : columnExtensions) {
			Collection<DynamicTableColumn<ROW_TYPE, Object, Object>> mappedColumns =
				getTableColumnForTypes(rowTypeClass, column);
			dataSet.addAll(mappedColumns);
		}

		return dataSet;
	}
Returns all "discovered" {@link AbstractDynamicTableColumn} classes that are compatible with the
given class, which represents the object for a table's row.  For example, many tables use
<code>Address</code> as the row type.  In this case, passing <code>Address.class</code> as the
parameter to this method will return all {@link AbstractDynamicTableColumn}s that can provide column
data by working with <code>Address</code> instances.

<p><u>Usage Notes:</u>  This class will not only discover {@link AbstractDynamicTableColumn}s
that directly support the given class type, but will also use discovered
{@link TableRowMapper} objects to create adapters that allow the
use of table row data that does not exactly match the supported type of discovered
{@link AbstractDynamicTableColumn} classes.  For example, suppose that a table's row type is
<code>Address</code>.  This methods will return at least all {@link AbstractDynamicTableColumn}s
that support <code>Address</code> data.  In order to support extra columns, Ghidra has
created a {@link TableRowMapper} that can convert a <code>ProgramLocation</code> into an
<code>Address</code>.  This method will find and use this mapper to return a
{@link MappedTableColumn} instance (which is an {@link AbstractDynamicTableColumn}).  By doing
this, any table that has <code>Address</code> objects as its row type can now use
{@link AbstractDynamicTableColumn}s that support <code>ProgramLocations</code> in addition to
<code>Address</code> objects.  These mappers provide a way for tables that have non-standard
Ghidra data as their row type to take advantage of existing dynamic columns for standard
Ghidra data (like ProgramLocations and Addresses).

@param rowTypeClass table's row type 
@return the discovered column
Ghidra/Framework/Docking/src/main/java/docking/widgets/table/DiscoverableTableUtils.java