Class ProgramTreeMergeManager

  • All Implemented Interfaces:

    public class ProgramTreeMergeManager
    extends java.lang.Object
    implements MergeResolver
    Manages changes and conflicts between the latest versioned Program and the Program that is being checked into version control.
    • Constructor Detail

      • ProgramTreeMergeManager

        public ProgramTreeMergeManager​(ProgramMultiUserMergeManager mergeManager,
                                       Program resultProgram,
                                       Program myProgram,
                                       Program originalProgram,
                                       Program latestProgram,
                                       ProgramChangeSet latestChangeSet,
                                       ProgramChangeSet myChangeSet)
        Construct a new manager for merging trees
        resultProgram - latest version of the Program that is the destination for changes applied from the source program
        myProgram - source of changes to apply to the destination program
        originalProgram - program that was originally checked out
        latestProgram - program that that is the latest version; the resultProgram and latestProgram start out as being identical
        latestChangeSet - change set of the destination program
        myChangeSet - change set for the source program
        monitor -
    • 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.