public void init(final CMSSiteModel site, final SiteMapPageEnum siteMapPageEnum) {
    final String currentUrlEncodingPattern = getUrlEncoderService().getCurrentUrlEncodingPattern();
    this.put(
        BASE_URL,
        getSiteBaseUrlResolutionService()
            .getWebsiteUrlForSite(site, currentUrlEncodingPattern, false, ""));
    this.put(MEDIA_URL, getSiteBaseUrlResolutionService().getMediaUrlForSite(site, false, ""));

    final Collection<SiteMapPageModel> siteMapPages = site.getSiteMapConfig().getSiteMapPages();
    final SiteMapPageModel siteMapPageModel =
        (SiteMapPageModel)
            CollectionUtils.find(
                siteMapPages,
                new Predicate() {
                  @Override
                  public boolean evaluate(final Object o) {
                    return ((SiteMapPageModel) o).getCode().equals(siteMapPageEnum);
                  }
                });

    if (siteMapPageModel != null) {
      this.put(CHANGE_FREQ, siteMapPageModel.getFrequency().getCode());
      this.put(PRIORITY, siteMapPageModel.getPriority());
    } else {
      this.put(CHANGE_FREQ, SiteMapChangeFrequencyEnum.DAILY.getCode());
      this.put(PRIORITY, Double.valueOf(0.5D));
    }
  }