Package ghidra.app.services

# Interface DataTypeReferenceFinder

All Superinterfaces:
  `ExtensionPoint`

public interface DataTypeReferenceFinder extends ExtensionPoint
An interface for extension points to implement. Implementations know how to find data type references.

Implementation class names must end with DataTypeReferenceFinder

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `findReferences(Program program, FieldMatcher fieldMatcher, Consumer<DataTypeReference> callback, TaskMonitor monitor)`
  Finds references in the current program to specific field of the given `Composite` type in a manner appropriate with the given implementation.
  `void`
  `findReferences(Program program, DataType dataType, String fieldName, Consumer<DataTypeReference> callback, TaskMonitor monitor)`
  Finds references in the current program to specific field of the given `Composite` type in a manner appropriate with the given implementation.
  `void`
  `findReferences(Program program, DataType dataType, Consumer<DataTypeReference> callback, TaskMonitor monitor)`
  Finds references in the current program in a manner appropriate with the given implementation.

- ## Method Details

  - ### findReferences

    void findReferences(Program program, DataType dataType, Consumer<DataTypeReference> callback, TaskMonitor monitor) throws CancelledException
    Finds references in the current program in a manner appropriate with the given implementation.

    Note that this operation is multi-threaded and that results will be delivered as they are found via the `callback`.

    Parameters:
      `program` - the program to search
      `dataType` - the type for which to search
      `callback` - the callback to be called when a reference is found
      `monitor` - the monitor that allows for progress and cancellation
    Throws:
      `CancelledException` - if the operation was cancelled

  - ### findReferences

    void findReferences(Program program, DataType dataType, String fieldName, Consumer<DataTypeReference> callback, TaskMonitor monitor) throws CancelledException
    Finds references in the current program to specific field of the given `Composite` type in a manner appropriate with the given implementation.

    Note that this operation is multi-threaded and that results will be delivered as they are found via the `callback`.

    Parameters:
      `program` - the program to search
      `dataType` - the type containing the field for which to search
      `fieldName` - the name of the composite's field for which to search; may be null
      `callback` - the callback to be called when a reference is found
      `monitor` - the monitor that allows for progress and cancellation
    Throws:
      `CancelledException` - if the operation was cancelled

  - ### findReferences

    void findReferences(Program program, FieldMatcher fieldMatcher, Consumer<DataTypeReference> callback, TaskMonitor monitor) throws CancelledException
    Finds references in the current program to specific field of the given `Composite` type in a manner appropriate with the given implementation.

    The supplied field matcher will be used to restrict matches to the given field. The matcher may be 'empty', supplying only the data type for which to search. In this case, all uses of the type will be matched, regardless of field.

    Note that this operation is multi-threaded and that results will be delivered as they are found via the `callback`.

    Parameters:
      `program` - the program to search
      `fieldMatcher` - the field matcher to use for matching types
      `callback` - the callback to be called when a reference is found
      `monitor` - the monitor that allows for progress and cancellation
    Throws:
      `CancelledException` - if the operation was cancelled