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 and Description
`OutputFormat()`

### Method Summary

All Methods Instance Methods Abstract Methods Concrete Methods
`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 Detail

#### OutputFormat

    public OutputFormat()

### Method Detail

#### 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` 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 as is (like if the surrounding output format was the same). This is usually a bad idea 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.