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 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:
    • 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.