Class AbstractSendNotificationObserver
- java.lang.Object
-
- org.ametys.runtime.plugin.component.AbstractLogEnabled
-
- org.ametys.plugins.workspaces.project.notification.AbstractSendNotificationObserver
-
- All Implemented Interfaces:
Observer,LogEnabled,PluginAware,Contextualizable,Serviceable
- Direct Known Subclasses:
ResourcesMailNotifierObserver,TaskMailNotifierObserver,ThreadsMailNotifierObserver
public abstract class AbstractSendNotificationObserver extends AbstractLogEnabled implements Observer, Serviceable, Contextualizable, PluginAware
Observerfor observing events on resources project
-
-
Field Summary
Fields Modifier and Type Field Description protected Context_contextThe avalon contextprotected I18nUtils_i18nUtilsThe i18n utilsprotected WorkspaceModuleExtensionPoint_moduleManagerEPThe workspace module managers EPprotected String_pluginNameThe name of current pluginprotected ProjectManager_projectManagerThe project managerprotected RenderingContextHandler_renderingContextHandlerThe rendering context handlerprotected AmetysObjectResolver_resolverThe Ametys Object Resolverprotected RightManager_rightManagerThe rights managerprotected UserManager_userManagerThe users manager-
Fields inherited from interface org.ametys.core.observation.Observer
MAX_PRIORITY, MIN_PRIORITY
-
-
Constructor Summary
Constructors Constructor Description AbstractSendNotificationObserver()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected String_getPath(String rootPath, String path)format the path without the root pathvoidcontextualize(Context context)protected List<String>getMailCommonParams(Project project, User issuer, String explorerNodeId)Get the common mail parametersprotected PagegetModulePage(Project project, String moduleId)Get the module's pageprotected StringgetModuleUrl(Project project, String moduleId, String objectId)Get the absolute full url of module'pageintgetPriority(Event event)Retrieves the priority to observe this event.
This can be used to process a supported event before others observers.protected ProjectgetProject(Event event)Get the project from eventprotected StringgetProjectUrl(Project project)Get the absolute url of projectprotected abstract StringgetRightIdForNotify()Get the right to check allowed users to notify by mailprotected abstract StringgetUrl(Project project, String objectId)Get the URL of project to insert in email bodyprotected List<UserIdentity>getUsersToNotify(String eventId, AmetysObject object)Get the users allowed to be notifiedprotected abstract voidnotifyEvent(Project project, String eventId, Map<String,Object> eventParams, User issuer)Notify email by mailvoidobserve(Event event, Map<String,Object> transientVars)Observes an event.protected voidsendMail(String eventId, List<UserIdentity> recipients, String mailBodyi18nKey, String mailSubjecti18nKey, List<String> mailBodyParams, List<String> mailSubjectParams)Sent an emailvoidservice(ServiceManager manager)voidsetPluginInfo(String pluginName, String featureName, String id)Sets the plugin info relative to the current component.
Note : The feature name may be null if the targeted component in declared at plugin level.-
Methods inherited from class org.ametys.runtime.plugin.component.AbstractLogEnabled
getLogger, setLogger
-
-
-
-
Field Detail
-
_resolver
protected AmetysObjectResolver _resolver
The Ametys Object Resolver
-
_userManager
protected UserManager _userManager
The users manager
-
_rightManager
protected RightManager _rightManager
The rights manager
-
_i18nUtils
protected I18nUtils _i18nUtils
The i18n utils
-
_projectManager
protected ProjectManager _projectManager
The project manager
-
_renderingContextHandler
protected RenderingContextHandler _renderingContextHandler
The rendering context handler
-
_pluginName
protected String _pluginName
The name of current plugin
-
_moduleManagerEP
protected WorkspaceModuleExtensionPoint _moduleManagerEP
The workspace module managers EP
-
-
Constructor Detail
-
AbstractSendNotificationObserver
public AbstractSendNotificationObserver()
-
-
Method Detail
-
service
public void service(ServiceManager manager) throws ServiceException
- Specified by:
servicein interfaceServiceable- Throws:
ServiceException
-
contextualize
public void contextualize(Context context) throws ContextException
- Specified by:
contextualizein interfaceContextualizable- Throws:
ContextException
-
setPluginInfo
public void setPluginInfo(String pluginName, String featureName, String id)
Description copied from interface:PluginAwareSets the plugin info relative to the current component.
Note : The feature name may be null if the targeted component in declared at plugin level.- Specified by:
setPluginInfoin interfacePluginAware- Parameters:
pluginName- Unique identifier for the plugin hosting the extensionfeatureName- Unique feature identifier (unique for a given pluginName)id- Unique identifier of this component
-
getPriority
public int getPriority(Event event)
Description copied from interface:ObserverRetrieves the priority to observe this event.
This can be used to process a supported event before others observers.- Specified by:
getPriorityin interfaceObserver- Parameters:
event- the event.- Returns:
- the priority where 0 the max priority and Integer.MAX_VALUE the min priority.
-
observe
public void observe(Event event, Map<String,Object> transientVars)
Description copied from interface:ObserverObserves an event.
-
notifyEvent
protected abstract void notifyEvent(Project project, String eventId, Map<String,Object> eventParams, User issuer)
Notify email by mail- Parameters:
project- The projecteventId- The id of eventeventParams- The event's argumentsissuer- The issuer
-
getProject
protected Project getProject(Event event)
Get the project from event- Parameters:
event- The event- Returns:
- the project or null if not found
-
getMailCommonParams
protected List<String> getMailCommonParams(Project project, User issuer, String explorerNodeId)
Get the common mail parameters- Parameters:
project- The parent projectissuer- The user responsible of the actionexplorerNodeId- the id of the explorer node. Can be null.- Returns:
- an array of strings used in every mail
-
getModulePage
protected Page getModulePage(Project project, String moduleId)
Get the module's page- Parameters:
project- The projectmoduleId- The module- Returns:
- The page or
nullif not found
-
getModuleUrl
protected String getModuleUrl(Project project, String moduleId, String objectId)
Get the absolute full url of module'page- Parameters:
project- The projectmoduleId- The module. Can not be nullobjectId- The id of concerned object. Can be null.- Returns:
- The
-
getProjectUrl
protected String getProjectUrl(Project project)
Get the absolute url of project- Parameters:
project- The project- Returns:
- the project's url
-
getUrl
protected abstract String getUrl(Project project, String objectId)
Get the URL of project to insert in email body- Parameters:
project- The projectobjectId- The id of concerned object- Returns:
- The full URL
-
sendMail
protected void sendMail(String eventId, List<UserIdentity> recipients, String mailBodyi18nKey, String mailSubjecti18nKey, List<String> mailBodyParams, List<String> mailSubjectParams)
Sent an email- Parameters:
eventId- The id of eventrecipients- The recipients of the mailmailBodyi18nKey- i18n key for the bodymailSubjecti18nKey- i18n key for the subjectmailBodyParams- parameters for the bodymailSubjectParams- parameters for the subject
-
getUsersToNotify
protected List<UserIdentity> getUsersToNotify(String eventId, AmetysObject object)
Get the users allowed to be notified- Parameters:
eventId- The id of eventobject- The object on which to test rights- Returns:
- The allowed users
-
getRightIdForNotify
protected abstract String getRightIdForNotify()
Get the right to check allowed users to notify by mail- Returns:
- the right id to check
-
-