Class XRefFieldFactory

java.lang.Object
ghidra.app.util.viewer.field.FieldFactory
ghidra.app.util.viewer.field.XRefFieldFactory
All Implemented Interfaces:
ExtensionPoint
Direct Known Subclasses:
VariableXRefFieldFactory, XRefHeaderFieldFactory

public class XRefFieldFactory extends FieldFactory
Cross-reference Field Factory
  • Field Details Link icon

    • FIELD_NAME Link icon

      public static final String FIELD_NAME
      See Also:
    • sortChoice Link icon

      protected XRefFieldFactory.SORT_CHOICE sortChoice
    • delim Link icon

      protected String delim
    • displayBlockName Link icon

      protected boolean displayBlockName
    • groupByFunction Link icon

      protected boolean groupByFunction
    • maxXRefs Link icon

      protected int maxXRefs
    • displayRefType Link icon

      protected boolean displayRefType
    • typeComparator Link icon

      protected Comparator<Reference> typeComparator
    • displayLocalNamespace Link icon

      protected boolean displayLocalNamespace
    • displayNonLocalNamespace Link icon

      protected boolean displayNonLocalNamespace
    • useLocalPrefixOverride Link icon

      protected boolean useLocalPrefixOverride
    • localPrefixText Link icon

      protected String localPrefixText
  • Constructor Details Link icon

    • XRefFieldFactory Link icon

      public XRefFieldFactory()
    • XRefFieldFactory Link icon

      protected XRefFieldFactory(String name)
    • XRefFieldFactory Link icon

      public XRefFieldFactory(FieldFormatModel model, ListingHighlightProvider hlProvider, Options displayOptions, ToolOptions fieldOptions)
      Constructor
      Parameters:
      model - the model that the field belongs to.
      hlProvider - the HightLightProvider.
      displayOptions - the Options for display properties.
      fieldOptions - the Options for field specific properties.
    • XRefFieldFactory Link icon

      protected XRefFieldFactory(String name, FieldFormatModel model, ListingHighlightProvider hlProvider, Options displayOptions, ToolOptions fieldOptions)
      Constructs a new XRefFieldFactory based on the provider and model.
      Parameters:
      name - the owner of this field factory
      model - the model that the field belongs to.
      hlProvider - the HightLightProvider.
      displayOptions - the Options for display properties.
      fieldOptions - the Options for field specific properties.
  • Method Details Link icon

    • fieldOptionsChanged Link icon

      public void fieldOptionsChanged(Options options, String optionName, Object oldValue, Object newValue)
      Description copied from class: FieldFactory
      Notifications that the field options changed.
      Overrides:
      fieldOptionsChanged in class FieldFactory
      Parameters:
      options - the Field Options object that changed.
      optionName - the name of the property that changed.
      oldValue - the old value of the property.
      newValue - the new value of the property.
    • getField Link icon

      public ListingField getField(ProxyObj<?> proxy, int varWidth)
      Description copied from class: FieldFactory
      Generates a Field based on the given information.
      Specified by:
      getField in class FieldFactory
      Parameters:
      proxy - The object that the generated field will report some information about.
      varWidth - the additional distance along the x axis to place the generated field.
      Returns:
      the newly generated FactoryField that shows some property or information about the given object.
    • createRefTypeAttributedString Link icon

      protected AttributedString createRefTypeAttributedString(Reference reference, AttributedString referenceString)
    • getPrefix Link icon

      protected String getPrefix(Program program, Reference reference, Function currentFunction)
    • getFieldLocation Link icon

      public FieldLocation getFieldLocation(ListingField bf, BigInteger index, int fieldNum, ProgramLocation loc)
      Description copied from class: FieldFactory
      Return a FieldLocation that corresponds to the given index, fieldNum, and ProgramLocation IF and ONLY IF the given programLocation is the type generated by this class's FieldFactory.getFieldLocation(ListingField, BigInteger, int, ProgramLocation). Each FieldFactory should generate and process a unique ProgramLocation class.
      Specified by:
      getFieldLocation in class FieldFactory
      Parameters:
      bf - the ListingField at the current cursor.
      index - the line index (corresponds to an address)
      fieldNum - the index of field within the layout to try and get a FieldLocation.
      loc - the ProgramLocation to be converted into a FieldLocation.
      Returns:
      the location.
    • createFieldLocation Link icon

      protected FieldLocation createFieldLocation(int xrefPos, int xrefIndex, ListingTextField field, BigInteger index, int fieldNum)
    • getProgramLocation Link icon

      public ProgramLocation getProgramLocation(int row, int col, ListingField listingField)
      Description copied from class: FieldFactory
      Returns the Program location for the given object, row, col, and groupPath
      Specified by:
      getProgramLocation in class FieldFactory
      Parameters:
      row - the row within this field
      col - the col on the given row within this field.
      listingField - the ListingField containing the cursor.
      Returns:
      the location.
    • getBlockName Link icon

      protected String getBlockName(Program pgm, Address addr)
    • getXRefLocation Link icon

      protected Address getXRefLocation(Object obj)
      Get an address location for this object.
      Parameters:
      obj - object to get location from
      Returns:
      the address
    • getProgram Link icon

      protected Program getProgram(Object obj)
    • acceptsType Link icon

      public boolean acceptsType(int category, Class<?> proxyObjectClass)
      Description copied from class: FieldFactory
      Used to specify which format models this field can belong to.
      Specified by:
      acceptsType in class FieldFactory
      Parameters:
      category - the category for this field
      proxyObjectClass - the type of proxy object used by this field
      Returns:
      true if this class accepts the given category.
    • newInstance Link icon

      public FieldFactory newInstance(FieldFormatModel formatModel, ListingHighlightProvider provider, ToolOptions toolOptions, ToolOptions fieldOptions)
      Description copied from class: FieldFactory
      Returns a new instance of this FieldFactory that can be used to generate fields instead of being used as a prototype.
      Specified by:
      newInstance in class FieldFactory
      Parameters:
      formatModel - the model that the field belongs to.
      provider - the HightLightProvider.
      toolOptions - the Options for display properties.
      fieldOptions - the Options for field specific properties.
      Returns:
      the factory