Package ghidra.app.plugin.match

# Class Match

java.lang.Object
ghidra.app.plugin.match.Match

All Implemented Interfaces:
  `Comparable<Match>`

public class Match extends Object implements Comparable<Match>
Match maintains information about a single match between two programs. The match can consist of either bytes or code units.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `Match(Address thisBeginning, Address otherBeginning, byte[] bytes, int length)`
  `Match(Address thisBeginning, Address otherBeginning, CodeUnit[] codeUnits, CodeUnit[] otherUnits, int length)`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `int`
  `compareTo(Match m)`
  `void`
  `continueMatch(byte b)`
  `void`
  `continueMatch(CodeUnit cu, CodeUnit otherUnit)`
  `Address`
  `expectedAddressForNextMatch(int baseLength)`
  `Object[]`
  `getBytes()`
  `Address`
  `getOtherBeginning()`
  `Object[]`
  `getOtherBytes()`
  `Address`
  `getThisBeginning()`
  `int`
  `length()`
  `String`
  `printMatch()`
  `String`
  `toString()`
  `int`
  `totalLength()`

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

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

- ## Constructor Details

  - ### Match

    public Match(Address thisBeginning, Address otherBeginning, byte[] bytes, int length)
    Parameters:
      `thisBeginning` - The start Address of the match in the program from which the matches are being found.
      `otherBeginning` - The start Address of the match in the program to which the matches are being found.
      `bytes` - the bytes which make up this match.
      `length` - the length of the bytes array.

  - ### Match

    public Match(Address thisBeginning, Address otherBeginning, CodeUnit[] codeUnits, CodeUnit[] otherUnits, int length)
    Parameters:
      `thisBeginning` - The start Address of the match in the program from which the matches are being found.
      `otherBeginning` - The start Address of the match in the program to which the matches are being found.
      `codeUnits` - The CodeUnits which make up the match in this Program.
      `otherUnits` - The CodeUnits which make up this match in the other program. Note, the code units need no match up byte for byte.
      `length` - The length of the CodeUnit arrays.

- ## Method Details

  - ### continueMatch

    public void continueMatch(byte b)
    Parameters:
      `b` - Continue the match by adding the additional byte b.

  - ### continueMatch

    public void continueMatch(CodeUnit cu, CodeUnit otherUnit)
    Parameters:
      `cu` - The CodeUnit which extends the match in 'this' program.
      `otherUnit` - The CodeUnit which extends the match in 'the other' program.

  - ### length

    public int length()
    Returns:
      The number of items that make up this match.

  - ### totalLength

    public int totalLength()
    Returns:
      The total number of bytes that make up this match.

  - ### toString

    public String toString()
    Overrides:
      `toString` in class `Object`

  - ### getOtherBeginning

    public Address getOtherBeginning()
    Returns:
      The Address that starts the match in the other program.

  - ### getThisBeginning

    public Address getThisBeginning()
    Returns:
      The Address that starts the match in this program.

  - ### getBytes

    public Object[] getBytes()
    Returns:
      array containing the objects that make up the match in this program.

  - ### getOtherBytes

    public Object[] getOtherBytes()
    Returns:
      array containing the objects that make up the match in the other program.

  - ### printMatch

    public String printMatch()

  - ### compareTo

    public int compareTo(Match m)
    Specified by:
      `compareTo` in interface `Comparable<Match>`

  - ### expectedAddressForNextMatch

    public Address expectedAddressForNextMatch(int baseLength)
    Parameters:
      `baseLength` - the minimum number of items which make up a match. There are different values for instruction and byte matches. This value should either be NaiveMatchPlugin.MATCH_LENGTH_FOR_INSTRUCTIONS or NaiveMatchPlugin.MATCH_LENGTH_FOR_BYTES which can be found by calling getMatchLengthForInstructions() or getMatchLengthForBytes().
    Returns:
      The Address at which a continuing byte or code unit would be expected to be found in the other program.