code: public void move(CmsClientSitemapEntry entry, String toPath, int position) {
  
          // check for valid data
          if (!isValidEntryAndPath(entry, toPath)) {
              // invalid data, do nothing
              CmsDebugLog.getInstance().printLine("invalid data, doing nothing");
              return;
          }
          // check for relevance
          if (isChangedPosition(entry, toPath, position)) {
              // only register real changes
              CmsSitemapChange change = new CmsSitemapChange(entry.getId(), entry.getSitePath(), ChangeType.modify);
              change.setDefaultFileId(entry.getDefaultFileId());
              if (!toPath.equals(entry.getSitePath())) {
                  change.setParentId(getEntry(CmsResource.getParentFolder(toPath)).getId());
                  change.setName(CmsResource.getName(toPath));
              }
              if (CmsSitemapView.getInstance().isNavigationMode()) {
                  change.setPosition(position);
              }
              change.setLeafType(entry.isLeafType());
              CmsSitemapClipboardData data = getData().getClipboardData().copy();
              data.addModified(entry);
              change.setClipBoardData(data);
              commitChange(change, null);
          }
      }
docs: Moves the given sitemap entry with all its descendants to the new position.<p>
  
  @param entry the sitemap entry to move
  @param toPath the destination path
  @param position the new position between its siblings