blob: a1d4367792f447d50a1443093327e80fdf4c5e24 [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (1.8.0_281) on Sun Jan 15 15:58:34 CET 2023 -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>OutputFormat (FreeMarker 2.3.32 API)</title>
<meta name="date" content="2023-01-15">
<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="OutputFormat (FreeMarker 2.3.32 API)";
}
}
catch(err) {
}
//-->
var methods = {"i0":6,"i1":6,"i2":6,"i3":10,"i4":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/OutputFormat.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../index-all.html">Index</a></li>
<li><a href="../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../freemarker/core/OptInTemplateClassResolver.html" title="class in freemarker.core"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../freemarker/core/ParseException.html" title="class in freemarker.core"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../index.html?freemarker/core/OutputFormat.html" target="_top">Frames</a></li>
<li><a href="OutputFormat.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">freemarker.core</div>
<h2 title="Class OutputFormat" class="title">Class OutputFormat</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li>freemarker.core.OutputFormat</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>Direct Known Subclasses:</dt>
<dd><a href="../../freemarker/core/CSSOutputFormat.html" title="class in freemarker.core">CSSOutputFormat</a>, <a href="../../freemarker/core/JavaScriptOutputFormat.html" title="class in freemarker.core">JavaScriptOutputFormat</a>, <a href="../../freemarker/core/JSONOutputFormat.html" title="class in freemarker.core">JSONOutputFormat</a>, <a href="../../freemarker/core/MarkupOutputFormat.html" title="class in freemarker.core">MarkupOutputFormat</a>, <a href="../../freemarker/core/PlainTextOutputFormat.html" title="class in freemarker.core">PlainTextOutputFormat</a>, <a href="../../freemarker/core/UndefinedOutputFormat.html" title="class in freemarker.core">UndefinedOutputFormat</a></dd>
</dl>
<hr>
<br>
<pre>public abstract class <span class="typeNameLabel">OutputFormat</span>
extends java.lang.Object</pre>
<div class="block">Represents an output format. If you need auto-escaping, see its subclass, <a href="../../freemarker/core/MarkupOutputFormat.html" title="class in freemarker.core"><code>MarkupOutputFormat</code></a>.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.3.24</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../freemarker/template/Configuration.html#setOutputFormat-freemarker.core.OutputFormat-"><code>Configuration.setOutputFormat(OutputFormat)</code></a>,
<a href="../../freemarker/template/Configuration.html#setRegisteredCustomOutputFormats-java.util.Collection-"><code>Configuration.setRegisteredCustomOutputFormats(java.util.Collection)</code></a>,
<a href="../../freemarker/core/MarkupOutputFormat.html" title="class in freemarker.core"><code>MarkupOutputFormat</code></a></dd>
</dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../freemarker/core/OutputFormat.html#OutputFormat--">OutputFormat</a></span>()</code>&nbsp;</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>abstract java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/core/OutputFormat.html#getMimeType--">getMimeType</a></span>()</code>
<div class="block">Returns the MIME type of the output format.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>abstract java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/core/OutputFormat.html#getName--">getName</a></span>()</code>
<div class="block">The short name used to refer to this format (like in the <code>#ftl</code> header).</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>abstract boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/core/OutputFormat.html#isOutputFormatMixingAllowed--">isOutputFormatMixingAllowed</a></span>()</code>
<div class="block">Tells if this output format allows inserting <a href="../../freemarker/core/TemplateMarkupOutputModel.html" title="interface in freemarker.core"><code>TemplateMarkupOutputModel</code></a>-s of another output formats into
it.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/core/OutputFormat.html#toString--">toString</a></span>()</code>
<div class="block">Returns the short description of this format, to be used in error messages.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>protected java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/core/OutputFormat.html#toStringExtraProperties--">toStringExtraProperties</a></span>()</code>
<div class="block">Should be like <code>"foo=\"something\", bar=123"</code>; this will be inserted inside the parentheses in
<a href="../../freemarker/core/OutputFormat.html#toString--"><code>toString()</code></a>.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait</code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a name="OutputFormat--">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>OutputFormat</h4>
<pre>public&nbsp;OutputFormat()</pre>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="getName--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getName</h4>
<pre>public abstract&nbsp;java.lang.String&nbsp;getName()</pre>
<div class="block">The short name used to refer to this format (like in the <code>#ftl</code> header).</div>
</li>
</ul>
<a name="getMimeType--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getMimeType</h4>
<pre>public abstract&nbsp;java.lang.String&nbsp;getMimeType()</pre>
<div class="block">Returns the MIME type of the output format. This might comes handy when generating a HTTP response. <code>null</code>
<code>null</code> if this output format doesn't clearly corresponds to a specific MIME type.</div>
</li>
</ul>
<a name="isOutputFormatMixingAllowed--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isOutputFormatMixingAllowed</h4>
<pre>public abstract&nbsp;boolean&nbsp;isOutputFormatMixingAllowed()</pre>
<div class="block">Tells if this output format allows inserting <a href="../../freemarker/core/TemplateMarkupOutputModel.html" title="interface in freemarker.core"><code>TemplateMarkupOutputModel</code></a>-s of another output formats into
it.
<p>If <code>true</code>, the foreign <a href="../../freemarker/core/TemplateMarkupOutputModel.html" title="interface in freemarker.core"><code>TemplateMarkupOutputModel</code></a> will be inserted into the output. If the current
output format is a <a href="../../freemarker/core/MarkupOutputFormat.html" title="class in freemarker.core"><code>MarkupOutputFormat</code></a> this is done using the
<a href="../../freemarker/core/MarkupOutputFormat.html#outputForeign-MO2-java.io.Writer-"><code>MarkupOutputFormat.outputForeign(TemplateMarkupOutputModel, Writer)</code></a> 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.
<p>If this method returns <code>false</code> (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.)
<p>
<code>true</code> value is used by <a href="../../freemarker/core/UndefinedOutputFormat.html" title="class in freemarker.core"><code>UndefinedOutputFormat</code></a>.</div>
</li>
</ul>
<a name="toString--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>toString</h4>
<pre>public final&nbsp;java.lang.String&nbsp;toString()</pre>
<div class="block">Returns the short description of this format, to be used in error messages.
Override <a href="../../freemarker/core/OutputFormat.html#toStringExtraProperties--"><code>toStringExtraProperties()</code></a> to customize this.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code>toString</code>&nbsp;in class&nbsp;<code>java.lang.Object</code></dd>
</dl>
</li>
</ul>
<a name="toStringExtraProperties--">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>toStringExtraProperties</h4>
<pre>protected&nbsp;java.lang.String&nbsp;toStringExtraProperties()</pre>
<div class="block">Should be like <code>"foo=\"something\", bar=123"</code>; this will be inserted inside the parentheses in
<a href="../../freemarker/core/OutputFormat.html#toString--"><code>toString()</code></a>. Shouldn't return <code>null</code>; should return <code>""</code> if there are no extra properties.</div>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/OutputFormat.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../index-all.html">Index</a></li>
<li><a href="../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../freemarker/core/OptInTemplateClassResolver.html" title="class in freemarker.core"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../freemarker/core/ParseException.html" title="class in freemarker.core"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../index.html?freemarker/core/OutputFormat.html" target="_top">Frames</a></li>
<li><a href="OutputFormat.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>