Package ghidra.app.merge.datatypes

# Class DataTypeMergeManager

java.lang.Object
ghidra.app.merge.datatypes.DataTypeMergeManager

All Implemented Interfaces:
  `MergeResolver`

public class DataTypeMergeManager extends Object implements MergeResolver
Manager for merging category and data type changes

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `DataTypeMergeManager(DomainObjectMergeManager mergeManager, DataTypeManagerDomainObject resultDomainObject, DataTypeManagerDomainObject myDomainObject, DataTypeManagerDomainObject originalDomainObject, DataTypeManagerDomainObject latestDomainObject, DataTypeChangeSet latestChanges, DataTypeChangeSet myChanges)`
  Manager for merging the data types using the four programs.

- ## 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)`
  Merge the data types using the four programs.

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

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

- ## Constructor Details

  - ### DataTypeMergeManager

    public DataTypeMergeManager(DomainObjectMergeManager mergeManager, DataTypeManagerDomainObject resultDomainObject, DataTypeManagerDomainObject myDomainObject, DataTypeManagerDomainObject originalDomainObject, DataTypeManagerDomainObject latestDomainObject, DataTypeChangeSet latestChanges, DataTypeChangeSet myChanges)
    Manager for merging the data types using the four programs.
    Parameters:
      `mergeManager` - overall merge manager for domain object
      `resultDomainObject` - the program to be updated with the result of the merge. This is the program that will actually get checked in.
      `myDomainObject` - the program requesting to be checked in.
      `originalDomainObject` - the program that was checked out.
      `latestDomainObject` - the latest checked-in version of the program.
      `latestChanges` - the address set of changes between original and latest versioned program.
      `myChanges` - the address set of changes between original and my modified program.

- ## 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)
    Merge the data types using the four programs.
    Specified by:
      `merge` in interface `MergeResolver`
    Parameters:
      `monitor` - merge task monitor
    See Also:
      - `MergeConstants`

  - ### 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.