Package ghidra.program.util

# Class CommentFieldLocation

java.lang.Object
ghidra.program.util.ProgramLocation
ghidra.program.util.CodeUnitLocation
ghidra.program.util.CommentFieldLocation

All Implemented Interfaces:
  `Cloneable`, `Comparable<ProgramLocation>`

Direct Known Subclasses:
  `AutomaticCommentFieldLocation`, `BlockStartLocation`, `EolCommentFieldLocation`, `MemoryBlockStartFieldLocation`, `PlateFieldLocation`, `PostCommentFieldLocation`, `RefRepeatCommentFieldLocation`, `RepeatableCommentFieldLocation`

public class CommentFieldLocation extends CodeUnitLocation
The `CommentFieldLocation` class contains specific location information within the COMMENTS field of a CodeUnitLocation object.

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `protected String[]`
  `comment`
  `protected int`
  `type`

  ### Fields inherited from class ghidra.program.util.ProgramLocation

  `addr, program, refAddr`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `CommentFieldLocation()`
  Default constructor needed for restoring a comment field location from XML.
  `CommentFieldLocation(Program program, Address addr, int[] componentPath, String[] comment, int type, int row, int charOffset)`
  Construct a new CommentFieldLocation.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `boolean`
  `equals(Object obj)`
  `String[]`
  `getComment()`
  Returns the array of strings that make up the comment.
  `int`
  `getCommentType()`
  Returns the comment type.
  `int`
  `hashCode()`
  `void`
  `restoreState(Program p, SaveState obj)`
  Restore this program location using the given program and save state object.
  `void`
  `saveState(SaveState obj)`
  Save this program location to the given save state object.
  `String`
  `toString()`
  Returns a String representation of this location.
  `protected void`
  `validateType()`
  Checks that the type is a valid comment type.

  ### Methods inherited from class ghidra.program.util.CodeUnitLocation

  `isValid`

  ### Methods inherited from class ghidra.program.util.ProgramLocation

  `clone, compareAddr, compareTo, getAddress, getByteAddress, getCharOffset, getColumn, getComponentPath, getLocation, getProgram, getRefAddress, getRow, getTranslatedCopy`

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

  `finalize, getClass, notify, notifyAll, wait, wait, wait`

- ## Field Details

  - ### comment

    protected String[] comment

  - ### type

    protected int type

- ## Constructor Details

  - ### CommentFieldLocation

    public CommentFieldLocation(Program program, Address addr, int[] componentPath, String[] comment, int type, int row, int charOffset)
    Construct a new CommentFieldLocation.
    Parameters:
      `program` - the program of the location
      `addr` - address of the location; should not be null hierarchy names; this parameter may be null
      `componentPath` - if not null, it is the array of indexes that point to a specific data type inside of another data type
      `comment` - The array of strings that make up the comment
      `type` - The type of this comment. Can be either CodeUnit.PRE_COMMENT, CodeUnit.POST_COMMENT, CodeUnit.PLATE_COMMENT, CodeUnit.EOL_COMMENT, or CodeUnit.REPEATABLE_COMMENT.
      `row` - The index of the string that contains the exact location.
      `charOffset` - The position within the string that specifies the exact location.
    Throws:
      `IllegalArgumentException` - Thrown if type is not one of the comment values given in `CodeUnit`

  - ### CommentFieldLocation

    public CommentFieldLocation()
    Default constructor needed for restoring a comment field location from XML.

- ## Method Details

  - ### validateType

    protected void validateType()
    Checks that the type is a valid comment type.
    Throws:
      `IllegalArgumentException` - if this doesn't have a valid comment type.

  - ### getComment

    public String[] getComment()
    Returns the array of strings that make up the comment.
    Returns:
      the comment

  - ### getCommentType

    public int getCommentType()
    Returns the comment type. The type is either CodeUnit.EOL_COMMENT, CodeUnit.POST_COMMENT, CodeUnit.PLATE_COMMENT, CodeUnit.PRE_COMMENT, or CodeUnit.REPEATABLE_COMMENT.
    Returns:
      the comment type

  - ### toString

    public String toString()
    Returns a String representation of this location.
    Overrides:
      `toString` in class `ProgramLocation`

  - ### hashCode

    public int hashCode()
    Overrides:
      `hashCode` in class `ProgramLocation`

  - ### equals

    public boolean equals(Object obj)
    Overrides:
      `equals` in class `ProgramLocation`

  - ### saveState

    public void saveState(SaveState obj)
    Description copied from class: `ProgramLocation`
    Save this program location to the given save state object.
    Overrides:
      `saveState` in class `ProgramLocation`
    Parameters:
      `obj` - the save state object for saving the location

  - ### restoreState

    public void restoreState(Program p, SaveState obj)
    Description copied from class: `ProgramLocation`
    Restore this program location using the given program and save state object.
    Overrides:
      `restoreState` in class `ProgramLocation`
    Parameters:
      `p` - program to restore from
      `obj` - the save state to restore from