Class ProgramContextMergeManager

  • All Implemented Interfaces:
    ListingMergeConstants, MergeResolver

    public class ProgramContextMergeManager
    extends java.lang.Object
    implements MergeResolver, ListingMergeConstants
    ProgramContextMergeManager merges register value changes for multi-user program versions. It merges changes for each named register in the program.
    Note: If a register gets changed that is part of another register that has been set, then each named register will get merged independently. This means that when in conflict with another version the conflict would arise for each instead of just the larger register.
    • Constructor Detail

      • ProgramContextMergeManager

        public ProgramContextMergeManager​(ProgramMultiUserMergeManager mergeManager,
                                          Program resultPgm,
                                          Program originalPgm,
                                          Program latestPgm,
                                          Program myPgm,
                                          ProgramChangeSet latestChanges,
                                          ProgramChangeSet myChanges)
        Creates a new ProgramContextMergeManager.
        resultPgm - the program to be updated with the result of the merge. This is the program that will actually get checked in.
        originalPgm - the program that was checked out.
        latestPgm - the latest checked-in version of the program.
        myPgm - the program requesting to be checked in.
        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 Detail

      • 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 java.lang.String getDescription()
        Description copied from interface: MergeResolver
        Get the description of what this MergeResolver does.
        Specified by:
        getDescription in interface MergeResolver
      • getName

        public java.lang.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
        monitor - monitor that allows the user to cancel the merge operation
      • getPhases

        public java.lang.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.
        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
        an array of phases.