Package ghidra.program.model.listing

# Class CodeUnitFormat

java.lang.Object
ghidra.program.model.listing.CodeUnitFormat

Direct Known Subclasses:
  `BrowserCodeUnitFormat`

public class CodeUnitFormat extends Object

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static CodeUnitFormat`
  `DEFAULT`
  Default code unit format
  `static String`
  `EXTENDED_INDIRECT_REFERENCE_DELIMITER`
  `static String`
  `EXTENDED_REFERENCE_DELIMITER`
  `protected CodeUnitFormatOptions`
  `options`
  `protected static final String`
  `PLUS`
  `protected static final String`
  `UNDERSCORE`

- ## Constructor Summary

  Constructors
  Modifier
  Constructor
  Description
  `protected`
  `CodeUnitFormat()`
  Default constructor using default format options
  ``
  `CodeUnitFormat(CodeUnitFormatOptions options)`
  Format constructor with more options.
  ``
  `CodeUnitFormat(CodeUnitFormatOptions.ShowBlockName showBlockName, CodeUnitFormatOptions.ShowNamespace showNamespace)`
  Format constructor.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `protected String`
  `addOffcutInformation(String prefix, String addressString, int diff, boolean decorate)`
  `OperandRepresentationList`
  `getDataValueRepresentation(Data data)`
  Returns a formatted data value for the specified data unit.
  `String`
  `getDataValueRepresentationString(Data data)`
  Returns a formatted data value for the specified data unit.
  `protected String`
  `getDefaultOffcutString(Symbol symbol, CodeUnit cu, long diff, boolean decorate)`
  `String`
  `getMnemonicRepresentation(CodeUnit cu)`
  Returns a formatted code unit mnemonic
  `protected String`
  `getOffcutDataString(Address offcutAddress, Data data)`
  `String`
  `getOffcutLabelString(Address offcutAddress, CodeUnit cu, Address markupAddress)`
  `protected String`
  `getOffcutLabelStringForInstruction(Address offcutAddress, Instruction instruction, Address markupAddress)`
  Generate label string.
  `OperandRepresentationList`
  `getOperandRepresentationList(CodeUnit cu, int opIndex)`
  Returns a formatted list of operand objects for the specified code unit operand.
  `String`
  `getOperandRepresentationString(CodeUnit cu, int opIndex)`
  Returns a formatted string representation of the specified code unit operand.
  `protected String`
  `getPrefixForStringData(Data data, Address dataAddress, int diff, DataType dt)`
  `String`
  `getReferenceRepresentationString(CodeUnit fromCodeUnit, Reference ref)`
  Returns a marked-up representation of the reference destination.
  `String`
  `getRepresentationString(CodeUnit cu)`
  Returns a formatted string representation of the specified code unit, including mnemonic and operand(s) only.
  `String`
  `getRepresentationString(CodeUnit cu, boolean includeEOLcomment)`
  Returns a formatted string representation of the specified code unit mnemonic and operand(s).
  `CodeUnitFormatOptions.ShowBlockName`
  `getShowBlockName()`
  Returns ShowBlockName setting

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

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

- ## Field Details

  - ### PLUS

    protected static final String PLUS
    See Also:
      - Constant Field Values

  - ### UNDERSCORE

    protected static final String UNDERSCORE
    See Also:
      - Constant Field Values

  - ### EXTENDED_REFERENCE_DELIMITER

    public static String EXTENDED_REFERENCE_DELIMITER

  - ### EXTENDED_INDIRECT_REFERENCE_DELIMITER

    public static String EXTENDED_INDIRECT_REFERENCE_DELIMITER

  - ### DEFAULT

    public static CodeUnitFormat DEFAULT
    Default code unit format

  - ### options

    protected CodeUnitFormatOptions options

- ## Constructor Details

  - ### CodeUnitFormat

    protected CodeUnitFormat()
    Default constructor using default format options

  - ### CodeUnitFormat

    public CodeUnitFormat(CodeUnitFormatOptions.ShowBlockName showBlockName, CodeUnitFormatOptions.ShowNamespace showNamespace)
    Format constructor.
    Parameters:
      `showBlockName` - whether or not to display block name; {SHOW_BLOCKNAME_ALWAYS, SHOW_BLOCKNAME_NEVER, SHOW_SEGMENT_NON_LOCAL}
      `showNamespace` - if true display labels with their name-space path.

  - ### CodeUnitFormat

    public CodeUnitFormat(CodeUnitFormatOptions options)
    Format constructor with more options. Extended reference mark-up is enabled.
    Parameters:
      `options` - format options

- ## Method Details

  - ### getRepresentationString

    public String getRepresentationString(CodeUnit cu)
    Returns a formatted string representation of the specified code unit, including mnemonic and operand(s) only.
    Parameters:
      `cu` - code unit
    Returns:
      formatted code unit representation

  - ### getRepresentationString

    public String getRepresentationString(CodeUnit cu, boolean includeEOLcomment)
    Returns a formatted string representation of the specified code unit mnemonic and operand(s).
    Parameters:
      `cu` - code unit
      `includeEOLcomment` - if true EOL comment will be appended to code unit representation
    Returns:
      formatted code unit representation

  - ### getMnemonicRepresentation

    public String getMnemonicRepresentation(CodeUnit cu)
    Returns a formatted code unit mnemonic
    Parameters:
      `cu` - code unit
    Returns:
      mnemonic representation

  - ### getOperandRepresentationString

    public String getOperandRepresentationString(CodeUnit cu, int opIndex)
    Returns a formatted string representation of the specified code unit operand.
    Parameters:
      `cu` - code unit
      `opIndex` -
    Returns:
      formatted code unit representation

  - ### getOperandRepresentationList

    public OperandRepresentationList getOperandRepresentationList(CodeUnit cu, int opIndex)
    Returns a formatted list of operand objects for the specified code unit operand. In the case of Data opIndex=1, this will be a list containing a single String object (see getDataValueRepresentation(Data)). In the case of an Instruction, the list will contain a list of Objects, including any combination of Character, String, VariableOffset, Register, Address, Scalar, List, LabelString etc.. All objects returned must support the toString() method.
    Parameters:
      `cu` - code unit
      `opIndex` - operand index
    Returns:
      list of representation objects or null for an unsupported language.

  - ### getDataValueRepresentation

    public OperandRepresentationList getDataValueRepresentation(Data data)
    Returns a formatted data value for the specified data unit. The return list will contain a single object which may be an instance of String, LabelString, Address, Scalar or Equate
    Parameters:
      `data` - data unit
    Returns:
      representation list containing a single object.

  - ### getDataValueRepresentationString

    public String getDataValueRepresentationString(Data data)
    Returns a formatted data value for the specified data unit.
    Parameters:
      `data` - data unit
    Returns:
      data value string

  - ### getReferenceRepresentationString

    public String getReferenceRepresentationString(CodeUnit fromCodeUnit, Reference ref)
    Returns a marked-up representation of the reference destination.
    Parameters:
      `fromCodeUnit` -
      `ref` -
    Returns:
      destination as a string or null if a suitable string could not be produced.

  - ### getOffcutLabelString

    public String getOffcutLabelString(Address offcutAddress, CodeUnit cu, Address markupAddress)

  - ### getOffcutDataString

    protected String getOffcutDataString(Address offcutAddress, Data data)

  - ### getOffcutLabelStringForInstruction

    protected String getOffcutLabelStringForInstruction(Address offcutAddress, Instruction instruction, Address markupAddress)
    Generate label string. This may serve two use cases:
    - Generating operand label at markupAddress for referenced instruction and offcutAddress
    - Generating offcut label for an offcutAddress with instruction (markupAddress=null)
    Parameters:
      `offcutAddress` - address for which generated label represents
      `instruction` - instruction containing offcut address
      `markupAddress` - address where a label will be referenced from (may be null)
    Returns:
      generated offcut label

  - ### addOffcutInformation

    protected String addOffcutInformation(String prefix, String addressString, int diff, boolean decorate)

  - ### getPrefixForStringData

    protected String getPrefixForStringData(Data data, Address dataAddress, int diff, DataType dt)

  - ### getDefaultOffcutString

    protected String getDefaultOffcutString(Symbol symbol, CodeUnit cu, long diff, boolean decorate)

  - ### getShowBlockName

    public CodeUnitFormatOptions.ShowBlockName getShowBlockName()
    Returns ShowBlockName setting