public void mergeFunction(ExternalLocation[] externalLocations, int currentChosenOption,
			TaskMonitor monitor) throws CancelledException, UnsupportedOperationException {

		switch (currentChosenOption) {
			case KEEP_LATEST:
				replaceFunction(externalLocations[RESULT], externalLocations[LATEST],
					getMergeLatest(), monitor);
				break;
			case KEEP_MY:
				replaceFunction(externalLocations[RESULT], externalLocations[MY], getMergeMy(),
					monitor);
				break;
			case KEEP_ORIGINAL:
				replaceFunction(externalLocations[RESULT], externalLocations[ORIGINAL],
					getMergeOriginal(), monitor);
			default:
				throw new AssertException("Can only merge external detail from Latest or My.");
		}
	}
Method called for merging an external that was added in LATEST and one that was added in MY.
@param externalLocations RESULT, LATEST, and MY locations and ORIGINAL is null.
@param monitor task monitor for progress and cancelling.
@throws CancelledException if user cancels the merge.
Ghidra/Features/Base/src/main/java/ghidra/app/merge/listing/ExternalFunctionMerger.java