/**
   * Call this method to add the {@link WabitObject}s in the loaded workspaces to the given session
   * . This is the last step to importing a file into Wabit workspace.
   *
   * <p>If importing is done on multiple threads this operation must be done on the event dispatch
   * thread. This should only be called once for each DAO or the same workspace will be added to the
   * context multiple times.
   *
   * @param session The session that will have {@link WabitObject}s added to it. Null should not be
   *     passed into this method.
   */
  public void addImportedWorkspaceContentToWorkspace(WabitSession session) {
    if (session == null) {
      context.createUserPrompter(
          "Select a workspace to import into.",
          UserPromptType.MESSAGE,
          UserPromptOptions.OK,
          UserPromptResponse.OK,
          null);
      return;
    }

    if (cancelled.get()) return;

    try {
      final WabitWorkspace workspace = session.getWorkspace();
      int importObjectCount = 0;
      WabitSession importingSession = saxHandler.getSession();
      final WabitWorkspace importingWorkspace = importingSession.getWorkspace();
      importObjectCount += importingWorkspace.mergeIntoWorkspace(workspace);
      logger.debug(
          "Imported " + importObjectCount + " objects into " + session.getWorkspace().getName());
    } catch (Exception e) {
      throw new RuntimeException(e);
    }
  }
  /**
   * Call this method to register the loaded workspace with the context in this DAO. This is the
   * last step to loading a file into Wabit.
   *
   * <p>If loading is done on multiple threads this operation must be done on the event dispatch
   * thread. This should only be called once for each DAO or the same workspace will be added to the
   * context multiple times.
   *
   * @return The session that contain the workspaces that have been added to Wabit. This may be null
   *     if the load was cancelled.
   */
  public WabitSession addLoadedWorkspacesToContext() {
    if (cancelled.get()) return null;

    context.registerChildSession(saxHandler.getSession());

    return saxHandler.getSession();
  }