docs: private void addChildrenForOUNode(CmsOrganizationalUnit item) {
  
          List<Object> itemsToRemove = new ArrayList<Object>();
  
          Collection<?> childCol = m_treeContainer.getChildren(item);
          if (childCol != null) {
              itemsToRemove.addAll(childCol);
          }
  
          try {
              if (m_app.isOUManagable(item.getName())) {
  
                  List<I_CmsOuTreeType> types = m_app.getTreeTypeProvider().getTreeTypes();
                  for (I_CmsOuTreeType type : types) {
                      if (!type.isValidForOu(m_cms, item.getName())) {
                          continue;
                      }
                      if (type.isOrgUnit()) {
                          continue;
                      }
                      String itemId = type.getId() + item.getName();
                      Item newItem = m_treeContainer.addItem(itemId);
                      itemsToRemove.remove(itemId);
                      if (newItem != null) {
                          newItem.getItemProperty(PROP_NAME).setValue(getIconCaptionHTML(itemId, type));
                          newItem.getItemProperty(PROP_TYPE).setValue(type);
                          m_treeContainer.setParent(itemId, item);
                          setChildrenAllowed(itemId, type.isExpandable());
                      }
                  }
              }
              List<CmsOrganizationalUnit> ous = OpenCms.getOrgUnitManager().getOrganizationalUnits(
                  m_cms,
                  item.getName(),
                  false);
              List<CmsOrganizationalUnit> webOus = new ArrayList<CmsOrganizationalUnit>();
              for (CmsOrganizationalUnit ou : ous) {
                  if (m_app.isParentOfManagableOU(ou.getName())) {
                      itemsToRemove.remove(ou);
                      if (ou.hasFlagWebuser()) {
                          webOus.add(ou);
                      } else {
                          addOuToTree(ou, item);
                      }
                  }
              }
              for (CmsOrganizationalUnit ou : webOus) {
                  if (m_app.isParentOfManagableOU(ou.getName())) {
                      itemsToRemove.remove(ou);
                      addOuToTree(ou, item);
                  }
              }
          } catch (CmsException e) {
              LOG.error("Can't read ou", e);
          }
          for (Object it : itemsToRemove) {
              m_treeContainer.removeItemRecursively(it);
          }
      }