code: static void applyNoReparenting(
              List<NodeInfo> order, Element compViewParent, Element positionSet) {
  
          int i = 0;
          while (i < order.size()) {
              NodeInfo ni = order.get(i);
              if (!ni.getNode().getParentNode().equals(compViewParent)) {
                  if (isNotReparentable(ni, compViewParent, positionSet)) {
                      LOG.info(
                              "Resetting the following NodeInfo because it is not reparentable:  "
                                      + ni);
  
                      // this node should not be reparented. If it was placed
                      // here by way of a position directive then delete that
                      // directive out of the ni and posSet will be updated later
                      ni.setPositionDirective(null);
  
                      // now we need to remove it from the ordering list but
                      // skip incrementing i, deleted ni now filled by next ni
                      order.remove(i);
                      continue;
                  }
              }
              i++;
          }
      }
docs: This method scans through the nodes in the ordered list and identifies those that are not in
  the passed in compViewParent. For those it then looks in its current parent and checks to see
  if there are any down- stream (higher sibling index) siblings that have moveAllowed="false".
  If any such sibling is found then the node is not allowed to be reparented and is removed
  from the list.