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 return ConversionContextOutputDeviceType.DESKTOP.

  • 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 public com.google.common.collect.ImmutableMap<String,Object> immutableProperties()
      Deprecated.
      since 7.0.1. Use 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
    • 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:
      getPageContext in interface ConversionContext
      Returns:
      the underlying PageContext wrapped by the ConversionContext.
      See Also:
    • getRenderContext

      public com.atlassian.renderer.RenderContext getRenderContext()
      Specified by:
      getRenderContext in interface ConversionContext
    • removeProperty

      public Object removeProperty(String name)
      Description copied from interface: ConversionContext
      Removes the property references by the key from the conversion context and returns it.
      Specified by:
      removeProperty in interface ConversionContext
      Parameters:
      name - The unique key of the property. See ConversionContextPropertyName for common names.
      Returns:
      The property from the conversion context.
    • setProperty

      public void setProperty(String name, Object value)
      Description copied from interface: ConversionContext
      Sets the property specified by name in the conversion context.
      Specified by:
      setProperty in interface ConversionContext
      Parameters:
      name - A unique key for this property. See ConversionContextPropertyName for common names.
      value - The value of the property.
    • getProperty

      public Object getProperty(String name)
      Description copied from interface: ConversionContext
      Return a property from the context.
      Specified by:
      getProperty in interface ConversionContext
      Parameters:
      name - of the property. See ConversionContextPropertyName for common names.
      Returns:
      a property from the context.
    • getProperty

      public Object getProperty(String name, Object defaultValue)
      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 interface ConversionContext
      Parameters:
      name - the name of the property
      defaultValue - 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: 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 interface ConversionContext
      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: ConversionContext
      Returns true if the property with the specified key has been set.
      Specified by:
      hasProperty in interface ConversionContext
      Parameters:
      name - The name of the property
      Returns:
      True if the property exists in this context.
    • getContentTree

      public ContentTree 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 interface ConversionContext
      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: ConversionContext
      Note, that if you want your code to be compatible with versions of Confluence older then 4.3.2 then you can instead call ConversionContext.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 calling
      getPropertyAsString("output-device-type")
      instead.
      Specified by:
      getOutputDeviceType in interface ConversionContext
      Returns:
      the output device type. Typically this would be ConversionContextOutputDeviceType.DESKTOP but plugins that have their own renderer could use other types
    • getOutputType

      public @NonNull String getOutputType()
      Specified by:
      getOutputType in interface ConversionContext
      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 interface ConversionContext
      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 interface ConversionContext
    • 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 using Timeout.isExpired(), or how much longer conversion should be allowed to run using Timeout.getTime(), Timeout.getUnit().
      Specified by:
      timeout in interface ConversionContext
      Returns:
      the timeout to perform the conversion.
    • checkTimeout

      public void checkTimeout() throws XhtmlTimeoutException
      Description copied from interface: ConversionContext
      Check the timeout and throw an XhtmlTimeoutException if the timeout is expired. Use ConversionContext.timeout() and Timeout.isExpired() to check the timeout without throwing an exception.
      Specified by:
      checkTimeout in interface ConversionContext
      Throws:
      XhtmlTimeoutException - if the conversion has exceeded its time limit.
    • isDiffOrEmail

      public boolean isDiffOrEmail()
      Description copied from interface: ConversionContext
      Specified by:
      isDiffOrEmail in interface ConversionContext
      Returns:
      true if the context is DIFF or EMAIL
    • addMarshallerMetricsConsumer

      public void addMarshallerMetricsConsumer(MarshallerMetricsConsumer consumer)
      Description copied from interface: ConversionContext
      Adds a consumer of MarshallerMetrics 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 interface ConversionContext
    • removeMarshallerMetricsConsumer

      public boolean removeMarshallerMetricsConsumer(MarshallerMetricsConsumer consumer)
      Description copied from interface: ConversionContext
      Removes a consumer of MarshallerMetrics that is associated with the current render.
      Specified by:
      removeMarshallerMetricsConsumer in interface ConversionContext
      Returns:
      true if the specified consumer was removed.
    • getMarshallerMetricsConsumers

      public Set<MarshallerMetricsConsumer> getMarshallerMetricsConsumers()
      Description copied from interface: ConversionContext
      Returns the consumers of MarshallerMetrics 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 interface ConversionContext
      Returns:
      the list of consumers
    • equals

      public boolean equals(Object o)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • getEntity

      public ContentEntityObject getEntity()
      Description copied from interface: ConversionContext
      Get the current ContentEntityObject for this context.
      Specified by:
      getEntity in interface ConversionContext
      Returns:
      The ContentEntityObject for this context.
    • getTemplate

      public PageTemplate getTemplate()
      Specified by:
      getTemplate in interface ConversionContext
    • getSpaceKey

      public String getSpaceKey()
      Description copied from interface: ConversionContext
      The spacekey for the current context if applicable or null otherwise.
      Specified by:
      getSpaceKey in interface ConversionContext
      Returns:
      The spacekey or null.