Class DefaultConversionContext
- java.lang.Object
-
- com.atlassian.confluence.content.render.xhtml.DefaultConversionContext
-
- All Implemented Interfaces:
ConversionContext
public class DefaultConversionContext extends Object implements 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 returnConversionContextOutputDeviceType.DESKTOP.
-
-
Field Summary
-
Fields inherited from interface com.atlassian.confluence.content.render.xhtml.ConversionContext
IS_VALIDATING_COMMENT
-
-
Constructor Summary
Constructors Constructor Description DefaultConversionContext(com.atlassian.renderer.RenderContext renderContext)DefaultConversionContext(com.atlassian.renderer.RenderContext renderContext, String outputDeviceType)Create a DefaultConversionContext for the specified output device type.
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description voidaddMarshallerMetricsConsumer(MarshallerMetricsConsumer consumer)Adds a consumer ofMarshallerMetricsthat is associated with the current render.voidcheckTimeout()Check the timeout and throw an XhtmlTimeoutException if the timeout is expired.voiddisableAsyncRenderSafe()Mark the content rendered in this context as non-async-render-safebooleanequals(Object o)ContentTreegetContentTree()If multiple items are being converted in this 'context' then the complete tree of ContentNodes will be retrieved via this method.ContentEntityObjectgetEntity()Get the current ContentEntityObject for this context.Map<String,Object>getImmutableProperties()The properties returned in this map are guaranteed to be immutable, they are not guaranteed to all be present.Set<MarshallerMetricsConsumer>getMarshallerMetricsConsumers()Returns the consumers ofMarshallerMetricsthat are associated with the current render.StringgetOutputDeviceType()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 StringgetOutputType()PageContextgetPageContext()ObjectgetProperty(String name)Return a property from the context.ObjectgetProperty(String name, Object defaultValue)Return a property from the context or the supplied defaultValue if the property does not exist on the context.StringgetPropertyAsString(String name)Returns the property for this key as a String.com.atlassian.renderer.RenderContextgetRenderContext()StringgetSpaceKey()The spacekey for the current context if applicable or null otherwise.PageTemplategetTemplate()inthashCode()booleanhasProperty(String name)Returns true if the property with the specified key has been set.com.google.common.collect.ImmutableMap<String,Object>immutableProperties()Deprecated.since 7.0.1.booleanisAsyncRenderSafe()booleanisDiffOrEmail()Check if the current context isConversionContextOutputType.DIFForConversionContextOutputType.EMAILbooleanremoveMarshallerMetricsConsumer(MarshallerMetricsConsumer consumer)Removes a consumer ofMarshallerMetricsthat is associated with the current render.ObjectremoveProperty(String name)Removes the property references by the key from the conversion context and returns it.voidsetContentTree(ContentTree contentTree)voidsetProperty(String name, Object value)Sets the property specified by name in the conversion context.io.atlassian.util.concurrent.Timeouttimeout()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 Detail
-
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 Detail
-
immutableProperties
@Deprecated public com.google.common.collect.ImmutableMap<String,Object> 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
public Map<String,Object> 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
public PageContext getPageContext()
- Specified by:
getPageContextin interfaceConversionContext- Returns:
- the underlying PageContext wrapped by the ConversionContext.
- See Also:
DefaultConversionContext
-
getRenderContext
public com.atlassian.renderer.RenderContext getRenderContext()
- Specified by:
getRenderContextin interfaceConversionContext
-
removeProperty
public Object removeProperty(String name)
Description copied from interface:ConversionContextRemoves the property references by the key from the conversion context and returns it.- Specified by:
removePropertyin interfaceConversionContext- Parameters:
name- The unique key of the property. SeeConversionContextPropertyNamefor common names.- Returns:
- The property from the conversion context.
-
setProperty
public void setProperty(String name, Object value)
Description copied from interface:ConversionContextSets the property specified by name in the conversion context.- Specified by:
setPropertyin interfaceConversionContext- Parameters:
name- A unique key for this property. SeeConversionContextPropertyNamefor common names.value- The value of the property.
-
getProperty
public Object getProperty(String name)
Description copied from interface:ConversionContextReturn a property from the context.- Specified by:
getPropertyin interfaceConversionContext- Parameters:
name- of the property. SeeConversionContextPropertyNamefor common names.- Returns:
- a property from the context.
-
getProperty
public Object getProperty(String name, Object defaultValue)
Description copied from interface:ConversionContextReturn a property from the context or the supplied defaultValue if the property does not exist on the context.- Specified by:
getPropertyin 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
public String getPropertyAsString(String name)
Description copied from interface:ConversionContextReturns 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:
getPropertyAsStringin interfaceConversionContext- Parameters:
name- The key for the property- Returns:
- The String value of the property or null if the property does not exist.
-
hasProperty
public boolean hasProperty(String name)
Description copied from interface:ConversionContextReturns true if the property with the specified key has been set.- Specified by:
hasPropertyin interfaceConversionContext- Parameters:
name- The name of the property- Returns:
- True if the property exists in this context.
-
getContentTree
public ContentTree getContentTree()
Description copied from interface:ConversionContextIf 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:
getContentTreein 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
public void setContentTree(ContentTree contentTree)
-
getOutputDeviceType
public String getOutputDeviceType()
Description copied from interface:ConversionContextNote, 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:
getOutputDeviceTypein interfaceConversionContext- Returns:
- the output device type. Typically this would be
ConversionContextOutputDeviceType.DESKTOPbut plugins that have their own renderer could use other types
-
getOutputType
public @NonNull String getOutputType()
- Specified by:
getOutputTypein 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:
isAsyncRenderSafein 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:
disableAsyncRenderSafein interfaceConversionContext
-
timeout
public io.atlassian.util.concurrent.Timeout timeout()
Description copied from interface:ConversionContextThe 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:
timeoutin interfaceConversionContext- Returns:
- the timeout to perform the conversion.
-
checkTimeout
public void checkTimeout() throws XhtmlTimeoutExceptionDescription copied from interface:ConversionContextCheck 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:
checkTimeoutin interfaceConversionContext- Throws:
XhtmlTimeoutException- if the conversion has exceeded its time limit.
-
isDiffOrEmail
public boolean isDiffOrEmail()
Description copied from interface:ConversionContextCheck if the current context isConversionContextOutputType.DIFForConversionContextOutputType.EMAIL- Specified by:
isDiffOrEmailin interfaceConversionContext- Returns:
- true if the context is DIFF or EMAIL
-
addMarshallerMetricsConsumer
public void addMarshallerMetricsConsumer(MarshallerMetricsConsumer consumer)
Description copied from interface:ConversionContextAdds a consumer ofMarshallerMetricsthat 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:
addMarshallerMetricsConsumerin interfaceConversionContext
-
removeMarshallerMetricsConsumer
public boolean removeMarshallerMetricsConsumer(MarshallerMetricsConsumer consumer)
Description copied from interface:ConversionContextRemoves a consumer ofMarshallerMetricsthat is associated with the current render.- Specified by:
removeMarshallerMetricsConsumerin interfaceConversionContext- Returns:
- true if the specified consumer was removed.
-
getMarshallerMetricsConsumers
public Set<MarshallerMetricsConsumer> getMarshallerMetricsConsumers()
Description copied from interface:ConversionContextReturns the consumers ofMarshallerMetricsthat 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:
getMarshallerMetricsConsumersin interfaceConversionContext- Returns:
- the list of consumers
-
getEntity
public ContentEntityObject getEntity()
Description copied from interface:ConversionContextGet the current ContentEntityObject for this context.- Specified by:
getEntityin interfaceConversionContext- Returns:
- The ContentEntityObject for this context.
-
getTemplate
public PageTemplate getTemplate()
- Specified by:
getTemplatein interfaceConversionContext
-
getSpaceKey
public String getSpaceKey()
Description copied from interface:ConversionContextThe spacekey for the current context if applicable or null otherwise.- Specified by:
getSpaceKeyin interfaceConversionContext- Returns:
- The spacekey or null.
-
-