Interface ConversionContext
- All Known Implementing Classes:
DefaultConversionContext
public interface ConversionContext
- Since:
- 4.0
-
Field Summary
Modifier and TypeFieldDescriptionstatic final String
This property will be set when validating a comment. -
Method Summary
Modifier and TypeMethodDescriptionvoid
Adds a consumer ofMarshallerMetrics
that is associated with the current render.void
Check the timeout and throw an XhtmlTimeoutException if the timeout is expired.void
Mark the content rendered in this context as non-async-render-safeIf multiple items are being converted in this 'context' then the complete tree of ContentNodes will be retrieved via this method.@Nullable ContentEntityObject
Get the current ContentEntityObject for this context.Returns the consumers ofMarshallerMetrics
that are associated with the current render.Note, that if you want your code to be compatible with versions of Confluence older then 4.3.2 then you can instead callgetPropertyAsString(String)
with the parameter "output-device-type".@NonNull String
Deprecated.getProperty
(String name) Return a property from the context.getProperty
(String name, Object defaultValue) Return a property from the context or the supplied defaultValue if the property does not exist on the context.getPropertyAsString
(String name) Returns the property for this key as a String.default com.atlassian.renderer.RenderContext
The spacekey for the current context if applicable or null otherwise.default @Nullable PageTemplate
default com.atlassian.util.concurrent.Timeout
Deprecated.since 7.0.1.boolean
hasProperty
(String name) Returns true if the property with the specified key has been set.boolean
boolean
Check if the current context isConversionContextOutputType.DIFF
orConversionContextOutputType.EMAIL
boolean
Removes a consumer ofMarshallerMetrics
that is associated with the current render.removeProperty
(String name) Removes the property references by the key from the conversion context and returns it.void
setProperty
(String name, Object value) Sets the property specified by name in the conversion context.io.atlassian.util.concurrent.Timeout
timeout()
The Timeout object for this Conversion.
-
Field Details
-
IS_VALIDATING_COMMENT
This property will be set when validating a comment.- Since:
- 4.3
-
-
Method Details
-
setProperty
Sets the property specified by name in the conversion context.- Parameters:
name
- A unique key for this property. SeeConversionContextPropertyName
for common names.value
- The value of the property.
-
getPageContext
Deprecated.since 7.5.0, usegetRenderContext()
instead.- Returns:
- the underlying PageContext wrapped by the ConversionContext.
- See Also:
-
getRenderContext
default com.atlassian.renderer.RenderContext getRenderContext() -
removeProperty
Removes the property references by the key from the conversion context and returns it.- Parameters:
name
- The unique key of the property. SeeConversionContextPropertyName
for common names.- Returns:
- The property from the conversion context.
-
getProperty
Return a property from the context.- Parameters:
name
- of the property. SeeConversionContextPropertyName
for common names.- Returns:
- a property from the context.
-
getProperty
Return a property from the context or the supplied defaultValue if the property does not exist on the context.- Parameters:
name
- the name of the propertydefaultValue
- the default value to return if the property is not found.- Returns:
- the value of the found property or the default value if not found.
-
getPropertyAsString
Returns the property for this key as a String.toString() will be called if this is not the java.lang.String class.
null will be returned if this property does not exist.
- Parameters:
name
- The key for the property- Returns:
- The String value of the property or null if the property does not exist.
-
hasProperty
Returns true if the property with the specified key has been set.- Parameters:
name
- The name of the property- Returns:
- True if the property exists in this context.
-
getContentTree
ContentTree getContentTree()If multiple items are being converted in this 'context' then the complete tree of ContentNodes will be retrieved via this method. If only a single item is being converted in the context then a ContentTree containing a single ContentNode will be returned.- Returns:
- a ContentTree representing all the items being converted in this context. An empty ContentTree may be returned if there is no explicit content being converted in this context.
-
getOutputDeviceType
String getOutputDeviceType()Note, that if you want your code to be compatible with versions of Confluence older then 4.3.2 then you can instead callgetPropertyAsString(String)
with the parameter "output-device-type". For example, if you are a plugin developer writing a macro that can target different device types such as mobile, you can retain a common code base for your mobile and non-mobile implementations by avoiding this method and callinggetPropertyAsString("output-device-type")
instead.- Returns:
- the output device type. Typically this would be
ConversionContextOutputDeviceType.DESKTOP
but plugins that have their own renderer could use other types - Since:
- 4.3.2
-
getOutputType
@NonNull String getOutputType()- Returns:
- one of the Strings returned by
ConversionContextOutputType.value()
which indicates the target output type for the conversion.
-
isAsyncRenderSafe
boolean isAsyncRenderSafe()- Returns:
- true if the content is safe to render in asynchronously, e.g. dynamically on a page without a page refresh.
- Since:
- 5.6
-
disableAsyncRenderSafe
void disableAsyncRenderSafe()Mark the content rendered in this context as non-async-render-safe- Since:
- 5.6
-
getEntity
@Nullable ContentEntityObject getEntity()Get the current ContentEntityObject for this context.- Returns:
- The ContentEntityObject for this context.
-
getTemplate
-
getSpaceKey
String getSpaceKey()The spacekey for the current context if applicable or null otherwise.- Returns:
- The spacekey or null.
-
getTimeout
Deprecated.since 7.0.1. Usetimeout()
The Timeout object for this Conversion. This can be checked to see if conversion should be terminated usingTimeout.isExpired()
, or how much longer conversion should be allowed to run usingTimeout.getTime()
,Timeout.getUnit()
.- Returns:
- the timeout to perform the conversion.
-
timeout
io.atlassian.util.concurrent.Timeout timeout()The Timeout object for this Conversion. This can be checked to see if conversion should be terminated usingTimeout.isExpired()
, or how much longer conversion should be allowed to run usingTimeout.getTime()
,Timeout.getUnit()
.- Returns:
- the timeout to perform the conversion.
- Since:
- 7.0.1
-
checkTimeout
Check the timeout and throw an XhtmlTimeoutException if the timeout is expired. Usetimeout()
andTimeout.isExpired()
to check the timeout without throwing an exception.- Throws:
XhtmlTimeoutException
- if the conversion has exceeded its time limit.
-
isDiffOrEmail
boolean isDiffOrEmail()Check if the current context isConversionContextOutputType.DIFF
orConversionContextOutputType.EMAIL
- Returns:
- true if the context is DIFF or EMAIL
-
addMarshallerMetricsConsumer
Adds a consumer ofMarshallerMetrics
that is associated with the current render. These consumers are used instead of event listeners because their scope of interest is limited to a particular thread. -
removeMarshallerMetricsConsumer
Removes a consumer ofMarshallerMetrics
that is associated with the current render.- Returns:
- true if the specified consumer was removed.
-
getMarshallerMetricsConsumers
Set<MarshallerMetricsConsumer> getMarshallerMetricsConsumers()Returns the consumers ofMarshallerMetrics
that are associated with the current render. These consumers are used instead of event listeners because their scope of interest is limited to a particular thread.- Returns:
- the list of consumers
-
getRenderContext()
instead.