code: private void registerHandlerList(
          CmsObject cms,
          CmsToolRootHandler toolRoot,
          int len,
          List<I_CmsToolHandler> handlers) {
  
          boolean found = false;
          Iterator<I_CmsToolHandler> it = handlers.iterator();
          while (it.hasNext()) {
              I_CmsToolHandler handler = it.next();
              int myLen = CmsStringUtil.splitAsArray(handler.getPath(), TOOLPATH_SEPARATOR).length;
              if (((len == myLen) && !handler.getPath().equals(TOOLPATH_SEPARATOR))
                  || ((len == 1) && handler.getPath().equals(TOOLPATH_SEPARATOR))) {
                  found = true;
                  registerAdminTool(cms, toolRoot, handler);
              }
          }
          if (found) {
              registerHandlerList(cms, toolRoot, len + 1, handlers);
          }
  
      }
docs: Registers all tool handlers recursively for a given tool root.<p>
  
  @param cms the cms context object
  @param toolRoot the tool root
  @param len the recursion level
  @param handlers the list of handlers to register