private void openReadOnlyFile(TaskMonitor monitor) {
		String fileDescr =
			((version != DomainFile.DEFAULT_VERSION) ? "version " + version + " of " : "") +
				domainFile.getName();
		String contentType = null;
		try {
			monitor.setMessage("Opening " + fileDescr);
			contentType = domainFile.getContentType();
			dtArchive =
				(DataTypeArchive) domainFile.getImmutableDomainObject(this, version, monitor);
		}
		catch (CancelledException e) {
			// we don't care, the task has been canceled
		}
		catch (IOException e) {
			if (domainFile.isVersioned() && domainFile.isInWritableProject()) {
				ClientUtil.handleException(AppInfo.getActiveProject().getRepository(), e,
					"Get Versioned Object", null);
			}
			else {
				Msg.showError(this, null, "Project Archive Open Error",
					"Error occurred while opening " + fileDescr, e);
			}
		}
		catch (VersionException e) {
			VersionExceptionHandler.showVersionError(tool.getToolFrame(), domainFile.getName(),
				contentType, "Open", e);
		}
	}
Open archive in an immutable fashion.  Unlike ProgramDB, we do not want to 
allow upgrade or modification of a read-only archve (e.g., not-checked-out).
@param monitor task monitor
Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/datamgr/OpenDomainFileTask.java