@Override
	public void setValueAt(Object aValue, int rowIndex, int columnIndex) {
		DynamicTableColumn<R, ?, ?> column = tableColumns.get(columnIndex);
		if (!(column instanceof EditableDynamicTableColumn)) {
			return; // TODO: throw?
		}
		@SuppressWarnings("unchecked") // tableColumns doesn't include DATA_SOURCE
		// May cause ClassCastException if given value can't be cast. Good.
		EditableDynamicTableColumn<R, Object, Void> editable =
			(EditableDynamicTableColumn<R, Object, Void>) column;
		synchronized (modelData) {
			if (rowIndex < 0 || rowIndex >= modelData.size()) {
				return; // TODO: throw?
			}
			R row = modelData.get(rowIndex);
			editable.setValueOf(row, aValue, columnSettings.get(column), getDataSource(),
				serviceProvider);
		}
		fireTableCellUpdated(rowIndex, columnIndex);
	}
Get the default sort order of the table

@return the list of columns in order of descending priority
Ghidra/Debug/ProposedUtils/src/main/java/docking/widgets/table/DefaultEnumeratedColumnTableModel.java