private String[] getReferenceInfo(Program pgm, Reference ref, String prefix, String suffix) {
		if (pgm == null) { // Header info
			return new String[] { "Option", "Type", "From", "Operand", "To", "Symbol", "Primary",
				"Source" };
		}
		String[] info = new String[] { "", "", "", "", "", "", "", "" };
		String version = "";
		if (pgm == originalPgm) {
			version = ORIGINAL_TITLE;
		}
		else if (pgm == latestPgm) {
			version = LATEST_TITLE;
		}
		else if (pgm == myPgm) {
			version = MY_TITLE;
		}
		else if (pgm == resultPgm) {
			version = RESULT_TITLE;
		}
		info[0] = prefix + version + suffix;
		if (ref != null) {
			int opIndex = ref.getOperandIndex();
			info[1] = ref.getReferenceType().toString();
			info[2] = ref.getFromAddress().toString();
			info[3] = (opIndex == -1) ? "mnemonic" : Integer.toString(opIndex);
			Address toAddress = ref.getToAddress();
			if (ref.isExternalReference()) {
				ExternalReference extRef = (ExternalReference) ref;
				ExternalLocation externalLocation = extRef.getExternalLocation();
				if (externalLocation != null) {
					toAddress = externalLocation.getAddress();
				}
			}
			info[4] = DiffUtility.getUserToAddressString(pgm, toAddress);
			info[5] = DiffUtility.getUserToSymbolString(pgm, ref);
			info[6] = "" + ref.isPrimary();
			info[7] = "" + ref.getSource().toString();
		}
		return info;
	}
Replace the fallthroughs where possible. 
@param addressSet the address set where fallthroughs should be replaced
@param chosenConflictOption indicator of where to get references from (KEEP_ORIGINAL, KEEP_LATEST, KEEP_MY).
@param monitor task monitor
@throws CancelledException if user cancels.
Ghidra/Features/Base/src/main/java/ghidra/app/merge/listing/ReferenceMerger.java