@Override
	public final Component getTableCellRendererComponent(JTable table, Object value,
			boolean isSelected, boolean hasFocus, int row, int column) {

		if (!(table instanceof GTable)) {
			throw new AssertException(
				"Using a GTableCellRenderer in a non-GTable table. (Model class: " +
					table.getModel().getClass().getName() + ")");
		}

		GTable gTable = (GTable) table;
		GTableCellRenderingData data = gTable.getRenderingData(column);
		Object rowObject = null;

		if (gTable.getModel() instanceof RowObjectTableModel) {
			rowObject = ((RowObjectTableModel<?>) gTable.getModel()).getRowObject(row);
		}

		data.setRowData(row, rowObject);
		data.setCellData(value, column, isSelected, hasFocus);

		Component renderComponent = getTableCellRendererComponent(data);

		data.resetRowData();

		return renderComponent;
	}
Satisfies the Java {@link javax.swing.table.TableCellRenderer} interface; retrieves column
data via a GTableCellRenderingData object, and defers painting to
{@link #getTableCellRendererComponent(GTableCellRenderingData)}.
<p>
This is marked <code>final</code> to redirect subclasses to the enhanced method,
{@link #getTableCellRendererComponent(GTableCellRenderingData)}.
<p>
Throws an AssertException if the table this renderer is used with is not a
{@link docking.widgets.table.GTable} instance.

@see javax.swing.table.TableCellRenderer#getTableCellRendererComponent(javax.swing.JTable,
     java.lang.Object, boolean, boolean, int, int)
@see #getTableCellRendererComponent(GTableCellRenderingData)
Ghidra/Framework/Docking/src/main/java/docking/widgets/table/GTableCellRenderer.java