code: private boolean validatePath(String rootKey, String toolPath, boolean full) {
  
          if (toolPath.equals(TOOLPATH_SEPARATOR)) {
              return true;
          }
          if (!toolPath.startsWith(TOOLPATH_SEPARATOR)) {
              return false;
          }
          List<String> groups = CmsStringUtil.splitAsList(toolPath, TOOLPATH_SEPARATOR);
          Iterator<String> itGroups = groups.iterator();
          String subpath = "";
          while (itGroups.hasNext()) {
              String group = itGroups.next();
              if (subpath.length() != TOOLPATH_SEPARATOR.length()) {
                  subpath += TOOLPATH_SEPARATOR + group;
              } else {
                  subpath += group;
              }
              if (itGroups.hasNext() || full) {
                  try {
                      // just check if the tool is available
                      resolveAdminTool(rootKey, subpath).toString();
                  } catch (Exception e) {
                      return false;
                  }
              }
          }
          return true;
      }
docs: Tests if the full tool path is available.<p>
  
  @param rootKey the root tool
  @param toolPath the path
  @param full if <code>true</code> the whole path is checked, if not the last part is not checked (for new tools)
  
  @return if valid or not