docs: public void importRelations() {
  
          if ((m_relationData == null) || m_relationData.isEmpty()) {
              // no relations to add
              return;
          }
  
          getReport().println(
              Messages.get().container(Messages.RPT_START_IMPORT_RELATIONS_0),
              I_CmsReport.FORMAT_HEADLINE);
  
          int i = 0;
          CmsResourceFilter filter = CmsResourceFilter.ALL;
          for (Integer importIndex : m_relationData.keySet()) {
              CmsUUID structureId = m_indexToStructureId.get(importIndex);
              if (structureId == null) {
                  continue;
              }
              Collection<RelationData> relationDataList = m_relationData.get(importIndex);
              try {
                  CmsResource src = m_cms.readResource(structureId, filter);
                  if (checkImmutable(src.getRootPath())) {
                      continue;
                  }
                  getReport().print(
                      org.opencms.report.Messages.get().container(
                          org.opencms.report.Messages.RPT_SUCCESSION_2,
                          String.valueOf(i + 1),
                          String.valueOf(m_relationData.keySet().size())),
                      I_CmsReport.FORMAT_NOTE);
  
                  getReport().print(
                      Messages.get().container(
                          Messages.RPT_IMPORTING_RELATIONS_FOR_2,
                          src.getRootPath(),
                          new Integer(m_relationData.keySet().size())),
                      I_CmsReport.FORMAT_NOTE);
                  getReport().print(org.opencms.report.Messages.get().container(org.opencms.report.Messages.RPT_DOTS_0));
                  boolean withErrors = false;
                  for (RelationData relationData : relationDataList) {
                      CmsResource target = null;
                      try {
                          target = m_cms.readResource(relationData.getTargetId(), filter);
                      } catch (CmsVfsResourceNotFoundException e) {
                          // ignore
                      }
                      if (target == null) {
                          try {
                              target = m_cms.readResource(relationData.getTarget(), filter);
                          } catch (CmsVfsResourceNotFoundException e) {
                              // ignore
                          }
                      }
  
                      if (target != null) {
                          try {
                              getCms().importRelation(
                                  m_cms.getSitePath(src),
                                  m_cms.getSitePath(target),
                                  relationData.getType().toString());
                          } catch (CmsException e) {
                              getReport().addWarning(e);
                              withErrors = true;
                              if (LOG.isWarnEnabled()) {
                                  LOG.warn(e.getLocalizedMessage());
                              }
                              if (LOG.isDebugEnabled()) {
                                  LOG.debug(e.getLocalizedMessage(), e);
                              }
                          }
                      }
                  }
                  if (!withErrors) {
                      getReport().println(
                          org.opencms.report.Messages.get().container(org.opencms.report.Messages.RPT_OK_0),
                          I_CmsReport.FORMAT_OK);
                  } else {
                      getReport().println(
                          org.opencms.report.Messages.get().container(org.opencms.report.Messages.RPT_FAILED_0),
                          I_CmsReport.FORMAT_ERROR);
                  }
                  i += 1;
  
              } catch (CmsException e) {
                  getReport().addError(e);
                  LOG.error(e.getLocalizedMessage(), e);
                  continue;
              }
          }
      }