private void getToolStates() {
		if (SystemUtilities.isInHeadlessMode()) {
			return;
		}
		for (Object consumer : domainObject.getConsumerList()) {
			if (consumer instanceof PluginTool) {
				PluginTool tool = (PluginTool) consumer;
				try {
					ToolState toolState = ToolStateFactory.createToolState(tool, domainObject);
					toolStates.put(tool, toolState);
				}
				catch (Throwable t) {
					Msg.error(this, "Unexpected Exception: " + t.getMessage(), t);
				}
			}
		}
	}
<code>DomainObjectDBTransaction</code> represents an atomic undoable operation performed
on a single domain object.
Ghidra/Framework/Project/src/main/java/ghidra/framework/data/DomainObjectDBTransaction.java