public <T extends DomainObject> void execute(String commandName, T domainObject, Runnable r) {
		execute(commandName, domainObject, d -> {
			r.run();
			return true;
		});
	}
Execute the given command in the foreground.  Required domain object transaction will be
started with delayed end to ensure that any follow-on analysis starts prior to transaction 
end.

@param <T> {@link DomainObject} implementation interface
@param commandName command name to be associated with transaction
@param domainObject domain object to be modified
@param r command function runnable
Ghidra/Framework/Project/src/main/java/ghidra/framework/plugintool/PluginTool.java