private final GTreeNode createArchiveNode(Archive archive, DtFilterState filterState) {

		if (programDtmOnly) {
			if (archive instanceof ProgramArchive) {
				return new ProgramArchiveNode((ProgramArchive) archive, filterState);
			}
			return null;
		}

		if (archive instanceof FileArchive) {
			return new FileArchiveNode((FileArchive) archive, filterState);
		}
		else if (archive instanceof ProjectArchive) {
			return new ProjectArchiveNode((ProjectArchive) archive, filterState);
		}
		else if (archive instanceof InvalidFileArchive) {
			return new InvalidArchiveNode((InvalidFileArchive) archive);
		}
		else if (archive instanceof ProgramArchive) {
			return new ProgramArchiveNode((ProgramArchive) archive, filterState);
		}
		else if (archive instanceof BuiltInArchive) {
			return new BuiltInArchiveNode((BuiltInArchive) archive, filterState);
		}
		return null;
	}
Returns the modification count for any changes to any category or datatype in any
open archive including the program.
@return the modification count
Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/datamgr/tree/ArchiveRootNode.java