OutputFormat (FreeMarker 2.3.35 API)
Description: declaration: package: freemarker.core, class: OutputFormat

Package freemarker.core

# Class OutputFormat

java.lang.Object
freemarker.core.OutputFormat

Direct Known Subclasses:
  `CSSOutputFormat`, `JavaScriptOutputFormat`, `JSONOutputFormat`, `MarkupOutputFormat`, `PlainTextOutputFormat`, `UndefinedOutputFormat`

public abstract class OutputFormat extends Object
Represents an output format. If you need auto-escaping, see its subclass, `MarkupOutputFormat`.

Since:
  2.3.24
See Also:
  `Configuration.setOutputFormat(OutputFormat)`, `Configuration.setRegisteredCustomOutputFormats(java.util.Collection)`, `MarkupOutputFormat`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `OutputFormat()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `abstract String`
  `getMimeType()`
  Returns the MIME type of the output format.
  `abstract String`
  `getName()`
  The short name used to refer to this format (like in the `#ftl` header).
  `abstract boolean`
  `isOutputFormatMixingAllowed()`
  Tells if this output format allows inserting `TemplateMarkupOutputModel`-s of another output formats into it.
  `String`
  `toString()`
  Returns the short description of this format, to be used in error messages.
  `protected String`
  `toStringExtraProperties()`
  Should be like `"foo=\"something\", bar=123"`; this will be inserted inside the parentheses in `toString()`.

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- ## Constructor Details

  - ### OutputFormat

    public OutputFormat()

- ## Method Details

  - ### getName

    public abstract String getName()
    The short name used to refer to this format (like in the `#ftl` header).

  - ### getMimeType

    public abstract String getMimeType()
    Returns the MIME type of the output format. This might comes handy when generating a HTTP response. `null` `null` if this output format doesn't clearly corresponds to a specific MIME type.

  - ### isOutputFormatMixingAllowed

    public abstract boolean isOutputFormatMixingAllowed()
    Tells if this output format allows inserting `TemplateMarkupOutputModel`-s of another output formats into it.

    If `true`, the foreign `TemplateMarkupOutputModel` will be inserted into the output. If the current output format is a `MarkupOutputFormat` this is done using the `MarkupOutputFormat.outputForeign(TemplateMarkupOutputModel, Writer)` method, which can implement smart conversions. The default behavior (and the only behavior for non-markup outputs) is to behave as if the surrounding output format was the same; this is usually a bad idea to allow, as such an event could indicate application bugs.

    If this method returns `false` (recommended), then FreeMarker will try to assimilate the inserted value by converting its format to this format, which will currently (2.3.24) cause exception, unless the inserted value is made by escaping plain text and the target format is non-escaping, in which case format conversion is trivially possible. (It's not impossible that conversions will be extended beyond this, if there will be demand for that.)

    `true` value is used by `UndefinedOutputFormat`.

  - ### toString

    public final String toString()
    Returns the short description of this format, to be used in error messages. Override `toStringExtraProperties()` to customize this.
    Overrides:
      `toString` in class `Object`

  - ### toStringExtraProperties

    protected String toStringExtraProperties()
    Should be like `"foo=\"something\", bar=123"`; this will be inserted inside the parentheses in `toString()`. Shouldn't return `null`; should return `""` if there are no extra properties.