private void updateArchiveNameInfo(Archive archive) {

		DataTypeManager dataTypeManager = archive.getDataTypeManager();
		int transactionID;
		try {
			transactionID =
				dataTypeManager.startTransaction("Update Data Type Source Archive Names");
		}
		catch (Exception e) {
			// can't update now - no big deal
			return;
		}
		try {

			// Notify each open archive about this archives ID and name in case it has changed.
			for (Archive existingArchive : openArchives) {

				if (!existingArchive.isModifiable()) {
					continue;
				}

				DataTypeManager existingDataTypeManager = existingArchive.getDataTypeManager();

				dataTypeManager.updateSourceArchiveName(existingDataTypeManager.getUniversalID(),
					existingDataTypeManager.getName());

				int existingTxID = existingDataTypeManager
						.startTransaction("Update Data Type Source Archive Name");
				try {
					existingDataTypeManager.updateSourceArchiveName(
						dataTypeManager.getUniversalID(), dataTypeManager.getName());
				}
				finally {
					existingDataTypeManager.endTransaction(existingTxID, true);
				}
			}
		}
		finally {
			dataTypeManager.endTransaction(transactionID, true);
		}
	}
Determine if archive path is allowed.
An attempt is made to disallow any path which appears to be contained
within a Ghidra installation.
@param path directory or file archive path
@return true if path is allowed
Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/datamgr/archive/DataTypeManagerHandler.java