Package ghidra.app.merge.tree
Class ProgramTreeMergeManager
- java.lang.Object
-
- ghidra.app.merge.tree.ProgramTreeMergeManager
-
- All Implemented Interfaces:
MergeResolver
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 Summary
Constructors Constructor Description ProgramTreeMergeManager(ProgramMultiUserMergeManager mergeManager, Program resultProgram, Program myProgram, Program originalProgram, Program latestProgram, ProgramChangeSet latestChangeSet, ProgramChangeSet myChangeSet)
Construct a new manager for merging trees
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
apply()
Notification that the apply button was hit.void
cancel()
Notification that the merge process was canceled.java.lang.String
getDescription()
Get the description of what this MergeResolver does.java.lang.String
getName()
Get the name of this MergeResolver.java.lang.String[][]
getPhases()
Gets identifiers for the merge phases handled by this MergeResolver.void
merge(TaskMonitor monitor)
Perform the merge process.
-
-
-
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- Parameters:
resultProgram
- latest version of the Program that is the destination for changes applied from the source programmyProgram
- source of changes to apply to the destination programoriginalProgram
- program that was originally checked outlatestProgram
- program that that is the latest version; the resultProgram and latestProgram start out as being identicallatestChangeSet
- change set of the destination programmyChangeSet
- change set for the source programmonitor
-
-
-
Method Detail
-
apply
public void apply()
Description copied from interface:MergeResolver
Notification that the apply button was hit.- Specified by:
apply
in interfaceMergeResolver
-
cancel
public void cancel()
Description copied from interface:MergeResolver
Notification that the merge process was canceled.- Specified by:
cancel
in interfaceMergeResolver
-
getDescription
public java.lang.String getDescription()
Description copied from interface:MergeResolver
Get the description of what this MergeResolver does.- Specified by:
getDescription
in interfaceMergeResolver
-
getName
public java.lang.String getName()
Description copied from interface:MergeResolver
Get the name of this MergeResolver.- Specified by:
getName
in interfaceMergeResolver
-
merge
public void merge(TaskMonitor monitor)
Description copied from interface:MergeResolver
Perform the merge process.- Specified by:
merge
in interfaceMergeResolver
- Parameters:
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.
Examples:
So for a simple phase which has no sub-phases returnnew String[][] {new String[] {"Phase A"}}
So for a phase with 2 sub-phases returnnew String[][] { new String[] {"Phase A"}, new String[] {"Phase A", "Sub-Phase 1}, new String[] {"Phase A", "Sub-Phase 2} }
.- Specified by:
getPhases
in interfaceMergeResolver
- Returns:
- an array of phases.
-
-