<!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) on Fri Jun 25 14:13:17 CDT 2010 -->
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<TITLE>
JettisonJAXBProvider (Apache Wink 1.1.1-incubating API)
</TITLE>

<META NAME="date" CONTENT="2010-06-25">

<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="JettisonJAXBProvider (Apache Wink 1.1.1-incubating 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="../../../../../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/JettisonJAXBProvider.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="../../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</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/providers/jettison/JettisonJAXBElementProvider.html" title="class in org.apache.wink.providers.jettison"><B>PREV CLASS</B></A>&nbsp;
&nbsp;NEXT CLASS</FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../../../../../index.html?org/apache/wink/providers/jettison/JettisonJAXBProvider.html" target="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="JettisonJAXBProvider.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;<A HREF="#fields_inherited_from_class_org.apache.wink.common.internal.providers.entity.xml.AbstractJAXBProvider">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&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.providers.jettison</FONT>
<BR>
Class JettisonJAXBProvider</H2>
<PRE>
java.lang.Object
  <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by ">org.apache.wink.common.internal.providers.entity.xml.AbstractJAXBProvider
      <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by "><B>org.apache.wink.providers.jettison.JettisonJAXBProvider</B>
</PRE>
<DL>
<DT><B>All Implemented Interfaces:</B> <DD>javax.ws.rs.ext.MessageBodyReader&lt;java.lang.Object&gt;, javax.ws.rs.ext.MessageBodyWriter&lt;java.lang.Object&gt;</DD>
</DL>
<HR>
<DL>
<DT><PRE><FONT SIZE="-1">@Provider
</FONT>public class <B>JettisonJAXBProvider</B><DT>extends org.apache.wink.common.internal.providers.entity.xml.AbstractJAXBProvider<DT>implements javax.ws.rs.ext.MessageBodyReader&lt;java.lang.Object&gt;, javax.ws.rs.ext.MessageBodyWriter&lt;java.lang.Object&gt;</DL>
</PRE>

<P>
A Jettison JAXB provider. By default, use the MappedNamespace convention.
 Namespace mapping needs to be set if namespaces are used. In Application
 sub-class, use <CODE>Application.getSingletons()</CODE> to add to application.
<P>

<P>
<HR>

<P>
<!-- =========== FIELD SUMMARY =========== -->

<A NAME="field_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>Field Summary</B></FONT></TH>
</TR>
</TABLE>
&nbsp;<A NAME="fields_inherited_from_class_org.apache.wink.common.internal.providers.entity.xml.AbstractJAXBProvider"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Fields inherited from class org.apache.wink.common.internal.providers.entity.xml.AbstractJAXBProvider</B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE>contextCacheOn, providers</CODE></TD>
</TR>
</TABLE>
&nbsp;
<!-- ======== CONSTRUCTOR SUMMARY ======== -->

<A NAME="constructor_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>Constructor Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><B><A HREF="../../../../../org/apache/wink/providers/jettison/JettisonJAXBProvider.html#JettisonJAXBProvider()">JettisonJAXBProvider</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><B><A HREF="../../../../../org/apache/wink/providers/jettison/JettisonJAXBProvider.html#JettisonJAXBProvider(boolean, org.codehaus.jettison.mapped.Configuration, org.codehaus.jettison.mapped.Configuration)">JettisonJAXBProvider</A></B>(boolean&nbsp;isBadgerFishConventionUsed,
                     org.codehaus.jettison.mapped.Configuration&nbsp;reader,
                     org.codehaus.jettison.mapped.Configuration&nbsp;writer)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
</TABLE>
&nbsp;
<!-- ========== 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;long</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/wink/providers/jettison/JettisonJAXBProvider.html#getSize(java.lang.Object, java.lang.Class, java.lang.reflect.Type, java.lang.annotation.Annotation[], javax.ws.rs.core.MediaType)">getSize</A></B>(java.lang.Object&nbsp;t,
        java.lang.Class&lt;?&gt;&nbsp;type,
        java.lang.reflect.Type&nbsp;genericType,
        java.lang.annotation.Annotation[]&nbsp;annotations,
        javax.ws.rs.core.MediaType&nbsp;mediaType)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/wink/providers/jettison/JettisonJAXBProvider.html#isReadable(java.lang.Class, java.lang.reflect.Type, java.lang.annotation.Annotation[], javax.ws.rs.core.MediaType)">isReadable</A></B>(java.lang.Class&lt;?&gt;&nbsp;type,
           java.lang.reflect.Type&nbsp;genericType,
           java.lang.annotation.Annotation[]&nbsp;annotations,
           javax.ws.rs.core.MediaType&nbsp;mediaType)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/wink/providers/jettison/JettisonJAXBProvider.html#isWriteable(java.lang.Class, java.lang.reflect.Type, java.lang.annotation.Annotation[], javax.ws.rs.core.MediaType)">isWriteable</A></B>(java.lang.Class&lt;?&gt;&nbsp;type,
            java.lang.reflect.Type&nbsp;genericType,
            java.lang.annotation.Annotation[]&nbsp;annotations,
            javax.ws.rs.core.MediaType&nbsp;mediaType)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</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/providers/jettison/JettisonJAXBProvider.html#readFrom(java.lang.Class, java.lang.reflect.Type, java.lang.annotation.Annotation[], javax.ws.rs.core.MediaType, javax.ws.rs.core.MultivaluedMap, java.io.InputStream)">readFrom</A></B>(java.lang.Class&lt;java.lang.Object&gt;&nbsp;type,
         java.lang.reflect.Type&nbsp;genericType,
         java.lang.annotation.Annotation[]&nbsp;annotations,
         javax.ws.rs.core.MediaType&nbsp;mediaType,
         javax.ws.rs.core.MultivaluedMap&lt;java.lang.String,java.lang.String&gt;&nbsp;httpHeaders,
         java.io.InputStream&nbsp;entityStream)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/wink/providers/jettison/JettisonJAXBProvider.html#setUseAsReader(boolean)">setUseAsReader</A></B>(boolean&nbsp;isReadable)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/wink/providers/jettison/JettisonJAXBProvider.html#setUseAsWriter(boolean)">setUseAsWriter</A></B>(boolean&nbsp;isWritable)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/wink/providers/jettison/JettisonJAXBProvider.html#writeTo(java.lang.Object, java.lang.Class, java.lang.reflect.Type, java.lang.annotation.Annotation[], javax.ws.rs.core.MediaType, javax.ws.rs.core.MultivaluedMap, java.io.OutputStream)">writeTo</A></B>(java.lang.Object&nbsp;t,
        java.lang.Class&lt;?&gt;&nbsp;type,
        java.lang.reflect.Type&nbsp;genericType,
        java.lang.annotation.Annotation[]&nbsp;annotations,
        javax.ws.rs.core.MediaType&nbsp;mediaType,
        javax.ws.rs.core.MultivaluedMap&lt;java.lang.String,java.lang.Object&gt;&nbsp;httpHeaders,
        java.io.OutputStream&nbsp;entityStream)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
</TABLE>
&nbsp;<A NAME="methods_inherited_from_class_org.apache.wink.common.internal.providers.entity.xml.AbstractJAXBProvider"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Methods inherited from class org.apache.wink.common.internal.providers.entity.xml.AbstractJAXBProvider</B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE>closeXMLStreamReader, getContext, getContext, getEntityToMarshal, getJAXBMarshaller, getJAXBUnmarshaller, getXMLStreamReader, getXMLStreamReader, isJAXBElement, isJAXBObject, isJAXBObject, isSupportedMediaType, releaseJAXBMarshaller, releaseJAXBUnmarshaller</CODE></TD>
</TR>
</TABLE>
&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
</TR>
</TABLE>
&nbsp;
<P>

<!-- ========= CONSTRUCTOR DETAIL ======== -->

<A NAME="constructor_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>Constructor Detail</B></FONT></TH>
</TR>
</TABLE>

<A NAME="JettisonJAXBProvider()"><!-- --></A><H3>
JettisonJAXBProvider</H3>
<PRE>
public <B>JettisonJAXBProvider</B>()</PRE>
<DL>
</DL>
<HR>

<A NAME="JettisonJAXBProvider(boolean, org.codehaus.jettison.mapped.Configuration, org.codehaus.jettison.mapped.Configuration)"><!-- --></A><H3>
JettisonJAXBProvider</H3>
<PRE>
public <B>JettisonJAXBProvider</B>(boolean&nbsp;isBadgerFishConventionUsed,
                            org.codehaus.jettison.mapped.Configuration&nbsp;reader,
                            org.codehaus.jettison.mapped.Configuration&nbsp;writer)</PRE>
<DL>
</DL>

<!-- ============ 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="setUseAsReader(boolean)"><!-- --></A><H3>
setUseAsReader</H3>
<PRE>
public void <B>setUseAsReader</B>(boolean&nbsp;isReadable)</PRE>
<DL>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="setUseAsWriter(boolean)"><!-- --></A><H3>
setUseAsWriter</H3>
<PRE>
public void <B>setUseAsWriter</B>(boolean&nbsp;isWritable)</PRE>
<DL>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="isReadable(java.lang.Class, java.lang.reflect.Type, java.lang.annotation.Annotation[], javax.ws.rs.core.MediaType)"><!-- --></A><H3>
isReadable</H3>
<PRE>
public boolean <B>isReadable</B>(java.lang.Class&lt;?&gt;&nbsp;type,
                          java.lang.reflect.Type&nbsp;genericType,
                          java.lang.annotation.Annotation[]&nbsp;annotations,
                          javax.ws.rs.core.MediaType&nbsp;mediaType)</PRE>
<DL>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE>isReadable</CODE> in interface <CODE>javax.ws.rs.ext.MessageBodyReader&lt;java.lang.Object&gt;</CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="readFrom(java.lang.Class, java.lang.reflect.Type, java.lang.annotation.Annotation[], javax.ws.rs.core.MediaType, javax.ws.rs.core.MultivaluedMap, java.io.InputStream)"><!-- --></A><H3>
readFrom</H3>
<PRE>
public java.lang.Object <B>readFrom</B>(java.lang.Class&lt;java.lang.Object&gt;&nbsp;type,
                                 java.lang.reflect.Type&nbsp;genericType,
                                 java.lang.annotation.Annotation[]&nbsp;annotations,
                                 javax.ws.rs.core.MediaType&nbsp;mediaType,
                                 javax.ws.rs.core.MultivaluedMap&lt;java.lang.String,java.lang.String&gt;&nbsp;httpHeaders,
                                 java.io.InputStream&nbsp;entityStream)
                          throws java.io.IOException,
                                 javax.ws.rs.WebApplicationException</PRE>
<DL>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE>readFrom</CODE> in interface <CODE>javax.ws.rs.ext.MessageBodyReader&lt;java.lang.Object&gt;</CODE></DL>
</DD>
<DD><DL>

<DT><B>Throws:</B>
<DD><CODE>java.io.IOException</CODE>
<DD><CODE>javax.ws.rs.WebApplicationException</CODE></DL>
</DD>
</DL>
<HR>

<A NAME="getSize(java.lang.Object, java.lang.Class, java.lang.reflect.Type, java.lang.annotation.Annotation[], javax.ws.rs.core.MediaType)"><!-- --></A><H3>
getSize</H3>
<PRE>
public long <B>getSize</B>(java.lang.Object&nbsp;t,
                    java.lang.Class&lt;?&gt;&nbsp;type,
                    java.lang.reflect.Type&nbsp;genericType,
                    java.lang.annotation.Annotation[]&nbsp;annotations,
                    javax.ws.rs.core.MediaType&nbsp;mediaType)</PRE>
<DL>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE>getSize</CODE> in interface <CODE>javax.ws.rs.ext.MessageBodyWriter&lt;java.lang.Object&gt;</CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="isWriteable(java.lang.Class, java.lang.reflect.Type, java.lang.annotation.Annotation[], javax.ws.rs.core.MediaType)"><!-- --></A><H3>
isWriteable</H3>
<PRE>
public boolean <B>isWriteable</B>(java.lang.Class&lt;?&gt;&nbsp;type,
                           java.lang.reflect.Type&nbsp;genericType,
                           java.lang.annotation.Annotation[]&nbsp;annotations,
                           javax.ws.rs.core.MediaType&nbsp;mediaType)</PRE>
<DL>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE>isWriteable</CODE> in interface <CODE>javax.ws.rs.ext.MessageBodyWriter&lt;java.lang.Object&gt;</CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="writeTo(java.lang.Object, java.lang.Class, java.lang.reflect.Type, java.lang.annotation.Annotation[], javax.ws.rs.core.MediaType, javax.ws.rs.core.MultivaluedMap, java.io.OutputStream)"><!-- --></A><H3>
writeTo</H3>
<PRE>
public void <B>writeTo</B>(java.lang.Object&nbsp;t,
                    java.lang.Class&lt;?&gt;&nbsp;type,
                    java.lang.reflect.Type&nbsp;genericType,
                    java.lang.annotation.Annotation[]&nbsp;annotations,
                    javax.ws.rs.core.MediaType&nbsp;mediaType,
                    javax.ws.rs.core.MultivaluedMap&lt;java.lang.String,java.lang.Object&gt;&nbsp;httpHeaders,
                    java.io.OutputStream&nbsp;entityStream)
             throws java.io.IOException,
                    javax.ws.rs.WebApplicationException</PRE>
<DL>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE>writeTo</CODE> in interface <CODE>javax.ws.rs.ext.MessageBodyWriter&lt;java.lang.Object&gt;</CODE></DL>
</DD>
<DD><DL>

<DT><B>Throws:</B>
<DD><CODE>java.io.IOException</CODE>
<DD><CODE>javax.ws.rs.WebApplicationException</CODE></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/JettisonJAXBProvider.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="../../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</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/providers/jettison/JettisonJAXBElementProvider.html" title="class in org.apache.wink.providers.jettison"><B>PREV CLASS</B></A>&nbsp;
&nbsp;NEXT CLASS</FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../../../../../index.html?org/apache/wink/providers/jettison/JettisonJAXBProvider.html" target="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="JettisonJAXBProvider.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;<A HREF="#fields_inherited_from_class_org.apache.wink.common.internal.providers.entity.xml.AbstractJAXBProvider">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&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-2010 <a href="http://www.apache.org/">The Apache Software Foundation</a>. All Rights Reserved.
</BODY>
</HTML>
