Class DefaultConversionContext
java.lang.Object
com.atlassian.confluence.content.render.xhtml.DefaultConversionContext
- All Implemented Interfaces:
ConversionContext
A non-thread safe implementation of the ConversionContext suitable for use in the single threaded XHTML output process.
Unless explicitly set the getOutputDeviceType()
will
return ConversionContextOutputDeviceType.DESKTOP
.
-
Field Summary
Fields inherited from interface com.atlassian.confluence.content.render.xhtml.ConversionContext
IS_VALIDATING_COMMENT
-
Constructor Summary
ConstructorDescriptionDefaultConversionContext
(com.atlassian.renderer.RenderContext renderContext) DefaultConversionContext
(com.atlassian.renderer.RenderContext renderContext, String outputDeviceType) Create a DefaultConversionContext for the specified output device type. -
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-safeboolean
If multiple items are being converted in this 'context' then the complete tree of ContentNodes will be retrieved via this method.Get the current ContentEntityObject for this context.The properties returned in this map are guaranteed to be immutable, they are not guaranteed to all be present.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 callConversionContext.getPropertyAsString(String)
with the parameter "output-device-type".@NonNull String
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.com.atlassian.renderer.RenderContext
The spacekey for the current context if applicable or null otherwise.int
hashCode()
boolean
hasProperty
(String name) Returns true if the property with the specified key has been set.Deprecated.since 7.0.1.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
setContentTree
(ContentTree contentTree) 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.Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface com.atlassian.confluence.content.render.xhtml.ConversionContext
getTimeout
-
Constructor Details
-
DefaultConversionContext
public DefaultConversionContext(com.atlassian.renderer.RenderContext renderContext) -
DefaultConversionContext
public DefaultConversionContext(com.atlassian.renderer.RenderContext renderContext, String outputDeviceType) Create a DefaultConversionContext for the specified output device type. Note that any output device type on the supplied RenderContext will be overridden by the provided value.- Parameters:
renderContext
-outputDeviceType
-
-
-
Method Details
-
immutableProperties
Deprecated.since 7.0.1. UsegetImmutableProperties()
The properties returned in this map are guaranteed to be immutable, they are not guaranteed to all be present.- Returns:
- an immutable map of the immutable properties in the conversion context
-
getImmutableProperties
The properties returned in this map are guaranteed to be immutable, they are not guaranteed to all be present.- Returns:
- an immutable map of the immutable properties in the conversion context
- Since:
- 7.0.1
-
getPageContext
- Specified by:
getPageContext
in interfaceConversionContext
- Returns:
- the underlying PageContext wrapped by the ConversionContext.
- See Also:
-
getRenderContext
public com.atlassian.renderer.RenderContext getRenderContext()- Specified by:
getRenderContext
in interfaceConversionContext
-
removeProperty
Description copied from interface:ConversionContext
Removes the property references by the key from the conversion context and returns it.- Specified by:
removeProperty
in interfaceConversionContext
- Parameters:
name
- The unique key of the property. SeeConversionContextPropertyName
for common names.- Returns:
- The property from the conversion context.
-
setProperty
Description copied from interface:ConversionContext
Sets the property specified by name in the conversion context.- Specified by:
setProperty
in interfaceConversionContext
- Parameters:
name
- A unique key for this property. SeeConversionContextPropertyName
for common names.value
- The value of the property.
-
getProperty
Description copied from interface:ConversionContext
Return a property from the context.- Specified by:
getProperty
in interfaceConversionContext
- Parameters:
name
- of the property. SeeConversionContextPropertyName
for common names.- Returns:
- a property from the context.
-
getProperty
Description copied from interface:ConversionContext
Return a property from the context or the supplied defaultValue if the property does not exist on the context.- Specified by:
getProperty
in interfaceConversionContext
- 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
Description copied from interface:ConversionContext
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.
- Specified by:
getPropertyAsString
in interfaceConversionContext
- Parameters:
name
- The key for the property- Returns:
- The String value of the property or null if the property does not exist.
-
hasProperty
Description copied from interface:ConversionContext
Returns true if the property with the specified key has been set.- Specified by:
hasProperty
in interfaceConversionContext
- Parameters:
name
- The name of the property- Returns:
- True if the property exists in this context.
-
getContentTree
Description copied from interface:ConversionContext
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.- Specified by:
getContentTree
in interfaceConversionContext
- 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.
-
setContentTree
-
getOutputDeviceType
Description copied from interface:ConversionContext
Note, that if you want your code to be compatible with versions of Confluence older then 4.3.2 then you can instead callConversionContext.getPropertyAsString(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.- Specified by:
getOutputDeviceType
in interfaceConversionContext
- Returns:
- the output device type. Typically this would be
ConversionContextOutputDeviceType.DESKTOP
but plugins that have their own renderer could use other types
-
getOutputType
- Specified by:
getOutputType
in interfaceConversionContext
- Returns:
- one of the Strings returned by
ConversionContextOutputType.value()
which indicates the target output type for the conversion.
-
isAsyncRenderSafe
public boolean isAsyncRenderSafe()- Specified by:
isAsyncRenderSafe
in interfaceConversionContext
- Returns:
- true if the content is safe to render in asynchronously, e.g. dynamically on a page without a page refresh.
-
disableAsyncRenderSafe
public void disableAsyncRenderSafe()Mark the content rendered in this context as non-async-render-safe- Specified by:
disableAsyncRenderSafe
in interfaceConversionContext
-
timeout
public io.atlassian.util.concurrent.Timeout timeout()Description copied from interface:ConversionContext
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()
.- Specified by:
timeout
in interfaceConversionContext
- Returns:
- the timeout to perform the conversion.
-
checkTimeout
Description copied from interface:ConversionContext
Check the timeout and throw an XhtmlTimeoutException if the timeout is expired. UseConversionContext.timeout()
andTimeout.isExpired()
to check the timeout without throwing an exception.- Specified by:
checkTimeout
in interfaceConversionContext
- Throws:
XhtmlTimeoutException
- if the conversion has exceeded its time limit.
-
isDiffOrEmail
public boolean isDiffOrEmail()Description copied from interface:ConversionContext
Check if the current context isConversionContextOutputType.DIFF
orConversionContextOutputType.EMAIL
- Specified by:
isDiffOrEmail
in interfaceConversionContext
- Returns:
- true if the context is DIFF or EMAIL
-
addMarshallerMetricsConsumer
Description copied from interface:ConversionContext
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.- Specified by:
addMarshallerMetricsConsumer
in interfaceConversionContext
-
removeMarshallerMetricsConsumer
Description copied from interface:ConversionContext
Removes a consumer ofMarshallerMetrics
that is associated with the current render.- Specified by:
removeMarshallerMetricsConsumer
in interfaceConversionContext
- Returns:
- true if the specified consumer was removed.
-
getMarshallerMetricsConsumers
Description copied from interface:ConversionContext
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.- Specified by:
getMarshallerMetricsConsumers
in interfaceConversionContext
- Returns:
- the list of consumers
-
equals
-
hashCode
public int hashCode() -
getEntity
Description copied from interface:ConversionContext
Get the current ContentEntityObject for this context.- Specified by:
getEntity
in interfaceConversionContext
- Returns:
- The ContentEntityObject for this context.
-
getTemplate
- Specified by:
getTemplate
in interfaceConversionContext
-
getSpaceKey
Description copied from interface:ConversionContext
The spacekey for the current context if applicable or null otherwise.- Specified by:
getSpaceKey
in interfaceConversionContext
- Returns:
- The spacekey or null.
-