<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!--NewPage-->
<HTML>
<HEAD>
<!-- Generated by javadoc (build 1.6.0_26) on Wed Sep 14 22:31:34 PDT 2011 -->
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<TITLE>
Index (Abdera2 Client 2.0-SNAPSHOT API)
</TITLE>

<META NAME="date" CONTENT="2011-09-14">

<LINK REL ="stylesheet" TYPE="text/css" HREF="./stylesheet.css" TITLE="Style">

<SCRIPT type="text/javascript">
function windowTitle()
{
    if (location.href.indexOf('is-external=true') == -1) {
        parent.document.title="Index (Abdera2 Client 2.0-SNAPSHOT API)";
    }
}
</SCRIPT>
<NOSCRIPT>
</NOSCRIPT>

</HEAD>

<BODY BGCOLOR="white" onload="windowTitle();">
<HR>


<!-- ========= START OF TOP NAVBAR ======= -->
<A NAME="navbar_top"><!-- --></A>
<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_top_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
  <TR ALIGN="center" VALIGN="top">
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="./org/apache/abdera2/protocol/client/package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="./org/apache/abdera2/protocol/client/package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="./deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="./help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
  </TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
</EM>
</TD>
</TR>

<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;PREV&nbsp;
&nbsp;NEXT</FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="./index.html?index-all.html" target="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="index-all.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
&nbsp;<SCRIPT type="text/javascript">
  <!--
  if(window==top) {
    document.writeln('<A HREF="./allclasses-noframe.html"><B>All Classes</B></A>');
  }
  //-->
</SCRIPT>
<NOSCRIPT>
  <A HREF="./allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>


</FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_top"></A>
<!-- ========= END OF TOP NAVBAR ========= -->

<A HREF="#_A_">A</A> <A HREF="#_C_">C</A> <A HREF="#_D_">D</A> <A HREF="#_E_">E</A> <A HREF="#_G_">G</A> <A HREF="#_H_">H</A> <A HREF="#_I_">I</A> <A HREF="#_L_">L</A> <A HREF="#_M_">M</A> <A HREF="#_N_">N</A> <A HREF="#_O_">O</A> <A HREF="#_P_">P</A> <A HREF="#_R_">R</A> <A HREF="#_S_">S</A> <A HREF="#_U_">U</A> <A HREF="#_W_">W</A> <HR>
<A NAME="_A_"><!-- --></A><H2>
<B>A</B></H2>
<DL>
<DT><A HREF="./org/apache/abdera2/protocol/client/Client.html#abdera"><B>abdera</B></A> - 
Variable in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/Client.html" title="class in org.apache.abdera2.protocol.client">Client</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/abdera2/protocol/client/AbderaBody.html" title="class in org.apache.abdera2.protocol.client"><B>AbderaBody</B></A> - Class in <A HREF="./org/apache/abdera2/protocol/client/package-summary.html">org.apache.abdera2.protocol.client</A><DD>Used with the MultipartRelatedEntity to include an Atom Entry as a 
 multipart message part.<DT><A HREF="./org/apache/abdera2/protocol/client/AbderaBody.html#AbderaBody(org.apache.abdera2.model.Base)"><B>AbderaBody(Base)</B></A> - 
Constructor for class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/AbderaBody.html" title="class in org.apache.abdera2.protocol.client">AbderaBody</A>
<DD>Create the body using the specified Abdera document or element.
<DT><A HREF="./org/apache/abdera2/protocol/client/AbderaBody.html#AbderaBody(org.apache.abdera2.model.Base, java.lang.String)"><B>AbderaBody(Base, String)</B></A> - 
Constructor for class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/AbderaBody.html" title="class in org.apache.abdera2.protocol.client">AbderaBody</A>
<DD>Create the body using the specified Abdera document or element.
<DT><A HREF="./org/apache/abdera2/protocol/client/AbderaBody.html#AbderaBody(org.apache.abdera2.model.Base, boolean)"><B>AbderaBody(Base, boolean)</B></A> - 
Constructor for class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/AbderaBody.html" title="class in org.apache.abdera2.protocol.client">AbderaBody</A>
<DD>Create the body using the specified Abdera document or element.
<DT><A HREF="./org/apache/abdera2/protocol/client/AbderaBody.html#AbderaBody(org.apache.abdera2.model.Base, boolean, java.lang.String)"><B>AbderaBody(Base, boolean, String)</B></A> - 
Constructor for class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/AbderaBody.html" title="class in org.apache.abdera2.protocol.client">AbderaBody</A>
<DD>Create the body using the specified Abdera document or element.
<DT><A HREF="./org/apache/abdera2/protocol/client/AbderaEntity.html" title="class in org.apache.abdera2.protocol.client"><B>AbderaEntity</B></A> - Class in <A HREF="./org/apache/abdera2/protocol/client/package-summary.html">org.apache.abdera2.protocol.client</A><DD>Wraps an Abdera object for use with the Apache HTTP client.<DT><A HREF="./org/apache/abdera2/protocol/client/AbderaEntity.html#AbderaEntity(org.apache.abdera2.model.Base)"><B>AbderaEntity(Base)</B></A> - 
Constructor for class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/AbderaEntity.html" title="class in org.apache.abdera2.protocol.client">AbderaEntity</A>
<DD>Create the entity using the specified Abdera document or element.
<DT><A HREF="./org/apache/abdera2/protocol/client/AbderaEntity.html#AbderaEntity(org.apache.abdera2.model.Base, java.lang.String)"><B>AbderaEntity(Base, String)</B></A> - 
Constructor for class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/AbderaEntity.html" title="class in org.apache.abdera2.protocol.client">AbderaEntity</A>
<DD>Create the entity using the specified Abdera document or element.
<DT><A HREF="./org/apache/abdera2/protocol/client/AbderaEntity.html#AbderaEntity(org.apache.abdera2.model.Base, boolean)"><B>AbderaEntity(Base, boolean)</B></A> - 
Constructor for class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/AbderaEntity.html" title="class in org.apache.abdera2.protocol.client">AbderaEntity</A>
<DD>Create the entity using the specified Abdera document or element.
<DT><A HREF="./org/apache/abdera2/protocol/client/AbderaEntity.html#AbderaEntity(org.apache.abdera2.model.Base, boolean, java.lang.String)"><B>AbderaEntity(Base, boolean, String)</B></A> - 
Constructor for class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/AbderaEntity.html" title="class in org.apache.abdera2.protocol.client">AbderaEntity</A>
<DD>Create the entity using the specified Abdera document or element.
<DT><A HREF="./org/apache/abdera2/protocol/client/ActivityEntity.html" title="class in org.apache.abdera2.protocol.client"><B>ActivityEntity</B></A> - Class in <A HREF="./org/apache/abdera2/protocol/client/package-summary.html">org.apache.abdera2.protocol.client</A><DD>Required for the Apache Commons HTTP AbderaClient.<DT><A HREF="./org/apache/abdera2/protocol/client/ActivityEntity.html#ActivityEntity(org.apache.abdera2.activities.model.ASBase)"><B>ActivityEntity(ASBase)</B></A> - 
Constructor for class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/ActivityEntity.html" title="class in org.apache.abdera2.protocol.client">ActivityEntity</A>
<DD>Create the entity using the specified Activity element.
<DT><A HREF="./org/apache/abdera2/protocol/client/ActivityEntity.html#ActivityEntity(org.apache.abdera2.activities.model.ASBase, java.lang.String)"><B>ActivityEntity(ASBase, String)</B></A> - 
Constructor for class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/ActivityEntity.html" title="class in org.apache.abdera2.protocol.client">ActivityEntity</A>
<DD>Create the entity using the specified Activity document or element.
<DT><A HREF="./org/apache/abdera2/protocol/client/ActivityEntity.html#ActivityEntity(org.apache.abdera2.activities.model.ASBase, boolean)"><B>ActivityEntity(ASBase, boolean)</B></A> - 
Constructor for class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/ActivityEntity.html" title="class in org.apache.abdera2.protocol.client">ActivityEntity</A>
<DD>Create the entity using the specified Activity document or element.
<DT><A HREF="./org/apache/abdera2/protocol/client/ActivityEntity.html#ActivityEntity(org.apache.abdera2.activities.model.ASBase, boolean, java.lang.String)"><B>ActivityEntity(ASBase, boolean, String)</B></A> - 
Constructor for class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/ActivityEntity.html" title="class in org.apache.abdera2.protocol.client">ActivityEntity</A>
<DD>Create the entity using the specified Activity document or element.
<DT><A HREF="./org/apache/abdera2/protocol/client/Client.html#addCookie(java.lang.String, java.lang.String, java.lang.String)"><B>addCookie(String, String, String)</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/Client.html" title="class in org.apache.abdera2.protocol.client">Client</A>
<DD>Manually add cookies
<DT><A HREF="./org/apache/abdera2/protocol/client/Client.html#addCookie(java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.util.Date, boolean)"><B>addCookie(String, String, String, String, Date, boolean)</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/Client.html" title="class in org.apache.abdera2.protocol.client">Client</A>
<DD>Manually add cookies
<DT><A HREF="./org/apache/abdera2/protocol/client/Client.html#addCookies(org.apache.http.cookie.Cookie)"><B>addCookies(Cookie)</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/Client.html" title="class in org.apache.abdera2.protocol.client">Client</A>
<DD>Manually add cookies
<DT><A HREF="./org/apache/abdera2/protocol/client/Client.html#addCookies(org.apache.http.cookie.Cookie...)"><B>addCookies(Cookie...)</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/Client.html" title="class in org.apache.abdera2.protocol.client">Client</A>
<DD>Manually add cookies
<DT><A HREF="./org/apache/abdera2/protocol/client/Client.html#addCredentials(java.lang.String, java.lang.String, java.lang.String, org.apache.http.auth.Credentials)"><B>addCredentials(String, String, String, Credentials)</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/Client.html" title="class in org.apache.abdera2.protocol.client">Client</A>
<DD>Add authentication credentials
<DT><A HREF="./org/apache/abdera2/protocol/client/RequestOptions.html#addDateHeader(java.lang.String, java.util.Date)"><B>addDateHeader(String, Date)</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/RequestOptions.html" title="class in org.apache.abdera2.protocol.client">RequestOptions</A>
<DD>Similar to setDateHeader but allows for multiple instances of the specified header
<DT><A HREF="./org/apache/abdera2/protocol/client/RequestOptions.html#addEncodedHeader(java.lang.String, java.lang.String, java.lang.String)"><B>addEncodedHeader(String, String, String)</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/RequestOptions.html" title="class in org.apache.abdera2.protocol.client">RequestOptions</A>
<DD>Similar to setEncodedHeader, but allows for multiple instances of the specified header
<DT><A HREF="./org/apache/abdera2/protocol/client/RequestOptions.html#addEncodedHeader(java.lang.String, java.lang.String, java.lang.String...)"><B>addEncodedHeader(String, String, String...)</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/RequestOptions.html" title="class in org.apache.abdera2.protocol.client">RequestOptions</A>
<DD>Similar to setEncodedHeader, but allows for multiple instances of the specified header
<DT><A HREF="./org/apache/abdera2/protocol/client/RequestOptions.html#addHeader(java.lang.String, java.lang.String)"><B>addHeader(String, String)</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/RequestOptions.html" title="class in org.apache.abdera2.protocol.client">RequestOptions</A>
<DD>Similar to setHeader but allows for multiple instances of the specified header
<DT><A HREF="./org/apache/abdera2/protocol/client/RequestOptions.html#addHeader(java.lang.String, java.lang.String...)"><B>addHeader(String, String...)</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/RequestOptions.html" title="class in org.apache.abdera2.protocol.client">RequestOptions</A>
<DD>Similar to setHeader but allows for multiple instances of the specified header
<DT><A HREF="./org/apache/abdera2/protocol/client/Client.html#addRequestInterceptor(org.apache.http.HttpRequestInterceptor, int)"><B>addRequestInterceptor(HttpRequestInterceptor, int)</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/Client.html" title="class in org.apache.abdera2.protocol.client">Client</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/abdera2/protocol/client/Client.html#addResponseInterceptor(org.apache.http.HttpResponseInterceptor, int)"><B>addResponseInterceptor(HttpResponseInterceptor, int)</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/Client.html" title="class in org.apache.abdera2.protocol.client">Client</A>
<DD>&nbsp;
</DL>
<HR>
<A NAME="_C_"><!-- --></A><H2>
<B>C</B></H2>
<DL>
<DT><A HREF="./org/apache/abdera2/protocol/client/CachingClient.html#cacheHits()"><B>cacheHits()</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/CachingClient.html" title="class in org.apache.abdera2.protocol.client">CachingClient</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/abdera2/protocol/client/CachingClient.html#cacheMisses()"><B>cacheMisses()</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/CachingClient.html" title="class in org.apache.abdera2.protocol.client">CachingClient</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/abdera2/protocol/client/CachingClient.html#cacheUpdates()"><B>cacheUpdates()</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/CachingClient.html" title="class in org.apache.abdera2.protocol.client">CachingClient</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/abdera2/protocol/client/CachingClient.html" title="class in org.apache.abdera2.protocol.client"><B>CachingClient</B></A> - Class in <A HREF="./org/apache/abdera2/protocol/client/package-summary.html">org.apache.abdera2.protocol.client</A><DD>Alternative implementation of the Abdera Client that uses client-side 
 Caching.<DT><A HREF="./org/apache/abdera2/protocol/client/CachingClient.html#CachingClient(org.apache.http.client.cache.HttpCacheStorage)"><B>CachingClient(HttpCacheStorage)</B></A> - 
Constructor for class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/CachingClient.html" title="class in org.apache.abdera2.protocol.client">CachingClient</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/abdera2/protocol/client/CachingClient.html#CachingClient(java.lang.String, org.apache.http.client.cache.HttpCacheStorage)"><B>CachingClient(String, HttpCacheStorage)</B></A> - 
Constructor for class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/CachingClient.html" title="class in org.apache.abdera2.protocol.client">CachingClient</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/abdera2/protocol/client/CachingClient.html#CachingClient(org.apache.abdera2.Abdera, java.lang.String, org.apache.http.client.cache.HttpCacheStorage)"><B>CachingClient(Abdera, String, HttpCacheStorage)</B></A> - 
Constructor for class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/CachingClient.html" title="class in org.apache.abdera2.protocol.client">CachingClient</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/abdera2/protocol/client/CachingClient.html#CachingClient(org.apache.http.impl.client.DefaultHttpClient, org.apache.http.client.cache.HttpCacheStorage)"><B>CachingClient(DefaultHttpClient, HttpCacheStorage)</B></A> - 
Constructor for class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/CachingClient.html" title="class in org.apache.abdera2.protocol.client">CachingClient</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/abdera2/protocol/client/CachingClient.html#CachingClient(org.apache.abdera2.Abdera, org.apache.http.impl.client.DefaultHttpClient, org.apache.http.client.cache.HttpCacheStorage)"><B>CachingClient(Abdera, DefaultHttpClient, HttpCacheStorage)</B></A> - 
Constructor for class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/CachingClient.html" title="class in org.apache.abdera2.protocol.client">CachingClient</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/abdera2/protocol/client/CachingClient.html#CachingClient(org.apache.abdera2.Abdera, org.apache.http.client.cache.HttpCacheStorage)"><B>CachingClient(Abdera, HttpCacheStorage)</B></A> - 
Constructor for class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/CachingClient.html" title="class in org.apache.abdera2.protocol.client">CachingClient</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/abdera2/protocol/client/CachingClient.html#CachingClient()"><B>CachingClient()</B></A> - 
Constructor for class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/CachingClient.html" title="class in org.apache.abdera2.protocol.client">CachingClient</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/abdera2/protocol/client/CachingClient.html#CachingClient(org.apache.abdera2.Abdera, org.apache.http.impl.client.DefaultHttpClient)"><B>CachingClient(Abdera, DefaultHttpClient)</B></A> - 
Constructor for class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/CachingClient.html" title="class in org.apache.abdera2.protocol.client">CachingClient</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/abdera2/protocol/client/CachingClient.html#CachingClient(org.apache.abdera2.Abdera, java.lang.String)"><B>CachingClient(Abdera, String)</B></A> - 
Constructor for class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/CachingClient.html" title="class in org.apache.abdera2.protocol.client">CachingClient</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/abdera2/protocol/client/CachingClient.html#CachingClient(org.apache.abdera2.Abdera)"><B>CachingClient(Abdera)</B></A> - 
Constructor for class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/CachingClient.html" title="class in org.apache.abdera2.protocol.client">CachingClient</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/abdera2/protocol/client/CachingClient.html#CachingClient(org.apache.http.impl.client.DefaultHttpClient)"><B>CachingClient(DefaultHttpClient)</B></A> - 
Constructor for class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/CachingClient.html" title="class in org.apache.abdera2.protocol.client">CachingClient</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/abdera2/protocol/client/CachingClient.html#CachingClient(java.lang.String)"><B>CachingClient(String)</B></A> - 
Constructor for class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/CachingClient.html" title="class in org.apache.abdera2.protocol.client">CachingClient</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/abdera2/protocol/client/NonOpTrustManager.html#checkClientTrusted(java.security.cert.X509Certificate[], java.lang.String)"><B>checkClientTrusted(X509Certificate[], String)</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/NonOpTrustManager.html" title="class in org.apache.abdera2.protocol.client">NonOpTrustManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/abdera2/protocol/client/NonOpTrustManager.html#checkServerTrusted(java.security.cert.X509Certificate[], java.lang.String)"><B>checkServerTrusted(X509Certificate[], String)</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/NonOpTrustManager.html" title="class in org.apache.abdera2.protocol.client">NonOpTrustManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/abdera2/protocol/client/Client.html#clearCookies()"><B>clearCookies()</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/Client.html" title="class in org.apache.abdera2.protocol.client">Client</A>
<DD>Clear the cookies
<DT><A HREF="./org/apache/abdera2/protocol/client/Client.html#clearCredentials()"><B>clearCredentials()</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/Client.html" title="class in org.apache.abdera2.protocol.client">Client</A>
<DD>Clear all credentials (including proxy credentials)
<DT><A HREF="./org/apache/abdera2/protocol/client/Client.html#clearExpiredCookies()"><B>clearExpiredCookies()</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/Client.html" title="class in org.apache.abdera2.protocol.client">Client</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/abdera2/protocol/client/Client.html#clearRequestInterceptors()"><B>clearRequestInterceptors()</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/Client.html" title="class in org.apache.abdera2.protocol.client">Client</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/abdera2/protocol/client/Client.html#clearResponseInterceptors()"><B>clearResponseInterceptors()</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/Client.html" title="class in org.apache.abdera2.protocol.client">Client</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/abdera2/protocol/client/Client.html" title="class in org.apache.abdera2.protocol.client"><B>Client</B></A> - Class in <A HREF="./org/apache/abdera2/protocol/client/package-summary.html">org.apache.abdera2.protocol.client</A><DD>The default Abdera Client.<DT><A HREF="./org/apache/abdera2/protocol/client/Client.html#Client()"><B>Client()</B></A> - 
Constructor for class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/Client.html" title="class in org.apache.abdera2.protocol.client">Client</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/abdera2/protocol/client/Client.html#Client(java.lang.String)"><B>Client(String)</B></A> - 
Constructor for class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/Client.html" title="class in org.apache.abdera2.protocol.client">Client</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/abdera2/protocol/client/Client.html#Client(org.apache.abdera2.Abdera, java.lang.String)"><B>Client(Abdera, String)</B></A> - 
Constructor for class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/Client.html" title="class in org.apache.abdera2.protocol.client">Client</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/abdera2/protocol/client/Client.html#Client(org.apache.http.impl.client.DefaultHttpClient)"><B>Client(DefaultHttpClient)</B></A> - 
Constructor for class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/Client.html" title="class in org.apache.abdera2.protocol.client">Client</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/abdera2/protocol/client/Client.html#Client(org.apache.abdera2.Abdera, org.apache.http.impl.client.DefaultHttpClient)"><B>Client(Abdera, DefaultHttpClient)</B></A> - 
Constructor for class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/Client.html" title="class in org.apache.abdera2.protocol.client">Client</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/abdera2/protocol/client/Client.html#Client(org.apache.abdera2.Abdera)"><B>Client(Abdera)</B></A> - 
Constructor for class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/Client.html" title="class in org.apache.abdera2.protocol.client">Client</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/abdera2/protocol/client/Client.html#client"><B>client</B></A> - 
Variable in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/Client.html" title="class in org.apache.abdera2.protocol.client">Client</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/abdera2/protocol/client/ClientResponse.html" title="interface in org.apache.abdera2.protocol.client"><B>ClientResponse</B></A> - Interface in <A HREF="./org/apache/abdera2/protocol/client/package-summary.html">org.apache.abdera2.protocol.client</A><DD>&nbsp;<DT><A HREF="./org/apache/abdera2/protocol/client/MultipartRelatedEntity.html#consumeContent()"><B>consumeContent()</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/MultipartRelatedEntity.html" title="class in org.apache.abdera2.protocol.client">MultipartRelatedEntity</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/abdera2/protocol/client/RequestHelper.html#createDefaultRequestOptions()"><B>createDefaultRequestOptions()</B></A> - 
Static method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/RequestHelper.html" title="class in org.apache.abdera2.protocol.client">RequestHelper</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/abdera2/protocol/client/RequestHelper.html#createRequest(java.lang.String, java.lang.String, org.apache.http.HttpEntity, org.apache.abdera2.protocol.client.RequestOptions)"><B>createRequest(String, String, HttpEntity, RequestOptions)</B></A> - 
Static method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/RequestHelper.html" title="class in org.apache.abdera2.protocol.client">RequestHelper</A>
<DD>&nbsp;
</DL>
<HR>
<A NAME="_D_"><!-- --></A><H2>
<B>D</B></H2>
<DL>
<DT><A HREF="./org/apache/abdera2/protocol/client/Client.html#DEFAULT_MAX_CONNECTIONS_PER_ROUTE"><B>DEFAULT_MAX_CONNECTIONS_PER_ROUTE</B></A> - 
Static variable in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/Client.html" title="class in org.apache.abdera2.protocol.client">Client</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/abdera2/protocol/client/Client.html#DEFAULT_MAX_REDIRECTS"><B>DEFAULT_MAX_REDIRECTS</B></A> - 
Static variable in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/Client.html" title="class in org.apache.abdera2.protocol.client">Client</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/abdera2/protocol/client/Client.html#DEFAULT_MAX_TOTAL_CONNECTIONS"><B>DEFAULT_MAX_TOTAL_CONNECTIONS</B></A> - 
Static variable in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/Client.html" title="class in org.apache.abdera2.protocol.client">Client</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/abdera2/protocol/client/Client.html#DEFAULT_USER_AGENT"><B>DEFAULT_USER_AGENT</B></A> - 
Static variable in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/Client.html" title="class in org.apache.abdera2.protocol.client">Client</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/abdera2/protocol/client/Session.html#delete(java.lang.String, org.apache.abdera2.protocol.client.RequestOptions)"><B>delete(String, RequestOptions)</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/Session.html" title="class in org.apache.abdera2.protocol.client">Session</A>
<DD>Sends an HTTP DELETE request to the specified URI.
<DT><A HREF="./org/apache/abdera2/protocol/client/Session.html#delete(java.lang.String)"><B>delete(String)</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/Session.html" title="class in org.apache.abdera2.protocol.client">Session</A>
<DD>Sends an HTTP DELETE request to the specified URI using the default options
<DT><A HREF="./org/apache/abdera2/protocol/client/Session.html#doFormLogin(java.lang.String, java.lang.String, java.lang.String)"><B>doFormLogin(String, String, String)</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/Session.html" title="class in org.apache.abdera2.protocol.client">Session</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/abdera2/protocol/client/Session.html#doFormLogin(java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String)"><B>doFormLogin(String, String, String, String, String)</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/Session.html" title="class in org.apache.abdera2.protocol.client">Session</A>
<DD>&nbsp;
</DL>
<HR>
<A NAME="_E_"><!-- --></A><H2>
<B>E</B></H2>
<DL>
<DT><A HREF="./org/apache/abdera2/protocol/client/EntityProviderEntity.html" title="class in org.apache.abdera2.protocol.client"><B>EntityProviderEntity</B></A> - Class in <A HREF="./org/apache/abdera2/protocol/client/package-summary.html">org.apache.abdera2.protocol.client</A><DD>Implementation of HttpEntity based on the EntityProvider interface<DT><A HREF="./org/apache/abdera2/protocol/client/EntityProviderEntity.html#EntityProviderEntity(org.apache.abdera2.protocol.EntityProvider)"><B>EntityProviderEntity(EntityProvider)</B></A> - 
Constructor for class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/EntityProviderEntity.html" title="class in org.apache.abdera2.protocol.client">EntityProviderEntity</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/abdera2/protocol/client/EntityProviderEntity.html#EntityProviderEntity(org.apache.abdera2.Abdera, org.apache.abdera2.protocol.EntityProvider)"><B>EntityProviderEntity(Abdera, EntityProvider)</B></A> - 
Constructor for class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/EntityProviderEntity.html" title="class in org.apache.abdera2.protocol.client">EntityProviderEntity</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/abdera2/protocol/client/Session.html#execute(java.lang.String, java.lang.String, org.apache.abdera2.model.Base, org.apache.abdera2.protocol.client.RequestOptions)"><B>execute(String, String, Base, RequestOptions)</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/Session.html" title="class in org.apache.abdera2.protocol.client">Session</A>
<DD>Sends the specified method request to the specified URI.
<DT><A HREF="./org/apache/abdera2/protocol/client/Session.html#execute(org.apache.abdera2.common.http.Method, java.lang.String, org.apache.abdera2.model.Base, org.apache.abdera2.protocol.client.RequestOptions)"><B>execute(Method, String, Base, RequestOptions)</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/Session.html" title="class in org.apache.abdera2.protocol.client">Session</A>
<DD>Sends the specified method request to the specified URI.
<DT><A HREF="./org/apache/abdera2/protocol/client/Session.html#execute(java.lang.String, java.lang.String, org.apache.abdera2.protocol.EntityProvider, org.apache.abdera2.protocol.client.RequestOptions)"><B>execute(String, String, EntityProvider, RequestOptions)</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/Session.html" title="class in org.apache.abdera2.protocol.client">Session</A>
<DD>Sends the specified method request to the specified URI.
<DT><A HREF="./org/apache/abdera2/protocol/client/Session.html#execute(org.apache.abdera2.common.http.Method, java.lang.String, org.apache.abdera2.protocol.EntityProvider, org.apache.abdera2.protocol.client.RequestOptions)"><B>execute(Method, String, EntityProvider, RequestOptions)</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/Session.html" title="class in org.apache.abdera2.protocol.client">Session</A>
<DD>Sends the specified method request to the specified URI.
<DT><A HREF="./org/apache/abdera2/protocol/client/Session.html#execute(java.lang.String, java.lang.String, java.io.InputStream, org.apache.abdera2.protocol.client.RequestOptions)"><B>execute(String, String, InputStream, RequestOptions)</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/Session.html" title="class in org.apache.abdera2.protocol.client">Session</A>
<DD>Sends the specified method request to the specified URI.
<DT><A HREF="./org/apache/abdera2/protocol/client/Session.html#execute(org.apache.abdera2.common.http.Method, java.lang.String, java.io.InputStream, org.apache.abdera2.protocol.client.RequestOptions)"><B>execute(Method, String, InputStream, RequestOptions)</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/Session.html" title="class in org.apache.abdera2.protocol.client">Session</A>
<DD>Sends the specified method request to the specified URI.
<DT><A HREF="./org/apache/abdera2/protocol/client/Session.html#execute(org.apache.abdera2.common.http.Method, java.lang.String, org.apache.http.HttpEntity, org.apache.abdera2.protocol.client.RequestOptions)"><B>execute(Method, String, HttpEntity, RequestOptions)</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/Session.html" title="class in org.apache.abdera2.protocol.client">Session</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/abdera2/protocol/client/Session.html#execute(java.lang.String, java.lang.String, org.apache.http.HttpEntity, org.apache.abdera2.protocol.client.RequestOptions)"><B>execute(String, String, HttpEntity, RequestOptions)</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/Session.html" title="class in org.apache.abdera2.protocol.client">Session</A>
<DD>Sends the specified method request to the specified URI.
</DL>
<HR>
<A NAME="_G_"><!-- --></A><H2>
<B>G</B></H2>
<DL>
<DT><A HREF="./org/apache/abdera2/protocol/client/Client.html#get(java.lang.String)"><B>get(String)</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/Client.html" title="class in org.apache.abdera2.protocol.client">Client</A>
<DD>Convenience method for performing a session-less get on a given URI.
<DT><A HREF="./org/apache/abdera2/protocol/client/Client.html#get(java.lang.String, org.apache.abdera2.parser.ParserOptions)"><B>get(String, ParserOptions)</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/Client.html" title="class in org.apache.abdera2.protocol.client">Client</A>
<DD>Convenience method for performing a session-less get on a given URI.
<DT><A HREF="./org/apache/abdera2/protocol/client/Client.html#get(java.lang.String, org.apache.abdera2.protocol.client.RequestOptions)"><B>get(String, RequestOptions)</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/Client.html" title="class in org.apache.abdera2.protocol.client">Client</A>
<DD>Convenience method for performing a session-less get on a given URI.
<DT><A HREF="./org/apache/abdera2/protocol/client/Client.html#get(java.lang.String, org.apache.abdera2.protocol.client.RequestOptions, org.apache.abdera2.parser.ParserOptions)"><B>get(String, RequestOptions, ParserOptions)</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/Client.html" title="class in org.apache.abdera2.protocol.client">Client</A>
<DD>Convenience method for performing a session-less get on a given URI.
<DT><A HREF="./org/apache/abdera2/protocol/client/Session.html#get(java.lang.String, org.apache.abdera2.protocol.client.RequestOptions)"><B>get(String, RequestOptions)</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/Session.html" title="class in org.apache.abdera2.protocol.client">Session</A>
<DD>Sends an HTTP GET request to the specified URI.
<DT><A HREF="./org/apache/abdera2/protocol/client/Session.html#get(java.lang.String)"><B>get(String)</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/Session.html" title="class in org.apache.abdera2.protocol.client">Session</A>
<DD>Sends an HTTP GET request to the specified URI using the default options
<DT><A HREF="./org/apache/abdera2/protocol/client/Client.html#getAbdera()"><B>getAbdera()</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/Client.html" title="class in org.apache.abdera2.protocol.client">Client</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/abdera2/protocol/client/Session.html#getAbdera()"><B>getAbdera()</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/Session.html" title="class in org.apache.abdera2.protocol.client">Session</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/abdera2/protocol/client/NonOpTrustManager.html#getAcceptedIssuers()"><B>getAcceptedIssuers()</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/NonOpTrustManager.html" title="class in org.apache.abdera2.protocol.client">NonOpTrustManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/abdera2/protocol/client/Client.html#getAuthenticationSchemePriority()"><B>getAuthenticationSchemePriority()</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/Client.html" title="class in org.apache.abdera2.protocol.client">Client</A>
<DD>Returns the current listing of preferred authentication schemes, in order of preference
<DT><A HREF="./org/apache/abdera2/protocol/client/RequestOptions.html#getCacheControl()"><B>getCacheControl()</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/RequestOptions.html" title="class in org.apache.abdera2.protocol.client">RequestOptions</A>
<DD>Return the value of the Cache-Control header
<DT><A HREF="./org/apache/abdera2/protocol/client/ClientResponse.html#getCharacterEncoding()"><B>getCharacterEncoding()</B></A> - 
Method in interface org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/ClientResponse.html" title="interface in org.apache.abdera2.protocol.client">ClientResponse</A>
<DD>Return the character set encoding specified in the ContentType header, if any
<DT><A HREF="./org/apache/abdera2/protocol/client/AbderaBody.html#getCharset()"><B>getCharset()</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/AbderaBody.html" title="class in org.apache.abdera2.protocol.client">AbderaBody</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/abdera2/protocol/client/Client.html#getClient()"><B>getClient()</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/Client.html" title="class in org.apache.abdera2.protocol.client">Client</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/abdera2/protocol/client/Client.html#getConnectionTimeout()"><B>getConnectionTimeout()</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/Client.html" title="class in org.apache.abdera2.protocol.client">Client</A>
<DD>Return the timeout until a connection is etablished, in milliseconds.
<DT><A HREF="./org/apache/abdera2/protocol/client/AbderaEntity.html#getContent()"><B>getContent()</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/AbderaEntity.html" title="class in org.apache.abdera2.protocol.client">AbderaEntity</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/abdera2/protocol/client/ActivityEntity.html#getContent()"><B>getContent()</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/ActivityEntity.html" title="class in org.apache.abdera2.protocol.client">ActivityEntity</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/abdera2/protocol/client/EntityProviderEntity.html#getContent()"><B>getContent()</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/EntityProviderEntity.html" title="class in org.apache.abdera2.protocol.client">EntityProviderEntity</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/abdera2/protocol/client/MultipartRelatedEntity.html#getContent()"><B>getContent()</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/MultipartRelatedEntity.html" title="class in org.apache.abdera2.protocol.client">MultipartRelatedEntity</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/abdera2/protocol/client/AbderaBody.html#getContentLength()"><B>getContentLength()</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/AbderaBody.html" title="class in org.apache.abdera2.protocol.client">AbderaBody</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/abdera2/protocol/client/AbderaEntity.html#getContentLength()"><B>getContentLength()</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/AbderaEntity.html" title="class in org.apache.abdera2.protocol.client">AbderaEntity</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/abdera2/protocol/client/ActivityEntity.html#getContentLength()"><B>getContentLength()</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/ActivityEntity.html" title="class in org.apache.abdera2.protocol.client">ActivityEntity</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/abdera2/protocol/client/EntityProviderEntity.html#getContentLength()"><B>getContentLength()</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/EntityProviderEntity.html" title="class in org.apache.abdera2.protocol.client">EntityProviderEntity</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/abdera2/protocol/client/MultipartRelatedEntity.html#getContentLength()"><B>getContentLength()</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/MultipartRelatedEntity.html" title="class in org.apache.abdera2.protocol.client">MultipartRelatedEntity</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/abdera2/protocol/client/AbderaEntity.html#getContentType()"><B>getContentType()</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/AbderaEntity.html" title="class in org.apache.abdera2.protocol.client">AbderaEntity</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/abdera2/protocol/client/ActivityEntity.html#getContentType()"><B>getContentType()</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/ActivityEntity.html" title="class in org.apache.abdera2.protocol.client">ActivityEntity</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/abdera2/protocol/client/EntityProviderEntity.html#getContentType()"><B>getContentType()</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/EntityProviderEntity.html" title="class in org.apache.abdera2.protocol.client">EntityProviderEntity</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/abdera2/protocol/client/MultipartRelatedEntity.html#getContentType()"><B>getContentType()</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/MultipartRelatedEntity.html" title="class in org.apache.abdera2.protocol.client">MultipartRelatedEntity</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/abdera2/protocol/client/Client.html#getCookies()"><B>getCookies()</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/Client.html" title="class in org.apache.abdera2.protocol.client">Client</A>
<DD>Get all the cookies
<DT><A HREF="./org/apache/abdera2/protocol/client/Client.html#getCookies(java.lang.String, java.lang.String)"><B>getCookies(String, String)</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/Client.html" title="class in org.apache.abdera2.protocol.client">Client</A>
<DD>Get the cookies for a specific domain and path
<DT><A HREF="./org/apache/abdera2/protocol/client/Client.html#getCookies(java.lang.String)"><B>getCookies(String)</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/Client.html" title="class in org.apache.abdera2.protocol.client">Client</A>
<DD>Get the cookies for a specific domain
<DT><A HREF="./org/apache/abdera2/protocol/client/Client.html#getCookieStore()"><B>getCookieStore()</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/Client.html" title="class in org.apache.abdera2.protocol.client">Client</A>
<DD>Get the underlying HTTP Client's Cookie Store, creating it automatically
 if it does not already exist
<DT><A HREF="./org/apache/abdera2/protocol/client/Client.html#getCookieStore(boolean)"><B>getCookieStore(boolean)</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/Client.html" title="class in org.apache.abdera2.protocol.client">Client</A>
<DD>Get the underlying HTTP Client's Cookie Store, optionally creating it
 if it does not already exist
<DT><A HREF="./org/apache/abdera2/protocol/client/RequestOptions.html#getDateHeader(java.lang.String)"><B>getDateHeader(String)</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/RequestOptions.html" title="class in org.apache.abdera2.protocol.client">RequestOptions</A>
<DD>Returns the date value of the specified header
<DT><A HREF="./org/apache/abdera2/protocol/client/CachingClient.html#getDefaultHttpClient()"><B>getDefaultHttpClient()</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/CachingClient.html" title="class in org.apache.abdera2.protocol.client">CachingClient</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/abdera2/protocol/client/Client.html#getDefaultHttpClient()"><B>getDefaultHttpClient()</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/Client.html" title="class in org.apache.abdera2.protocol.client">Client</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/abdera2/protocol/client/Session.html#getDefaultRequestOptions()"><B>getDefaultRequestOptions()</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/Session.html" title="class in org.apache.abdera2.protocol.client">Session</A>
<DD>Get a copy of the default request options
<DT><A HREF="./org/apache/abdera2/protocol/client/Client.html#getDefaultUserAgent()"><B>getDefaultUserAgent()</B></A> - 
Static method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/Client.html" title="class in org.apache.abdera2.protocol.client">Client</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/abdera2/protocol/client/ClientResponse.html#getDocument()"><B>getDocument()</B></A> - 
Method in interface org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/ClientResponse.html" title="interface in org.apache.abdera2.protocol.client">ClientResponse</A>
<DD>If the response contains an XML document, parse the document
<DT><A HREF="./org/apache/abdera2/protocol/client/ClientResponse.html#getDocument(org.apache.abdera2.parser.ParserOptions)"><B>getDocument(ParserOptions)</B></A> - 
Method in interface org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/ClientResponse.html" title="interface in org.apache.abdera2.protocol.client">ClientResponse</A>
<DD>If the response contains an XML document, parse the document using the specified ParserOptions
<DT><A HREF="./org/apache/abdera2/protocol/client/ClientResponse.html#getDocument(org.apache.abdera2.parser.Parser)"><B>getDocument(Parser)</B></A> - 
Method in interface org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/ClientResponse.html" title="interface in org.apache.abdera2.protocol.client">ClientResponse</A>
<DD>If the response contains an XML document, parse the document using the specified Parser
<DT><A HREF="./org/apache/abdera2/protocol/client/ClientResponse.html#getDocument(org.apache.abdera2.parser.Parser, org.apache.abdera2.parser.ParserOptions)"><B>getDocument(Parser, ParserOptions)</B></A> - 
Method in interface org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/ClientResponse.html" title="interface in org.apache.abdera2.protocol.client">ClientResponse</A>
<DD>If the response contains an XML document, parse the document using the specified Parser and ParserOptions
<DT><A HREF="./org/apache/abdera2/protocol/client/EntityProviderEntity.html#getEncoding()"><B>getEncoding()</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/EntityProviderEntity.html" title="class in org.apache.abdera2.protocol.client">EntityProviderEntity</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/abdera2/protocol/client/AbderaBody.html#getFilename()"><B>getFilename()</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/AbderaBody.html" title="class in org.apache.abdera2.protocol.client">AbderaBody</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/abdera2/protocol/client/RequestOptions.html#getHeader(java.lang.String)"><B>getHeader(String)</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/RequestOptions.html" title="class in org.apache.abdera2.protocol.client">RequestOptions</A>
<DD>Returns the text value of the specified header
<DT><A HREF="./org/apache/abdera2/protocol/client/RequestOptions.html#getHeaderNames()"><B>getHeaderNames()</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/RequestOptions.html" title="class in org.apache.abdera2.protocol.client">RequestOptions</A>
<DD>Returns a listing of header names
<DT><A HREF="./org/apache/abdera2/protocol/client/RequestOptions.html#getHeaders(java.lang.String)"><B>getHeaders(String)</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/RequestOptions.html" title="class in org.apache.abdera2.protocol.client">RequestOptions</A>
<DD>Return a listing of text values for the specified header
<DT><A HREF="./org/apache/abdera2/protocol/client/Client.html#getHttpConnectionManagerParams()"><B>getHttpConnectionManagerParams()</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/Client.html" title="class in org.apache.abdera2.protocol.client">Client</A>
<DD>Return the HttpConnectionManagerParams object of the underlying HttpClient.
<DT><A HREF="./org/apache/abdera2/protocol/client/ClientResponse.html#getInputStream()"><B>getInputStream()</B></A> - 
Method in interface org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/ClientResponse.html" title="interface in org.apache.abdera2.protocol.client">ClientResponse</A>
<DD>Returns the inputstream used to read data from this response
<DT><A HREF="./org/apache/abdera2/protocol/client/Client.html#getMaxConnectionsPerHost()"><B>getMaxConnectionsPerHost()</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/Client.html" title="class in org.apache.abdera2.protocol.client">Client</A>
<DD>Return the maximum number of connections allowed for a single host.
<DT><A HREF="./org/apache/abdera2/protocol/client/Client.html#getMaxConnectionsTotal()"><B>getMaxConnectionsTotal()</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/Client.html" title="class in org.apache.abdera2.protocol.client">Client</A>
<DD>Return the maximum number of connections allowed for the client
<DT><A HREF="./org/apache/abdera2/protocol/client/Client.html#getMaximumRedirects()"><B>getMaximumRedirects()</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/Client.html" title="class in org.apache.abdera2.protocol.client">Client</A>
<DD>Get the maximum number of redirects
<DT><A HREF="./org/apache/abdera2/protocol/client/ClientResponse.html#getMethod()"><B>getMethod()</B></A> - 
Method in interface org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/ClientResponse.html" title="interface in org.apache.abdera2.protocol.client">ClientResponse</A>
<DD>Return the request method
<DT><A HREF="./org/apache/abdera2/protocol/client/RequestHelper.ExtensionRequest.html#getMethod()"><B>getMethod()</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/RequestHelper.ExtensionRequest.html" title="class in org.apache.abdera2.protocol.client">RequestHelper.ExtensionRequest</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/abdera2/protocol/client/ClientResponse.html#getReader()"><B>getReader()</B></A> - 
Method in interface org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/ClientResponse.html" title="interface in org.apache.abdera2.protocol.client">ClientResponse</A>
<DD>Returns a reader used to read data from this response.
<DT><A HREF="./org/apache/abdera2/protocol/client/ClientResponse.html#getReader(java.lang.String)"><B>getReader(String)</B></A> - 
Method in interface org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/ClientResponse.html" title="interface in org.apache.abdera2.protocol.client">ClientResponse</A>
<DD>Returns a reader used to read data from this response.
<DT><A HREF="./org/apache/abdera2/protocol/client/RequestOptions.html#getRevalidateWithAuth()"><B>getRevalidateWithAuth()</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/RequestOptions.html" title="class in org.apache.abdera2.protocol.client">RequestOptions</A>
<DD>Configure the AbderaClient Side cache to revalidate when using Authorization
<DT><A HREF="./org/apache/abdera2/protocol/client/ClientResponse.html#getServerDate()"><B>getServerDate()</B></A> - 
Method in interface org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/ClientResponse.html" title="interface in org.apache.abdera2.protocol.client">ClientResponse</A>
<DD>Return the server-specified date returned in the response
<DT><A HREF="./org/apache/abdera2/protocol/client/Client.html#getSocketTimeout()"><B>getSocketTimeout()</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/Client.html" title="class in org.apache.abdera2.protocol.client">Client</A>
<DD>Return the socket timeout for the connection in milliseconds A timeout value of zero is interpreted as an
 infinite timeout.
<DT><A HREF="./org/apache/abdera2/protocol/client/Client.html#getTcpNoDelay()"><B>getTcpNoDelay()</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/Client.html" title="class in org.apache.abdera2.protocol.client">Client</A>
<DD>Tests if Nagle's algorithm is to be used.
<DT><A HREF="./org/apache/abdera2/protocol/client/AbderaBody.html#getTransferEncoding()"><B>getTransferEncoding()</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/AbderaBody.html" title="class in org.apache.abdera2.protocol.client">AbderaBody</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/abdera2/protocol/client/ClientResponse.html#getUri()"><B>getUri()</B></A> - 
Method in interface org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/ClientResponse.html" title="interface in org.apache.abdera2.protocol.client">ClientResponse</A>
<DD>Return the request URI.
<DT><A HREF="./org/apache/abdera2/protocol/client/RequestOptions.html#getUseLocalCache()"><B>getUseLocalCache()</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/RequestOptions.html" title="class in org.apache.abdera2.protocol.client">RequestOptions</A>
<DD>The difference between this and getNoCache is that this only disables the local cache without affecting the
 Cache-Control header.
</DL>
<HR>
<A NAME="_H_"><!-- --></A><H2>
<B>H</B></H2>
<DL>
<DT><A HREF="./org/apache/abdera2/protocol/client/Session.html#head(java.lang.String, org.apache.abdera2.protocol.client.RequestOptions)"><B>head(String, RequestOptions)</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/Session.html" title="class in org.apache.abdera2.protocol.client">Session</A>
<DD>Sends an HTTP HEAD request to the specified URI.
<DT><A HREF="./org/apache/abdera2/protocol/client/Session.html#head(java.lang.String)"><B>head(String)</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/Session.html" title="class in org.apache.abdera2.protocol.client">Session</A>
<DD>Sends an HTTP HEAD request to the specified URI using the default options
</DL>
<HR>
<A NAME="_I_"><!-- --></A><H2>
<B>I</B></H2>
<DL>
<DT><A HREF="./org/apache/abdera2/protocol/client/CachingClient.html#initClient(java.lang.String)"><B>initClient(String)</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/CachingClient.html" title="class in org.apache.abdera2.protocol.client">CachingClient</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/abdera2/protocol/client/CachingClient.html#initClient(java.lang.String, org.apache.http.impl.client.DefaultHttpClient)"><B>initClient(String, DefaultHttpClient)</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/CachingClient.html" title="class in org.apache.abdera2.protocol.client">CachingClient</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/abdera2/protocol/client/Client.html#initClient(java.lang.String)"><B>initClient(String)</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/Client.html" title="class in org.apache.abdera2.protocol.client">Client</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/abdera2/protocol/client/Client.html#initConnectionManager(org.apache.http.conn.scheme.SchemeRegistry)"><B>initConnectionManager(SchemeRegistry)</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/Client.html" title="class in org.apache.abdera2.protocol.client">Client</A>
<DD>Default initialization of the Client Connection Manager,
 subclasses may overload this to customize the connection
 manager configuration
<DT><A HREF="./org/apache/abdera2/protocol/client/Client.html#initDefaultMaxConnectionsPerRoute()"><B>initDefaultMaxConnectionsPerRoute()</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/Client.html" title="class in org.apache.abdera2.protocol.client">Client</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/abdera2/protocol/client/Client.html#initDefaultMaxTotalConnections()"><B>initDefaultMaxTotalConnections()</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/Client.html" title="class in org.apache.abdera2.protocol.client">Client</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/abdera2/protocol/client/Client.html#initDefaultParameters(org.apache.http.params.HttpParams)"><B>initDefaultParameters(HttpParams)</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/Client.html" title="class in org.apache.abdera2.protocol.client">Client</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/abdera2/protocol/client/Client.html#initSchemeRegistry()"><B>initSchemeRegistry()</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/Client.html" title="class in org.apache.abdera2.protocol.client">Client</A>
<DD>Default initialization of the Scheme Registry, subclasses
 may overload this to customize the scheme registry 
 configuration
<DT><A HREF="./org/apache/abdera2/protocol/client/RequestOptions.html#is4xxRequestException()"><B>is4xxRequestException()</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/RequestOptions.html" title="class in org.apache.abdera2.protocol.client">RequestOptions</A>
<DD>Return true if a RequestException should be thrown on 4xx responses
<DT><A HREF="./org/apache/abdera2/protocol/client/RequestOptions.html#is5xxRequestException()"><B>is5xxRequestException()</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/RequestOptions.html" title="class in org.apache.abdera2.protocol.client">RequestOptions</A>
<DD>Return true if a RequestException should be thrown on 5xx responses
<DT><A HREF="./org/apache/abdera2/protocol/client/EntityProviderEntity.html#isAutoIndent()"><B>isAutoIndent()</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/EntityProviderEntity.html" title="class in org.apache.abdera2.protocol.client">EntityProviderEntity</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/abdera2/protocol/client/AbderaEntity.html#isChunked()"><B>isChunked()</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/AbderaEntity.html" title="class in org.apache.abdera2.protocol.client">AbderaEntity</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/abdera2/protocol/client/ActivityEntity.html#isChunked()"><B>isChunked()</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/ActivityEntity.html" title="class in org.apache.abdera2.protocol.client">ActivityEntity</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/abdera2/protocol/client/EntityProviderEntity.html#isChunked()"><B>isChunked()</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/EntityProviderEntity.html" title="class in org.apache.abdera2.protocol.client">EntityProviderEntity</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/abdera2/protocol/client/MultipartRelatedEntity.html#isChunked()"><B>isChunked()</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/MultipartRelatedEntity.html" title="class in org.apache.abdera2.protocol.client">MultipartRelatedEntity</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/abdera2/protocol/client/RequestOptions.html#isConditionalPut()"><B>isConditionalPut()</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/RequestOptions.html" title="class in org.apache.abdera2.protocol.client">RequestOptions</A>
<DD>True if HTTP Conditional Requests should be used automatically.
<DT><A HREF="./org/apache/abdera2/protocol/client/RequestOptions.html#isFollowRedirects()"><B>isFollowRedirects()</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/RequestOptions.html" title="class in org.apache.abdera2.protocol.client">RequestOptions</A>
<DD>True if the client should follow redirects automatically
<DT><A HREF="./org/apache/abdera2/protocol/client/AbderaEntity.html#isRepeatable()"><B>isRepeatable()</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/AbderaEntity.html" title="class in org.apache.abdera2.protocol.client">AbderaEntity</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/abdera2/protocol/client/ActivityEntity.html#isRepeatable()"><B>isRepeatable()</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/ActivityEntity.html" title="class in org.apache.abdera2.protocol.client">ActivityEntity</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/abdera2/protocol/client/EntityProviderEntity.html#isRepeatable()"><B>isRepeatable()</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/EntityProviderEntity.html" title="class in org.apache.abdera2.protocol.client">EntityProviderEntity</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/abdera2/protocol/client/MultipartRelatedEntity.html#isRepeatable()"><B>isRepeatable()</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/MultipartRelatedEntity.html" title="class in org.apache.abdera2.protocol.client">MultipartRelatedEntity</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/abdera2/protocol/client/MultipartRelatedEntity.html#isStreaming()"><B>isStreaming()</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/MultipartRelatedEntity.html" title="class in org.apache.abdera2.protocol.client">MultipartRelatedEntity</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/abdera2/protocol/client/RequestOptions.html#isUseChunked()"><B>isUseChunked()</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/RequestOptions.html" title="class in org.apache.abdera2.protocol.client">RequestOptions</A>
<DD>Should the request use chunked encoding?
<DT><A HREF="./org/apache/abdera2/protocol/client/RequestOptions.html#isUseExpectContinue()"><B>isUseExpectContinue()</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/RequestOptions.html" title="class in org.apache.abdera2.protocol.client">RequestOptions</A>
<DD>Return true if Expect-Continue should be used
<DT><A HREF="./org/apache/abdera2/protocol/client/RequestOptions.html#isUsePostOverride()"><B>isUsePostOverride()</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/RequestOptions.html" title="class in org.apache.abdera2.protocol.client">RequestOptions</A>
<DD>Return whether the request should use the X-HTTP-Method-Override option
</DL>
<HR>
<A NAME="_L_"><!-- --></A><H2>
<B>L</B></H2>
<DL>
<DT><A HREF="./org/apache/abdera2/protocol/client/LocalizationHelper.html" title="class in org.apache.abdera2.protocol.client"><B>LocalizationHelper</B></A> - Class in <A HREF="./org/apache/abdera2/protocol/client/package-summary.html">org.apache.abdera2.protocol.client</A><DD>&nbsp;</DL>
<HR>
<A NAME="_M_"><!-- --></A><H2>
<B>M</B></H2>
<DL>
<DT><A HREF="./org/apache/abdera2/protocol/client/MultipartRelatedEntity.html" title="class in org.apache.abdera2.protocol.client"><B>MultipartRelatedEntity</B></A> - Class in <A HREF="./org/apache/abdera2/protocol/client/package-summary.html">org.apache.abdera2.protocol.client</A><DD>Implementation of the HttpEntity class for use with Multipart Atom Posts.<DT><A HREF="./org/apache/abdera2/protocol/client/MultipartRelatedEntity.html#MultipartRelatedEntity(org.apache.abdera2.model.Entry, org.apache.http.entity.mime.content.ContentBody)"><B>MultipartRelatedEntity(Entry, ContentBody)</B></A> - 
Constructor for class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/MultipartRelatedEntity.html" title="class in org.apache.abdera2.protocol.client">MultipartRelatedEntity</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/abdera2/protocol/client/MultipartRelatedEntity.html#MultipartRelatedEntity(org.apache.abdera2.model.Entry, org.apache.http.entity.mime.content.ContentBody, java.lang.String)"><B>MultipartRelatedEntity(Entry, ContentBody, String)</B></A> - 
Constructor for class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/MultipartRelatedEntity.html" title="class in org.apache.abdera2.protocol.client">MultipartRelatedEntity</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/abdera2/protocol/client/MultipartRelatedEntity.html#MultipartRelatedEntity(org.apache.abdera2.model.Entry, org.apache.http.entity.mime.content.ContentBody, java.lang.String, java.lang.String)"><B>MultipartRelatedEntity(Entry, ContentBody, String, String)</B></A> - 
Constructor for class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/MultipartRelatedEntity.html" title="class in org.apache.abdera2.protocol.client">MultipartRelatedEntity</A>
<DD>&nbsp;
</DL>
<HR>
<A NAME="_N_"><!-- --></A><H2>
<B>N</B></H2>
<DL>
<DT><A HREF="./org/apache/abdera2/protocol/client/Client.html#newSession()"><B>newSession()</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/Client.html" title="class in org.apache.abdera2.protocol.client">Client</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/abdera2/protocol/client/NonOpTrustManager.html" title="class in org.apache.abdera2.protocol.client"><B>NonOpTrustManager</B></A> - Class in <A HREF="./org/apache/abdera2/protocol/client/package-summary.html">org.apache.abdera2.protocol.client</A><DD>&nbsp;<DT><A HREF="./org/apache/abdera2/protocol/client/NonOpTrustManager.html#NonOpTrustManager()"><B>NonOpTrustManager()</B></A> - 
Constructor for class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/NonOpTrustManager.html" title="class in org.apache.abdera2.protocol.client">NonOpTrustManager</A>
<DD>&nbsp;
</DL>
<HR>
<A NAME="_O_"><!-- --></A><H2>
<B>O</B></H2>
<DL>
<DT><A HREF="./org/apache/abdera2/protocol/client/package-summary.html"><B>org.apache.abdera2.protocol.client</B></A> - package org.apache.abdera2.protocol.client<DD>&nbsp;</DL>
<HR>
<A NAME="_P_"><!-- --></A><H2>
<B>P</B></H2>
<DL>
<DT><A HREF="./org/apache/abdera2/protocol/client/Session.html#post(java.lang.String, org.apache.abdera2.protocol.EntityProvider, org.apache.abdera2.protocol.client.RequestOptions)"><B>post(String, EntityProvider, RequestOptions)</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/Session.html" title="class in org.apache.abdera2.protocol.client">Session</A>
<DD>Sends an HTTP POST request to the specified URI.
<DT><A HREF="./org/apache/abdera2/protocol/client/Session.html#post(java.lang.String, org.apache.http.HttpEntity, org.apache.abdera2.protocol.client.RequestOptions)"><B>post(String, HttpEntity, RequestOptions)</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/Session.html" title="class in org.apache.abdera2.protocol.client">Session</A>
<DD>Sends an HTTP POST request to the specified URI.
<DT><A HREF="./org/apache/abdera2/protocol/client/Session.html#post(java.lang.String, java.io.InputStream, org.apache.abdera2.protocol.client.RequestOptions)"><B>post(String, InputStream, RequestOptions)</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/Session.html" title="class in org.apache.abdera2.protocol.client">Session</A>
<DD>Sends an HTTP POST request to the specified URI.
<DT><A HREF="./org/apache/abdera2/protocol/client/Session.html#post(java.lang.String, org.apache.abdera2.model.Base, org.apache.abdera2.protocol.client.RequestOptions)"><B>post(String, Base, RequestOptions)</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/Session.html" title="class in org.apache.abdera2.protocol.client">Session</A>
<DD>Sends an HTTP POST request to the specified URI.
<DT><A HREF="./org/apache/abdera2/protocol/client/Session.html#post(java.lang.String, org.apache.abdera2.model.Entry, org.apache.http.entity.mime.content.ContentBody)"><B>post(String, Entry, ContentBody)</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/Session.html" title="class in org.apache.abdera2.protocol.client">Session</A>
<DD>Sends an HTTP POST request to the specified URI.
<DT><A HREF="./org/apache/abdera2/protocol/client/Session.html#post(java.lang.String, org.apache.abdera2.model.Entry, org.apache.http.entity.mime.content.ContentBody, org.apache.abdera2.protocol.client.RequestOptions)"><B>post(String, Entry, ContentBody, RequestOptions)</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/Session.html" title="class in org.apache.abdera2.protocol.client">Session</A>
<DD>Sends an HTTP POST request to the specified URI.
<DT><A HREF="./org/apache/abdera2/protocol/client/Session.html#post(java.lang.String, org.apache.abdera2.model.Entry, org.apache.http.entity.mime.content.ContentBody, java.lang.String, org.apache.abdera2.protocol.client.RequestOptions)"><B>post(String, Entry, ContentBody, String, RequestOptions)</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/Session.html" title="class in org.apache.abdera2.protocol.client">Session</A>
<DD>Sends an HTTP POST request to the specified URI.
<DT><A HREF="./org/apache/abdera2/protocol/client/Session.html#post(java.lang.String, org.apache.abdera2.protocol.EntityProvider)"><B>post(String, EntityProvider)</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/Session.html" title="class in org.apache.abdera2.protocol.client">Session</A>
<DD>Sends an HTTP POST request to the specified URI using the default options
<DT><A HREF="./org/apache/abdera2/protocol/client/Session.html#post(java.lang.String, org.apache.http.HttpEntity)"><B>post(String, HttpEntity)</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/Session.html" title="class in org.apache.abdera2.protocol.client">Session</A>
<DD>Sends an HTTP POST request to the specified URI using the default options
<DT><A HREF="./org/apache/abdera2/protocol/client/Session.html#post(java.lang.String, java.io.InputStream)"><B>post(String, InputStream)</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/Session.html" title="class in org.apache.abdera2.protocol.client">Session</A>
<DD>Sends an HTTP POST request to the specified URI using the default options
<DT><A HREF="./org/apache/abdera2/protocol/client/Session.html#post(java.lang.String, org.apache.abdera2.model.Base)"><B>post(String, Base)</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/Session.html" title="class in org.apache.abdera2.protocol.client">Session</A>
<DD>Sends an HTTP POST request to the specified URI using the default options
<DT><A HREF="./org/apache/abdera2/protocol/client/Session.html#put(java.lang.String, org.apache.abdera2.protocol.EntityProvider, org.apache.abdera2.protocol.client.RequestOptions)"><B>put(String, EntityProvider, RequestOptions)</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/Session.html" title="class in org.apache.abdera2.protocol.client">Session</A>
<DD>Sends an HTTP PUT request to the specified URI.
<DT><A HREF="./org/apache/abdera2/protocol/client/Session.html#put(java.lang.String, org.apache.http.HttpEntity, org.apache.abdera2.protocol.client.RequestOptions)"><B>put(String, HttpEntity, RequestOptions)</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/Session.html" title="class in org.apache.abdera2.protocol.client">Session</A>
<DD>Sends an HTTP PUT request to the specified URI.
<DT><A HREF="./org/apache/abdera2/protocol/client/Session.html#put(java.lang.String, java.io.InputStream, org.apache.abdera2.protocol.client.RequestOptions)"><B>put(String, InputStream, RequestOptions)</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/Session.html" title="class in org.apache.abdera2.protocol.client">Session</A>
<DD>Sends an HTTP PUT request to the specified URI.
<DT><A HREF="./org/apache/abdera2/protocol/client/Session.html#put(java.lang.String, org.apache.abdera2.model.Base, org.apache.abdera2.protocol.client.RequestOptions)"><B>put(String, Base, RequestOptions)</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/Session.html" title="class in org.apache.abdera2.protocol.client">Session</A>
<DD>Sends an HTTP PUT request to the specified URI.
<DT><A HREF="./org/apache/abdera2/protocol/client/Session.html#put(java.lang.String, org.apache.abdera2.protocol.EntityProvider)"><B>put(String, EntityProvider)</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/Session.html" title="class in org.apache.abdera2.protocol.client">Session</A>
<DD>Sends an HTTP PUT request to the specified URI using the default options
<DT><A HREF="./org/apache/abdera2/protocol/client/Session.html#put(java.lang.String, org.apache.http.HttpEntity)"><B>put(String, HttpEntity)</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/Session.html" title="class in org.apache.abdera2.protocol.client">Session</A>
<DD>Sends an HTTP PUT request to the specified URI using the default options
<DT><A HREF="./org/apache/abdera2/protocol/client/Session.html#put(java.lang.String, java.io.InputStream)"><B>put(String, InputStream)</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/Session.html" title="class in org.apache.abdera2.protocol.client">Session</A>
<DD>Sends an HTTP PUT request to the specified URI using the default options
<DT><A HREF="./org/apache/abdera2/protocol/client/Session.html#put(java.lang.String, org.apache.abdera2.model.Base)"><B>put(String, Base)</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/Session.html" title="class in org.apache.abdera2.protocol.client">Session</A>
<DD>Sends an HTTP PUT request to the specified URI using the default options
</DL>
<HR>
<A NAME="_R_"><!-- --></A><H2>
<B>R</B></H2>
<DL>
<DT><A HREF="./org/apache/abdera2/protocol/client/Client.html#registerScheme(java.lang.String, int, org.apache.http.conn.scheme.SchemeSocketFactory)"><B>registerScheme(String, int, SchemeSocketFactory)</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/Client.html" title="class in org.apache.abdera2.protocol.client">Client</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/abdera2/protocol/client/ClientResponse.html#release()"><B>release()</B></A> - 
Method in interface org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/ClientResponse.html" title="interface in org.apache.abdera2.protocol.client">ClientResponse</A>
<DD>Release the resources associated with this response
<DT><A HREF="./org/apache/abdera2/protocol/client/RequestOptions.html#removeHeaders(java.lang.String)"><B>removeHeaders(String)</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/RequestOptions.html" title="class in org.apache.abdera2.protocol.client">RequestOptions</A>
<DD>Remove the specified HTTP header
<DT><A HREF="./org/apache/abdera2/protocol/client/RequestHelper.html" title="class in org.apache.abdera2.protocol.client"><B>RequestHelper</B></A> - Class in <A HREF="./org/apache/abdera2/protocol/client/package-summary.html">org.apache.abdera2.protocol.client</A><DD>&nbsp;<DT><A HREF="./org/apache/abdera2/protocol/client/RequestHelper.html#RequestHelper()"><B>RequestHelper()</B></A> - 
Constructor for class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/RequestHelper.html" title="class in org.apache.abdera2.protocol.client">RequestHelper</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/abdera2/protocol/client/RequestHelper.ExtensionRequest.html" title="class in org.apache.abdera2.protocol.client"><B>RequestHelper.ExtensionRequest</B></A> - Class in <A HREF="./org/apache/abdera2/protocol/client/package-summary.html">org.apache.abdera2.protocol.client</A><DD>&nbsp;<DT><A HREF="./org/apache/abdera2/protocol/client/RequestHelper.ExtensionRequest.html#RequestHelper.ExtensionRequest(java.lang.String, java.lang.String, org.apache.http.HttpEntity)"><B>RequestHelper.ExtensionRequest(String, String, HttpEntity)</B></A> - 
Constructor for class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/RequestHelper.ExtensionRequest.html" title="class in org.apache.abdera2.protocol.client">RequestHelper.ExtensionRequest</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/abdera2/protocol/client/RequestOptions.html" title="class in org.apache.abdera2.protocol.client"><B>RequestOptions</B></A> - Class in <A HREF="./org/apache/abdera2/protocol/client/package-summary.html">org.apache.abdera2.protocol.client</A><DD>The RequestOptions class allows a variety of options affecting the execution of the request to be modified.<DT><A HREF="./org/apache/abdera2/protocol/client/RequestOptions.html#RequestOptions()"><B>RequestOptions()</B></A> - 
Constructor for class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/RequestOptions.html" title="class in org.apache.abdera2.protocol.client">RequestOptions</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/abdera2/protocol/client/RequestOptions.html#RequestOptions(java.util.Date)"><B>RequestOptions(Date)</B></A> - 
Constructor for class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/RequestOptions.html" title="class in org.apache.abdera2.protocol.client">RequestOptions</A>
<DD>Create the RequestOptions object with the specified If-Modified-Since header value
<DT><A HREF="./org/apache/abdera2/protocol/client/RequestOptions.html#RequestOptions(java.lang.String)"><B>RequestOptions(String)</B></A> - 
Constructor for class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/RequestOptions.html" title="class in org.apache.abdera2.protocol.client">RequestOptions</A>
<DD>Create the RequestOptions object with the specified If-None-Match header value
<DT><A HREF="./org/apache/abdera2/protocol/client/RequestOptions.html#RequestOptions(java.lang.String, java.lang.String...)"><B>RequestOptions(String, String...)</B></A> - 
Constructor for class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/RequestOptions.html" title="class in org.apache.abdera2.protocol.client">RequestOptions</A>
<DD>Create the RequestOptions object with the specified If-None-Match header value
<DT><A HREF="./org/apache/abdera2/protocol/client/RequestOptions.html#RequestOptions(java.util.Date, java.lang.String)"><B>RequestOptions(Date, String)</B></A> - 
Constructor for class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/RequestOptions.html" title="class in org.apache.abdera2.protocol.client">RequestOptions</A>
<DD>Create the RequestOptions object with the specified If-Modified-Since and If-None-Match header values
<DT><A HREF="./org/apache/abdera2/protocol/client/RequestOptions.html#RequestOptions(java.util.Date, java.lang.String, java.lang.String...)"><B>RequestOptions(Date, String, String...)</B></A> - 
Constructor for class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/RequestOptions.html" title="class in org.apache.abdera2.protocol.client">RequestOptions</A>
<DD>Create the RequestOptions object with the specified If-Modified-Since and If-None-Match header values
<DT><A HREF="./org/apache/abdera2/protocol/client/RequestOptions.html#RequestOptions(boolean)"><B>RequestOptions(boolean)</B></A> - 
Constructor for class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/RequestOptions.html" title="class in org.apache.abdera2.protocol.client">RequestOptions</A>
<DD>Create the RequestOptions object
</DL>
<HR>
<A NAME="_S_"><!-- --></A><H2>
<B>S</B></H2>
<DL>
<DT><A HREF="./org/apache/abdera2/protocol/client/LocalizationHelper.html#selectAlternate(org.apache.abdera2.model.Source)"><B>selectAlternate(Source)</B></A> - 
Static method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/LocalizationHelper.html" title="class in org.apache.abdera2.protocol.client">LocalizationHelper</A>
<DD>Select an appropriate subset of alternate links for the default locale
<DT><A HREF="./org/apache/abdera2/protocol/client/LocalizationHelper.html#selectAlternate(org.apache.abdera2.model.Entry)"><B>selectAlternate(Entry)</B></A> - 
Static method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/LocalizationHelper.html" title="class in org.apache.abdera2.protocol.client">LocalizationHelper</A>
<DD>Select an appropriate subset of alternate links for the default locale
<DT><A HREF="./org/apache/abdera2/protocol/client/LocalizationHelper.html#selectAlternate(org.apache.abdera2.model.Source, java.util.Locale)"><B>selectAlternate(Source, Locale)</B></A> - 
Static method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/LocalizationHelper.html" title="class in org.apache.abdera2.protocol.client">LocalizationHelper</A>
<DD>Select an appropriate subset of alternate links for the specified locale
<DT><A HREF="./org/apache/abdera2/protocol/client/LocalizationHelper.html#selectAlternate(org.apache.abdera2.model.Entry, java.util.Locale)"><B>selectAlternate(Entry, Locale)</B></A> - 
Static method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/LocalizationHelper.html" title="class in org.apache.abdera2.protocol.client">LocalizationHelper</A>
<DD>Select an appropriate subset of alternate links for the specified locale
<DT><A HREF="./org/apache/abdera2/protocol/client/LocalizationHelper.html#selectAlternate(org.apache.abdera2.model.Entry, java.util.Locale...)"><B>selectAlternate(Entry, Locale...)</B></A> - 
Static method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/LocalizationHelper.html" title="class in org.apache.abdera2.protocol.client">LocalizationHelper</A>
<DD>Select an appropriate subset of alternate links for the specified locales
<DT><A HREF="./org/apache/abdera2/protocol/client/LocalizationHelper.html#selectAlternate(org.apache.abdera2.model.Entry, org.apache.abdera2.common.lang.Range)"><B>selectAlternate(Entry, Range)</B></A> - 
Static method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/LocalizationHelper.html" title="class in org.apache.abdera2.protocol.client">LocalizationHelper</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/abdera2/protocol/client/LocalizationHelper.html#selectAlternate(org.apache.abdera2.model.Entry, org.apache.abdera2.common.lang.Range...)"><B>selectAlternate(Entry, Range...)</B></A> - 
Static method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/LocalizationHelper.html" title="class in org.apache.abdera2.protocol.client">LocalizationHelper</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/abdera2/protocol/client/LocalizationHelper.html#selectAlternate(org.apache.abdera2.model.Entry, java.lang.String)"><B>selectAlternate(Entry, String)</B></A> - 
Static method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/LocalizationHelper.html" title="class in org.apache.abdera2.protocol.client">LocalizationHelper</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/abdera2/protocol/client/LocalizationHelper.html#selectAlternate(org.apache.abdera2.model.Entry, java.lang.String...)"><B>selectAlternate(Entry, String...)</B></A> - 
Static method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/LocalizationHelper.html" title="class in org.apache.abdera2.protocol.client">LocalizationHelper</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/abdera2/protocol/client/LocalizationHelper.html#selectAlternate(org.apache.abdera2.model.Source, java.util.Locale...)"><B>selectAlternate(Source, Locale...)</B></A> - 
Static method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/LocalizationHelper.html" title="class in org.apache.abdera2.protocol.client">LocalizationHelper</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/abdera2/protocol/client/LocalizationHelper.html#selectAlternate(org.apache.abdera2.model.Source, org.apache.abdera2.common.lang.Range)"><B>selectAlternate(Source, Range)</B></A> - 
Static method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/LocalizationHelper.html" title="class in org.apache.abdera2.protocol.client">LocalizationHelper</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/abdera2/protocol/client/LocalizationHelper.html#selectAlternate(org.apache.abdera2.model.Source, org.apache.abdera2.common.lang.Range...)"><B>selectAlternate(Source, Range...)</B></A> - 
Static method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/LocalizationHelper.html" title="class in org.apache.abdera2.protocol.client">LocalizationHelper</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/abdera2/protocol/client/LocalizationHelper.html#selectAlternate(org.apache.abdera2.model.Source, java.lang.String)"><B>selectAlternate(Source, String)</B></A> - 
Static method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/LocalizationHelper.html" title="class in org.apache.abdera2.protocol.client">LocalizationHelper</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/abdera2/protocol/client/LocalizationHelper.html#selectAlternate(org.apache.abdera2.model.Source, java.lang.String...)"><B>selectAlternate(Source, String...)</B></A> - 
Static method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/LocalizationHelper.html" title="class in org.apache.abdera2.protocol.client">LocalizationHelper</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/abdera2/protocol/client/LocalizationHelper.html#selectAlternate(java.util.List, java.lang.String)"><B>selectAlternate(List&lt;Link&gt;, String)</B></A> - 
Static method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/LocalizationHelper.html" title="class in org.apache.abdera2.protocol.client">LocalizationHelper</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/abdera2/protocol/client/LocalizationHelper.html#selectAlternate(java.util.List, org.apache.abdera2.common.lang.Range)"><B>selectAlternate(List&lt;Link&gt;, Range)</B></A> - 
Static method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/LocalizationHelper.html" title="class in org.apache.abdera2.protocol.client">LocalizationHelper</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/abdera2/protocol/client/LocalizationHelper.html#selectAlternate(java.util.List, org.apache.abdera2.common.lang.Range...)"><B>selectAlternate(List&lt;Link&gt;, Range...)</B></A> - 
Static method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/LocalizationHelper.html" title="class in org.apache.abdera2.protocol.client">LocalizationHelper</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/abdera2/protocol/client/Session.html" title="class in org.apache.abdera2.protocol.client"><B>Session</B></A> - Class in <A HREF="./org/apache/abdera2/protocol/client/package-summary.html">org.apache.abdera2.protocol.client</A><DD>A client session.<DT><A HREF="./org/apache/abdera2/protocol/client/Session.html#Session(org.apache.abdera2.protocol.client.Client)"><B>Session(Client)</B></A> - 
Constructor for class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/Session.html" title="class in org.apache.abdera2.protocol.client">Session</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/abdera2/protocol/client/RequestOptions.html#set4xxRequestException(boolean)"><B>set4xxRequestException(boolean)</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/RequestOptions.html" title="class in org.apache.abdera2.protocol.client">RequestOptions</A>
<DD>Set whether or not to throw a RequestExeption on 4xx responses
<DT><A HREF="./org/apache/abdera2/protocol/client/RequestOptions.html#set5xxRequestException(boolean)"><B>set5xxRequestException(boolean)</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/RequestOptions.html" title="class in org.apache.abdera2.protocol.client">RequestOptions</A>
<DD>Set whether or not to throw a RequestExeption on 5xx responses
<DT><A HREF="./org/apache/abdera2/protocol/client/RequestOptions.html#setAccept(java.lang.String)"><B>setAccept(String)</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/RequestOptions.html" title="class in org.apache.abdera2.protocol.client">RequestOptions</A>
<DD>Sets the value of the HTTP Accept header
<DT><A HREF="./org/apache/abdera2/protocol/client/RequestOptions.html#setAccept(java.lang.String...)"><B>setAccept(String...)</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/RequestOptions.html" title="class in org.apache.abdera2.protocol.client">RequestOptions</A>
<DD>Sets the value of the HTTP Accept header
<DT><A HREF="./org/apache/abdera2/protocol/client/RequestOptions.html#setAcceptCharset(java.lang.String)"><B>setAcceptCharset(String)</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/RequestOptions.html" title="class in org.apache.abdera2.protocol.client">RequestOptions</A>
<DD>Sets the value of the HTTP Accept-Charset header
<DT><A HREF="./org/apache/abdera2/protocol/client/RequestOptions.html#setAcceptCharset(java.lang.String...)"><B>setAcceptCharset(String...)</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/RequestOptions.html" title="class in org.apache.abdera2.protocol.client">RequestOptions</A>
<DD>Sets the value of the HTTP Accept-Charset header
<DT><A HREF="./org/apache/abdera2/protocol/client/RequestOptions.html#setAcceptEncoding(java.lang.String)"><B>setAcceptEncoding(String)</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/RequestOptions.html" title="class in org.apache.abdera2.protocol.client">RequestOptions</A>
<DD>Sets the value of the HTTP Accept-Encoding header
<DT><A HREF="./org/apache/abdera2/protocol/client/RequestOptions.html#setAcceptEncoding(java.lang.String...)"><B>setAcceptEncoding(String...)</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/RequestOptions.html" title="class in org.apache.abdera2.protocol.client">RequestOptions</A>
<DD>Sets the value of the HTTP Accept-Encoding header
<DT><A HREF="./org/apache/abdera2/protocol/client/RequestOptions.html#setAcceptLanguage(java.util.Locale)"><B>setAcceptLanguage(Locale)</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/RequestOptions.html" title="class in org.apache.abdera2.protocol.client">RequestOptions</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/abdera2/protocol/client/RequestOptions.html#setAcceptLanguage(java.util.Locale...)"><B>setAcceptLanguage(Locale...)</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/RequestOptions.html" title="class in org.apache.abdera2.protocol.client">RequestOptions</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/abdera2/protocol/client/RequestOptions.html#setAcceptLanguage(java.lang.String)"><B>setAcceptLanguage(String)</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/RequestOptions.html" title="class in org.apache.abdera2.protocol.client">RequestOptions</A>
<DD>Sets the value of the HTTP Accept-Language header
<DT><A HREF="./org/apache/abdera2/protocol/client/RequestOptions.html#setAcceptLanguage(java.lang.String...)"><B>setAcceptLanguage(String...)</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/RequestOptions.html" title="class in org.apache.abdera2.protocol.client">RequestOptions</A>
<DD>Sets the value of the HTTP Accept-Language header
<DT><A HREF="./org/apache/abdera2/protocol/client/Client.html#setAuthenticationSchemePriority(java.lang.String...)"><B>setAuthenticationSchemePriority(String...)</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/Client.html" title="class in org.apache.abdera2.protocol.client">Client</A>
<DD>When multiple authentication schemes are supported by a server, the client will automatically select a scheme
 based on the configured priority.
<DT><A HREF="./org/apache/abdera2/protocol/client/RequestOptions.html#setAuthorization(java.lang.String)"><B>setAuthorization(String)</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/RequestOptions.html" title="class in org.apache.abdera2.protocol.client">RequestOptions</A>
<DD>Set the value of the HTTP Authorization header
<DT><A HREF="./org/apache/abdera2/protocol/client/EntityProviderEntity.html#setAutoIndent(boolean)"><B>setAutoIndent(boolean)</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/EntityProviderEntity.html" title="class in org.apache.abdera2.protocol.client">EntityProviderEntity</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/abdera2/protocol/client/RequestOptions.html#setCacheControl(java.lang.String)"><B>setCacheControl(String)</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/RequestOptions.html" title="class in org.apache.abdera2.protocol.client">RequestOptions</A>
<DD>Sets the value of the HTTP Cache-Control header
<DT><A HREF="./org/apache/abdera2/protocol/client/RequestOptions.html#setCacheControl(org.apache.abdera2.common.http.CacheControl)"><B>setCacheControl(CacheControl)</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/RequestOptions.html" title="class in org.apache.abdera2.protocol.client">RequestOptions</A>
<DD>Sets the value of the HTTP Cache-Control header
<DT><A HREF="./org/apache/abdera2/protocol/client/RequestOptions.html#setConditionalPut(boolean)"><B>setConditionalPut(boolean)</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/RequestOptions.html" title="class in org.apache.abdera2.protocol.client">RequestOptions</A>
<DD>True if HTTP Conditinal Request should be used automatically.
<DT><A HREF="./org/apache/abdera2/protocol/client/Client.html#setConnectionTimeout(int)"><B>setConnectionTimeout(int)</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/Client.html" title="class in org.apache.abdera2.protocol.client">Client</A>
<DD>Sets the timeout until a connection is etablished.
<DT><A HREF="./org/apache/abdera2/protocol/client/RequestOptions.html#setContentLocation(java.lang.String)"><B>setContentLocation(String)</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/RequestOptions.html" title="class in org.apache.abdera2.protocol.client">RequestOptions</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/abdera2/protocol/client/RequestOptions.html#setContentType(java.lang.String)"><B>setContentType(String)</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/RequestOptions.html" title="class in org.apache.abdera2.protocol.client">RequestOptions</A>
<DD>Set the value of the HTTP Content-Type header
<DT><A HREF="./org/apache/abdera2/protocol/client/RequestOptions.html#setContentType(javax.activation.MimeType)"><B>setContentType(MimeType)</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/RequestOptions.html" title="class in org.apache.abdera2.protocol.client">RequestOptions</A>
<DD>Set the value of the HTTP Content-Type header
<DT><A HREF="./org/apache/abdera2/protocol/client/Client.html#setCookieStore(org.apache.http.client.CookieStore)"><B>setCookieStore(CookieStore)</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/Client.html" title="class in org.apache.abdera2.protocol.client">Client</A>
<DD>Set the underlying HTTP Client Cookie Store implementation
<DT><A HREF="./org/apache/abdera2/protocol/client/RequestOptions.html#setDateHeader(java.lang.String, java.util.Date)"><B>setDateHeader(String, Date)</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/RequestOptions.html" title="class in org.apache.abdera2.protocol.client">RequestOptions</A>
<DD>Set the date value of the specified HTTP header
<DT><A HREF="./org/apache/abdera2/protocol/client/RequestOptions.html#setEncodedHeader(java.lang.String, java.lang.String, java.lang.String)"><B>setEncodedHeader(String, String, String)</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/RequestOptions.html" title="class in org.apache.abdera2.protocol.client">RequestOptions</A>
<DD>Set the value of a header using proper encoding of non-ascii characters
<DT><A HREF="./org/apache/abdera2/protocol/client/RequestOptions.html#setEncodedHeader(java.lang.String, java.lang.String, java.lang.String...)"><B>setEncodedHeader(String, String, String...)</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/RequestOptions.html" title="class in org.apache.abdera2.protocol.client">RequestOptions</A>
<DD>Set the values of a header using proper encoding of non-ascii characters
<DT><A HREF="./org/apache/abdera2/protocol/client/EntityProviderEntity.html#setEncoding(java.lang.String)"><B>setEncoding(String)</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/EntityProviderEntity.html" title="class in org.apache.abdera2.protocol.client">EntityProviderEntity</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/abdera2/protocol/client/RequestOptions.html#setFollowRedirects(boolean)"><B>setFollowRedirects(boolean)</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/RequestOptions.html" title="class in org.apache.abdera2.protocol.client">RequestOptions</A>
<DD>True if the client should follow redirects automatically
<DT><A HREF="./org/apache/abdera2/protocol/client/RequestOptions.html#setHeader(java.lang.String, java.lang.String)"><B>setHeader(String, String)</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/RequestOptions.html" title="class in org.apache.abdera2.protocol.client">RequestOptions</A>
<DD>Set the value of the specified HTTP header
<DT><A HREF="./org/apache/abdera2/protocol/client/RequestOptions.html#setHeader(java.lang.String, java.lang.String...)"><B>setHeader(String, String...)</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/RequestOptions.html" title="class in org.apache.abdera2.protocol.client">RequestOptions</A>
<DD>Set the value of the specified HTTP header
<DT><A HREF="./org/apache/abdera2/protocol/client/RequestOptions.html#setIfMatch(java.lang.String)"><B>setIfMatch(String)</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/RequestOptions.html" title="class in org.apache.abdera2.protocol.client">RequestOptions</A>
<DD>Sets the value of the HTTP If-Match header
<DT><A HREF="./org/apache/abdera2/protocol/client/RequestOptions.html#setIfMatch(org.apache.abdera2.common.http.EntityTag)"><B>setIfMatch(EntityTag)</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/RequestOptions.html" title="class in org.apache.abdera2.protocol.client">RequestOptions</A>
<DD>Sets the value of the HTTP If-Match header
<DT><A HREF="./org/apache/abdera2/protocol/client/RequestOptions.html#setIfMatch(org.apache.abdera2.common.http.EntityTag, org.apache.abdera2.common.http.EntityTag...)"><B>setIfMatch(EntityTag, EntityTag...)</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/RequestOptions.html" title="class in org.apache.abdera2.protocol.client">RequestOptions</A>
<DD>Sets the value of the HTTP If-Match header
<DT><A HREF="./org/apache/abdera2/protocol/client/RequestOptions.html#setIfMatch(java.lang.String, java.lang.String...)"><B>setIfMatch(String, String...)</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/RequestOptions.html" title="class in org.apache.abdera2.protocol.client">RequestOptions</A>
<DD>Sets the value of the HTTP If-Match header
<DT><A HREF="./org/apache/abdera2/protocol/client/RequestOptions.html#setIfModifiedSince(java.util.Date)"><B>setIfModifiedSince(Date)</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/RequestOptions.html" title="class in org.apache.abdera2.protocol.client">RequestOptions</A>
<DD>Sets the value of the HTTP If-Modified-Since header
<DT><A HREF="./org/apache/abdera2/protocol/client/RequestOptions.html#setIfNoneMatch(java.lang.String)"><B>setIfNoneMatch(String)</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/RequestOptions.html" title="class in org.apache.abdera2.protocol.client">RequestOptions</A>
<DD>Sets the value of the HTTP If-None-Match header
<DT><A HREF="./org/apache/abdera2/protocol/client/RequestOptions.html#setIfNoneMatch(org.apache.abdera2.common.http.EntityTag)"><B>setIfNoneMatch(EntityTag)</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/RequestOptions.html" title="class in org.apache.abdera2.protocol.client">RequestOptions</A>
<DD>Sets the value of the HTTP If-None-Match header
<DT><A HREF="./org/apache/abdera2/protocol/client/RequestOptions.html#setIfNoneMatch(org.apache.abdera2.common.http.EntityTag, org.apache.abdera2.common.http.EntityTag...)"><B>setIfNoneMatch(EntityTag, EntityTag...)</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/RequestOptions.html" title="class in org.apache.abdera2.protocol.client">RequestOptions</A>
<DD>Sets the value of the HTTP If-None-Match header
<DT><A HREF="./org/apache/abdera2/protocol/client/RequestOptions.html#setIfNoneMatch(java.lang.String, java.lang.String...)"><B>setIfNoneMatch(String, String...)</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/RequestOptions.html" title="class in org.apache.abdera2.protocol.client">RequestOptions</A>
<DD>Sets the value of the HTTP If-None-Match header
<DT><A HREF="./org/apache/abdera2/protocol/client/RequestOptions.html#setIfUnmodifiedSince(java.util.Date)"><B>setIfUnmodifiedSince(Date)</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/RequestOptions.html" title="class in org.apache.abdera2.protocol.client">RequestOptions</A>
<DD>Sets the value of the HTTP If-Unmodified-Since header
<DT><A HREF="./org/apache/abdera2/protocol/client/Client.html#setMaxConnectionsPerHost(int)"><B>setMaxConnectionsPerHost(int)</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/Client.html" title="class in org.apache.abdera2.protocol.client">Client</A>
<DD>Set the maximum number of connections allowed for a single host.
<DT><A HREF="./org/apache/abdera2/protocol/client/Client.html#setMaxConnectionsTotal(int)"><B>setMaxConnectionsTotal(int)</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/Client.html" title="class in org.apache.abdera2.protocol.client">Client</A>
<DD>Return the maximum number of connections allowed for the client
<DT><A HREF="./org/apache/abdera2/protocol/client/Client.html#setMaximumRedirects(int)"><B>setMaximumRedirects(int)</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/Client.html" title="class in org.apache.abdera2.protocol.client">Client</A>
<DD>Set the maximum number of redirects
<DT><A HREF="./org/apache/abdera2/protocol/client/RequestOptions.html#setPrefer(org.apache.abdera2.common.http.Preference, org.apache.abdera2.common.http.Preference...)"><B>setPrefer(Preference, Preference...)</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/RequestOptions.html" title="class in org.apache.abdera2.protocol.client">RequestOptions</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/abdera2/protocol/client/RequestOptions.html#setPreferApplied(org.apache.abdera2.common.http.Preference, org.apache.abdera2.common.http.Preference...)"><B>setPreferApplied(Preference, Preference...)</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/RequestOptions.html" title="class in org.apache.abdera2.protocol.client">RequestOptions</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/abdera2/protocol/client/Client.html#setProxy(java.lang.String, int)"><B>setProxy(String, int)</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/Client.html" title="class in org.apache.abdera2.protocol.client">Client</A>
<DD>Configure the client to use the specified proxy
<DT><A HREF="./org/apache/abdera2/protocol/client/RequestOptions.html#setRevalidateWithAuth(boolean)"><B>setRevalidateWithAuth(boolean)</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/RequestOptions.html" title="class in org.apache.abdera2.protocol.client">RequestOptions</A>
<DD>Configure the AbderaClient Side cache to revalidate when using Authorization
<DT><A HREF="./org/apache/abdera2/protocol/client/RequestOptions.html#setSlug(java.lang.String)"><B>setSlug(String)</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/RequestOptions.html" title="class in org.apache.abdera2.protocol.client">RequestOptions</A>
<DD>Sets the value of the Atom Publishing Protocol Slug header
<DT><A HREF="./org/apache/abdera2/protocol/client/Client.html#setSocketTimeout(int)"><B>setSocketTimeout(int)</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/Client.html" title="class in org.apache.abdera2.protocol.client">Client</A>
<DD>Sets the default socket timeout (SO_TIMEOUT) in milliseconds which is the timeout for waiting for data.
<DT><A HREF="./org/apache/abdera2/protocol/client/Client.html#setStandardProxy()"><B>setStandardProxy()</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/Client.html" title="class in org.apache.abdera2.protocol.client">Client</A>
<DD>Configure the client to use the proxy configured for the JVM
<DT><A HREF="./org/apache/abdera2/protocol/client/Client.html#setTcpNoDelay(boolean)"><B>setTcpNoDelay(boolean)</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/Client.html" title="class in org.apache.abdera2.protocol.client">Client</A>
<DD>Determines whether Nagle's algorithm is to be used.
<DT><A HREF="./org/apache/abdera2/protocol/client/RequestOptions.html#setUseChunked(boolean)"><B>setUseChunked(boolean)</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/RequestOptions.html" title="class in org.apache.abdera2.protocol.client">RequestOptions</A>
<DD>Set whether the request should use chunked encoding.
<DT><A HREF="./org/apache/abdera2/protocol/client/RequestOptions.html#setUseExpectContinue(boolean)"><B>setUseExpectContinue(boolean)</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/RequestOptions.html" title="class in org.apache.abdera2.protocol.client">RequestOptions</A>
<DD>Set whether or not to use the HTTP Expect-Continue mechanism (enabled by default)
<DT><A HREF="./org/apache/abdera2/protocol/client/RequestOptions.html#setUseLocalCache(boolean)"><B>setUseLocalCache(boolean)</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/RequestOptions.html" title="class in org.apache.abdera2.protocol.client">RequestOptions</A>
<DD>True if the local client cache should be used
<DT><A HREF="./org/apache/abdera2/protocol/client/RequestOptions.html#setUsePostOverride(boolean)"><B>setUsePostOverride(boolean)</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/RequestOptions.html" title="class in org.apache.abdera2.protocol.client">RequestOptions</A>
<DD>Set whether the request should use the X-HTTP-Method-Override option
<DT><A HREF="./org/apache/abdera2/protocol/client/RequestOptions.html#setWebLinks(org.apache.abdera2.common.http.WebLink, org.apache.abdera2.common.http.WebLink...)"><B>setWebLinks(WebLink, WebLink...)</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/RequestOptions.html" title="class in org.apache.abdera2.protocol.client">RequestOptions</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/abdera2/protocol/client/Client.html#shutdown()"><B>shutdown()</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/Client.html" title="class in org.apache.abdera2.protocol.client">Client</A>
<DD>&nbsp;
</DL>
<HR>
<A NAME="_U_"><!-- --></A><H2>
<B>U</B></H2>
<DL>
<DT><A HREF="./org/apache/abdera2/protocol/client/Session.html#usePreemptiveAuthentication(java.lang.String, java.lang.String)"><B>usePreemptiveAuthentication(String, String)</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/Session.html" title="class in org.apache.abdera2.protocol.client">Session</A>
<DD>&nbsp;
</DL>
<HR>
<A NAME="_W_"><!-- --></A><H2>
<B>W</B></H2>
<DL>
<DT><A HREF="./org/apache/abdera2/protocol/client/AbderaBody.html#writeTo(java.io.OutputStream)"><B>writeTo(OutputStream)</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/AbderaBody.html" title="class in org.apache.abdera2.protocol.client">AbderaBody</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/abdera2/protocol/client/AbderaEntity.html#writeTo(java.io.OutputStream)"><B>writeTo(OutputStream)</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/AbderaEntity.html" title="class in org.apache.abdera2.protocol.client">AbderaEntity</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/abdera2/protocol/client/ActivityEntity.html#writeTo(java.io.OutputStream)"><B>writeTo(OutputStream)</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/ActivityEntity.html" title="class in org.apache.abdera2.protocol.client">ActivityEntity</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/abdera2/protocol/client/ClientResponse.html#writeTo(java.io.OutputStream)"><B>writeTo(OutputStream)</B></A> - 
Method in interface org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/ClientResponse.html" title="interface in org.apache.abdera2.protocol.client">ClientResponse</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/abdera2/protocol/client/EntityProviderEntity.html#writeTo(java.io.OutputStream)"><B>writeTo(OutputStream)</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/EntityProviderEntity.html" title="class in org.apache.abdera2.protocol.client">EntityProviderEntity</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/abdera2/protocol/client/MultipartRelatedEntity.html#writeTo(java.io.OutputStream)"><B>writeTo(OutputStream)</B></A> - 
Method in class org.apache.abdera2.protocol.client.<A HREF="./org/apache/abdera2/protocol/client/MultipartRelatedEntity.html" title="class in org.apache.abdera2.protocol.client">MultipartRelatedEntity</A>
<DD>&nbsp;
</DL>
<HR>
<A HREF="#_A_">A</A> <A HREF="#_C_">C</A> <A HREF="#_D_">D</A> <A HREF="#_E_">E</A> <A HREF="#_G_">G</A> <A HREF="#_H_">H</A> <A HREF="#_I_">I</A> <A HREF="#_L_">L</A> <A HREF="#_M_">M</A> <A HREF="#_N_">N</A> <A HREF="#_O_">O</A> <A HREF="#_P_">P</A> <A HREF="#_R_">R</A> <A HREF="#_S_">S</A> <A HREF="#_U_">U</A> <A HREF="#_W_">W</A> 

<!-- ======= START OF BOTTOM NAVBAR ====== -->
<A NAME="navbar_bottom"><!-- --></A>
<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_bottom_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
  <TR ALIGN="center" VALIGN="top">
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="./org/apache/abdera2/protocol/client/package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="./org/apache/abdera2/protocol/client/package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="./deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="./help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
  </TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
</EM>
</TD>
</TR>

<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;PREV&nbsp;
&nbsp;NEXT</FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="./index.html?index-all.html" target="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="index-all.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
&nbsp;<SCRIPT type="text/javascript">
  <!--
  if(window==top) {
    document.writeln('<A HREF="./allclasses-noframe.html"><B>All Classes</B></A>');
  }
  //-->
</SCRIPT>
<NOSCRIPT>
  <A HREF="./allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>


</FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_bottom"></A>
<!-- ======== END OF BOTTOM NAVBAR ======= -->

<HR>
Copyright &#169; 2006-2011 <a href="http://www.apache.org/">Apache Software Foundation</a>. All Rights Reserved.
</BODY>
</HTML>
