<!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.5.0_14) on Sun Aug 16 11:45:34 IDT 2009 -->
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<TITLE>
Resource (Apache Wink 0.1-incubating API)
</TITLE>

<META NAME="keywords" CONTENT="org.apache.wink.client.Resource interface">

<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">

<SCRIPT type="text/javascript">
function windowTitle()
{
    parent.document.title="Resource (Apache Wink 0.1-incubating API)";
}
</SCRIPT>
<NOSCRIPT>
</NOSCRIPT>

</HEAD>

<BODY BGCOLOR="white" onload="windowTitle();">


<!-- ========= 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="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/Resource.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="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="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&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;<A HREF="../../../../org/apache/wink/client/MockHttpServer.html" title="class in org.apache.wink.client"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../../../org/apache/wink/client/RestClient.html" title="class in org.apache.wink.client"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../../../../index.html?org/apache/wink/client/Resource.html" target="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="Resource.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>
<TR>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_top"></A>
<!-- ========= END OF TOP NAVBAR ========= -->

<HR>
<!-- ======== START OF CLASS DATA ======== -->
<H2>
<FONT SIZE="-1">
org.apache.wink.client</FONT>
<BR>
Interface Resource</H2>
<HR>
<DL>
<DT><PRE>public interface <B>Resource</B></DL>
</PRE>

<P>
Represents a web resource, enabling the invocation of different http methods
<P>

<P>
<HR>

<P>

<!-- ========== METHOD SUMMARY =========== -->

<A NAME="method_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Method Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../org/apache/wink/client/Resource.html" title="interface in org.apache.wink.client">Resource</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/wink/client/Resource.html#accept(javax.ws.rs.core.MediaType...)">accept</A></B>(javax.ws.rs.core.MediaType...&nbsp;values)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Add values to the Accept header.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../org/apache/wink/client/Resource.html" title="interface in org.apache.wink.client">Resource</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/wink/client/Resource.html#accept(java.lang.String...)">accept</A></B>(java.lang.String...&nbsp;values)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Add values to the Accept header.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../org/apache/wink/client/Resource.html" title="interface in org.apache.wink.client">Resource</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/wink/client/Resource.html#acceptLanguage(java.util.Locale...)">acceptLanguage</A></B>(java.util.Locale...&nbsp;values)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Add values to the Accept-Language header.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../org/apache/wink/client/Resource.html" title="interface in org.apache.wink.client">Resource</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/wink/client/Resource.html#acceptLanguage(java.lang.String...)">acceptLanguage</A></B>(java.lang.String...&nbsp;values)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Add values to the Accept-Language header.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.lang.Object</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/wink/client/Resource.html#attribute(java.lang.String)">attribute</A></B>(java.lang.String&nbsp;key)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get an attribute</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../org/apache/wink/client/Resource.html" title="interface in org.apache.wink.client">Resource</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/wink/client/Resource.html#attribute(java.lang.String, java.lang.Object)">attribute</A></B>(java.lang.String&nbsp;key,
          java.lang.Object&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set an attribute on the resource.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../org/apache/wink/client/Resource.html" title="interface in org.apache.wink.client">Resource</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/wink/client/Resource.html#contentType(javax.ws.rs.core.MediaType)">contentType</A></B>(javax.ws.rs.core.MediaType&nbsp;mediaType)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set the Content-Type header, overriding any previous value.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../org/apache/wink/client/Resource.html" title="interface in org.apache.wink.client">Resource</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/wink/client/Resource.html#contentType(java.lang.String)">contentType</A></B>(java.lang.String&nbsp;mediaType)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set the Content-Type header, overriding any previous value.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../org/apache/wink/client/Resource.html" title="interface in org.apache.wink.client">Resource</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/wink/client/Resource.html#cookie(javax.ws.rs.core.Cookie)">cookie</A></B>(javax.ws.rs.core.Cookie&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Add a Cookie value.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../org/apache/wink/client/Resource.html" title="interface in org.apache.wink.client">Resource</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/wink/client/Resource.html#cookie(java.lang.String)">cookie</A></B>(java.lang.String&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Add a Cookie value.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../org/apache/wink/client/ClientResponse.html" title="interface in org.apache.wink.client">ClientResponse</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/wink/client/Resource.html#delete()">delete</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Invoke the DELETE method</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0" SUMMARY="">
<TR ALIGN="right" VALIGN="">
<TD NOWRAP><FONT SIZE="-1">
<CODE>&lt;T&gt; T</CODE></FONT></TD>
</TR>
</TABLE>
</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/wink/client/Resource.html#delete(java.lang.Class)">delete</A></B>(java.lang.Class&lt;T&gt;&nbsp;responseEntity)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Invoke the DELETE method</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0" SUMMARY="">
<TR ALIGN="right" VALIGN="">
<TD NOWRAP><FONT SIZE="-1">
<CODE>&lt;T&gt; T</CODE></FONT></TD>
</TR>
</TABLE>
</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/wink/client/Resource.html#delete(org.apache.wink.client.EntityType)">delete</A></B>(<A HREF="../../../../org/apache/wink/client/EntityType.html" title="class in org.apache.wink.client">EntityType</A>&lt;T&gt;&nbsp;responseEntity)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Invoke the DELETE method</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../org/apache/wink/client/ClientResponse.html" title="interface in org.apache.wink.client">ClientResponse</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/wink/client/Resource.html#get()">get</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Invoke the GET method</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0" SUMMARY="">
<TR ALIGN="right" VALIGN="">
<TD NOWRAP><FONT SIZE="-1">
<CODE>&lt;T&gt; T</CODE></FONT></TD>
</TR>
</TABLE>
</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/wink/client/Resource.html#get(java.lang.Class)">get</A></B>(java.lang.Class&lt;T&gt;&nbsp;responseEntity)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Invoke the GET method</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0" SUMMARY="">
<TR ALIGN="right" VALIGN="">
<TD NOWRAP><FONT SIZE="-1">
<CODE>&lt;T&gt; T</CODE></FONT></TD>
</TR>
</TABLE>
</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/wink/client/Resource.html#get(org.apache.wink.client.EntityType)">get</A></B>(<A HREF="../../../../org/apache/wink/client/EntityType.html" title="class in org.apache.wink.client">EntityType</A>&lt;T&gt;&nbsp;responseEntity)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Invoke the GET method</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;javax.ws.rs.core.UriBuilder</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/wink/client/Resource.html#getUriBuilder()">getUriBuilder</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get the <CODE>UriBuilder</CODE> associated with this resource.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../org/apache/wink/client/ClientResponse.html" title="interface in org.apache.wink.client">ClientResponse</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/wink/client/Resource.html#head()">head</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Invoke the HEAD method</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../org/apache/wink/client/Resource.html" title="interface in org.apache.wink.client">Resource</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/wink/client/Resource.html#header(java.lang.String, java.lang.String...)">header</A></B>(java.lang.String&nbsp;name,
       java.lang.String...&nbsp;values)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Add a request header to be used in every invocation</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0" SUMMARY="">
<TR ALIGN="right" VALIGN="">
<TD NOWRAP><FONT SIZE="-1">
<CODE>&lt;T&gt; T</CODE></FONT></TD>
</TR>
</TABLE>
</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/wink/client/Resource.html#invoke(java.lang.String, java.lang.Class, java.lang.Object)">invoke</A></B>(java.lang.String&nbsp;method,
       java.lang.Class&lt;T&gt;&nbsp;responseEntity,
       java.lang.Object&nbsp;requestEntity)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Invoke a request to the uri associated with the resource, and with any
 headers and attributes set on the resource.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0" SUMMARY="">
<TR ALIGN="right" VALIGN="">
<TD NOWRAP><FONT SIZE="-1">
<CODE>&lt;T&gt; T</CODE></FONT></TD>
</TR>
</TABLE>
</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/wink/client/Resource.html#invoke(java.lang.String, org.apache.wink.client.EntityType, java.lang.Object)">invoke</A></B>(java.lang.String&nbsp;method,
       <A HREF="../../../../org/apache/wink/client/EntityType.html" title="class in org.apache.wink.client">EntityType</A>&lt;T&gt;&nbsp;responseEntity,
       java.lang.Object&nbsp;requestEntity)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Invoke a request to the uri associated with the resource, and with any
 headers and attributes set on the resource.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../org/apache/wink/client/ClientResponse.html" title="interface in org.apache.wink.client">ClientResponse</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/wink/client/Resource.html#options()">options</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Invoke the OPTIONS method</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0" SUMMARY="">
<TR ALIGN="right" VALIGN="">
<TD NOWRAP><FONT SIZE="-1">
<CODE>&lt;T&gt; T</CODE></FONT></TD>
</TR>
</TABLE>
</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/wink/client/Resource.html#post(java.lang.Class, java.lang.Object)">post</A></B>(java.lang.Class&lt;T&gt;&nbsp;responseEntity,
     java.lang.Object&nbsp;requestEntity)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Invoke the POST method</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0" SUMMARY="">
<TR ALIGN="right" VALIGN="">
<TD NOWRAP><FONT SIZE="-1">
<CODE>&lt;T&gt; T</CODE></FONT></TD>
</TR>
</TABLE>
</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/wink/client/Resource.html#post(org.apache.wink.client.EntityType, java.lang.Object)">post</A></B>(<A HREF="../../../../org/apache/wink/client/EntityType.html" title="class in org.apache.wink.client">EntityType</A>&lt;T&gt;&nbsp;responseEntity,
     java.lang.Object&nbsp;requestEntity)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Invoke the POST method</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../org/apache/wink/client/ClientResponse.html" title="interface in org.apache.wink.client">ClientResponse</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/wink/client/Resource.html#post(java.lang.Object)">post</A></B>(java.lang.Object&nbsp;requestEntity)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Invoke the POST method</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0" SUMMARY="">
<TR ALIGN="right" VALIGN="">
<TD NOWRAP><FONT SIZE="-1">
<CODE>&lt;T&gt; T</CODE></FONT></TD>
</TR>
</TABLE>
</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/wink/client/Resource.html#put(java.lang.Class, java.lang.Object)">put</A></B>(java.lang.Class&lt;T&gt;&nbsp;responseEntity,
    java.lang.Object&nbsp;requestEntity)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Invoke the PUT method</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0" SUMMARY="">
<TR ALIGN="right" VALIGN="">
<TD NOWRAP><FONT SIZE="-1">
<CODE>&lt;T&gt; T</CODE></FONT></TD>
</TR>
</TABLE>
</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/wink/client/Resource.html#put(org.apache.wink.client.EntityType, java.lang.Object)">put</A></B>(<A HREF="../../../../org/apache/wink/client/EntityType.html" title="class in org.apache.wink.client">EntityType</A>&lt;T&gt;&nbsp;responseEntity,
    java.lang.Object&nbsp;requestEntity)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Invoke the PUT method</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../org/apache/wink/client/ClientResponse.html" title="interface in org.apache.wink.client">ClientResponse</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/wink/client/Resource.html#put(java.lang.Object)">put</A></B>(java.lang.Object&nbsp;requestEntity)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Invoke the PUT method</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../org/apache/wink/client/Resource.html" title="interface in org.apache.wink.client">Resource</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/wink/client/Resource.html#queryParam(java.lang.String, java.lang.Object...)">queryParam</A></B>(java.lang.String&nbsp;key,
           java.lang.Object...&nbsp;values)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Add a query parameter to the uri</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../org/apache/wink/client/Resource.html" title="interface in org.apache.wink.client">Resource</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/wink/client/Resource.html#queryParams(javax.ws.rs.core.MultivaluedMap)">queryParams</A></B>(javax.ws.rs.core.MultivaluedMap&lt;java.lang.String,java.lang.String&gt;&nbsp;params)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Add all the query parameters from the provided multivalued map.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../org/apache/wink/client/Resource.html" title="interface in org.apache.wink.client">Resource</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/wink/client/Resource.html#uri(java.lang.String)">uri</A></B>(java.lang.String&nbsp;uri)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set the uri of this resource and create a new UriBuilder</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../org/apache/wink/client/Resource.html" title="interface in org.apache.wink.client">Resource</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/wink/client/Resource.html#uri(java.net.URI)">uri</A></B>(java.net.URI&nbsp;uri)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set the uri of this resource and create a new UriBuilder</TD>
</TR>
</TABLE>
&nbsp;
<P>

<!-- ============ METHOD DETAIL ========== -->

<A NAME="method_detail"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
<B>Method Detail</B></FONT></TH>
</TR>
</TABLE>

<A NAME="header(java.lang.String, java.lang.String...)"><!-- --></A><H3>
header</H3>
<PRE>
<A HREF="../../../../org/apache/wink/client/Resource.html" title="interface in org.apache.wink.client">Resource</A> <B>header</B>(java.lang.String&nbsp;name,
                java.lang.String...&nbsp;values)</PRE>
<DL>
<DD>Add a request header to be used in every invocation
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>name</CODE> - name of the header to add. the name of the header is case
            insensitive.<DD><CODE>values</CODE> - the values of the header. All of the values will be added
            to the same header, separated by a commas (,).
<DT><B>Returns:</B><DD>this resource instance</DL>
</DD>
</DL>
<HR>

<A NAME="accept(java.lang.String...)"><!-- --></A><H3>
accept</H3>
<PRE>
<A HREF="../../../../org/apache/wink/client/Resource.html" title="interface in org.apache.wink.client">Resource</A> <B>accept</B>(java.lang.String...&nbsp;values)</PRE>
<DL>
<DD>Add values to the Accept header.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>values</CODE> - accept header values to add
<DT><B>Returns:</B><DD>this resource instance</DL>
</DD>
</DL>
<HR>

<A NAME="accept(javax.ws.rs.core.MediaType...)"><!-- --></A><H3>
accept</H3>
<PRE>
<A HREF="../../../../org/apache/wink/client/Resource.html" title="interface in org.apache.wink.client">Resource</A> <B>accept</B>(javax.ws.rs.core.MediaType...&nbsp;values)</PRE>
<DL>
<DD>Add values to the Accept header.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>values</CODE> - accept header values to add
<DT><B>Returns:</B><DD>this resource instance</DL>
</DD>
</DL>
<HR>

<A NAME="acceptLanguage(java.lang.String...)"><!-- --></A><H3>
acceptLanguage</H3>
<PRE>
<A HREF="../../../../org/apache/wink/client/Resource.html" title="interface in org.apache.wink.client">Resource</A> <B>acceptLanguage</B>(java.lang.String...&nbsp;values)</PRE>
<DL>
<DD>Add values to the Accept-Language header.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>values</CODE> - accept-langage header values to add
<DT><B>Returns:</B><DD>this resource instance</DL>
</DD>
</DL>
<HR>

<A NAME="acceptLanguage(java.util.Locale...)"><!-- --></A><H3>
acceptLanguage</H3>
<PRE>
<A HREF="../../../../org/apache/wink/client/Resource.html" title="interface in org.apache.wink.client">Resource</A> <B>acceptLanguage</B>(java.util.Locale...&nbsp;values)</PRE>
<DL>
<DD>Add values to the Accept-Language header.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>values</CODE> - accept-langage header values to add
<DT><B>Returns:</B><DD>this resource instance</DL>
</DD>
</DL>
<HR>

<A NAME="cookie(java.lang.String)"><!-- --></A><H3>
cookie</H3>
<PRE>
<A HREF="../../../../org/apache/wink/client/Resource.html" title="interface in org.apache.wink.client">Resource</A> <B>cookie</B>(java.lang.String&nbsp;value)</PRE>
<DL>
<DD>Add a Cookie value. Every call to this method will create a new Cookie
 header.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>value</CODE> - the cookie value to add
<DT><B>Returns:</B><DD>this resource instance</DL>
</DD>
</DL>
<HR>

<A NAME="cookie(javax.ws.rs.core.Cookie)"><!-- --></A><H3>
cookie</H3>
<PRE>
<A HREF="../../../../org/apache/wink/client/Resource.html" title="interface in org.apache.wink.client">Resource</A> <B>cookie</B>(javax.ws.rs.core.Cookie&nbsp;value)</PRE>
<DL>
<DD>Add a Cookie value. Every call to this method will create a new Cookie
 header.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>value</CODE> - the cookie value to add
<DT><B>Returns:</B><DD>this resource instance</DL>
</DD>
</DL>
<HR>

<A NAME="contentType(java.lang.String)"><!-- --></A><H3>
contentType</H3>
<PRE>
<A HREF="../../../../org/apache/wink/client/Resource.html" title="interface in org.apache.wink.client">Resource</A> <B>contentType</B>(java.lang.String&nbsp;mediaType)</PRE>
<DL>
<DD>Set the Content-Type header, overriding any previous value.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>mediaType</CODE> - the content type to set
<DT><B>Returns:</B><DD>this resource instance</DL>
</DD>
</DL>
<HR>

<A NAME="contentType(javax.ws.rs.core.MediaType)"><!-- --></A><H3>
contentType</H3>
<PRE>
<A HREF="../../../../org/apache/wink/client/Resource.html" title="interface in org.apache.wink.client">Resource</A> <B>contentType</B>(javax.ws.rs.core.MediaType&nbsp;mediaType)</PRE>
<DL>
<DD>Set the Content-Type header, overriding any previous value.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>mediaType</CODE> - the content type to set
<DT><B>Returns:</B><DD>this resource instance</DL>
</DD>
</DL>
<HR>

<A NAME="queryParam(java.lang.String, java.lang.Object...)"><!-- --></A><H3>
queryParam</H3>
<PRE>
<A HREF="../../../../org/apache/wink/client/Resource.html" title="interface in org.apache.wink.client">Resource</A> <B>queryParam</B>(java.lang.String&nbsp;key,
                    java.lang.Object...&nbsp;values)</PRE>
<DL>
<DD>Add a query parameter to the uri
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>key</CODE> - the name of the query parameter<DD><CODE>values</CODE> - values of the query parameters. A query parameter will be
            added for every value
<DT><B>Returns:</B><DD>this resource instance</DL>
</DD>
</DL>
<HR>

<A NAME="queryParams(javax.ws.rs.core.MultivaluedMap)"><!-- --></A><H3>
queryParams</H3>
<PRE>
<A HREF="../../../../org/apache/wink/client/Resource.html" title="interface in org.apache.wink.client">Resource</A> <B>queryParams</B>(javax.ws.rs.core.MultivaluedMap&lt;java.lang.String,java.lang.String&gt;&nbsp;params)</PRE>
<DL>
<DD>Add all the query parameters from the provided multivalued map.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>params</CODE> - multivalued map of parameters.
<DT><B>Returns:</B><DD>this resource instance</DL>
</DD>
</DL>
<HR>

<A NAME="attribute(java.lang.String, java.lang.Object)"><!-- --></A><H3>
attribute</H3>
<PRE>
<A HREF="../../../../org/apache/wink/client/Resource.html" title="interface in org.apache.wink.client">Resource</A> <B>attribute</B>(java.lang.String&nbsp;key,
                   java.lang.Object&nbsp;value)</PRE>
<DL>
<DD>Set an attribute on the resource. All the attributes are available to
 handlers during a request via the <CODE>BaseRequestResponse.getAttributes()</CODE>
 and <CODE>BaseRequestResponse.getAttributes()</CODE> methods.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>key</CODE> - attribute key<DD><CODE>value</CODE> - attribute value
<DT><B>Returns:</B><DD>this resource instance</DL>
</DD>
</DL>
<HR>

<A NAME="attribute(java.lang.String)"><!-- --></A><H3>
attribute</H3>
<PRE>
java.lang.Object <B>attribute</B>(java.lang.String&nbsp;key)</PRE>
<DL>
<DD>Get an attribute
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>key</CODE> - attribute key
<DT><B>Returns:</B><DD>attribute value, or null if the attribute is not set</DL>
</DD>
</DL>
<HR>

<A NAME="getUriBuilder()"><!-- --></A><H3>
getUriBuilder</H3>
<PRE>
javax.ws.rs.core.UriBuilder <B>getUriBuilder</B>()</PRE>
<DL>
<DD>Get the <CODE>UriBuilder</CODE> associated with this resource. All
 modifications to the builder affect the uri of the resource
<P>
<DD><DL>

<DT><B>Returns:</B><DD>the <CODE>UriBuilder</CODE> associated with this resource</DL>
</DD>
</DL>
<HR>

<A NAME="uri(java.net.URI)"><!-- --></A><H3>
uri</H3>
<PRE>
<A HREF="../../../../org/apache/wink/client/Resource.html" title="interface in org.apache.wink.client">Resource</A> <B>uri</B>(java.net.URI&nbsp;uri)</PRE>
<DL>
<DD>Set the uri of this resource and create a new UriBuilder
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>uri</CODE> - the new uri for this resource
<DT><B>Returns:</B><DD>this resource instance</DL>
</DD>
</DL>
<HR>

<A NAME="uri(java.lang.String)"><!-- --></A><H3>
uri</H3>
<PRE>
<A HREF="../../../../org/apache/wink/client/Resource.html" title="interface in org.apache.wink.client">Resource</A> <B>uri</B>(java.lang.String&nbsp;uri)</PRE>
<DL>
<DD>Set the uri of this resource and create a new UriBuilder
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>uri</CODE> - the new uri for this resource
<DT><B>Returns:</B><DD>this resource instance</DL>
</DD>
</DL>
<HR>

<A NAME="invoke(java.lang.String, java.lang.Class, java.lang.Object)"><!-- --></A><H3>
invoke</H3>
<PRE>
&lt;T&gt; T <B>invoke</B>(java.lang.String&nbsp;method,
             java.lang.Class&lt;T&gt;&nbsp;responseEntity,
             java.lang.Object&nbsp;requestEntity)</PRE>
<DL>
<DD>Invoke a request to the uri associated with the resource, and with any
 headers and attributes set on the resource. If the response code
 represents an error code, then a <A HREF="../../../../org/apache/wink/client/ClientWebException.html" title="class in org.apache.wink.client"><CODE>ClientWebException</CODE></A> is thrown.
<P>
<DD><DL>
<DT><B>Type Parameters:</B><DD><CODE>T</CODE> - the type of response entity to return<DT><B>Parameters:</B><DD><CODE>method</CODE> - the http request method<DD><CODE>responseEntity</CODE> - the class of the response entity to return<DD><CODE>requestEntity</CODE> - the request entity for methods that can send an
            entity (PUT, POST)
<DT><B>Returns:</B><DD>an instance of the response entity as specified by the response
         entity type
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../../org/apache/wink/client/ClientWebException.html" title="class in org.apache.wink.client">ClientWebException</A></CODE> - if the response code represents an error code</DL>
</DD>
</DL>
<HR>

<A NAME="invoke(java.lang.String, org.apache.wink.client.EntityType, java.lang.Object)"><!-- --></A><H3>
invoke</H3>
<PRE>
&lt;T&gt; T <B>invoke</B>(java.lang.String&nbsp;method,
             <A HREF="../../../../org/apache/wink/client/EntityType.html" title="class in org.apache.wink.client">EntityType</A>&lt;T&gt;&nbsp;responseEntity,
             java.lang.Object&nbsp;requestEntity)</PRE>
<DL>
<DD>Invoke a request to the uri associated with the resource, and with any
 headers and attributes set on the resource. If the response code
 represents an error code, then a <A HREF="../../../../org/apache/wink/client/ClientWebException.html" title="class in org.apache.wink.client"><CODE>ClientWebException</CODE></A> is thrown.
<P>
<DD><DL>
<DT><B>Type Parameters:</B><DD><CODE>T</CODE> - the type of response entity to return<DT><B>Parameters:</B><DD><CODE>method</CODE> - the http request method<DD><CODE>responseEntity</CODE> - an instance of <A HREF="../../../../org/apache/wink/client/EntityType.html" title="class in org.apache.wink.client"><CODE>EntityType</CODE></A> specifying the
            response entity to return<DD><CODE>requestEntity</CODE> - the request entity for methods that can send an
            entity (PUT, POST)
<DT><B>Returns:</B><DD>an instance of the response entity as specified by the response
         entity type
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../../org/apache/wink/client/ClientWebException.html" title="class in org.apache.wink.client">ClientWebException</A></CODE> - if the response code represents an error code</DL>
</DD>
</DL>
<HR>

<A NAME="head()"><!-- --></A><H3>
head</H3>
<PRE>
<A HREF="../../../../org/apache/wink/client/ClientResponse.html" title="interface in org.apache.wink.client">ClientResponse</A> <B>head</B>()</PRE>
<DL>
<DD>Invoke the HEAD method
<P>
<DD><DL>

<DT><B>Returns:</B><DD>the ClientResponse for the invocation</DL>
</DD>
</DL>
<HR>

<A NAME="options()"><!-- --></A><H3>
options</H3>
<PRE>
<A HREF="../../../../org/apache/wink/client/ClientResponse.html" title="interface in org.apache.wink.client">ClientResponse</A> <B>options</B>()</PRE>
<DL>
<DD>Invoke the OPTIONS method
<P>
<DD><DL>

<DT><B>Returns:</B><DD>the ClientResponse for the invocation</DL>
</DD>
</DL>
<HR>

<A NAME="get(java.lang.Class)"><!-- --></A><H3>
get</H3>
<PRE>
&lt;T&gt; T <B>get</B>(java.lang.Class&lt;T&gt;&nbsp;responseEntity)</PRE>
<DL>
<DD>Invoke the GET method
<P>
<DD><DL>
<DT><B>Type Parameters:</B><DD><CODE>T</CODE> - type of response entity<DT><B>Parameters:</B><DD><CODE>responseEntity</CODE> - response entity class
<DT><B>Returns:</B><DD>an instance of the response entity as specified by the response
         entity type
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../../org/apache/wink/client/ClientWebException.html" title="class in org.apache.wink.client">ClientWebException</A></CODE> - if the response code represents an error code</DL>
</DD>
</DL>
<HR>

<A NAME="get(org.apache.wink.client.EntityType)"><!-- --></A><H3>
get</H3>
<PRE>
&lt;T&gt; T <B>get</B>(<A HREF="../../../../org/apache/wink/client/EntityType.html" title="class in org.apache.wink.client">EntityType</A>&lt;T&gt;&nbsp;responseEntity)</PRE>
<DL>
<DD>Invoke the GET method
<P>
<DD><DL>
<DT><B>Type Parameters:</B><DD><CODE>T</CODE> - type of response entity<DT><B>Parameters:</B><DD><CODE>responseEntity</CODE> - an instance of <A HREF="../../../../org/apache/wink/client/EntityType.html" title="class in org.apache.wink.client"><CODE>EntityType</CODE></A> specifying the
            response entity to return
<DT><B>Returns:</B><DD>an instance of the response entity as specified by the response
         entity type
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../../org/apache/wink/client/ClientWebException.html" title="class in org.apache.wink.client">ClientWebException</A></CODE> - if the response code represents an error code</DL>
</DD>
</DL>
<HR>

<A NAME="get()"><!-- --></A><H3>
get</H3>
<PRE>
<A HREF="../../../../org/apache/wink/client/ClientResponse.html" title="interface in org.apache.wink.client">ClientResponse</A> <B>get</B>()</PRE>
<DL>
<DD>Invoke the GET method
<P>
<DD><DL>

<DT><B>Returns:</B><DD>the ClientResponse for the invocation</DL>
</DD>
</DL>
<HR>

<A NAME="post(java.lang.Class, java.lang.Object)"><!-- --></A><H3>
post</H3>
<PRE>
&lt;T&gt; T <B>post</B>(java.lang.Class&lt;T&gt;&nbsp;responseEntity,
           java.lang.Object&nbsp;requestEntity)</PRE>
<DL>
<DD>Invoke the POST method
<P>
<DD><DL>
<DT><B>Type Parameters:</B><DD><CODE>T</CODE> - type of response entity<DT><B>Parameters:</B><DD><CODE>responseEntity</CODE> - response entity class<DD><CODE>requestEntity</CODE> - request entity to send
<DT><B>Returns:</B><DD>an instance of the response entity as specified by the response
         entity type
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../../org/apache/wink/client/ClientWebException.html" title="class in org.apache.wink.client">ClientWebException</A></CODE> - if the response code represents an error code</DL>
</DD>
</DL>
<HR>

<A NAME="post(org.apache.wink.client.EntityType, java.lang.Object)"><!-- --></A><H3>
post</H3>
<PRE>
&lt;T&gt; T <B>post</B>(<A HREF="../../../../org/apache/wink/client/EntityType.html" title="class in org.apache.wink.client">EntityType</A>&lt;T&gt;&nbsp;responseEntity,
           java.lang.Object&nbsp;requestEntity)</PRE>
<DL>
<DD>Invoke the POST method
<P>
<DD><DL>
<DT><B>Type Parameters:</B><DD><CODE>T</CODE> - type of response entity<DT><B>Parameters:</B><DD><CODE>responseEntity</CODE> - an instance of <A HREF="../../../../org/apache/wink/client/EntityType.html" title="class in org.apache.wink.client"><CODE>EntityType</CODE></A> specifying the
            response entity to return<DD><CODE>requestEntity</CODE> - request entity to send
<DT><B>Returns:</B><DD>an instance of the response entity as specified by the response
         entity type
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../../org/apache/wink/client/ClientWebException.html" title="class in org.apache.wink.client">ClientWebException</A></CODE> - if the response code represents an error code</DL>
</DD>
</DL>
<HR>

<A NAME="post(java.lang.Object)"><!-- --></A><H3>
post</H3>
<PRE>
<A HREF="../../../../org/apache/wink/client/ClientResponse.html" title="interface in org.apache.wink.client">ClientResponse</A> <B>post</B>(java.lang.Object&nbsp;requestEntity)</PRE>
<DL>
<DD>Invoke the POST method
<P>
<DD><DL>

<DT><B>Returns:</B><DD>the ClientResponse for the invocation</DL>
</DD>
</DL>
<HR>

<A NAME="put(java.lang.Class, java.lang.Object)"><!-- --></A><H3>
put</H3>
<PRE>
&lt;T&gt; T <B>put</B>(java.lang.Class&lt;T&gt;&nbsp;responseEntity,
          java.lang.Object&nbsp;requestEntity)</PRE>
<DL>
<DD>Invoke the PUT method
<P>
<DD><DL>
<DT><B>Type Parameters:</B><DD><CODE>T</CODE> - type of response entity<DT><B>Parameters:</B><DD><CODE>responseEntity</CODE> - response entity class<DD><CODE>requestEntity</CODE> - request entity to send
<DT><B>Returns:</B><DD>an instance of the response entity as specified by the response
         entity type
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../../org/apache/wink/client/ClientWebException.html" title="class in org.apache.wink.client">ClientWebException</A></CODE> - if the response code represents an error code</DL>
</DD>
</DL>
<HR>

<A NAME="put(org.apache.wink.client.EntityType, java.lang.Object)"><!-- --></A><H3>
put</H3>
<PRE>
&lt;T&gt; T <B>put</B>(<A HREF="../../../../org/apache/wink/client/EntityType.html" title="class in org.apache.wink.client">EntityType</A>&lt;T&gt;&nbsp;responseEntity,
          java.lang.Object&nbsp;requestEntity)</PRE>
<DL>
<DD>Invoke the PUT method
<P>
<DD><DL>
<DT><B>Type Parameters:</B><DD><CODE>T</CODE> - type of response entity<DT><B>Parameters:</B><DD><CODE>responseEntity</CODE> - an instance of <A HREF="../../../../org/apache/wink/client/EntityType.html" title="class in org.apache.wink.client"><CODE>EntityType</CODE></A> specifying the
            response entity to return<DD><CODE>requestEntity</CODE> - request entity to send
<DT><B>Returns:</B><DD>an instance of the response entity as specified by the response
         entity type
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../../org/apache/wink/client/ClientWebException.html" title="class in org.apache.wink.client">ClientWebException</A></CODE> - if the response code represents an error code</DL>
</DD>
</DL>
<HR>

<A NAME="put(java.lang.Object)"><!-- --></A><H3>
put</H3>
<PRE>
<A HREF="../../../../org/apache/wink/client/ClientResponse.html" title="interface in org.apache.wink.client">ClientResponse</A> <B>put</B>(java.lang.Object&nbsp;requestEntity)</PRE>
<DL>
<DD>Invoke the PUT method
<P>
<DD><DL>

<DT><B>Returns:</B><DD>the ClientResponse for the invocation</DL>
</DD>
</DL>
<HR>

<A NAME="delete(java.lang.Class)"><!-- --></A><H3>
delete</H3>
<PRE>
&lt;T&gt; T <B>delete</B>(java.lang.Class&lt;T&gt;&nbsp;responseEntity)</PRE>
<DL>
<DD>Invoke the DELETE method
<P>
<DD><DL>
<DT><B>Type Parameters:</B><DD><CODE>T</CODE> - type of response entity<DT><B>Parameters:</B><DD><CODE>responseEntity</CODE> - response entity class
<DT><B>Returns:</B><DD>an instance of the response entity as specified by the response
         entity type
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../../org/apache/wink/client/ClientWebException.html" title="class in org.apache.wink.client">ClientWebException</A></CODE> - if the response code represents an error code</DL>
</DD>
</DL>
<HR>

<A NAME="delete(org.apache.wink.client.EntityType)"><!-- --></A><H3>
delete</H3>
<PRE>
&lt;T&gt; T <B>delete</B>(<A HREF="../../../../org/apache/wink/client/EntityType.html" title="class in org.apache.wink.client">EntityType</A>&lt;T&gt;&nbsp;responseEntity)</PRE>
<DL>
<DD>Invoke the DELETE method
<P>
<DD><DL>
<DT><B>Type Parameters:</B><DD><CODE>T</CODE> - type of response entity<DT><B>Parameters:</B><DD><CODE>responseEntity</CODE> - an instance of <A HREF="../../../../org/apache/wink/client/EntityType.html" title="class in org.apache.wink.client"><CODE>EntityType</CODE></A> specifying the
            response entity to return
<DT><B>Returns:</B><DD>an instance of the response entity as specified by the response
         entity type
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../../org/apache/wink/client/ClientWebException.html" title="class in org.apache.wink.client">ClientWebException</A></CODE> - if the response code represents an error code</DL>
</DD>
</DL>
<HR>

<A NAME="delete()"><!-- --></A><H3>
delete</H3>
<PRE>
<A HREF="../../../../org/apache/wink/client/ClientResponse.html" title="interface in org.apache.wink.client">ClientResponse</A> <B>delete</B>()</PRE>
<DL>
<DD>Invoke the DELETE method
<P>
<DD><DL>

<DT><B>Returns:</B><DD>the ClientResponse for the invocation</DL>
</DD>
</DL>
<!-- ========= END OF CLASS DATA ========= -->
<HR>


<!-- ======= 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="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/Resource.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="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="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&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;<A HREF="../../../../org/apache/wink/client/MockHttpServer.html" title="class in org.apache.wink.client"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../../../org/apache/wink/client/RestClient.html" title="class in org.apache.wink.client"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../../../../index.html?org/apache/wink/client/Resource.html" target="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="Resource.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>
<TR>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_bottom"></A>
<!-- ======== END OF BOTTOM NAVBAR ======= -->

<HR>
Copyright &#169; 2009 <a href="http://www.apache.org/">The Apache Software Foundation</a>. All Rights Reserved.
</BODY>
</HTML>
