@Override
  protected PortletPreferences doImportData(
      PortletDataContext portletDataContext,
      String portletId,
      PortletPreferences portletPreferences,
      String data)
      throws Exception {

    portletDataContext.importPermissions(
        "com.liferay.portlet.documentlibrary",
        portletDataContext.getSourceGroupId(),
        portletDataContext.getScopeGroupId());

    Document document = SAXReaderUtil.read(data);

    Element rootElement = document.getRootElement();

    Element fileEntryTypesElement = rootElement.element("file-entry-types");

    List<Element> fileEntryTypeElements = fileEntryTypesElement.elements("file-entry-type");

    for (Element fileEntryTypeElement : fileEntryTypeElements) {
      DLPortletDataHandlerImpl.importFileEntryType(portletDataContext, fileEntryTypeElement);
    }

    Element foldersElement = rootElement.element("folders");

    List<Element> folderElements = foldersElement.elements("folder");

    for (Element folderElement : folderElements) {
      DLPortletDataHandlerImpl.importFolder(portletDataContext, folderElement);
    }

    Element fileEntriesElement = rootElement.element("file-entries");

    List<Element> fileEntryElements = fileEntriesElement.elements("file-entry");

    for (Element fileEntryElement : fileEntryElements) {
      DLPortletDataHandlerImpl.importFileEntry(portletDataContext, fileEntryElement);
    }

    if (portletDataContext.getBooleanParameter(_NAMESPACE, "shortcuts")) {
      List<Element> fileShortcutElements =
          rootElement.element("file-shortcuts").elements("file-shortcut");

      for (Element fileShortcutElement : fileShortcutElements) {
        DLPortletDataHandlerImpl.importFileShortcut(portletDataContext, fileShortcutElement);
      }
    }

    if (portletDataContext.getBooleanParameter(_NAMESPACE, "ranks")) {
      Element fileRanksElement = rootElement.element("file-ranks");

      List<Element> fileRankElements = fileRanksElement.elements("file-rank");

      for (Element fileRankElement : fileRankElements) {
        DLPortletDataHandlerImpl.importFileRank(portletDataContext, fileRankElement);
      }
    }

    long rootFolderId = GetterUtil.getLong(rootElement.attributeValue("root-folder-id"));

    if (rootFolderId > 0) {
      Map<Long, Long> folderPKs =
          (Map<Long, Long>) portletDataContext.getNewPrimaryKeysMap(Folder.class);

      rootFolderId = MapUtil.getLong(folderPKs, rootFolderId, rootFolderId);

      portletPreferences.setValue("rootFolderId", String.valueOf(rootFolderId));
    }

    return portletPreferences;
  }