/**
* Copyright (c) 2000-present Liferay, Inc. All rights reserved.
*
* This library is free software; you can redistribute it and/or modify it under
* the terms of the GNU Lesser General Public License as published by the Free
* Software Foundation; either version 2.1 of the License, or (at your option)
* any later version.
*
* This library is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
* details.
*/
package com.liferay.calendar.notification.impl;
import com.liferay.calendar.model.CalendarNotificationTemplate;
import com.liferay.calendar.notification.NotificationField;
import com.liferay.calendar.notification.NotificationTemplateType;
import com.liferay.calendar.notification.NotificationType;
import com.liferay.portal.kernel.util.GetterUtil;
import com.liferay.portal.kernel.util.HtmlUtil;
import com.liferay.portal.kernel.util.StringUtil;
import java.io.Serializable;
import java.util.Map;
/**
* @author Eduardo Lundgren
*/
public class NotificationTemplateRenderer {
public static String render(
NotificationTemplateContext notificationTemplateContext,
NotificationField notificationField)
throws Exception {
CalendarNotificationTemplate calendarNotificationTemplate =
notificationTemplateContext.getCalendarNotificationTemplate();
NotificationType notificationType =
notificationTemplateContext.getNotificationType();
NotificationTemplateType notificationTemplateType =
notificationTemplateContext.getNotificationTemplateType();
String notificationTemplate = NotificationUtil.getTemplate(
calendarNotificationTemplate, notificationType,
notificationTemplateType, notificationField);
return replaceTokens(notificationTemplate, notificationTemplateContext);
}
protected static String replaceTokens(
String notificationTemplate,
NotificationTemplateContext notificationTemplateContext)
throws Exception {
Map<String, Serializable> attributes =
notificationTemplateContext.getAttributes();
return StringUtil.replace(
notificationTemplate,
new String[] {
"[$EVENT_END_DATE$]", "[$EVENT_LOCATION$]",
"[$EVENT_START_DATE$]", "[$EVENT_TITLE$]", "[$EVENT_URL$]",
"[$FROM_ADDRESS$]", "[$FROM_NAME$]", "[$PORTAL_URL$]",
"[$PORTLET_NAME$]", "[$TO_ADDRESS$]", "[$TO_NAME$]"
},
new String[] {
GetterUtil.getString(attributes.get("endTime")),
HtmlUtil.escape(
GetterUtil.getString(attributes.get("location"))),
GetterUtil.getString(attributes.get("startTime")),
HtmlUtil.escape(GetterUtil.getString(attributes.get("title"))),
GetterUtil.getString(attributes.get("url")),
GetterUtil.getString(
notificationTemplateContext.getFromAddress()),
GetterUtil.getString(notificationTemplateContext.getFromName()),
GetterUtil.getString(attributes.get("portalURL")),
GetterUtil.getString(attributes.get("portletName")),
GetterUtil.getString(
notificationTemplateContext.getToAddress()),
GetterUtil.getString(notificationTemplateContext.getToName())
});
}
}