private static boolean saveArchive(Archive archive, Component component) {
		try {
			ArchiveUtils.save(component, archive);
			return true;
		}
		catch (DuplicateFileException e) {
			Msg.showError(log, component, "Unable to Save Archive",
				"Archive already exists: " + archive, e);
		}
		catch (IOException e) {
			Msg.showError(log, component, "Unable to Save Archive",
				"Unexpected exception attempting to save archive: " + archive, e);
		}
		return false;
	}
This method will perform a save on the given archive.  However, the one caveat is that if
the archive has never been saved, then a filename needs to be chosen.  Under this 'special'
condition this method logically turns into a {@link #saveAs(Component, FileArchive)}.

@param component The component over which GUI message will be shown when required.
@param archive The archive to save.
@throws DuplicateFileException thrown only in the {@link #saveAs(Component, FileArchive)}
		   condition in the case of a naming conflict.
@throws IOException If the sky is falling.
Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/datamgr/archive/ArchiveUtils.java