code: public String rewriteLink(String path) {
  
          CmsResource res = null;
  
          try {
              res = readResource(m_cms.getRequestContext().removeSiteRoot(path), CmsResourceFilter.ALL);
              if (res != null) {
                  String ret = null;
  
                  // iterate through all wrappers and call "rewriteLink" till one does not return null
                  List<I_CmsResourceWrapper> wrappers = getWrappers();
                  Iterator<I_CmsResourceWrapper> iter = wrappers.iterator();
                  while (iter.hasNext()) {
                      I_CmsResourceWrapper wrapper = iter.next();
                      ret = wrapper.rewriteLink(m_cms, res);
                      if (ret != null) {
                          return ret;
                      }
                  }
              }
          } catch (CmsException ex) {
              // noop
          }
  
          return path;
      }
docs: Returns a link to a resource after it was wrapped by the CmsObjectWrapper.<p>
  
  Because it is possible to change the names of resources inside the VFS by this
  <code>CmsObjectWrapper</code>, it is necessary to change the links used in pages
  as well, so that they point to the changed name of the resource.<p>
  
  For example: <code>/sites/default/index.html</code> becomes to
  <code>/sites/default/index.html.jsp</code>, because it is a jsp page, the links
  in pages where corrected so that they point to the new name (with extension "jsp").<p>
  
  Used for the link processing in the class {@link org.opencms.relations.CmsLink}.<p>
  
  Iterates through all configured resource wrappers till the first returns not <code>null</code>.<p>
  
  @see #restoreLink(String)
  @see I_CmsResourceWrapper#rewriteLink(CmsObject, CmsResource)
  
  @param path the full path where to find the resource
  
  @return the rewritten link for the resource