Class FunctionTagFieldFactory

java.lang.Object
ghidra.app.util.viewer.field.FieldFactory
ghidra.app.util.viewer.field.FunctionTagFieldFactory
All Implemented Interfaces:
ExtensionPoint

public class FunctionTagFieldFactory extends FieldFactory
Generates a text label that lists the function tags for each Function. The label will will appear as part of the FUNCTION group in the field map.
  • Field Details

  • Constructor Details

    • FunctionTagFieldFactory

      public FunctionTagFieldFactory()
      Default Constructor
  • Method Details

    • getField

      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.
    • getProgramLocation

      public ProgramLocation getProgramLocation(int row, int col, ListingField bf)
      Overridden to ensure that we return` a FunctionTagFieldLocation instance.
      Specified by:
      getProgramLocation in class FieldFactory
      Parameters:
      row - the row within this field
      col - the col on the given row within this field.
      bf - the ListingField containing the cursor.
      Returns:
      the location.
    • getFieldLocation

      public FieldLocation getFieldLocation(ListingField listingField, BigInteger index, int fieldNum, ProgramLocation programLoc)
      Overridden to ensure that we only place function tag text on the header of a function.
      Specified by:
      getFieldLocation in class FieldFactory
      Parameters:
      listingField - 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.
      programLoc - the ProgramLocation to be converted into a FieldLocation.
      Returns:
      the location.
    • acceptsType

      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

      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
    • createFunctionTagElements

      protected List<FieldElement> createFunctionTagElements(FunctionDB function)
      Creates a tags list field to be show at the beginning of each function that shows the tags assigned to that function.
      Parameters:
      function - the function to retrieve the tags from
      Returns:
      the elements