private ArchiveNode getProgramArchiveNode(DataTypeArchiveGTree tree) {

		DataTypeManager manager = plugin.getProgramDataTypeManager();
		GTreeNode rootNode = tree.getModelRoot();
		List<GTreeNode> children = rootNode.getChildren();
		for (GTreeNode node : children) {
			ArchiveNode archiveNode = (ArchiveNode) node;
			Archive archive = archiveNode.getArchive();
			if (archive.getDataTypeManager() == manager) {
				return archiveNode;
			}
		}

		// validated in isAddToPopup()
		throw new AssertException("Somehow program node is opened in the tool");
	}
A class to 1) hold related data for creating a new data type and 2) to validate the given 
data when the requested info is based upon the a disallowed condition (e.g., creating a data
type in the built-in archive).
Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/datamgr/actions/DerivativeDataTypeInfo.java