code: public Map<String, CmsCategory> getReadCategory() {
  
          if (null == m_categories) {
              m_categories = CmsCollectionsGenericWrapper.createLazyMap(new Transformer() {
  
                  public Object transform(Object categoryPath) {
  
                      try {
                          CmsCategoryService catService = CmsCategoryService.getInstance();
                          return catService.localizeCategory(
                              m_cms,
                              catService.readCategory(m_cms, (String)categoryPath, getRequestContext().getUri()),
                              m_cms.getRequestContext().getLocale());
                      } catch (CmsException e) {
                          LOG.warn(e.getLocalizedMessage(), e);
                          return null;
                      }
                  }
  
              });
          }
          return m_categories;
      }
docs: Transforms the category path of a category to the category.
  @return a map from root or site path to category.