Package ghidra.app.merge.propertylist

# Class PropertyListMergeManager

java.lang.Object
ghidra.app.merge.propertylist.PropertyListMergeManager

All Implemented Interfaces:
  `MergeResolver`

public class PropertyListMergeManager extends Object implements MergeResolver
Manages options changes and conflicts between the latest versioned Program and the Program that is being checked into version control.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `PropertyListMergeManager(ProgramMultiUserMergeManager mergeManager, Program resultProgram, Program myProgram, Program originalProgram, Program latestProgram)`
  Construct a new PropertyListMergeManager.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `apply()`
  Notification that the apply button was hit.
  `void`
  `cancel()`
  Notification that the merge process was canceled.
  `String`
  `getDescription()`
  Get the description of what this MergeResolver does.
  `String`
  `getName()`
  Get the name of this MergeResolver.
  `String[][]`
  `getPhases()`
  Gets identifiers for the merge phases handled by this MergeResolver.
  `void`
  `merge(TaskMonitor monitor)`
  Perform the merge process.

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

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

- ## Constructor Details

  - ### PropertyListMergeManager

    public PropertyListMergeManager(ProgramMultiUserMergeManager mergeManager, Program resultProgram, Program myProgram, Program originalProgram, Program latestProgram)
    Construct a new PropertyListMergeManager.
    Parameters:
      `mergeManager` - manages each stage of the merge/resolve conflict process
      `resultProgram` - latest version of the Program that is the destination for changes that will be applied from the source program
      `myProgram` - source of changes to apply to the result program
      `originalProgram` - program that was originally checked out
      `latestProgram` - program that that is the latest version; the resultProgram and latestProgram start out the same

- ## Method Details

  - ### apply

    public void apply()
    Description copied from interface: `MergeResolver`
    Notification that the apply button was hit.
    Specified by:
      `apply` in interface `MergeResolver`

  - ### cancel

    public void cancel()
    Description copied from interface: `MergeResolver`
    Notification that the merge process was canceled.
    Specified by:
      `cancel` in interface `MergeResolver`

  - ### getDescription

    public String getDescription()
    Description copied from interface: `MergeResolver`
    Get the description of what this MergeResolver does.
    Specified by:
      `getDescription` in interface `MergeResolver`

  - ### getName

    public String getName()
    Description copied from interface: `MergeResolver`
    Get the name of this MergeResolver.
    Specified by:
      `getName` in interface `MergeResolver`

  - ### merge

    public void merge(TaskMonitor monitor)
    Description copied from interface: `MergeResolver`
    Perform the merge process.
    Specified by:
      `merge` in interface `MergeResolver`
    Parameters:
      `monitor` - monitor that allows the user to cancel the merge operation

  - ### getPhases

    public String[][] getPhases()
    Description copied from interface: `MergeResolver`
    Gets identifiers for the merge phases handled by this MergeResolver. If the merge has no sub-phases then return an array with a single string array. Each inner String array indicates a path for a single merge phase. Each outer array element represents a phase whose progress we wish to indicate.
    Examples:
    So for a simple phase which has no sub-phases return `new String[][] {new String[] {"Phase A"}}`
    So for a phase with 2 sub-phases return `new String[][] { new String[] {"Phase A"}, new String[] {"Phase A", "Sub-Phase 1}, new String[] {"Phase A", "Sub-Phase 2} }` .
    Specified by:
      `getPhases` in interface `MergeResolver`
    Returns:
      an array of phases.