code: public String addSiteRoot(String siteRoot, String resourcename) {
  
          if ((resourcename == null) || (siteRoot == null)) {
              return null;
          }
          siteRoot = getAdjustedSiteRoot(siteRoot, resourcename);
          StringBuffer result = new StringBuffer(128);
          result.append(siteRoot);
          if (((siteRoot.length() == 0) || (siteRoot.charAt(siteRoot.length() - 1) != '/'))
              && ((resourcename.length() == 0) || (resourcename.charAt(0) != '/'))) {
              // add slash between site root and resource if required
              result.append('/');
          }
          result.append(resourcename);
          return m_directoryTranslator.translateResource(result.toString());
      }
docs: Adds the given site root of this context to the given resource name,
  taking into account special folders like "/system" where no site root must be added,
  and also translates the resource name with the configured the directory translator.<p>
  
  @param siteRoot the site root to add
  @param resourcename the resource name
  @return the translated resource name including site root