code: public Map<?, ?> getByType() {
  
          if (m_byType == null) {
              m_byType = CmsCollectionsGenericWrapper.createLazyMap(new Transformer() {
  
                  @SuppressWarnings("synthetic-access")
                  public Object transform(Object arg0) {
  
                      String key = (String)arg0;
                      List<CmsContainerElementBean> result = Lists.newArrayList();
                      for (Map.Entry<String, CmsContainerBean> entry : getPage().getContainers().entrySet()) {
                          CmsContainerBean value = entry.getValue();
                          for (CmsContainerElementBean element : value.getElements()) {
                              try {
                                  element.initResource(m_cms);
                                  if (key.equals(element.getTypeName())) {
                                      result.add(element);
                                  }
                              } catch (CmsException e) {
                                  LOG.error(
                                      "Could not initialize resource with site path \""
                                          + element.getSitePath()
                                          + "\" to determine the container elements type.",
                                      e);
                              }
                          }
                      }
                      return result;
                  }
              });
          }
          return m_byType;
      }
docs: Gets lazy map that maps type names to lists of container elements of that type.<p>
  
  @return a map from type names to lists of container elements