All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.liferay.calendar.notification.impl.NotificationTemplateRenderer Maven / Gradle / Ivy

There is a newer version: 3.0.4
Show newest version
/**
 * 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 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())
			});
	}

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy