Class NotificationContext
- Since:
- 4.2
-
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionNotificationContext(NotificationContext context) NotificationContext(NotificationContext context, Set<javax.activation.DataSource> dataSources) -
Method Summary
Modifier and TypeMethodDescriptionvoidaddTemplateImage(javax.activation.DataSource dataSource) Adds a datasource to the current set of datasources for 1 instance of notification.voidaddToWebFragmentContext(String key, String value) Adds a key/value pair to the Web-Fragment context.voidCopies the current state of this context and stores it in a sub-map.com.atlassian.user.UsergetActor()Return the context's Content.Return the context's Content id.<T> TgetEvent()<T> Optional<T>getMap()Returns a map for the renderer.com.atlassian.user.UserCollection<javax.activation.DataSource>booleanvoidvoidvoidThe type of action (e.g.voidsetActor(com.atlassian.user.User actor) Sets the user that performed the action that caused the notification to be sent.voidsetContent(ConfluenceEntityObject entity) Sets the entity that the notification is being sent regarding.voidsetContentId(ContentId contentId) Sets id of the entity that the notification is being sent regarding.voidvoidvoidsetManageNotificationOverridden(boolean isOverridden) voidsetRecipient(com.atlassian.user.User recipient) Sets the recipient for a notification.voidvoidsetWatchType(Notification.WatchType watchType)
-
Field Details
-
WEB_FRAGMENT_INNER_CONTEXT
- See Also:
-
-
Constructor Details
-
NotificationContext
public NotificationContext() -
NotificationContext
-
NotificationContext
public NotificationContext(NotificationContext context, Set<javax.activation.DataSource> dataSources)
-
-
Method Details
-
getMap
Returns a map for the renderer. It aims at being rendered by the template engine, so no modification is allowed. Do not use it to modify values of the map.- Returns:
- an immutable map
-
get
-
put
-
putAll
-
getContent
Return the context's Content. -
setContent
Sets the entity that the notification is being sent regarding.Should be set on the common NotificationContext in the
NotificationDataobject. -
getContentId
Return the context's Content id. This method is preferred overgetContent()because the Content reference might leak theConfluenceEntityObjectHibernate object. -
setContentId
Sets id of the entity that the notification is being sent regarding.Should be set on the common NotificationContext in the
NotificationDataobject. This method is preferred oversetContent(ConfluenceEntityObject)because that method might leak theConfluenceEntityObjectHibernate object. -
getEvent
- Since:
- 8.9
-
getEvent
public <T> T getEvent() -
setEvent
- Since:
- 8.9
-
isManageNotificationOverridden
public boolean isManageNotificationOverridden() -
setManageNotificationOverridden
public void setManageNotificationOverridden(boolean isOverridden) -
getWatchType
-
setWatchType
-
setSpace
-
setRecipient
public void setRecipient(com.atlassian.user.User recipient) Sets the recipient for a notification.This should be only ever be called on the per-email NotificationContext instance, never on the common one inside the
NotificationDataobject. -
getRecipient
public com.atlassian.user.User getRecipient() -
setActor
public void setActor(com.atlassian.user.User actor) Sets the user that performed the action that caused the notification to be sent.Should be set on the common NotificationContext in the
NotificationDataobject. -
getActor
public com.atlassian.user.User getActor() -
setAction
The type of action (e.g. create, delete, like, mention, share) that is causing the notification to be sent. This value must be represented by a string so that plugins can provide custom action types.Should be set on the common NotificationContext in the
NotificationDataobject. -
getAction
-
setI18n
-
addTemplateImage
public void addTemplateImage(javax.activation.DataSource dataSource) Adds a datasource to the current set of datasources for 1 instance of notification.- Parameters:
dataSource- the datasource for the image.- See Also:
-
getTemplateImageDataSources
-
addWebFragmentContext
public void addWebFragmentContext()Copies the current state of this context and stores it in a sub-map.This is required for rendering web-panels in the Notification template that:
a) cannot be passed the entire render context for technical reasons b) shouldn't be passed the entire render context because it leaks services
This method should be called on the object returned by
NotificationData.cloneContext()as soon as the Recipient user is added. -
addToWebFragmentContext
Adds a key/value pair to the Web-Fragment context.The webFragmentContext is purposely limited so that only named items like recipient and explicitly-added pairs are present in it. This is so that the context can be serialized to things like email tracking URLs. However, there's no stopping code like WebPanelFunction from adding further data to the context passed into the Soy render.
To avoid this context pollution we hide additional explicit context inside a map *inside* the map. Yo dawg indeed.
-