blob: 24d1c102171a20e5f68bd46ef97c773433c81829 [file] [log] [blame]
<!DOCTYPE HTML>
<html lang>
<head>
<!-- Generated by javadoc (17) -->
<title>ReusableMessage (Apache Log4j API 2.25.1 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="description" content="declaration: package: org.apache.logging.log4j.message, interface: ReusableMessage">
<meta name="generator" content="javadoc/ClassWriterImpl">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../script-dir/jquery-ui.min.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../jquery-ui.overrides.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
<script type="text/javascript" src="../../../../../script-dir/jquery-3.7.1.min.js"></script>
<script type="text/javascript" src="../../../../../script-dir/jquery-ui.min.js"></script>
</head>
<body class="class-declaration-page">
<script type="text/javascript">var evenRowColor = "even-row-color";
var oddRowColor = "odd-row-color";
var tableTab = "table-tab";
var activeTableTab = "active-table-tab";
var pathtoroot = "../../../../../";
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<div class="flex-box">
<header role="banner" class="flex-header">
<nav role="navigation">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="top-nav" id="navbar-top">
<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div>
<ul id="navbar-top-firstrow" class="nav-list" title="Navigation">
<li><a href="../../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="nav-bar-cell1-rev">Class</li>
<li><a href="class-use/ReusableMessage.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#class">Help</a></li>
</ul>
</div>
<div class="sub-nav">
<div>
<ul class="sub-nav-list">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method-summary">Method</a></li>
</ul>
<ul class="sub-nav-list">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method-detail">Method</a></li>
</ul>
</div>
<div class="nav-list-search"><label for="search-input">SEARCH:</label>
<input type="text" id="search-input" value="search" disabled="disabled">
<input type="reset" id="reset-button" value="reset" disabled="disabled">
</div>
</div>
<!-- ========= END OF TOP NAVBAR ========= -->
<span class="skip-nav" id="skip-navbar-top"></span></nav>
</header>
<div class="flex-content">
<main role="main">
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="sub-title"><span class="package-label-in-type">Package</span>&nbsp;<a href="package-summary.html">org.apache.logging.log4j.message</a></div>
<h1 title="Interface ReusableMessage" class="title">Interface ReusableMessage</h1>
</div>
<section class="class-description" id="class-description">
<dl class="notes">
<dt>All Superinterfaces:</dt>
<dd><code><a href="Message.html" title="interface in org.apache.logging.log4j.message">Message</a></code>, <code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html" title="class or interface in java.io" class="external-link">Serializable</a></code>, <code><a href="../util/StringBuilderFormattable.html" title="interface in org.apache.logging.log4j.util">StringBuilderFormattable</a></code></dd>
</dl>
<dl class="notes">
<dt>All Known Implementing Classes:</dt>
<dd><code><a href="ReusableObjectMessage.html" title="class in org.apache.logging.log4j.message">ReusableObjectMessage</a></code>, <code><a href="ReusableParameterizedMessage.html" title="class in org.apache.logging.log4j.message">ReusableParameterizedMessage</a></code>, <code><a href="ReusableSimpleMessage.html" title="class in org.apache.logging.log4j.message">ReusableSimpleMessage</a></code></dd>
</dl>
<hr>
<div class="type-signature"><span class="modifiers">public interface </span><span class="element-name type-name-label">ReusableMessage</span><span class="extends-implements">
extends <a href="Message.html" title="interface in org.apache.logging.log4j.message">Message</a>, <a href="../util/StringBuilderFormattable.html" title="interface in org.apache.logging.log4j.util">StringBuilderFormattable</a></span></div>
<div class="block">Messages implementing this interface are reused between logging calls.
<p>
If a Message is reusable, downstream components should not hand over this instance to another thread, but extract its
content (via the <a href="../util/StringBuilderFormattable.html#formatTo(java.lang.StringBuilder)"><code>StringBuilderFormattable.formatTo(StringBuilder)</code></a> method) instead.
</p></div>
<dl class="notes">
<dt>Since:</dt>
<dd>2.6</dd>
<dt>See Also:</dt>
<dd>
<ul class="see-list">
<li><a href="ReusableMessageFactory.html" title="class in org.apache.logging.log4j.message"><code>ReusableMessageFactory</code></a></li>
</ul>
</dd>
</dl>
</section>
<section class="summary">
<ul class="summary-list">
<!-- ========== METHOD SUMMARY =========== -->
<li>
<section class="method-summary" id="method-summary">
<h2>Method Summary</h2>
<div id="method-summary-table">
<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="method-summary-table-tab0" role="tab" aria-selected="true" aria-controls="method-summary-table.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table', 3)" class="active-table-tab">All Methods</button><button id="method-summary-table-tab2" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab2', 3)" class="table-tab">Instance Methods</button><button id="method-summary-table-tab3" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab3', 3)" class="table-tab">Abstract Methods</button></div>
<div id="method-summary-table.tabpanel" role="tabpanel" aria-labelledby="method-summary-table-tab0">
<div class="summary-table three-column-summary">
<div class="table-header col-first">Modifier and Type</div>
<div class="table-header col-second">Method</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>short</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#getParameterCount()" class="member-name-link">getParameterCount</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Returns the number of parameters that was used to initialize this reusable message for the current content.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="Message.html" title="interface in org.apache.logging.log4j.message">Message</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#memento()" class="member-name-link">memento</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Returns an immutable snapshot of the current internal state of this reusable message.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a>[]</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#swapParameters(java.lang.Object%5B%5D)" class="member-name-link">swapParameters</a><wbr>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a>[]&nbsp;emptyReplacement)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Returns the parameter array that was used to initialize this reusable message and replaces it with the specified
array.</div>
</div>
</div>
</div>
</div>
<div class="inherited-list">
<h3 id="methods-inherited-from-class-org.apache.logging.log4j.message.Message">Methods inherited from interface&nbsp;org.apache.logging.log4j.message.<a href="Message.html" title="interface in org.apache.logging.log4j.message">Message</a></h3>
<code><a href="Message.html#getFormat()">getFormat</a>, <a href="Message.html#getFormattedMessage()">getFormattedMessage</a>, <a href="Message.html#getParameters()">getParameters</a>, <a href="Message.html#getThrowable()">getThrowable</a></code></div>
<div class="inherited-list">
<h3 id="methods-inherited-from-class-org.apache.logging.log4j.util.StringBuilderFormattable">Methods inherited from interface&nbsp;org.apache.logging.log4j.util.<a href="../util/StringBuilderFormattable.html" title="interface in org.apache.logging.log4j.util">StringBuilderFormattable</a></h3>
<code><a href="../util/StringBuilderFormattable.html#formatTo(java.lang.StringBuilder)">formatTo</a></code></div>
</section>
</li>
</ul>
</section>
<section class="details">
<ul class="details-list">
<!-- ============ METHOD DETAIL ========== -->
<li>
<section class="method-details" id="method-detail">
<h2>Method Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="swapParameters(java.lang.Object[])">
<h3>swapParameters</h3>
<div class="member-signature"><span class="return-type"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a>[]</span>&nbsp;<span class="element-name">swapParameters</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a>[]&nbsp;emptyReplacement)</span></div>
<div class="block">Returns the parameter array that was used to initialize this reusable message and replaces it with the specified
array. The returned parameter array will no longer be modified by this reusable message. The specified array is
now "owned" by this reusable message and can be modified if necessary for the next log event.
</p><p>
ReusableMessages that have no parameters return the specified array.
</p><p>
This method is used by asynchronous loggers to pass the parameter array to a background thread without
allocating new objects.
The actual number of parameters in the returned array can be determined with <a href="#getParameterCount()"><code>getParameterCount()</code></a>.
</p></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>emptyReplacement</code> - the parameter array that can be used for subsequent uses of this reusable message.
This replacement array must have at least 10 elements (the number of varargs supported by the Logger
API).</dd>
<dt>Returns:</dt>
<dd>the parameter array for the current message content. This may be a vararg array of any length, or it may
be a reusable array of 10 elements used to hold the unrolled vararg parameters.</dd>
<dt>See Also:</dt>
<dd>
<ul class="see-list">
<li><a href="#getParameterCount()"><code>getParameterCount()</code></a></li>
</ul>
</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getParameterCount()">
<h3>getParameterCount</h3>
<div class="member-signature"><span class="return-type">short</span>&nbsp;<span class="element-name">getParameterCount</span>()</div>
<div class="block">Returns the number of parameters that was used to initialize this reusable message for the current content.
<p>
The parameter array returned by <a href="#swapParameters(java.lang.Object%5B%5D)"><code>swapParameters(Object[])</code></a> may be larger than the actual number of
parameters. Callers should use this method to determine how many elements the array contains.
</p></div>
<dl class="notes">
<dt>Returns:</dt>
<dd>the current number of parameters</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="memento()">
<h3>memento</h3>
<div class="member-signature"><span class="return-type"><a href="Message.html" title="interface in org.apache.logging.log4j.message">Message</a></span>&nbsp;<span class="element-name">memento</span>()</div>
<div class="block">Returns an immutable snapshot of the current internal state of this reusable message. The returned snapshot
will not be affected by subsequent modifications of this reusable message.</div>
<dl class="notes">
<dt>Returns:</dt>
<dd>an immutable snapshot of this message</dd>
</dl>
</section>
</li>
</ul>
</section>
</li>
</ul>
</section>
<!-- ========= END OF CLASS DATA ========= -->
</main>
<footer role="contentinfo">
<hr>
<p class="legal-copy"><small><p align="center">Copyright &copy; 1999-2025 <a href="https://www.apache.org/">The Apache Software Foundation</a>.All Rights Reserved.<br/>Apache, Log4j, and the Apache feather logo are trademarks or registered trademarks of <a href="https://www.apache.org/">The Apache Software Foundation</a>.Oracle and Java are registered trademarks of Oracle and/or its affiliates.Other names may be trademarks of their respective owners.</p></small></p>
</footer>
</div>
</div>
</body>
</html>