protected void mergeBasicExternalDetail(int type, ExternalLocation[] externalLocations,
			int currentChosenOption, TaskMonitor monitor) throws CancelledException {

		ExternalLocation externalLocation = null;
		switch (currentChosenOption) {
			case KEEP_LATEST:
				externalLocation = externalLocations[LATEST];
				break;
			case KEEP_MY:
				externalLocation = externalLocations[MY];
				break;
			case KEEP_ORIGINAL:
			default:
				throw new AssertException("Can only merge external detail from Latest or My.");
		}

		mergeExternalDetail(type, externalLocations[RESULT], externalLocation, monitor);
	}
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