docs: private CmsPair<CmsContainerElement, List<CmsRemovedElementStatus>> internalSaveGroupContainer(
          CmsObject cms,
          CmsUUID pageStructureId,
          CmsGroupContainer groupContainer)
      throws CmsException, CmsXmlException {
  
          ensureSession();
          CmsResource pageResource = getCmsObject().readResource(pageStructureId, CmsResourceFilter.IGNORE_EXPIRATION);
          CmsResource groupContainerResource = null;
          if (groupContainer.isNew()) {
              CmsADEConfigData config = getConfigData(pageResource.getRootPath());
              CmsResourceTypeConfig typeConfig = config.getResourceType(
                  CmsResourceTypeXmlContainerPage.GROUP_CONTAINER_TYPE_NAME);
              groupContainerResource = typeConfig.createNewElement(getCmsObject(), pageResource.getRootPath());
              String resourceName = cms.getSitePath(groupContainerResource);
              groupContainer.setSitePath(resourceName);
              groupContainer.setClientId(groupContainerResource.getStructureId().toString());
          }
          if (groupContainerResource == null) {
              CmsUUID id = convertToServerId(groupContainer.getClientId());
              groupContainerResource = cms.readResource(id, CmsResourceFilter.ONLY_VISIBLE_NO_DELETED);
          }
          CmsGroupContainerBean groupContainerBean = getGroupContainerBean(
              groupContainer,
              pageResource,
              Locale.ENGLISH.toString());
  
          cms.lockResourceTemporary(groupContainerResource);
          CmsFile groupContainerFile = cms.readFile(groupContainerResource);
          Locale locale = Locale.ENGLISH;
          CmsXmlGroupContainer xmlGroupContainer = CmsXmlGroupContainerFactory.unmarshal(cms, groupContainerFile);
          Set<CmsUUID> oldElementIds = getGroupElementIds(xmlGroupContainer, locale);
          xmlGroupContainer.clearLocales();
          xmlGroupContainer.save(cms, groupContainerBean, locale);
          cms.unlockResource(groupContainerResource);
          Set<CmsUUID> newElementIds = getGroupElementIds(xmlGroupContainer, locale);
          Set<CmsUUID> removedElementIds = Sets.difference(oldElementIds, newElementIds);
          List<CmsRemovedElementStatus> deletionCandidateStatuses = new ArrayList<CmsRemovedElementStatus>();
          for (CmsUUID removedId : removedElementIds) {
              CmsRemovedElementStatus status = internalGetRemovedElementStatus(removedId, null);
              if (status.isDeletionCandidate()) {
                  deletionCandidateStatuses.add(status);
              }
          }
          CmsContainerElement element = new CmsContainerElement();
          element.setClientId(groupContainerFile.getStructureId().toString());
          element.setSitePath(cms.getSitePath(groupContainerFile));
          element.setResourceType(CmsResourceTypeXmlContainerPage.GROUP_CONTAINER_TYPE_NAME);
          return CmsPair.create(element, deletionCandidateStatuses);
      }