<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<title>UriBuilder</title>
<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="UriBuilder";
        }
    }
    catch(err) {
    }
//-->
var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":9,"i9":9,"i10":9,"i11":9,"i12":9,"i13":9,"i14":6,"i15":6,"i16":9,"i17":6,"i18":6,"i19":6,"i20":6,"i21":6,"i22":6,"i23":6,"i24":6,"i25":6,"i26":6,"i27":6,"i28":6,"i29":6,"i30":6,"i31":6,"i32":6,"i33":6,"i34":6,"i35":6,"i36":6,"i37":6,"i38":6,"i39":6,"i40":6};
var tabs = {65535:["t0","All Methods"],1:["t1","Static 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="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="../../../../javax/ws/rs/core/StreamingOutput.html" title="interface in javax.ws.rs.core"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../javax/ws/rs/core/UriBuilderException.html" title="class in javax.ws.rs.core"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?javax/ws/rs/core/UriBuilder.html" target="_top">Frames</a></li>
<li><a href="UriBuilder.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">javax.ws.rs.core</div>
<h2 title="Class UriBuilder" class="title">Class UriBuilder</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li>javax.ws.rs.core.UriBuilder</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<br>
<pre>public abstract class <span class="typeNameLabel">UriBuilder</span>
extends java.lang.Object</pre>
<div class="block">URI template-aware utility class for building URIs from their components. See
 <a href="../../../../javax/ws/rs/Path.html#value--"><code>Path.value()</code></a> for an explanation of URI templates.

 <p>Builder methods perform contextual encoding of characters not permitted in
 the corresponding URI component following the rules of the
 <a href="http://www.w3.org/TR/html4/interact/forms.html#h-17.13.4.1">application/x-www-form-urlencoded</a>
 media type for query parameters and
 <a href="http://ietf.org/rfc/rfc3986.txt">RFC 3986</a> for all other
 components. Note that only characters not permitted in a particular component
 are subject to encoding so, e.g., a path supplied to one of the <code>path</code>
 methods may contain matrix parameters or multiple path segments since the
 separators are legal characters and will not be encoded. Percent encoded
 values are also recognized where allowed and will not be double encoded.</p>

 <p>URI templates are allowed in most components of a URI but their value is
 restricted to a particular component. E.g.
 <blockquote><code>UriBuilder.fromPath("{arg1}").build("foo#bar");</code></blockquote>
 would result in encoding of the '#' such that the resulting URI is
 "foo%23bar". To create a URI "foo#bar" use
 <blockquote><code>UriBuilder.fromPath("{arg1}").fragment("{arg2}").build("foo", "bar")</code></blockquote>
 instead. URI template names and delimiters are never encoded but their
 values are encoded when a URI is built.
 Template parameter regular expressions are ignored when building a URI, i.e.
 no validation is performed.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>1.0</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><code>URI</code>, 
<a href="../../../../javax/ws/rs/Path.html" title="annotation in javax.ws.rs"><code>Path</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="colFirst" scope="col">Modifier</th>
<th class="colLast" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected </code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/ws/rs/core/UriBuilder.html#UriBuilder--">UriBuilder</a></span>()</code>
<div class="block">Protected constructor, use one of the static <code>from<i>Xxx</i>(...)</code>
 methods to obtain an instance.</div>
</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="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></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.net.URI</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/ws/rs/core/UriBuilder.html#build-java.lang.Object...-">build</a></span>(java.lang.Object...&nbsp;values)</code>
<div class="block">Build a URI, using the supplied values in order to replace any URI
 template parameters.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>abstract java.net.URI</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/ws/rs/core/UriBuilder.html#build-java.lang.Object:A-boolean-">build</a></span>(java.lang.Object[]&nbsp;values,
     boolean&nbsp;encodeSlashInPath)</code>
<div class="block">Build a URI, using the supplied values in order to replace any URI
 template parameters.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>abstract java.net.URI</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/ws/rs/core/UriBuilder.html#buildFromEncoded-java.lang.Object...-">buildFromEncoded</a></span>(java.lang.Object...&nbsp;values)</code>
<div class="block">Build a URI.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>abstract java.net.URI</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/ws/rs/core/UriBuilder.html#buildFromEncodedMap-java.util.Map-">buildFromEncodedMap</a></span>(java.util.Map&lt;java.lang.String,?&gt;&nbsp;values)</code>
<div class="block">Build a URI.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>abstract java.net.URI</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/ws/rs/core/UriBuilder.html#buildFromMap-java.util.Map-">buildFromMap</a></span>(java.util.Map&lt;java.lang.String,?&gt;&nbsp;values)</code>
<div class="block">Build a URI.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>abstract java.net.URI</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/ws/rs/core/UriBuilder.html#buildFromMap-java.util.Map-boolean-">buildFromMap</a></span>(java.util.Map&lt;java.lang.String,?&gt;&nbsp;values,
            boolean&nbsp;encodeSlashInPath)</code>
<div class="block">Build a URI.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>abstract <a href="../../../../javax/ws/rs/core/UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/ws/rs/core/UriBuilder.html#clone--">clone</a></span>()</code>
<div class="block">Create a copy of the UriBuilder preserving its state.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>abstract <a href="../../../../javax/ws/rs/core/UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/ws/rs/core/UriBuilder.html#fragment-java.lang.String-">fragment</a></span>(java.lang.String&nbsp;fragment)</code>
<div class="block">Set the URI fragment.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>static <a href="../../../../javax/ws/rs/core/UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/ws/rs/core/UriBuilder.html#fromLink-javax.ws.rs.core.Link-">fromLink</a></span>(<a href="../../../../javax/ws/rs/core/Link.html" title="class in javax.ws.rs.core">Link</a>&nbsp;link)</code>
<div class="block">Create a new instance initialized from a Link.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>static <a href="../../../../javax/ws/rs/core/UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/ws/rs/core/UriBuilder.html#fromMethod-java.lang.Class-java.lang.String-">fromMethod</a></span>(java.lang.Class&lt;?&gt;&nbsp;resource,
          java.lang.String&nbsp;method)</code>
<div class="block">Create a new instance representing a relative URI initialized from a
 <a href="../../../../javax/ws/rs/Path.html" title="annotation in javax.ws.rs"><code>Path</code></a>-annotated method.</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>static <a href="../../../../javax/ws/rs/core/UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/ws/rs/core/UriBuilder.html#fromPath-java.lang.String-">fromPath</a></span>(java.lang.String&nbsp;path)</code>
<div class="block">Create a new instance representing a relative URI initialized from a
 URI path.</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>static <a href="../../../../javax/ws/rs/core/UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/ws/rs/core/UriBuilder.html#fromResource-java.lang.Class-">fromResource</a></span>(java.lang.Class&lt;?&gt;&nbsp;resource)</code>
<div class="block">Create a new instance representing a relative URI initialized from a
 root resource class.</div>
</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code>static <a href="../../../../javax/ws/rs/core/UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/ws/rs/core/UriBuilder.html#fromUri-java.lang.String-">fromUri</a></span>(java.lang.String&nbsp;uriTemplate)</code>
<div class="block">Create a new instance initialized from an existing URI.</div>
</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code>static <a href="../../../../javax/ws/rs/core/UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/ws/rs/core/UriBuilder.html#fromUri-java.net.URI-">fromUri</a></span>(java.net.URI&nbsp;uri)</code>
<div class="block">Create a new instance initialized from an existing URI.</div>
</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code>abstract <a href="../../../../javax/ws/rs/core/UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/ws/rs/core/UriBuilder.html#host-java.lang.String-">host</a></span>(java.lang.String&nbsp;host)</code>
<div class="block">Set the URI host.</div>
</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code>abstract <a href="../../../../javax/ws/rs/core/UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/ws/rs/core/UriBuilder.html#matrixParam-java.lang.String-java.lang.Object...-">matrixParam</a></span>(java.lang.String&nbsp;name,
           java.lang.Object...&nbsp;values)</code>
<div class="block">Append a matrix parameter to the existing set of matrix parameters of
 the current final segment of the URI path.</div>
</td>
</tr>
<tr id="i16" class="altColor">
<td class="colFirst"><code>protected static <a href="../../../../javax/ws/rs/core/UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/ws/rs/core/UriBuilder.html#newInstance--">newInstance</a></span>()</code>
<div class="block">Creates a new instance of UriBuilder.</div>
</td>
</tr>
<tr id="i17" class="rowColor">
<td class="colFirst"><code>abstract <a href="../../../../javax/ws/rs/core/UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/ws/rs/core/UriBuilder.html#path-java.lang.Class-">path</a></span>(java.lang.Class&nbsp;resource)</code>
<div class="block">Append the path from a Path-annotated class to the
 existing path.</div>
</td>
</tr>
<tr id="i18" class="altColor">
<td class="colFirst"><code>abstract <a href="../../../../javax/ws/rs/core/UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/ws/rs/core/UriBuilder.html#path-java.lang.Class-java.lang.String-">path</a></span>(java.lang.Class&nbsp;resource,
    java.lang.String&nbsp;method)</code>
<div class="block">Append the path from a Path-annotated method to the
 existing path.</div>
</td>
</tr>
<tr id="i19" class="rowColor">
<td class="colFirst"><code>abstract <a href="../../../../javax/ws/rs/core/UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/ws/rs/core/UriBuilder.html#path-java.lang.reflect.Method-">path</a></span>(java.lang.reflect.Method&nbsp;method)</code>
<div class="block">Append the path from a <a href="../../../../javax/ws/rs/Path.html" title="annotation in javax.ws.rs"><code>Path</code></a>-annotated method to the
 existing path.</div>
</td>
</tr>
<tr id="i20" class="altColor">
<td class="colFirst"><code>abstract <a href="../../../../javax/ws/rs/core/UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/ws/rs/core/UriBuilder.html#path-java.lang.String-">path</a></span>(java.lang.String&nbsp;path)</code>
<div class="block">Append path to the existing path.</div>
</td>
</tr>
<tr id="i21" class="rowColor">
<td class="colFirst"><code>abstract <a href="../../../../javax/ws/rs/core/UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/ws/rs/core/UriBuilder.html#port-int-">port</a></span>(int&nbsp;port)</code>
<div class="block">Set the URI port.</div>
</td>
</tr>
<tr id="i22" class="altColor">
<td class="colFirst"><code>abstract <a href="../../../../javax/ws/rs/core/UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/ws/rs/core/UriBuilder.html#queryParam-java.lang.String-java.lang.Object...-">queryParam</a></span>(java.lang.String&nbsp;name,
          java.lang.Object...&nbsp;values)</code>
<div class="block">Append a query parameter to the existing set of query parameters.</div>
</td>
</tr>
<tr id="i23" class="rowColor">
<td class="colFirst"><code>abstract <a href="../../../../javax/ws/rs/core/UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/ws/rs/core/UriBuilder.html#replaceMatrix-java.lang.String-">replaceMatrix</a></span>(java.lang.String&nbsp;matrix)</code>
<div class="block">Set the matrix parameters of the current final segment of the current URI path.</div>
</td>
</tr>
<tr id="i24" class="altColor">
<td class="colFirst"><code>abstract <a href="../../../../javax/ws/rs/core/UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/ws/rs/core/UriBuilder.html#replaceMatrixParam-java.lang.String-java.lang.Object...-">replaceMatrixParam</a></span>(java.lang.String&nbsp;name,
                  java.lang.Object...&nbsp;values)</code>
<div class="block">Replace the existing value(s) of a matrix parameter on
 the current final segment of the URI path.</div>
</td>
</tr>
<tr id="i25" class="rowColor">
<td class="colFirst"><code>abstract <a href="../../../../javax/ws/rs/core/UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/ws/rs/core/UriBuilder.html#replacePath-java.lang.String-">replacePath</a></span>(java.lang.String&nbsp;path)</code>
<div class="block">Set the URI path.</div>
</td>
</tr>
<tr id="i26" class="altColor">
<td class="colFirst"><code>abstract <a href="../../../../javax/ws/rs/core/UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/ws/rs/core/UriBuilder.html#replaceQuery-java.lang.String-">replaceQuery</a></span>(java.lang.String&nbsp;query)</code>
<div class="block">Set the URI query string.</div>
</td>
</tr>
<tr id="i27" class="rowColor">
<td class="colFirst"><code>abstract <a href="../../../../javax/ws/rs/core/UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/ws/rs/core/UriBuilder.html#replaceQueryParam-java.lang.String-java.lang.Object...-">replaceQueryParam</a></span>(java.lang.String&nbsp;name,
                 java.lang.Object...&nbsp;values)</code>
<div class="block">Replace the existing value(s) of a query parameter.</div>
</td>
</tr>
<tr id="i28" class="altColor">
<td class="colFirst"><code>abstract <a href="../../../../javax/ws/rs/core/UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/ws/rs/core/UriBuilder.html#resolveTemplate-java.lang.String-java.lang.Object-">resolveTemplate</a></span>(java.lang.String&nbsp;name,
               java.lang.Object&nbsp;value)</code>
<div class="block">Resolve a URI template with a given <code>name</code> in this <code>UriBuilder</code> instance
 using a supplied value.</div>
</td>
</tr>
<tr id="i29" class="rowColor">
<td class="colFirst"><code>abstract <a href="../../../../javax/ws/rs/core/UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/ws/rs/core/UriBuilder.html#resolveTemplate-java.lang.String-java.lang.Object-boolean-">resolveTemplate</a></span>(java.lang.String&nbsp;name,
               java.lang.Object&nbsp;value,
               boolean&nbsp;encodeSlashInPath)</code>
<div class="block">Resolve a URI template with a given <code>name</code> in this <code>UriBuilder</code> instance
 using a supplied value.</div>
</td>
</tr>
<tr id="i30" class="altColor">
<td class="colFirst"><code>abstract <a href="../../../../javax/ws/rs/core/UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/ws/rs/core/UriBuilder.html#resolveTemplateFromEncoded-java.lang.String-java.lang.Object-">resolveTemplateFromEncoded</a></span>(java.lang.String&nbsp;name,
                          java.lang.Object&nbsp;value)</code>
<div class="block">Resolve a URI template with a given <code>name</code> in this <code>UriBuilder</code> instance
 using a supplied encoded value.</div>
</td>
</tr>
<tr id="i31" class="rowColor">
<td class="colFirst"><code>abstract <a href="../../../../javax/ws/rs/core/UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/ws/rs/core/UriBuilder.html#resolveTemplates-java.util.Map-">resolveTemplates</a></span>(java.util.Map&lt;java.lang.String,java.lang.Object&gt;&nbsp;templateValues)</code>
<div class="block">Resolve one or more URI templates in this <code>UriBuilder</code> instance using supplied
 name-value pairs.</div>
</td>
</tr>
<tr id="i32" class="altColor">
<td class="colFirst"><code>abstract <a href="../../../../javax/ws/rs/core/UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/ws/rs/core/UriBuilder.html#resolveTemplates-java.util.Map-boolean-">resolveTemplates</a></span>(java.util.Map&lt;java.lang.String,java.lang.Object&gt;&nbsp;templateValues,
                boolean&nbsp;encodeSlashInPath)</code>
<div class="block">Resolve one or more URI templates in this <code>UriBuilder</code> instance using supplied
 name-value pairs.</div>
</td>
</tr>
<tr id="i33" class="rowColor">
<td class="colFirst"><code>abstract <a href="../../../../javax/ws/rs/core/UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/ws/rs/core/UriBuilder.html#resolveTemplatesFromEncoded-java.util.Map-">resolveTemplatesFromEncoded</a></span>(java.util.Map&lt;java.lang.String,java.lang.Object&gt;&nbsp;templateValues)</code>
<div class="block">Resolve one or more URI templates in this <code>UriBuilder</code> instance using supplied
 name-value pairs.</div>
</td>
</tr>
<tr id="i34" class="altColor">
<td class="colFirst"><code>abstract <a href="../../../../javax/ws/rs/core/UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/ws/rs/core/UriBuilder.html#scheme-java.lang.String-">scheme</a></span>(java.lang.String&nbsp;scheme)</code>
<div class="block">Set the URI scheme.</div>
</td>
</tr>
<tr id="i35" class="rowColor">
<td class="colFirst"><code>abstract <a href="../../../../javax/ws/rs/core/UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/ws/rs/core/UriBuilder.html#schemeSpecificPart-java.lang.String-">schemeSpecificPart</a></span>(java.lang.String&nbsp;ssp)</code>
<div class="block">Set the URI scheme-specific-part (see <code>URI</code>).</div>
</td>
</tr>
<tr id="i36" class="altColor">
<td class="colFirst"><code>abstract <a href="../../../../javax/ws/rs/core/UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/ws/rs/core/UriBuilder.html#segment-java.lang.String...-">segment</a></span>(java.lang.String...&nbsp;segments)</code>
<div class="block">Append path segments to the existing path.</div>
</td>
</tr>
<tr id="i37" class="rowColor">
<td class="colFirst"><code>abstract java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/ws/rs/core/UriBuilder.html#toTemplate--">toTemplate</a></span>()</code>
<div class="block">Get the URI template string represented by this URI builder.</div>
</td>
</tr>
<tr id="i38" class="altColor">
<td class="colFirst"><code>abstract <a href="../../../../javax/ws/rs/core/UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/ws/rs/core/UriBuilder.html#uri-java.lang.String-">uri</a></span>(java.lang.String&nbsp;uriTemplate)</code>
<div class="block">Parses the <code>uriTemplate</code> string and copies the parsed components of the supplied
 URI to the UriBuilder replacing any existing values for those components.</div>
</td>
</tr>
<tr id="i39" class="rowColor">
<td class="colFirst"><code>abstract <a href="../../../../javax/ws/rs/core/UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/ws/rs/core/UriBuilder.html#uri-java.net.URI-">uri</a></span>(java.net.URI&nbsp;uri)</code>
<div class="block">Copies the non-null components of the supplied URI to the UriBuilder replacing
 any existing values for those components.</div>
</td>
</tr>
<tr id="i40" class="altColor">
<td class="colFirst"><code>abstract <a href="../../../../javax/ws/rs/core/UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/ws/rs/core/UriBuilder.html#userInfo-java.lang.String-">userInfo</a></span>(java.lang.String&nbsp;ui)</code>
<div class="block">Set the URI user-info.</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>equals, finalize, getClass, hashCode, notify, notifyAll, toString, 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="UriBuilder--">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>UriBuilder</h4>
<pre>protected&nbsp;UriBuilder()</pre>
<div class="block">Protected constructor, use one of the static <code>from<i>Xxx</i>(...)</code>
 methods to obtain an instance.</div>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!--   -->
</a>
<h3>Method Detail</h3>
<a name="newInstance--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>newInstance</h4>
<pre>protected static&nbsp;<a href="../../../../javax/ws/rs/core/UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a>&nbsp;newInstance()</pre>
<div class="block">Creates a new instance of UriBuilder.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a new instance of UriBuilder.</dd>
</dl>
</li>
</ul>
<a name="fromUri-java.net.URI-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>fromUri</h4>
<pre>public static&nbsp;<a href="../../../../javax/ws/rs/core/UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a>&nbsp;fromUri(java.net.URI&nbsp;uri)</pre>
<div class="block">Create a new instance initialized from an existing URI.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>uri</code> - a URI that will be used to initialize the UriBuilder.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a new UriBuilder.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - if uri is <code>null</code>.</dd>
</dl>
</li>
</ul>
<a name="fromUri-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>fromUri</h4>
<pre>public static&nbsp;<a href="../../../../javax/ws/rs/core/UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a>&nbsp;fromUri(java.lang.String&nbsp;uriTemplate)</pre>
<div class="block">Create a new instance initialized from an existing URI.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>uriTemplate</code> - a URI template that will be used to initialize the UriBuilder, may
                    contain URI parameters.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a new UriBuilder.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - if <code>uriTemplate</code> is not a valid URI template or
                                  is <code>null</code>.</dd>
</dl>
</li>
</ul>
<a name="fromLink-javax.ws.rs.core.Link-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>fromLink</h4>
<pre>public static&nbsp;<a href="../../../../javax/ws/rs/core/UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a>&nbsp;fromLink(<a href="../../../../javax/ws/rs/core/Link.html" title="class in javax.ws.rs.core">Link</a>&nbsp;link)</pre>
<div class="block">Create a new instance initialized from a Link.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>link</code> - a Link that will be used to initialize the UriBuilder, only
             its URI is used.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a new UriBuilder</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - if link is <code>null</code></dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.0</dd>
</dl>
</li>
</ul>
<a name="fromPath-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>fromPath</h4>
<pre>public static&nbsp;<a href="../../../../javax/ws/rs/core/UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a>&nbsp;fromPath(java.lang.String&nbsp;path)
                           throws java.lang.IllegalArgumentException</pre>
<div class="block">Create a new instance representing a relative URI initialized from a
 URI path.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>path</code> - a URI path that will be used to initialize the UriBuilder,
             may contain URI template parameters.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a new UriBuilder.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - if path is <code>null</code>.</dd>
</dl>
</li>
</ul>
<a name="fromResource-java.lang.Class-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>fromResource</h4>
<pre>public static&nbsp;<a href="../../../../javax/ws/rs/core/UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a>&nbsp;fromResource(java.lang.Class&lt;?&gt;&nbsp;resource)</pre>
<div class="block">Create a new instance representing a relative URI initialized from a
 root resource class.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>resource</code> - a root resource whose <a href="../../../../javax/ws/rs/Path.html" title="annotation in javax.ws.rs"><code>Path</code></a> value will
                 be used to initialize the UriBuilder.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a new UriBuilder.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - if resource is not annotated with
                                  <a href="../../../../javax/ws/rs/Path.html" title="annotation in javax.ws.rs"><code>Path</code></a> or resource is <code>null</code>.</dd>
</dl>
</li>
</ul>
<a name="fromMethod-java.lang.Class-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>fromMethod</h4>
<pre>public static&nbsp;<a href="../../../../javax/ws/rs/core/UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a>&nbsp;fromMethod(java.lang.Class&lt;?&gt;&nbsp;resource,
                                    java.lang.String&nbsp;method)</pre>
<div class="block">Create a new instance representing a relative URI initialized from a
 <a href="../../../../javax/ws/rs/Path.html" title="annotation in javax.ws.rs"><code>Path</code></a>-annotated method.

 This method can only be used in cases where there is a single method with the
 specified name that is annotated with <a href="../../../../javax/ws/rs/Path.html" title="annotation in javax.ws.rs"><code>Path</code></a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>resource</code> - the resource containing the method.</dd>
<dd><code>method</code> - the name of the method whose <a href="../../../../javax/ws/rs/Path.html" title="annotation in javax.ws.rs"><code>Path</code></a> value will be
                 used to obtain the path to append.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the updated UriBuilder.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - if resource or method is <code>null</code>,
                                  or there is more than or less than one variant of the method annotated with
                                  <a href="../../../../javax/ws/rs/Path.html" title="annotation in javax.ws.rs"><code>Path</code></a>.</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.0</dd>
</dl>
</li>
</ul>
<a name="clone--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>clone</h4>
<pre>public abstract&nbsp;<a href="../../../../javax/ws/rs/core/UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a>&nbsp;clone()</pre>
<div class="block">Create a copy of the UriBuilder preserving its state. This is a more
 efficient means of creating a copy than constructing a new UriBuilder
 from a URI returned by the <a href="../../../../javax/ws/rs/core/UriBuilder.html#build-java.lang.Object...-"><code>build(Object...)</code></a> method.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code>clone</code>&nbsp;in class&nbsp;<code>java.lang.Object</code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a copy of the UriBuilder.</dd>
</dl>
</li>
</ul>
<a name="uri-java.net.URI-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>uri</h4>
<pre>public abstract&nbsp;<a href="../../../../javax/ws/rs/core/UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a>&nbsp;uri(java.net.URI&nbsp;uri)</pre>
<div class="block">Copies the non-null components of the supplied URI to the UriBuilder replacing
 any existing values for those components.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>uri</code> - the URI to copy components from.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the updated UriBuilder.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - if the <code>uri</code> parameter is <code>null</code>.</dd>
</dl>
</li>
</ul>
<a name="uri-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>uri</h4>
<pre>public abstract&nbsp;<a href="../../../../javax/ws/rs/core/UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a>&nbsp;uri(java.lang.String&nbsp;uriTemplate)</pre>
<div class="block">Parses the <code>uriTemplate</code> string and copies the parsed components of the supplied
 URI to the UriBuilder replacing any existing values for those components.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>uriTemplate</code> - a URI template that will be used to initialize the UriBuilder, may
                    contain URI parameters.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the updated UriBuilder.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - if <code>uriTemplate</code> is not a valid URI template or
                                  is <code>null</code>.</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.0</dd>
</dl>
</li>
</ul>
<a name="scheme-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>scheme</h4>
<pre>public abstract&nbsp;<a href="../../../../javax/ws/rs/core/UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a>&nbsp;scheme(java.lang.String&nbsp;scheme)</pre>
<div class="block">Set the URI scheme.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>scheme</code> - the URI scheme, may contain URI template parameters.
               A <code>null</code> value will unset the URI scheme, but will
               not unset the any scheme-specific-part components.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the updated UriBuilder.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - if scheme is invalid.</dd>
</dl>
</li>
</ul>
<a name="schemeSpecificPart-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>schemeSpecificPart</h4>
<pre>public abstract&nbsp;<a href="../../../../javax/ws/rs/core/UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a>&nbsp;schemeSpecificPart(java.lang.String&nbsp;ssp)</pre>
<div class="block">Set the URI scheme-specific-part (see <code>URI</code>). This
 method will overwrite any existing
 values for authority, user-info, host, port and path.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>ssp</code> - the URI scheme-specific-part, may contain URI template parameters.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the updated UriBuilder.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - if ssp cannot be parsed or is <code>null</code>.</dd>
</dl>
</li>
</ul>
<a name="userInfo-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>userInfo</h4>
<pre>public abstract&nbsp;<a href="../../../../javax/ws/rs/core/UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a>&nbsp;userInfo(java.lang.String&nbsp;ui)</pre>
<div class="block">Set the URI user-info.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>ui</code> - the URI user-info, may contain URI template parameters.
           A <code>null</code> value will unset userInfo component of the URI.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the updated UriBuilder.</dd>
</dl>
</li>
</ul>
<a name="host-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>host</h4>
<pre>public abstract&nbsp;<a href="../../../../javax/ws/rs/core/UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a>&nbsp;host(java.lang.String&nbsp;host)</pre>
<div class="block">Set the URI host.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>host</code> - the URI host, may contain URI template parameters.
             A <code>null</code> value will unset the host component of the URI, but
             will not unset other authority component parts
             (<a href="../../../../javax/ws/rs/core/UriBuilder.html#userInfo-java.lang.String-"><code>user info</code></a> or <a href="../../../../javax/ws/rs/core/UriBuilder.html#port-int-"><code>port</code></a>).</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the updated UriBuilder.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - if host is invalid.</dd>
</dl>
</li>
</ul>
<a name="port-int-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>port</h4>
<pre>public abstract&nbsp;<a href="../../../../javax/ws/rs/core/UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a>&nbsp;port(int&nbsp;port)</pre>
<div class="block">Set the URI port.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>port</code> - the URI port, a value of -1 will unset an explicit port.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the updated UriBuilder.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - if port is invalid.</dd>
</dl>
</li>
</ul>
<a name="replacePath-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>replacePath</h4>
<pre>public abstract&nbsp;<a href="../../../../javax/ws/rs/core/UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a>&nbsp;replacePath(java.lang.String&nbsp;path)</pre>
<div class="block">Set the URI path. This method will overwrite
 any existing path and associated matrix parameters.
 Existing '/' characters are preserved thus a single value can
 represent multiple URI path segments.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>path</code> - the path, may contain URI template parameters.
             A <code>null</code> value will unset the path component of the URI.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the updated UriBuilder.</dd>
</dl>
</li>
</ul>
<a name="path-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>path</h4>
<pre>public abstract&nbsp;<a href="../../../../javax/ws/rs/core/UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a>&nbsp;path(java.lang.String&nbsp;path)</pre>
<div class="block">Append path to the existing path.
 When constructing the final path, a '/' separator will be inserted
 between the existing path and the supplied path if necessary.
 Existing '/' characters are preserved thus a single value can
 represent multiple URI path segments.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>path</code> - the path, may contain URI template parameters.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the updated UriBuilder.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - if path is <code>null</code>.</dd>
</dl>
</li>
</ul>
<a name="path-java.lang.Class-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>path</h4>
<pre>public abstract&nbsp;<a href="../../../../javax/ws/rs/core/UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a>&nbsp;path(java.lang.Class&nbsp;resource)</pre>
<div class="block">Append the path from a Path-annotated class to the
 existing path.
 When constructing the final path, a '/' separator will be inserted
 between the existing path and the supplied path if necessary.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>resource</code> - a resource whose <a href="../../../../javax/ws/rs/Path.html" title="annotation in javax.ws.rs"><code>Path</code></a> value will be
                 used to obtain the path to append.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the updated UriBuilder.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - if resource is <code>null</code>, or
                                  if resource is not annotated with <a href="../../../../javax/ws/rs/Path.html" title="annotation in javax.ws.rs"><code>Path</code></a>.</dd>
</dl>
</li>
</ul>
<a name="path-java.lang.Class-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>path</h4>
<pre>public abstract&nbsp;<a href="../../../../javax/ws/rs/core/UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a>&nbsp;path(java.lang.Class&nbsp;resource,
                                java.lang.String&nbsp;method)</pre>
<div class="block">Append the path from a Path-annotated method to the
 existing path.
 When constructing the final path, a '/' separator will be inserted
 between the existing path and the supplied path if necessary.
 This method is a convenience shortcut to <code>path(Method)</code>, it
 can only be used in cases where there is a single method with the
 specified name that is annotated with <a href="../../../../javax/ws/rs/Path.html" title="annotation in javax.ws.rs"><code>Path</code></a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>resource</code> - the resource containing the method.</dd>
<dd><code>method</code> - the name of the method whose <a href="../../../../javax/ws/rs/Path.html" title="annotation in javax.ws.rs"><code>Path</code></a> value will be
                 used to obtain the path to append.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the updated UriBuilder.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - if resource or method is <code>null</code>,
                                  or there is more than or less than one variant of the method annotated with
                                  <a href="../../../../javax/ws/rs/Path.html" title="annotation in javax.ws.rs"><code>Path</code></a>.</dd>
</dl>
</li>
</ul>
<a name="path-java.lang.reflect.Method-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>path</h4>
<pre>public abstract&nbsp;<a href="../../../../javax/ws/rs/core/UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a>&nbsp;path(java.lang.reflect.Method&nbsp;method)</pre>
<div class="block">Append the path from a <a href="../../../../javax/ws/rs/Path.html" title="annotation in javax.ws.rs"><code>Path</code></a>-annotated method to the
 existing path.
 When constructing the final path, a '/' separator will be inserted
 between the existing path and the supplied path if necessary.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>method</code> - a method whose <a href="../../../../javax/ws/rs/Path.html" title="annotation in javax.ws.rs"><code>Path</code></a> value will be
               used to obtain the path to append to the existing path.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the updated UriBuilder.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - if method is <code>null</code> or is
                                  not annotated with a <a href="../../../../javax/ws/rs/Path.html" title="annotation in javax.ws.rs"><code>Path</code></a>.</dd>
</dl>
</li>
</ul>
<a name="segment-java.lang.String...-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>segment</h4>
<pre>public abstract&nbsp;<a href="../../../../javax/ws/rs/core/UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a>&nbsp;segment(java.lang.String...&nbsp;segments)</pre>
<div class="block">Append path segments to the existing path.
 When constructing the final path, a '/' separator will be inserted
 between the existing path and the first path segment if necessary and
 each supplied segment will also be separated by '/'.
 Existing '/' characters are encoded thus a single value can
 only represent a single URI path segment.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>segments</code> - the path segment values, each may contain URI template
                 parameters.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the updated UriBuilder.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - if segments or any element of segments
                                  is <code>null</code>.</dd>
</dl>
</li>
</ul>
<a name="replaceMatrix-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>replaceMatrix</h4>
<pre>public abstract&nbsp;<a href="../../../../javax/ws/rs/core/UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a>&nbsp;replaceMatrix(java.lang.String&nbsp;matrix)</pre>
<div class="block">Set the matrix parameters of the current final segment of the current URI path.
 This method will overwrite any existing matrix parameters on the current final
 segment of the current URI path. Note that the matrix parameters
 are tied to a particular path segment; subsequent addition of path segments
 will not affect their position in the URI path.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>matrix</code> - the matrix parameters, may contain URI template parameters.
               A <code>null</code> value will remove all matrix parameters of the current final segment
               of the current URI path.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the updated UriBuilder.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - if matrix cannot be parsed.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="http://www.w3.org/DesignIssues/MatrixURIs.html">Matrix URIs</a></dd>
</dl>
</li>
</ul>
<a name="matrixParam-java.lang.String-java.lang.Object...-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>matrixParam</h4>
<pre>public abstract&nbsp;<a href="../../../../javax/ws/rs/core/UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a>&nbsp;matrixParam(java.lang.String&nbsp;name,
                                       java.lang.Object...&nbsp;values)</pre>
<div class="block">Append a matrix parameter to the existing set of matrix parameters of
 the current final segment of the URI path. If multiple values are supplied
 the parameter will be added once per value. Note that the matrix parameters
 are tied to a particular path segment; subsequent addition of path segments
 will not affect their position in the URI path.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>name</code> - the matrix parameter name, may contain URI template parameters.</dd>
<dd><code>values</code> - the matrix parameter value(s), each object will be converted.
               to a <code>String</code> using its <code>toString()</code> method. Stringified
               values may contain URI template parameters.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the updated UriBuilder.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - if name or values is <code>null</code>.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="http://www.w3.org/DesignIssues/MatrixURIs.html">Matrix URIs</a></dd>
</dl>
</li>
</ul>
<a name="replaceMatrixParam-java.lang.String-java.lang.Object...-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>replaceMatrixParam</h4>
<pre>public abstract&nbsp;<a href="../../../../javax/ws/rs/core/UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a>&nbsp;replaceMatrixParam(java.lang.String&nbsp;name,
                                              java.lang.Object...&nbsp;values)</pre>
<div class="block">Replace the existing value(s) of a matrix parameter on
 the current final segment of the URI path. If multiple values are supplied
 the parameter will be added once per value. Note that the matrix parameters
 are tied to a particular path segment; subsequent addition of path segments
 will not affect their position in the URI path.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>name</code> - the matrix parameter name, may contain URI template parameters.</dd>
<dd><code>values</code> - the matrix parameter value(s), each object will be converted.
               to a <code>String</code> using its <code>toString()</code> method. Stringified
               values may contain URI template parameters. If <code>values</code> is empty
               or <code>null</code> then all current values of the parameter are removed.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the updated UriBuilder.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - if name is <code>null</code>.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="http://www.w3.org/DesignIssues/MatrixURIs.html">Matrix URIs</a></dd>
</dl>
</li>
</ul>
<a name="replaceQuery-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>replaceQuery</h4>
<pre>public abstract&nbsp;<a href="../../../../javax/ws/rs/core/UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a>&nbsp;replaceQuery(java.lang.String&nbsp;query)</pre>
<div class="block">Set the URI query string. This method will overwrite any existing query
 parameters.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>query</code> - the URI query string, may contain URI template parameters.
              A <code>null</code> value will remove all query parameters.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the updated UriBuilder.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - if query cannot be parsed.</dd>
</dl>
</li>
</ul>
<a name="queryParam-java.lang.String-java.lang.Object...-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>queryParam</h4>
<pre>public abstract&nbsp;<a href="../../../../javax/ws/rs/core/UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a>&nbsp;queryParam(java.lang.String&nbsp;name,
                                      java.lang.Object...&nbsp;values)</pre>
<div class="block">Append a query parameter to the existing set of query parameters. If
 multiple values are supplied the parameter will be added once per value.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>name</code> - the query parameter name, may contain URI template parameters.</dd>
<dd><code>values</code> - the query parameter value(s), each object will be converted
               to a <code>String</code> using its <code>toString()</code> method. Stringified
               values may contain URI template parameters.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the updated UriBuilder.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - if name or values is <code>null</code>.</dd>
</dl>
</li>
</ul>
<a name="replaceQueryParam-java.lang.String-java.lang.Object...-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>replaceQueryParam</h4>
<pre>public abstract&nbsp;<a href="../../../../javax/ws/rs/core/UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a>&nbsp;replaceQueryParam(java.lang.String&nbsp;name,
                                             java.lang.Object...&nbsp;values)</pre>
<div class="block">Replace the existing value(s) of a query parameter. If
 multiple values are supplied the parameter will be added once per value.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>name</code> - the query parameter name, may contain URI template parameters.</dd>
<dd><code>values</code> - the query parameter value(s), each object will be converted
               to a <code>String</code> using its <code>toString()</code> method. Stringified
               values may contain URI template parameters. If <code>values</code> is empty
               or <code>null</code> then all current values of the parameter are removed.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the updated UriBuilder.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - if name is <code>null</code>.</dd>
</dl>
</li>
</ul>
<a name="fragment-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>fragment</h4>
<pre>public abstract&nbsp;<a href="../../../../javax/ws/rs/core/UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a>&nbsp;fragment(java.lang.String&nbsp;fragment)</pre>
<div class="block">Set the URI fragment.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>fragment</code> - the URI fragment, may contain URI template parameters.
                 A <code>null</code> value will remove any existing fragment.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the updated UriBuilder.</dd>
</dl>
</li>
</ul>
<a name="resolveTemplate-java.lang.String-java.lang.Object-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>resolveTemplate</h4>
<pre>public abstract&nbsp;<a href="../../../../javax/ws/rs/core/UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a>&nbsp;resolveTemplate(java.lang.String&nbsp;name,
                                           java.lang.Object&nbsp;value)</pre>
<div class="block">Resolve a URI template with a given <code>name</code> in this <code>UriBuilder</code> instance
 using a supplied value.

 In case a <code>null</code> template name or value is entered a <code>IllegalArgumentException</code>
 is thrown.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>name</code> - name of the URI template.</dd>
<dd><code>value</code> - value to be used to resolve the template.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the updated UriBuilder.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - if the resolved template name or value is <code>null</code>.</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.0</dd>
</dl>
</li>
</ul>
<a name="resolveTemplate-java.lang.String-java.lang.Object-boolean-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>resolveTemplate</h4>
<pre>public abstract&nbsp;<a href="../../../../javax/ws/rs/core/UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a>&nbsp;resolveTemplate(java.lang.String&nbsp;name,
                                           java.lang.Object&nbsp;value,
                                           boolean&nbsp;encodeSlashInPath)</pre>
<div class="block">Resolve a URI template with a given <code>name</code> in this <code>UriBuilder</code> instance
 using a supplied value.

 In case a <code>null</code> template name or value is entered a <code>IllegalArgumentException</code>
 is thrown.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>name</code> - name of the URI template.</dd>
<dd><code>value</code> - value to be used to resolve the template.</dd>
<dd><code>encodeSlashInPath</code> - if <code>true</code>, the slash (<code>'/'</code>) characters
                          in template values will be encoded if the template
                          is placed in the URI path component, otherwise the slash
                          characters will not be encoded in path templates.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the updated UriBuilder.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - if the resolved template name or value is <code>null</code>.</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.0</dd>
</dl>
</li>
</ul>
<a name="resolveTemplateFromEncoded-java.lang.String-java.lang.Object-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>resolveTemplateFromEncoded</h4>
<pre>public abstract&nbsp;<a href="../../../../javax/ws/rs/core/UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a>&nbsp;resolveTemplateFromEncoded(java.lang.String&nbsp;name,
                                                      java.lang.Object&nbsp;value)</pre>
<div class="block">Resolve a URI template with a given <code>name</code> in this <code>UriBuilder</code> instance
 using a supplied encoded value.

 A template with a matching name will be replaced by the supplied value.
 Value is converted to <code>String</code> using its <code>toString()</code> method and is then
 encoded to match the rules of the URI component to which they pertain.  All % characters in
 the stringified values that are not followed by two hexadecimal numbers will be encoded.

 In case a <code>null</code> template name or encoded value is entered a <code>IllegalArgumentException</code>
 is thrown.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>name</code> - name of the URI template.</dd>
<dd><code>value</code> - encoded value to be used to resolve the template.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the updated UriBuilder.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - if the resolved template name or encoded value is <code>null</code>.</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.0</dd>
</dl>
</li>
</ul>
<a name="resolveTemplates-java.util.Map-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>resolveTemplates</h4>
<pre>public abstract&nbsp;<a href="../../../../javax/ws/rs/core/UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a>&nbsp;resolveTemplates(java.util.Map&lt;java.lang.String,java.lang.Object&gt;&nbsp;templateValues)</pre>
<div class="block">Resolve one or more URI templates in this <code>UriBuilder</code> instance using supplied
 name-value pairs.

 A call to the method with an empty parameter map is ignored.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>templateValues</code> - a map of URI template names and their values.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the updated UriBuilder.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - if the name-value map or any of the names or values
                                  in the map is <code>null</code>.</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.0</dd>
</dl>
</li>
</ul>
<a name="resolveTemplates-java.util.Map-boolean-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>resolveTemplates</h4>
<pre>public abstract&nbsp;<a href="../../../../javax/ws/rs/core/UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a>&nbsp;resolveTemplates(java.util.Map&lt;java.lang.String,java.lang.Object&gt;&nbsp;templateValues,
                                            boolean&nbsp;encodeSlashInPath)
                                     throws java.lang.IllegalArgumentException</pre>
<div class="block">Resolve one or more URI templates in this <code>UriBuilder</code> instance using supplied
 name-value pairs.

 A call to the method with an empty parameter map is ignored.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>templateValues</code> - a map of URI template names and their values.</dd>
<dd><code>encodeSlashInPath</code> - if <code>true</code>, the slash (<code>'/'</code>) characters
                          in template values will be encoded if the template
                          is placed in the URI path component, otherwise the slash
                          characters will not be encoded in path templates.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the updated UriBuilder.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - if the name-value map or any of the names or values
                                  in the map is <code>null</code>.</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.0</dd>
</dl>
</li>
</ul>
<a name="resolveTemplatesFromEncoded-java.util.Map-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>resolveTemplatesFromEncoded</h4>
<pre>public abstract&nbsp;<a href="../../../../javax/ws/rs/core/UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a>&nbsp;resolveTemplatesFromEncoded(java.util.Map&lt;java.lang.String,java.lang.Object&gt;&nbsp;templateValues)</pre>
<div class="block">Resolve one or more URI templates in this <code>UriBuilder</code> instance using supplied
 name-value pairs.

 All templates  with their name matching one of the keys in the supplied map will be replaced
 by the value in the supplied map. Values are converted to <code>String</code> using
 their <code>toString()</code> method and are then encoded to match the
 rules of the URI component to which they pertain.  All % characters in
 the stringified values that are not followed by two hexadecimal numbers
 will be encoded.

 A call to the method with an empty parameter map is ignored.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>templateValues</code> - a map of URI template names and their values.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the updated UriBuilder.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - if the name-value map or any of the names or values
                                  in the map is <code>null</code>.</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.0</dd>
</dl>
</li>
</ul>
<a name="buildFromMap-java.util.Map-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>buildFromMap</h4>
<pre>public abstract&nbsp;java.net.URI&nbsp;buildFromMap(java.util.Map&lt;java.lang.String,?&gt;&nbsp;values)</pre>
<div class="block">Build a URI.

 Any URI template parameters will be replaced by the value in
 the supplied map. Values are converted to <code>String</code> using
 their <code>toString()</code> method and are then encoded to match the
 rules of the URI component to which they pertain.  All <code>'%'</code> characters
 in the stringified values will be encoded.
 The state of the builder is unaffected; this method may be called
 multiple times on the same builder instance.
 <p>
 NOTE: By default all <code>'/'</code> characters in the stringified values will be
 encoded in path templates, i.e. the result is identical to invoking
 <a href="../../../../javax/ws/rs/core/UriBuilder.html#buildFromMap-java.util.Map-boolean-"><code>buildFromMap(valueMap, true)</code></a>.
 To override this behavior use <code>buildFromMap(valueMap, false)</code> instead.
 </p></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>values</code> - a map of URI template parameter names and values.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the URI built from the UriBuilder.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - if there are any URI template parameters
                                  without a supplied value, or if a template parameter value is <code>null</code>.</dd>
<dd><code><a href="../../../../javax/ws/rs/core/UriBuilderException.html" title="class in javax.ws.rs.core">UriBuilderException</a></code> - if a URI cannot be constructed based on the
                                  current state of the builder.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../javax/ws/rs/core/UriBuilder.html#buildFromMap-java.util.Map-boolean-"><code>buildFromMap(java.util.Map, boolean)</code></a>, 
<a href="../../../../javax/ws/rs/core/UriBuilder.html#buildFromEncodedMap-java.util.Map-"><code>buildFromEncodedMap(java.util.Map)</code></a></dd>
</dl>
</li>
</ul>
<a name="buildFromMap-java.util.Map-boolean-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>buildFromMap</h4>
<pre>public abstract&nbsp;java.net.URI&nbsp;buildFromMap(java.util.Map&lt;java.lang.String,?&gt;&nbsp;values,
                                          boolean&nbsp;encodeSlashInPath)
                                   throws java.lang.IllegalArgumentException,
                                          <a href="../../../../javax/ws/rs/core/UriBuilderException.html" title="class in javax.ws.rs.core">UriBuilderException</a></pre>
<div class="block">Build a URI.

 Any URI template parameters will be replaced by the value in
 the supplied map. Values are converted to <code>String</code> using
 their <code>toString()</code> method and are then encoded to match the
 rules of the URI component to which they pertain.  All <code>'%'</code> characters
 in the stringified values will be encoded.
 The state of the builder is unaffected; this method may be called
 multiple times on the same builder instance.
 <p>
 The <code>encodeSlashInPath</code> parameter may be used to override the default
 encoding of <code>'/'</code> characters in the stringified template values
 in cases when the template is part of the URI path component when using
 the <a href="../../../../javax/ws/rs/core/UriBuilder.html#buildFromMap-java.util.Map-"><code>buildFromMap(java.util.Map)</code></a> method. If the <code>encodeSlashInPath</code>
 parameter is set to <code>true</code> (default), the slash (<code>'/'</code>) characters in
 parameter values will be encoded if the template is placed in the URI path component.
 If set to <code>false</code> the default encoding behavior is overridden an slash characters
 in template values will not be encoded when used to substitute path templates.
 </p></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>values</code> - a map of URI template parameter names and values.</dd>
<dd><code>encodeSlashInPath</code> - if <code>true</code>, the slash (<code>'/'</code>) characters
                          in parameter values will be encoded if the template
                          is placed in the URI path component, otherwise the slash
                          characters will not be encoded in path templates.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the URI built from the UriBuilder.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - if there are any URI template parameters
                                  without a supplied value, or if a template parameter value is <code>null</code>.</dd>
<dd><code><a href="../../../../javax/ws/rs/core/UriBuilderException.html" title="class in javax.ws.rs.core">UriBuilderException</a></code> - if a URI cannot be constructed based on the
                                  current state of the builder.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../javax/ws/rs/core/UriBuilder.html#buildFromMap-java.util.Map-"><code>buildFromMap(java.util.Map)</code></a>, 
<a href="../../../../javax/ws/rs/core/UriBuilder.html#buildFromEncodedMap-java.util.Map-"><code>buildFromEncodedMap(java.util.Map)</code></a></dd>
</dl>
</li>
</ul>
<a name="buildFromEncodedMap-java.util.Map-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>buildFromEncodedMap</h4>
<pre>public abstract&nbsp;java.net.URI&nbsp;buildFromEncodedMap(java.util.Map&lt;java.lang.String,?&gt;&nbsp;values)
                                          throws java.lang.IllegalArgumentException,
                                                 <a href="../../../../javax/ws/rs/core/UriBuilderException.html" title="class in javax.ws.rs.core">UriBuilderException</a></pre>
<div class="block">Build a URI.

 Any URI template parameters will be replaced by the value in
 the supplied map. Values are converted to <code>String</code> using
 their <code>toString()</code> method and are then encoded to match the
 rules of the URI component to which they pertain.  All % characters in
 the stringified values that are not followed by two hexadecimal numbers
 will be encoded.
 The state of the builder is unaffected; this method may be called
 multiple times on the same builder instance.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>values</code> - a map of URI template parameter names and values.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the URI built from the UriBuilder.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - if there are any URI template parameters
                                  without a supplied value, or if a template parameter value is <code>null</code>.</dd>
<dd><code><a href="../../../../javax/ws/rs/core/UriBuilderException.html" title="class in javax.ws.rs.core">UriBuilderException</a></code> - if a URI cannot be constructed based on the
                                  current state of the builder.</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.0</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../javax/ws/rs/core/UriBuilder.html#buildFromMap-java.util.Map-"><code>buildFromMap(java.util.Map)</code></a>, 
<a href="../../../../javax/ws/rs/core/UriBuilder.html#buildFromMap-java.util.Map-boolean-"><code>buildFromMap(java.util.Map, boolean)</code></a></dd>
</dl>
</li>
</ul>
<a name="build-java.lang.Object...-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>build</h4>
<pre>public abstract&nbsp;java.net.URI&nbsp;build(java.lang.Object...&nbsp;values)
                            throws java.lang.IllegalArgumentException,
                                   <a href="../../../../javax/ws/rs/core/UriBuilderException.html" title="class in javax.ws.rs.core">UriBuilderException</a></pre>
<div class="block">Build a URI, using the supplied values in order to replace any URI
 template parameters. Values are converted to <code>String</code> using
 their <code>toString()</code> method and are then encoded to match the
 rules of the URI component to which they pertain. All '%' characters
 in the stringified values will be encoded.
 The state of the builder is unaffected; this method may be called
 multiple times on the same builder instance.
 <p>
 All instances of the same template parameter
 will be replaced by the same value that corresponds to the position of the
 first instance of the template parameter. e.g. the template "{a}/{b}/{a}"
 with values {"x", "y", "z"} will result in the the URI "x/y/x", <i>not</i>
 "x/y/z".
 </p>
 <p>
 NOTE: By default all <code>'/'</code> characters in the stringified values will be
 encoded in path templates, i.e. the result is identical to invoking
 <a href="../../../../javax/ws/rs/core/UriBuilder.html#build-java.lang.Object:A-boolean-"><code>build(Object[], boolean)</code></a> build(values, true)}.
 To override this behavior use <code>build(values, false)</code> instead.
 </p></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>values</code> - a list of URI template parameter values.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the URI built from the UriBuilder.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - if there are any URI template parameters
                                  without a supplied value, or if a value is <code>null</code>.</dd>
<dd><code><a href="../../../../javax/ws/rs/core/UriBuilderException.html" title="class in javax.ws.rs.core">UriBuilderException</a></code> - if a URI cannot be constructed based on the
                                  current state of the builder.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../javax/ws/rs/core/UriBuilder.html#build-java.lang.Object:A-boolean-"><code>build(Object[], boolean)</code></a>, 
<a href="../../../../javax/ws/rs/core/UriBuilder.html#buildFromEncoded-java.lang.Object...-"><code>buildFromEncoded(Object...)</code></a></dd>
</dl>
</li>
</ul>
<a name="build-java.lang.Object:A-boolean-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>build</h4>
<pre>public abstract&nbsp;java.net.URI&nbsp;build(java.lang.Object[]&nbsp;values,
                                   boolean&nbsp;encodeSlashInPath)
                            throws java.lang.IllegalArgumentException,
                                   <a href="../../../../javax/ws/rs/core/UriBuilderException.html" title="class in javax.ws.rs.core">UriBuilderException</a></pre>
<div class="block">Build a URI, using the supplied values in order to replace any URI
 template parameters. Values are converted to <code>String</code> using
 their <code>toString()</code> method and are then encoded to match the
 rules of the URI component to which they pertain. All '%' characters
 in the stringified values will be encoded.
 The state of the builder is unaffected; this method may be called
 multiple times on the same builder instance.
 <p>
 All instances of the same template parameter
 will be replaced by the same value that corresponds to the position of the
 first instance of the template parameter. e.g. the template "{a}/{b}/{a}"
 with values {"x", "y", "z"} will result in the the URI "x/y/x", <i>not</i>
 "x/y/z".
 </p>
 <p>
 The <code>encodeSlashInPath</code> parameter may be used to override the default
 encoding of <code>'/'</code> characters in the stringified template values
 in cases when the template is part of the URI path component when using
 the <a href="../../../../javax/ws/rs/core/UriBuilder.html#build-java.lang.Object...-"><code>build(Object[])</code></a> method. If the <code>encodeSlashInPath</code>
 parameter is set to <code>true</code> (default), the slash (<code>'/'</code>) characters in
 parameter values will be encoded if the template is placed in the URI path component.
 If set to <code>false</code> the default encoding behavior is overridden an slash characters
 in template values will not be encoded when used to substitute path templates.
 </p></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>values</code> - a list of URI template parameter values.</dd>
<dd><code>encodeSlashInPath</code> - if <code>true</code>, the slash (<code>'/'</code>) characters
                          in parameter values will be encoded if the template
                          is placed in the URI path component, otherwise the slash
                          characters will not be encoded in path templates.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the URI built from the UriBuilder.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - if there are any URI template parameters
                                  without a supplied value, or if a value is <code>null</code>.</dd>
<dd><code><a href="../../../../javax/ws/rs/core/UriBuilderException.html" title="class in javax.ws.rs.core">UriBuilderException</a></code> - if a URI cannot be constructed based on the
                                  current state of the builder.</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.0</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../javax/ws/rs/core/UriBuilder.html#build-java.lang.Object...-"><code>build(Object[])</code></a>, 
<a href="../../../../javax/ws/rs/core/UriBuilder.html#buildFromEncoded-java.lang.Object...-"><code>buildFromEncoded(Object...)</code></a></dd>
</dl>
</li>
</ul>
<a name="buildFromEncoded-java.lang.Object...-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>buildFromEncoded</h4>
<pre>public abstract&nbsp;java.net.URI&nbsp;buildFromEncoded(java.lang.Object...&nbsp;values)
                                       throws java.lang.IllegalArgumentException,
                                              <a href="../../../../javax/ws/rs/core/UriBuilderException.html" title="class in javax.ws.rs.core">UriBuilderException</a></pre>
<div class="block">Build a URI.
 Any URI templates parameters will be replaced with the supplied values in
 order. Values are converted to <code>String</code> using
 their <code>toString()</code> method and are then encoded to match the
 rules of the URI component to which they pertain. All % characters in
 the stringified values that are not followed by two hexadecimal numbers
 will be encoded.
 The state of the builder is unaffected; this method may be called
 multiple times on the same builder instance.
 <p>All instances of the same template parameter
 will be replaced by the same value that corresponds to the position of the
 first instance of the template parameter. e.g. the template "{a}/{b}/{a}"
 with values {"x", "y", "z"} will result in the the URI "x/y/x", <i>not</i>
 "x/y/z".</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>values</code> - a list of URI template parameter values.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the URI built from the UriBuilder.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - if there are any URI template parameters
                                  without a supplied value, or if a value is <code>null</code>.</dd>
<dd><code><a href="../../../../javax/ws/rs/core/UriBuilderException.html" title="class in javax.ws.rs.core">UriBuilderException</a></code> - if a URI cannot be constructed based on the
                                  current state of the builder.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../javax/ws/rs/core/UriBuilder.html#build-java.lang.Object...-"><code>build(Object[])</code></a>, 
<a href="../../../../javax/ws/rs/core/UriBuilder.html#build-java.lang.Object:A-boolean-"><code>build(Object[], boolean)</code></a></dd>
</dl>
</li>
</ul>
<a name="toTemplate--">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>toTemplate</h4>
<pre>public abstract&nbsp;java.lang.String&nbsp;toTemplate()</pre>
<div class="block">Get the URI template string represented by this URI builder.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the URI template string for this URI builder.</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.0</dd>
</dl>
</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="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="../../../../javax/ws/rs/core/StreamingOutput.html" title="interface in javax.ws.rs.core"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../javax/ws/rs/core/UriBuilderException.html" title="class in javax.ws.rs.core"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?javax/ws/rs/core/UriBuilder.html" target="_top">Frames</a></li>
<li><a href="UriBuilder.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>
