default boolean setCurrent(@Nullable Workspace workspace) {
		Workspace current = getCurrent();
		if (!hasCurrentWorkspace()) {
			// If there is no current workspace, then just assign it.
			setCurrentIgnoringConditions(workspace);
			return true;
		} else if (getWorkspaceCloseConditions().stream()
				.allMatch(condition -> condition.canClose(current))) {
			// Otherwise, check if the conditions allow for closing the prior workspace.
			// If so, then assign the new workspace.
			setCurrentIgnoringConditions(workspace);
			return true;
		}
		// Workspace closure conditions not met, assignment denied.
		return false;
	}
@param workspace
		New workspace to set as the active workspace.

@return {@code true} when the workspace assignment is a success.
{@code false} if the assignment was blocked for some reason.
recaf-core/src/main/java/software/coley/recaf/services/workspace/WorkspaceManager.java