private void processConflictList(ArrayList<ConflictInfo> conflictList, int listNameIndex,
			String currentListName) throws CancelledException {

		for (int i = 0; i < conflictList.size(); i++) {
			currentMonitor.setProgress(i);

			ConflictInfo info = conflictList.get(i);

			++currentConflict;
			if (propertyListChoice != ASK_USER) {
				conflictOption = propertyListChoice;
			}
			else if (mergeManager != null && conflictOption == ASK_USER) {
				showMergePanel(info, currentConflict, totalConflictCount);
				// block until the user resolves the conflict or cancels the 
				// process 
			}

			switch (conflictOption) {
				case LATEST_VERSION:
					break;// no action required

				case MY_VERSION:
				case ORIGINAL_VERSION:
					Options options = resultProgram.getOptions(info.getListName());
					options.removeOption(info.getPropertyName());
					if (conflictOption == MY_VERSION) {
						Object myValue = info.getMyValue();
						if (myValue != null) {
							setValue(options, info.getPropertyName(), info.getMyType(),
								info.getMyValue());
						}
					}
					else {
						Object origValue = info.getOrigValue();
						if (origValue != null) {
							setValue(options, info.getPropertyName(), info.getOrigType(),
								info.getOrigValue());
						}
					}
					break;

				case CANCELED:
					throw new CancelledException();
			}
			conflictOption = ASK_USER;
		}
	}
The property was not in the latest program; if the value changed
from the original, set the value in the result program.
@param myList property list from source program
@param resultList property list from result program
@param origList property list from the original checked out program
@param propertyName name of the property
Ghidra/Features/Base/src/main/java/ghidra/app/merge/propertylist/PropertyListMergeManager.java