public static void importSingleFile(PluginTool tool, ProgramManager programManager, FSRL fsrl,
			DomainFolder destFolder, LoadSpec loadSpec, String programName, List<Option> options,
			TaskMonitor monitor) {

		Objects.requireNonNull(monitor);

		try (ByteProvider bp = fsService.getByteProvider(fsrl, false, monitor)) {

			Object consumer = new Object();
			MessageLog messageLog = new MessageLog();
			LoadResults<? extends DomainObject> loadResults = loadSpec.getLoader()
					.load(bp, programName, tool.getProject(), destFolder.getPathname(), loadSpec,
						options, messageLog, consumer, monitor);

			loadResults.save(tool.getProject(), consumer, messageLog, monitor);

			doPostImportProcessing(tool, programManager, fsrl, loadResults, consumer,
				messageLog.toString(), monitor);
		}
		catch (CancelledException e) {
			// no need to show a message
		}
		catch (Exception e) {
			Msg.showError(ImporterUtilities.class, tool.getActiveWindow(), "Error Importing File",
				"Error importing file: " + fsrl.getName(), e);
		}
	}
Perform file import and open using optional programManager
@param tool tool to which popup dialogs should be associated
@param programManager program manager to open imported file with or null
@param fsrl import file location
@param destFolder project destination folder
@param loadSpec import {@link LoadSpec}
@param programName program name
@param options import options
@param monitor task monitor
Ghidra/Features/Base/src/main/java/ghidra/plugin/importer/ImporterUtilities.java