Package ghidra.trace.model.data

# Interface TraceBasedDataTypeManager

All Superinterfaces:
  `DataTypeManager`, `DomainFileBasedDataTypeManager`, `FileBasedDataTypeManager`, `ProgramBasedDataTypeManager`

All Known Implementing Classes:
  `DBTraceDataTypeManager`

public interface TraceBasedDataTypeManager extends ProgramBasedDataTypeManager
A data type manager which is part of a `Trace`

- ## Field Summary

  ### Fields inherited from interface ghidra.program.model.data.DataTypeManager

  `BAD_DATATYPE_ID, BUILT_IN_ARCHIVE_KEY, BUILT_IN_ARCHIVE_UNIVERSAL_ID, BUILT_IN_DATA_TYPES_NAME, DEFAULT_DATATYPE_ID, LOCAL_ARCHIVE_KEY, LOCAL_ARCHIVE_UNIVERSAL_ID, NULL_DATATYPE_ID`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `default <T extends DataType>
  T`
  `addType(T dataType, DataTypeConflictHandler handler)`
  TODO: Petition to have this replace `DataTypeManager.addDataType(DataType, DataTypeConflictHandler)`
  `TracePlatform`
  `getPlatform()`
  Get the platform for which this data type manager is provided
  `default TraceProgramView`
  `getProgram()`
  Get the program instance associated with this datatype manager
  `Trace`
  `getTrace()`
  Get the trace of which this data type manager is a part
  `default <T extends DataType>
  T`
  `replaceType(DataType existingDt, T replacementDt, boolean updateCategoryPath)`
  TODO: Petition to have this replace `DataTypeManager.replaceDataType(DataType, DataType, boolean)`
  `default <T extends DataType>
  T`
  `resolveType(T dataType, DataTypeConflictHandler handler)`
  TODO: Petition to have this replace `DataTypeManager.resolve(DataType, DataTypeConflictHandler)`

  ### Methods inherited from interface ghidra.program.model.data.DataTypeManager

  `addDataType, addDataTypeManagerListener, addDataTypes, addInvalidatedListener, allowsDefaultBuiltInSettings, allowsDefaultComponentSettings, associateDataTypeWithArchive, close, contains, containsCategory, createCategory, disassociate, endTransaction, findDataType, findDataTypeForID, findDataTypes, findDataTypes, findEnumValueNames, flushEvents, getAddressMap, getAllComposites, getAllDataTypes, getAllDataTypes, getAllFunctionDefinitions, getAllStructures, getCallingConvention, getCategory, getCategory, getCategoryCount, getDataOrganization, getDataType, getDataType, getDataType, getDataType, getDataType, getDataTypeCount, getDataTypes, getDataTypesContaining, getDefaultCallingConvention, getDefinedCallingConventionNames, getFavorites, getID, getKnownCallingConventionNames, getLastChangeTimeForMyManager, getLocalSourceArchive, getName, getPointer, getPointer, getProgramArchitecture, getProgramArchitectureSummary, getResolvedID, getRootCategory, getSourceArchive, getSourceArchives, getType, getUniqueName, getUniversalID, isFavorite, isUpdatable, openTransaction, remove, remove, remove, removeDataTypeManagerListener, removeInvalidatedListener, removeSourceArchive, replaceDataType, resolve, resolveSourceArchive, setFavorite, setName, startTransaction, updateSourceArchiveName, updateSourceArchiveName, withTransaction, withTransaction`

  ### Methods inherited from interface ghidra.program.model.data.DomainFileBasedDataTypeManager

  `getDomainFile`

  ### Methods inherited from interface ghidra.program.model.data.FileBasedDataTypeManager

  `getPath`

  ### Methods inherited from interface ghidra.program.model.data.ProgramBasedDataTypeManager

  `clearAllSettings, clearSetting, deleteAddressRange, getInstanceSettingsNames, getLongSettingsValue, getSettings, getStringSettingsValue, isChangeAllowed, isEmptySetting, moveAddressRange, setLongSettingsValue, setSettings, setStringSettingsValue`

- ## Method Details

  - ### getProgram

    default TraceProgramView getProgram()
    Description copied from interface: `ProgramBasedDataTypeManager`
    Get the program instance associated with this datatype manager
    Specified by:
      `getProgram` in interface `ProgramBasedDataTypeManager`
    Returns:
      program instance associated with this datatype manager

  - ### getTrace

    Trace getTrace()
    Get the trace of which this data type manager is a part
    Returns:
      the trace

  - ### getPlatform

    TracePlatform getPlatform()
    Get the platform for which this data type manager is provided
    Returns:
      the platform

  - ### resolveType

    default <T extends DataType> T resolveType(T dataType, DataTypeConflictHandler handler)
    TODO: Petition to have this replace `DataTypeManager.resolve(DataType, DataTypeConflictHandler)`

    TODO: What happens if handler keeps existing? Does it return existing or null? If it returns the existing, then can we still cast to T? If not, then we have to be careful with this method. We may need to keep `resolve`, and have this one return null when the handler keeps the existing one.

  - ### addType

    default <T extends DataType> T addType(T dataType, DataTypeConflictHandler handler)
    TODO: Petition to have this replace `DataTypeManager.addDataType(DataType, DataTypeConflictHandler)`

    TODO: What happens if handler keeps existing? Does it return existing or null? If it returns the existing, then can we still cast to T? If not, then we have to be careful with this method. We may need to keep `addDataType`, and have this one return null when the handler keeps the existing one.

  - ### replaceType

    default <T extends DataType> T replaceType(DataType existingDt, T replacementDt, boolean updateCategoryPath) throws DataTypeDependencyException
    TODO: Petition to have this replace `DataTypeManager.replaceDataType(DataType, DataType, boolean)`
    Throws:
      `DataTypeDependencyException`