@Override
	public Workspace createWorkspace(String name) throws DuplicateNameException {
		// if passed in the default "untitled" name, or no name at all,
		// then bump up the name with the "one-up" number to create a new one
		if (name == null || name.length() == 0) {
			name = DEFAULT_WORKSPACE_NAME;
		}
		if (isDefaultWorkspaceName(name)) {
			name = getUniqueWorkspaceName();
		}

		// duplicate workspaces are not allowed in the same project
		if (wsMap.containsKey(name)) {
			throw new DuplicateNameException("Duplicate workspace requested: " + name);
		}

		// create the new workspace and add it to the list of managed workspaces
		WorkspaceImpl ws = new WorkspaceImpl(name, this);
		workspaces.add(ws);
		wsMap.put(name, ws);

		// notify listeners of added workspace
		for (WorkspaceChangeListener listener : changeListeners) {
			listener.workspaceAdded(ws);
		}

		ws.setActive(); // calls ToolManagerImpl back to make the others inactive

		return ws;
	}
Registers the new instance of the tool in the namesMap and returns the total number of
running instances of that tool
@param toolName the name of the tool being registers
@param tool the tool being registered
Ghidra/Framework/Project/src/main/java/ghidra/framework/project/tool/ToolManagerImpl.java