docs: private static Element createILFCopy(
              Element compViewNode,
              Element compViewParent,
              boolean includeChildNodes,
              Document plf,
              Element plfParent,
              IPerson person)
              throws PortalException {
          Element plfNode = (Element) plf.importNode(compViewNode, includeChildNodes);
          // make sure that we don't include ILF restriction params in the PLF if
          // this ILF node contained any.
          plfNode.removeAttributeNS(Constants.NS_URI, Constants.LCL_ADD_CHILD_ALLOWED);
          plfNode.removeAttributeNS(Constants.NS_URI, Constants.LCL_DELETE_ALLOWED);
          plfNode.removeAttributeNS(Constants.NS_URI, Constants.LCL_EDIT_ALLOWED);
          plfNode.removeAttributeNS(Constants.NS_URI, Constants.LCL_MOVE_ALLOWED);
  
          String ID = plfNode.getAttribute(Constants.ATT_ID);
          plfNode.setIdAttribute(Constants.ATT_ID, true);
  
          IUserLayoutStore uls = null;
          uls = UserLayoutStoreLocator.getUserLayoutStore();
  
          if (plfNode.getAttribute(Constants.ATT_PLF_ID).equals("")) {
              String plfID = null;
  
              try {
                  if (!plfNode.getAttribute(Constants.ATT_CHANNEL_ID)
                          .equals("")) // dealing with a channel
                  plfID = uls.generateNewChannelSubscribeId(person);
                  else plfID = uls.generateNewFolderId(person);
              } catch (Exception e) {
                  throw new PortalException(
                          "Exception encountered while "
                                  + "generating new user layout node "
                                  + "Id for userId="
                                  + person.getID(),
                          e);
              }
  
              plfNode.setAttributeNS(Constants.NS_URI, Constants.ATT_PLF_ID, plfID);
              plfNode.setAttributeNS(Constants.NS_URI, Constants.ATT_ORIGIN, ID);
          }
  
          plfParent.appendChild(plfNode);
          PositionManager.updatePositionSet(compViewParent, plfParent, person);
          return plfNode;
      }