Interface ConversionContext

All Known Implementing Classes:
DefaultConversionContext

public interface ConversionContext
Since:
4.0
  • Field Details

    • IS_VALIDATING_COMMENT

      static final String IS_VALIDATING_COMMENT
      This property will be set when validating a comment.
      Since:
      4.3
  • Method Details

    • setProperty

      void setProperty(String name, Object value)
      Sets the property specified by name in the conversion context.
      Parameters:
      name - A unique key for this property. See ConversionContextPropertyName for common names.
      value - The value of the property.
    • getPageContext

      @Deprecated PageContext getPageContext()
      Deprecated.
      since 7.5.0, use getRenderContext() instead.
      Returns:
      the underlying PageContext wrapped by the ConversionContext.
      See Also:
    • getRenderContext

      default com.atlassian.renderer.RenderContext getRenderContext()
    • removeProperty

      Object removeProperty(String name)
      Removes the property references by the key from the conversion context and returns it.
      Parameters:
      name - The unique key of the property. See ConversionContextPropertyName for common names.
      Returns:
      The property from the conversion context.
    • getProperty

      Object getProperty(String name)
      Return a property from the context.
      Parameters:
      name - of the property. See ConversionContextPropertyName for common names.
      Returns:
      a property from the context.
    • getProperty

      Object getProperty(String name, Object defaultValue)
      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 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

      String getPropertyAsString(String name)
      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

      boolean hasProperty(String name)
      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 call 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.
      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

      default @Nullable PageTemplate getTemplate()
    • getSpaceKey

      String getSpaceKey()
      The spacekey for the current context if applicable or null otherwise.
      Returns:
      The spacekey or null.
    • getTimeout

      @Deprecated default com.atlassian.util.concurrent.Timeout getTimeout()
      Deprecated.
      since 7.0.1. Use timeout()
      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().
      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 using Timeout.isExpired(), or how much longer conversion should be allowed to run using Timeout.getTime(), Timeout.getUnit().
      Returns:
      the timeout to perform the conversion.
      Since:
      7.0.1
    • checkTimeout

      void checkTimeout() throws XhtmlTimeoutException
      Check the timeout and throw an XhtmlTimeoutException if the timeout is expired. Use timeout() and Timeout.isExpired() to check the timeout without throwing an exception.
      Throws:
      XhtmlTimeoutException - if the conversion has exceeded its time limit.
    • isDiffOrEmail

      boolean isDiffOrEmail()
      Returns:
      true if the context is DIFF or EMAIL
    • addMarshallerMetricsConsumer

      void addMarshallerMetricsConsumer(MarshallerMetricsConsumer consumer)
      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.
    • removeMarshallerMetricsConsumer

      boolean removeMarshallerMetricsConsumer(MarshallerMetricsConsumer consumer)
      Removes a consumer of MarshallerMetrics that is associated with the current render.
      Returns:
      true if the specified consumer was removed.
    • getMarshallerMetricsConsumers

      Set<MarshallerMetricsConsumer> getMarshallerMetricsConsumers()
      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.
      Returns:
      the list of consumers