Package ghidra.util.table

# Class ProgramLocationTableRowMapper<ROW_TYPE,EXPECTED_ROW_TYPE>

java.lang.Object
docking.widgets.table.TableRowMapper<ROW_TYPE,EXPECTED_ROW_TYPE,Program>
ghidra.util.table.ProgramLocationTableRowMapper<ROW_TYPE,EXPECTED_ROW_TYPE>

Type Parameters:
  `ROW_TYPE` - The row type of a given table model
  `EXPECTED_ROW_TYPE` - The row type expected by dynamic columns (e.g., ProgramLocations, Addresses, etc).

All Implemented Interfaces:
  `ExtensionPoint`

Direct Known Subclasses:
  `AddressableRowObjectToAddressTableRowMapper`, `AddressableRowObjectToFunctionTableRowMapper`, `AddressableRowObjectToProgramLocationTableRowMapper`, `AddressTableToAddressTableRowMapper`, `AddressTableToProgramLocationTableRowMapper`, `AddressToFunctionContainingTableRowMapper`, `AddressToProgramLocationTableRowMapper`, `AddressToSymbolTableRowMapper`, `ProgramLocationToAddressTableRowMapper`, `ProgramLocationToFunctionContainingTableRowMapper`, `ProgramLocationToSymbolTableRowMapper`, `ReferenceToReferenceAddressPairTableRowMapper`, `SymbolToAddressTableRowMapper`, `SymbolToProgramLocationTableRowMapper`

public abstract class ProgramLocationTableRowMapper<ROW_TYPE,EXPECTED_ROW_TYPE> extends TableRowMapper<ROW_TYPE,EXPECTED_ROW_TYPE,Program>
NOTE: ALL TableRowMapper CLASSES MUST END IN "TableRowMapper". If not, the ClassSearcher will not find them. An interface that allows implementors to map an object of one type to another. This is useful for table models that have row types that are easily converted to other more generic types. For example, the Bookmarks table model's data is based upon Bookmark objects. Furthermore, those objects are easily converted to ProgramLocations and Addresses. By creating a mapper for the these types, the table model can now show dynamic columns that work on ProgramLocations and Addresses.

This interface is an ExtensionPoint so that once created, they will be ingested automatically by Ghidra. Once discovered, these mappers will be used to provide dynamic columns to to tables with row types that match `ROW_TYPE`.

This column is an extension of `TableRowMapper` that has knowledge of `ProgramLocationTableColumn`s, which means that it knows how to generate `ProgramLocation`s. This is the preferred mapper to use with tables that work on program data, as it means that the column works with navigation.

See Also:
  - `AbstractDynamicTableColumn`
  - `TableUtils`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `ProgramLocationTableRowMapper()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `<COLUMN_TYPE>
  DynamicTableColumn<ROW_TYPE,COLUMN_TYPE,Program>`
  `createMappedTableColumn(DynamicTableColumn<EXPECTED_ROW_TYPE,COLUMN_TYPE,Program> destinationColumn)`
  Creates a table column that will create a table column that knows how to map the given ROW_TYPE to the type of the column passed in, the EXPECTED_ROW_TYPE.

  ### Methods inherited from class docking.widgets.table.TableRowMapper

  `getDestinationType, getSourceType, map`

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Constructor Details

  - ### ProgramLocationTableRowMapper

    public ProgramLocationTableRowMapper()

- ## Method Details

  - ### createMappedTableColumn

    public <COLUMN_TYPE> DynamicTableColumn<ROW_TYPE,COLUMN_TYPE,Program> createMappedTableColumn(DynamicTableColumn<EXPECTED_ROW_TYPE,COLUMN_TYPE,Program> destinationColumn)
    Creates a table column that will create a table column that knows how to map the given ROW_TYPE to the type of the column passed in, the EXPECTED_ROW_TYPE.
    Overrides:
      `createMappedTableColumn` in class `TableRowMapper<ROW_TYPE,EXPECTED_ROW_TYPE,Program>`
    Type Parameters:
      `COLUMN_TYPE` - The column type of the given and created columns
    Parameters:
      `destinationColumn` - The existing column, which is based upon EXPECTED_ROW_TYPE, that we want to be able to use with the type we have, the ROW_TYPE.