/**
* 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.blogs.settings;
import com.liferay.blogs.constants.BlogsConstants;
import com.liferay.portal.kernel.exception.PortalException;
import com.liferay.portal.kernel.settings.FallbackKeys;
import com.liferay.portal.kernel.settings.GroupServiceSettingsLocator;
import com.liferay.portal.kernel.settings.LocalizedValuesMap;
import com.liferay.portal.kernel.settings.ParameterMapSettings;
import com.liferay.portal.kernel.settings.Settings;
import com.liferay.portal.kernel.settings.SettingsFactoryUtil;
import com.liferay.portal.kernel.settings.TypedSettings;
import com.liferay.portal.kernel.util.LocalizationUtil;
import com.liferay.portal.kernel.util.PropsKeys;
import java.util.Map;
/**
* @author Iván Zaera
*/
@Settings.Config(settingsIds = BlogsConstants.SERVICE_NAME)
public class BlogsGroupServiceSettings {
public static BlogsGroupServiceSettings getInstance(long groupId)
throws PortalException {
Settings settings = SettingsFactoryUtil.getSettings(
new GroupServiceSettingsLocator(
groupId, BlogsConstants.SERVICE_NAME));
return new BlogsGroupServiceSettings(settings);
}
public static BlogsGroupServiceSettings getInstance(
long groupId, Map<String, String[]> parameterMap)
throws PortalException {
Settings settings = SettingsFactoryUtil.getSettings(
new GroupServiceSettingsLocator(
groupId, BlogsConstants.SERVICE_NAME));
return new BlogsGroupServiceSettings(
new ParameterMapSettings(parameterMap, settings));
}
public static void registerSettingsMetadata() {
SettingsFactoryUtil.registerSettingsMetadata(
BlogsGroupServiceSettings.class, null, _getFallbackKeys());
}
public BlogsGroupServiceSettings(Settings settings) {
_typedSettings = new TypedSettings(settings);
}
public LocalizedValuesMap getEmailEntryAddedBody() {
return _typedSettings.getLocalizedValuesMap("emailEntryAddedBody");
}
@Settings.Property(ignore = true)
public String getEmailEntryAddedBodyXml() {
return LocalizationUtil.getXml(
getEmailEntryAddedBody(), "emailEntryAddedBody");
}
public LocalizedValuesMap getEmailEntryAddedSubject() {
return _typedSettings.getLocalizedValuesMap("emailEntryAddedSubject");
}
@Settings.Property(ignore = true)
public String getEmailEntryAddedSubjectXml() {
return LocalizationUtil.getXml(
getEmailEntryAddedSubject(), "emailEntryAddedSubject");
}
public LocalizedValuesMap getEmailEntryUpdatedBody() {
return _typedSettings.getLocalizedValuesMap("emailEntryUpdatedBody");
}
@Settings.Property(ignore = true)
public String getEmailEntryUpdatedBodyXml() {
return LocalizationUtil.getXml(
getEmailEntryUpdatedBody(), "emailEntryUpdatedBody");
}
public LocalizedValuesMap getEmailEntryUpdatedSubject() {
return _typedSettings.getLocalizedValuesMap("emailEntryUpdatedSubject");
}
@Settings.Property(ignore = true)
public String getEmailEntryUpdatedSubjectXml() {
return LocalizationUtil.getXml(
getEmailEntryUpdatedSubject(), "emailEntryUpdatedSubject");
}
public String getEmailFromAddress() {
return _typedSettings.getValue("emailFromAddress");
}
public String getEmailFromName() {
return _typedSettings.getValue("emailFromName");
}
public int getSmallImageWidth() {
return _typedSettings.getIntegerValue("smallImageWidth");
}
public boolean isEmailEntryAddedEnabled() {
return _typedSettings.getBooleanValue("emailEntryAddedEnabled");
}
public boolean isEmailEntryUpdatedEnabled() {
return _typedSettings.getBooleanValue("emailEntryUpdatedEnabled");
}
private static FallbackKeys _getFallbackKeys() {
FallbackKeys fallbackKeys = new FallbackKeys();
fallbackKeys.add(
"emailEntryAddedBody", PropsKeys.BLOGS_EMAIL_ENTRY_ADDED_BODY);
fallbackKeys.add(
"emailEntryAddedEnabled",
PropsKeys.BLOGS_EMAIL_ENTRY_ADDED_ENABLED);
fallbackKeys.add(
"emailEntryAddedSubject",
PropsKeys.BLOGS_EMAIL_ENTRY_ADDED_SUBJECT);
fallbackKeys.add(
"emailEntryUpdatedBody", PropsKeys.BLOGS_EMAIL_ENTRY_UPDATED_BODY);
fallbackKeys.add(
"emailEntryUpdatedEnabled",
PropsKeys.BLOGS_EMAIL_ENTRY_UPDATED_ENABLED);
fallbackKeys.add(
"emailEntryUpdatedSubject",
PropsKeys.BLOGS_EMAIL_ENTRY_UPDATED_SUBJECT);
fallbackKeys.add(
"emailFromAddress", PropsKeys.BLOGS_EMAIL_FROM_ADDRESS,
PropsKeys.ADMIN_EMAIL_FROM_ADDRESS);
fallbackKeys.add(
"emailFromName", PropsKeys.BLOGS_EMAIL_FROM_NAME,
PropsKeys.ADMIN_EMAIL_FROM_NAME);
return fallbackKeys;
}
static {
SettingsFactoryUtil.registerSettingsMetadata(
BlogsGroupServiceSettings.class, null, _getFallbackKeys());
}
private final TypedSettings _typedSettings;
}