@Override
		public void run(TaskMonitor monitor) {
			try {
				for (DomainFileArchive archive : unmodifiedCheckOutsList) {
					DomainFile df = archive.getDomainFile();
					if (df.isCheckedOut() && (dtmPlugin != null)) {
						// TODO Need to close archive here if it is open.
						archive.close();

						df.undoCheckout(false);

						// TODO Need to open the archive here if it got closed above.
						dtmPlugin.openArchive(df);

					}
				}
				for (DomainFileArchive currentArchive : modifiedCheckedOutFiles) {
					monitor.checkCancelled();
					DomainFile currentDF = currentArchive.getDomainFile();

					if (saveCopy && currentDF.isChanged()) {
						monitor.setMessage("Saving " + currentDF.getName());
						currentDF.save(monitor);
					}

					monitor.setMessage("Undoing Check Out " + currentDF.getName());

					// TODO Need to close archive here if it is open.
					currentArchive.close();

					currentDF.undoCheckout(saveCopy);

					// TODO Need to open the archive here if it got closed above.
					dtmPlugin.openArchive(currentDF);

				}
			}
			catch (CancelledException e) {
				tool.setStatusInfo("Undo check out was canceled");
			}
			catch (IOException e) {
				ClientUtil.handleException(repository, e, "Undo Check Out", tool.getToolFrame());
			}
		}
Creates a task for undoing checkouts of domain files.
@param unmodifiedCheckOutsList the list of unmodified checked out files
@param modifiedCheckedOutFiles the list of checked out files that have been modified
@param saveCopy true indicates that copies of the modified files should be made 
before undo of the checkout.
Ghidra/Features/Base/src/main/java/ghidra/framework/main/datatree/VersionControlDataTypeArchiveUndoCheckoutAction.java