<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (11.0.9.1) on Tue Jan 19 11:49:19 CST 2021 -->
<title>PushBuilder (Jetty :: Project 9.4.36.v20210114 API)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="dc.created" content="2021-01-19">
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
<script type="text/javascript" src="../../../../script.js"></script>
<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
<!--[if IE]>
<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
<![endif]-->
<script type="text/javascript" src="../../../../jquery/jquery-3.5.1.js"></script>
<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
</head>
<body>
<script type="text/javascript"><!--
    try {
        if (location.href.indexOf('is-external=true') == -1) {
            parent.document.title="PushBuilder (Jetty :: Project 9.4.36.v20210114 API)";
        }
    }
    catch(err) {
    }
//-->
var data = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6,"i10":6,"i11":6,"i12":6,"i13":6,"i14":6,"i15":6,"i16":6,"i17":6,"i18":6,"i19":6};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
var pathtoroot = "../../../../";
var useModuleDirectories = false;
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<header role="banner">
<nav role="navigation">
<div class="fixedNav">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a id="navbar.top">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.top.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/PushBuilder.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" id="allclasses_navbar_top">
<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<ul class="navListSearch">
<li><label for="search">SEARCH:</label>
<input type="text" id="search" value="search" disabled="disabled">
<input type="reset" id="reset" value="reset" disabled="disabled">
</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>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<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="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.top">
<!--   -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
</div>
<div class="navPadding">&nbsp;</div>
<script type="text/javascript"><!--
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
//-->
</script>
</nav>
</header>
<!-- ======== START OF CLASS DATA ======== -->
<main role="main">
<div class="header">
<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.eclipse.jetty.server</a></div>
<h2 title="Interface PushBuilder" class="title">Interface PushBuilder</h2>
</div>
<div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Known Implementing Classes:</dt>
<dd><code><a href="PushBuilderImpl.html" title="class in org.eclipse.jetty.server">PushBuilderImpl</a></code></dd>
</dl>
<hr>
<pre>public interface <span class="typeNameLabel">PushBuilder</span></pre>
<div class="block">Build a request to be pushed.

 <p>A PushBuilder is obtained by calling <a href="Request.html#getPushBuilder()"><code>Request.getPushBuilder()</code></a> (<code>Eventually HttpServletRequest.getPushBuilder()</code>).
 Each call to this method will
 return a new instance of a PushBuilder based off the current <code>
 HttpServletRequest</code>.  Any mutations to the returned PushBuilder are
 not reflected on future returns.</p>

 <p>The instance is initialized as follows:</p>

 <ul>

 <li>The method is initialized to "GET"</li>

 <li>The existing headers of the current <code>HttpServletRequest</code>
 are added to the builder, except for:

 <ul>
 <li>Conditional headers (eg. If-Modified-Since)
 <li>Range headers
 <li>Expect headers
 <li>Authorization headers
 <li>Referrer headers
 </ul>

 </li>

 <li>If the request was authenticated, an Authorization header will
 be set with a container generated token that will result in equivalent
 Authorization for the pushed request.</li>

 <li>The <code>HttpServletRequest.getRequestedSessionId()</code> value,
 unless at the time of the call <code>HttpServletRequest.getSession(boolean)</code> has previously been called to
 create a new <code>HttpSession</code>, in which case the new session ID
 will be used as the PushBuilder's requested session ID. The source of
 the requested session id will be the same as for the request</li>

 <li>The Referer(sic) header will be set to <code>HttpServletRequest.getRequestURL()</code> plus any <code>HttpServletRequest.getQueryString()</code> </li>

 <li>If <code>HttpServletResponse.addCookie(Cookie)</code> has been called
 on the associated response, then a corresponding Cookie header will be added
 to the PushBuilder, unless the <code>Cookie.getMaxAge()</code> is &lt;=0, in which
 case the Cookie will be removed from the builder.</li>

 <li>If this request has has the conditional headers If-Modified-Since
 or If-None-Match, then the <a href="#isConditional()"><code>isConditional()</code></a> header is set to
 true.</li>

 </ul>

 <p>The <a href="#path(java.lang.String)"><code>path(java.lang.String)</code></a> method must be called on the <code>PushBuilder</code>
 instance before the call to <a href="#push()"><code>push()</code></a>.  Failure to do so must
 cause an exception to be thrown from <a href="#push()"><code>push()</code></a>, as specified in that method.</p>

 <p>A PushBuilder can be customized by chained calls to mutator
 methods before the <a href="#push()"><code>push()</code></a> method is called to initiate an
 asynchronous push request with the current state of the builder.
 After the call to <a href="#push()"><code>push()</code></a>, the builder may be reused for
 another push, however the implementation must make it so the <a href="#path(java.lang.String)"><code>path(String)</code></a>, <a href="#etag(java.lang.String)"><code>etag(String)</code></a> and <a href="#lastModified(java.lang.String)"><code>lastModified(String)</code></a> values are cleared before returning from
 <a href="#push()"><code>push()</code></a>.  All other values are retained over calls to <a href="#push()"><code>push()</code></a>.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>4.0</dd>
</dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ========== METHOD SUMMARY =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.summary">
<!--   -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary">
<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></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code><a href="PushBuilder.html" title="interface in org.eclipse.jetty.server">PushBuilder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#addHeader(java.lang.String,java.lang.String)">addHeader</a></span>&#8203;(java.lang.String&nbsp;name,
         java.lang.String&nbsp;value)</code></th>
<td class="colLast">
<div class="block">Add a header to be used for the push.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code><a href="PushBuilder.html" title="interface in org.eclipse.jetty.server">PushBuilder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#conditional(boolean)">conditional</a></span>&#8203;(boolean&nbsp;conditional)</code></th>
<td class="colLast">
<div class="block">Set if the request is to be conditional.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code><a href="PushBuilder.html" title="interface in org.eclipse.jetty.server">PushBuilder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#etag(java.lang.String)">etag</a></span>&#8203;(java.lang.String&nbsp;etag)</code></th>
<td class="colLast">
<div class="block">Set the etag to be used for conditional pushes.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>java.lang.String</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getEtag()">getEtag</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>java.lang.String</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getHeader(java.lang.String)">getHeader</a></span>&#8203;(java.lang.String&nbsp;name)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>java.util.Set&lt;java.lang.String&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getHeaderNames()">getHeaderNames</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>java.lang.String</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getLastModified()">getLastModified</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>java.lang.String</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getMethod()">getMethod</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>java.lang.String</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getPath()">getPath</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>java.lang.String</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getQueryString()">getQueryString</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>java.lang.String</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getSessionId()">getSessionId</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isConditional()">isConditional</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code><a href="PushBuilder.html" title="interface in org.eclipse.jetty.server">PushBuilder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#lastModified(java.lang.String)">lastModified</a></span>&#8203;(java.lang.String&nbsp;lastModified)</code></th>
<td class="colLast">
<div class="block">Set the last modified date to be used for conditional pushes.</div>
</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code><a href="PushBuilder.html" title="interface in org.eclipse.jetty.server">PushBuilder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#method(java.lang.String)">method</a></span>&#8203;(java.lang.String&nbsp;method)</code></th>
<td class="colLast">
<div class="block">Set the method to be used for the push.</div>
</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code><a href="PushBuilder.html" title="interface in org.eclipse.jetty.server">PushBuilder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#path(java.lang.String)">path</a></span>&#8203;(java.lang.String&nbsp;path)</code></th>
<td class="colLast">
<div class="block">Set the URI path to be used for the push.</div>
</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#push()">push</a></span>()</code></th>
<td class="colLast">
<div class="block">Push a resource given the current state of the builder,
 returning immediately without blocking.</div>
</td>
</tr>
<tr id="i16" class="altColor">
<td class="colFirst"><code><a href="PushBuilder.html" title="interface in org.eclipse.jetty.server">PushBuilder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#queryString(java.lang.String)">queryString</a></span>&#8203;(java.lang.String&nbsp;queryString)</code></th>
<td class="colLast">
<div class="block">Set the query string to be used for the push.</div>
</td>
</tr>
<tr id="i17" class="rowColor">
<td class="colFirst"><code><a href="PushBuilder.html" title="interface in org.eclipse.jetty.server">PushBuilder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#removeHeader(java.lang.String)">removeHeader</a></span>&#8203;(java.lang.String&nbsp;name)</code></th>
<td class="colLast">
<div class="block">Remove the named header.</div>
</td>
</tr>
<tr id="i18" class="altColor">
<td class="colFirst"><code><a href="PushBuilder.html" title="interface in org.eclipse.jetty.server">PushBuilder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#sessionId(java.lang.String)">sessionId</a></span>&#8203;(java.lang.String&nbsp;sessionId)</code></th>
<td class="colLast">
<div class="block">Set the SessionID to be used for the push.</div>
</td>
</tr>
<tr id="i19" class="rowColor">
<td class="colFirst"><code><a href="PushBuilder.html" title="interface in org.eclipse.jetty.server">PushBuilder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setHeader(java.lang.String,java.lang.String)">setHeader</a></span>&#8203;(java.lang.String&nbsp;name,
         java.lang.String&nbsp;value)</code></th>
<td class="colLast">
<div class="block">Set a header to be used for the push.</div>
</td>
</tr>
</table>
</li>
</ul>
</section>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ METHOD DETAIL ========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.detail">
<!--   -->
</a>
<h3>Method Detail</h3>
<a id="method(java.lang.String)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>method</h4>
<pre class="methodSignature"><a href="PushBuilder.html" title="interface in org.eclipse.jetty.server">PushBuilder</a>&nbsp;method&#8203;(java.lang.String&nbsp;method)</pre>
<div class="block"><p>Set the method to be used for the push.</p>

 <p>Any non-empty String may be used for the method.</p></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>method</code> - the method to be used for the push.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this builder.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.NullPointerException</code> - if the argument is <code>null</code></dd>
<dd><code>java.lang.IllegalArgumentException</code> - if the argument is the empty String</dd>
</dl>
</li>
</ul>
<a id="queryString(java.lang.String)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>queryString</h4>
<pre class="methodSignature"><a href="PushBuilder.html" title="interface in org.eclipse.jetty.server">PushBuilder</a>&nbsp;queryString&#8203;(java.lang.String&nbsp;queryString)</pre>
<div class="block">Set the query string to be used for the push.

 Will be appended to any query String included in a call to <a href="#path(java.lang.String)"><code>path(String)</code></a>.  Any duplicate parameters must be preserved. This
 method should be used instead of a query in <a href="#path(java.lang.String)"><code>path(String)</code></a>
 when multiple <a href="#push()"><code>push()</code></a> calls are to be made with the same
 query string.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>queryString</code> - the query string to be used for the push.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this builder.</dd>
</dl>
</li>
</ul>
<a id="sessionId(java.lang.String)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>sessionId</h4>
<pre class="methodSignature"><a href="PushBuilder.html" title="interface in org.eclipse.jetty.server">PushBuilder</a>&nbsp;sessionId&#8203;(java.lang.String&nbsp;sessionId)</pre>
<div class="block">Set the SessionID to be used for the push.
 The session ID will be set in the same way it was on the associated request (ie
 as a cookie if the associated request used a cookie, or as a url parameter if
 the associated request used a url parameter).
 Defaults to the requested session ID or any newly assigned session id from
 a newly created session.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>sessionId</code> - the SessionID to be used for the push.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this builder.</dd>
</dl>
</li>
</ul>
<a id="conditional(boolean)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>conditional</h4>
<pre class="methodSignature"><a href="PushBuilder.html" title="interface in org.eclipse.jetty.server">PushBuilder</a>&nbsp;conditional&#8203;(boolean&nbsp;conditional)</pre>
<div class="block">Set if the request is to be conditional.
 If the request is conditional, any available values from <a href="#etag(java.lang.String)"><code>etag(String)</code></a> or
 <a href="#lastModified(java.lang.String)"><code>lastModified(String)</code></a> will be set in the appropriate headers. If the request
 is not conditional, then etag and lastModified values are ignored.
 Defaults to true if the associated request was conditional.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>conditional</code> - true if the push request is conditional</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this builder.</dd>
</dl>
</li>
</ul>
<a id="setHeader(java.lang.String,java.lang.String)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setHeader</h4>
<pre class="methodSignature"><a href="PushBuilder.html" title="interface in org.eclipse.jetty.server">PushBuilder</a>&nbsp;setHeader&#8203;(java.lang.String&nbsp;name,
                      java.lang.String&nbsp;value)</pre>
<div class="block"><p>Set a header to be used for the push.  If the builder has an
 existing header with the same name, its value is overwritten.</p></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>name</code> - The header name to set</dd>
<dd><code>value</code> - The header value to set</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this builder.</dd>
</dl>
</li>
</ul>
<a id="addHeader(java.lang.String,java.lang.String)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addHeader</h4>
<pre class="methodSignature"><a href="PushBuilder.html" title="interface in org.eclipse.jetty.server">PushBuilder</a>&nbsp;addHeader&#8203;(java.lang.String&nbsp;name,
                      java.lang.String&nbsp;value)</pre>
<div class="block"><p>Add a header to be used for the push.</p></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>name</code> - The header name to add</dd>
<dd><code>value</code> - The header value to add</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this builder.</dd>
</dl>
</li>
</ul>
<a id="removeHeader(java.lang.String)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>removeHeader</h4>
<pre class="methodSignature"><a href="PushBuilder.html" title="interface in org.eclipse.jetty.server">PushBuilder</a>&nbsp;removeHeader&#8203;(java.lang.String&nbsp;name)</pre>
<div class="block"><p>Remove the named header.  If the header does not exist, take
 no action.</p></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>name</code> - The name of the header to remove</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this builder.</dd>
</dl>
</li>
</ul>
<a id="path(java.lang.String)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>path</h4>
<pre class="methodSignature"><a href="PushBuilder.html" title="interface in org.eclipse.jetty.server">PushBuilder</a>&nbsp;path&#8203;(java.lang.String&nbsp;path)</pre>
<div class="block">Set the URI path to be used for the push.  The path may start
 with "/" in which case it is treated as an absolute path,
 otherwise it is relative to the context path of the associated
 request.  There is no path default and <code>path(String)</code> must
 be called before every call to <a href="#push()"><code>push()</code></a>.  If a query
 string is present in the argument <code>path</code>, its contents must
 be merged with the contents previously passed to <a href="#queryString(java.lang.String)"><code>queryString(java.lang.String)</code></a>, preserving duplicates.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>path</code> - the URI path to be used for the push, which may include a
 query string.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this builder.</dd>
</dl>
</li>
</ul>
<a id="etag(java.lang.String)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>etag</h4>
<pre class="methodSignature"><a href="PushBuilder.html" title="interface in org.eclipse.jetty.server">PushBuilder</a>&nbsp;etag&#8203;(java.lang.String&nbsp;etag)</pre>
<div class="block">Set the etag to be used for conditional pushes.
 The etag will be used only if <a href="#isConditional()"><code>isConditional()</code></a> is true.
 Defaults to no etag.  The value is nulled after every call to
 <a href="#push()"><code>push()</code></a></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>etag</code> - the etag to be used for the push.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this builder.</dd>
</dl>
</li>
</ul>
<a id="lastModified(java.lang.String)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>lastModified</h4>
<pre class="methodSignature"><a href="PushBuilder.html" title="interface in org.eclipse.jetty.server">PushBuilder</a>&nbsp;lastModified&#8203;(java.lang.String&nbsp;lastModified)</pre>
<div class="block">Set the last modified date to be used for conditional pushes.
 The last modified date will be used only if <a href="#isConditional()"><code>isConditional()</code></a> is true.  Defaults to no date.  The value is
 nulled after every call to <a href="#push()"><code>push()</code></a></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>lastModified</code> - the last modified date to be used for the push.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this builder.</dd>
</dl>
</li>
</ul>
<a id="push()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>push</h4>
<pre class="methodSignature">void&nbsp;push()</pre>
<div class="block">Push a resource given the current state of the builder,
 returning immediately without blocking.

 <p>Push a resource based on the current state of the PushBuilder.
 If <a href="#isConditional()"><code>isConditional()</code></a> is true and an etag or lastModified
 value is provided, then an appropriate conditional header will be
 generated. If both an etag and lastModified value are provided
 only an If-None-Match header will be generated. If the builder
 has a session ID, then the pushed request will include the
 session ID either as a Cookie or as a URI parameter as
 appropriate. The builders query string is merged with any passed
 query string.</p>

 <p>Before returning from this method, the builder has its path,
 etag and lastModified fields nulled. All other fields are left as
 is for possible reuse in another push.</p></div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - if the method set expects a
 request body (eg POST)</dd>
<dd><code>java.lang.IllegalStateException</code> - if there was no call to <a href="#path(java.lang.String)"><code>path(java.lang.String)</code></a> on this instance either between its instantiation or the
 last call to <code>push()</code> that did not throw an
 IllegalStateException.</dd>
</dl>
</li>
</ul>
<a id="getMethod()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getMethod</h4>
<pre class="methodSignature">java.lang.String&nbsp;getMethod()</pre>
</li>
</ul>
<a id="getQueryString()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getQueryString</h4>
<pre class="methodSignature">java.lang.String&nbsp;getQueryString()</pre>
</li>
</ul>
<a id="getSessionId()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getSessionId</h4>
<pre class="methodSignature">java.lang.String&nbsp;getSessionId()</pre>
</li>
</ul>
<a id="isConditional()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isConditional</h4>
<pre class="methodSignature">boolean&nbsp;isConditional()</pre>
</li>
</ul>
<a id="getHeaderNames()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getHeaderNames</h4>
<pre class="methodSignature">java.util.Set&lt;java.lang.String&gt;&nbsp;getHeaderNames()</pre>
</li>
</ul>
<a id="getHeader(java.lang.String)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getHeader</h4>
<pre class="methodSignature">java.lang.String&nbsp;getHeader&#8203;(java.lang.String&nbsp;name)</pre>
</li>
</ul>
<a id="getPath()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getPath</h4>
<pre class="methodSignature">java.lang.String&nbsp;getPath()</pre>
</li>
</ul>
<a id="getEtag()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getEtag</h4>
<pre class="methodSignature">java.lang.String&nbsp;getEtag()</pre>
</li>
</ul>
<a id="getLastModified()">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>getLastModified</h4>
<pre class="methodSignature">java.lang.String&nbsp;getLastModified()</pre>
</li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
</div>
</main>
<!-- ========= END OF CLASS DATA ========= -->
<footer role="contentinfo">
<nav role="navigation">
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a id="navbar.bottom">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.bottom.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/PushBuilder.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" id="allclasses_navbar_bottom">
<li><a href="../../../../allclasses.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>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<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="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.bottom">
<!--   -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</nav>
<p class="legalCopy"><small>Copyright &#169; 1995&#x2013;2021 <a href="https://webtide.com">Webtide</a>. All rights reserved.</small></p>
</footer>
</body>
</html>
