1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 2<!-- NewPage --> 3<html lang="en"> 4<head> 5<!-- Generated by javadoc (version 1.7.0_25) on Mon Jun 02 17:48:55 PDT 2014 --> 6<meta http-equiv="Content-Type" content="text/html" charset="UTF-8"> 7<title>ResolvableDeserializer (jackson-databind 2.4.0 API)</title> 8<meta name="date" content="2014-06-02"> 9<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style"> 10</head> 11<body> 12<script type="text/javascript"><!-- 13 if (location.href.indexOf('is-external=true') == -1) { 14 parent.document.title="ResolvableDeserializer (jackson-databind 2.4.0 API)"; 15 } 16//--> 17</script> 18<noscript> 19<div>JavaScript is disabled on your browser.</div> 20</noscript> 21<!-- ========= START OF TOP NAVBAR ======= --> 22<div class="topNav"><a name="navbar_top"> 23<!-- --> 24</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow"> 25<!-- --> 26</a> 27<ul class="navList" title="Navigation"> 28<li><a href="../../../../../overview-summary.html">Overview</a></li> 29<li><a href="package-summary.html">Package</a></li> 30<li class="navBarCell1Rev">Class</li> 31<li><a href="class-use/ResolvableDeserializer.html">Use</a></li> 32<li><a href="package-tree.html">Tree</a></li> 33<li><a href="../../../../../deprecated-list.html">Deprecated</a></li> 34<li><a href="../../../../../index-all.html">Index</a></li> 35<li><a href="../../../../../help-doc.html">Help</a></li> 36</ul> 37</div> 38<div class="subNav"> 39<ul class="navList"> 40<li><a href="../../../../../com/fasterxml/jackson/databind/deser/KeyDeserializers.html" title="interface in com.fasterxml.jackson.databind.deser"><span class="strong">Prev Class</span></a></li> 41<li><a href="../../../../../com/fasterxml/jackson/databind/deser/SettableAnyProperty.html" title="class in com.fasterxml.jackson.databind.deser"><span class="strong">Next Class</span></a></li> 42</ul> 43<ul class="navList"> 44<li><a href="../../../../../index.html?com/fasterxml/jackson/databind/deser/ResolvableDeserializer.html" target="_top">Frames</a></li> 45<li><a href="ResolvableDeserializer.html" target="_top">No Frames</a></li> 46</ul> 47<ul class="navList" id="allclasses_navbar_top"> 48<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li> 49</ul> 50<div> 51<script type="text/javascript"><!-- 52 allClassesLink = document.getElementById("allclasses_navbar_top"); 53 if(window==top) { 54 allClassesLink.style.display = "block"; 55 } 56 else { 57 allClassesLink.style.display = "none"; 58 } 59 //--> 60</script> 61</div> 62<div> 63<ul class="subNavList"> 64<li>Summary: </li> 65<li>Nested | </li> 66<li>Field | </li> 67<li>Constr | </li> 68<li><a href="#method_summary">Method</a></li> 69</ul> 70<ul class="subNavList"> 71<li>Detail: </li> 72<li>Field | </li> 73<li>Constr | </li> 74<li><a href="#method_detail">Method</a></li> 75</ul> 76</div> 77<a name="skip-navbar_top"> 78<!-- --> 79</a></div> 80<!-- ========= END OF TOP NAVBAR ========= --> 81<!-- ======== START OF CLASS DATA ======== --> 82<div class="header"> 83<div class="subTitle">com.fasterxml.jackson.databind.deser</div> 84<h2 title="Interface ResolvableDeserializer" class="title">Interface ResolvableDeserializer</h2> 85</div> 86<div class="contentContainer"> 87<div class="description"> 88<ul class="blockList"> 89<li class="blockList"> 90<dl> 91<dt>All Known Implementing Classes:</dt> 92<dd><a href="../../../../../com/fasterxml/jackson/databind/deser/impl/BeanAsArrayBuilderDeserializer.html" title="class in com.fasterxml.jackson.databind.deser.impl">BeanAsArrayBuilderDeserializer</a>, <a href="../../../../../com/fasterxml/jackson/databind/deser/impl/BeanAsArrayDeserializer.html" title="class in com.fasterxml.jackson.databind.deser.impl">BeanAsArrayDeserializer</a>, <a href="../../../../../com/fasterxml/jackson/databind/deser/BeanDeserializer.html" title="class in com.fasterxml.jackson.databind.deser">BeanDeserializer</a>, <a href="../../../../../com/fasterxml/jackson/databind/deser/BeanDeserializerBase.html" title="class in com.fasterxml.jackson.databind.deser">BeanDeserializerBase</a>, <a href="../../../../../com/fasterxml/jackson/databind/deser/BuilderBasedDeserializer.html" title="class in com.fasterxml.jackson.databind.deser">BuilderBasedDeserializer</a>, <a href="../../../../../com/fasterxml/jackson/databind/deser/std/DelegatingDeserializer.html" title="class in com.fasterxml.jackson.databind.deser.std">DelegatingDeserializer</a>, <a href="../../../../../com/fasterxml/jackson/databind/deser/std/MapDeserializer.html" title="class in com.fasterxml.jackson.databind.deser.std">MapDeserializer</a>, <a href="../../../../../com/fasterxml/jackson/databind/deser/std/StdDelegatingDeserializer.html" title="class in com.fasterxml.jackson.databind.deser.std">StdDelegatingDeserializer</a>, <a href="../../../../../com/fasterxml/jackson/databind/deser/std/ThrowableDeserializer.html" title="class in com.fasterxml.jackson.databind.deser.std">ThrowableDeserializer</a>, <a href="../../../../../com/fasterxml/jackson/databind/deser/std/UntypedObjectDeserializer.html" title="class in com.fasterxml.jackson.databind.deser.std">UntypedObjectDeserializer</a></dd> 93</dl> 94<hr> 95<br> 96<pre>public interface <span class="strong">ResolvableDeserializer</span></pre> 97<div class="block">Interface used to indicate deserializers that want to do post-processing 98 after construction but before being returned to caller (and possibly cached) 99 and used. 100 This is typically used to resolve references 101 to other contained types; for example, bean deserializers use this callback 102 to locate deserializers for contained field types. 103 Main reason for using a callback (instead of trying to resolve dependencies 104 immediately) is to make it possible to cleanly handle self-references; 105 otherwise it would be easy to get into infinite recursion. 106<p> 107 Note that <a href="../../../../../com/fasterxml/jackson/databind/deser/ResolvableDeserializer.html#resolve(com.fasterxml.jackson.databind.DeserializationContext)"><code>resolve(com.fasterxml.jackson.databind.DeserializationContext)</code></a> method does NOT allow returning anything 108 (specifically, a new deserializer instance): reason for this is that 109 allowing this would not work with proper handling of cyclic dependencies, 110 which are resolved by two-phase processing, where initially constructed 111 deserializer is added as known deserializer, and only after this 112 resolution is done. Resolution is the part that results in lookups for 113 dependant deserializers, which may include handling references to 114 deserializer itself. 115<p> 116 Note that in cases where deserializer needs both contextualization and 117 resolution -- that is, implements both this interface and <a href="../../../../../com/fasterxml/jackson/databind/deser/ContextualDeserializer.html" title="interface in com.fasterxml.jackson.databind.deser"><code>ContextualDeserializer</code></a> 118 -- resolution via this interface occurs first, and contextual 119 resolution (using <a href="../../../../../com/fasterxml/jackson/databind/deser/ContextualDeserializer.html" title="interface in com.fasterxml.jackson.databind.deser"><code>ContextualDeserializer</code></a>) later on.</div> 120</li> 121</ul> 122</div> 123<div class="summary"> 124<ul class="blockList"> 125<li class="blockList"> 126<!-- ========== METHOD SUMMARY =========== --> 127<ul class="blockList"> 128<li class="blockList"><a name="method_summary"> 129<!-- --> 130</a> 131<h3>Method Summary</h3> 132<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> 133<caption><span>Methods</span><span class="tabEnd"> </span></caption> 134<tr> 135<th class="colFirst" scope="col">Modifier and Type</th> 136<th class="colLast" scope="col">Method and Description</th> 137</tr> 138<tr class="altColor"> 139<td class="colFirst"><code>void</code></td> 140<td class="colLast"><code><strong><a href="../../../../../com/fasterxml/jackson/databind/deser/ResolvableDeserializer.html#resolve(com.fasterxml.jackson.databind.DeserializationContext)">resolve</a></strong>(<a href="../../../../../com/fasterxml/jackson/databind/DeserializationContext.html" title="class in com.fasterxml.jackson.databind">DeserializationContext</a> ctxt)</code> 141<div class="block">Method called after deserializer instance has been constructed 142 (and registered as necessary by provider objects), 143 but before it has returned it to the caller.</div> 144</td> 145</tr> 146</table> 147</li> 148</ul> 149</li> 150</ul> 151</div> 152<div class="details"> 153<ul class="blockList"> 154<li class="blockList"> 155<!-- ============ METHOD DETAIL ========== --> 156<ul class="blockList"> 157<li class="blockList"><a name="method_detail"> 158<!-- --> 159</a> 160<h3>Method Detail</h3> 161<a name="resolve(com.fasterxml.jackson.databind.DeserializationContext)"> 162<!-- --> 163</a> 164<ul class="blockListLast"> 165<li class="blockList"> 166<h4>resolve</h4> 167<pre>void resolve(<a href="../../../../../com/fasterxml/jackson/databind/DeserializationContext.html" title="class in com.fasterxml.jackson.databind">DeserializationContext</a> ctxt) 168 throws <a href="../../../../../com/fasterxml/jackson/databind/JsonMappingException.html" title="class in com.fasterxml.jackson.databind">JsonMappingException</a></pre> 169<div class="block">Method called after deserializer instance has been constructed 170 (and registered as necessary by provider objects), 171 but before it has returned it to the caller. 172 Called object can then resolve its dependencies to other types, 173 including self-references (direct or indirect).</div> 174<dl><dt><span class="strong">Parameters:</span></dt><dd><code>ctxt</code> - Context to use for accessing configuration, resolving 175 secondary deserializers</dd> 176<dt><span class="strong">Throws:</span></dt> 177<dd><code><a href="../../../../../com/fasterxml/jackson/databind/JsonMappingException.html" title="class in com.fasterxml.jackson.databind">JsonMappingException</a></code></dd></dl> 178</li> 179</ul> 180</li> 181</ul> 182</li> 183</ul> 184</div> 185</div> 186<!-- ========= END OF CLASS DATA ========= --> 187<!-- ======= START OF BOTTOM NAVBAR ====== --> 188<div class="bottomNav"><a name="navbar_bottom"> 189<!-- --> 190</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow"> 191<!-- --> 192</a> 193<ul class="navList" title="Navigation"> 194<li><a href="../../../../../overview-summary.html">Overview</a></li> 195<li><a href="package-summary.html">Package</a></li> 196<li class="navBarCell1Rev">Class</li> 197<li><a href="class-use/ResolvableDeserializer.html">Use</a></li> 198<li><a href="package-tree.html">Tree</a></li> 199<li><a href="../../../../../deprecated-list.html">Deprecated</a></li> 200<li><a href="../../../../../index-all.html">Index</a></li> 201<li><a href="../../../../../help-doc.html">Help</a></li> 202</ul> 203</div> 204<div class="subNav"> 205<ul class="navList"> 206<li><a href="../../../../../com/fasterxml/jackson/databind/deser/KeyDeserializers.html" title="interface in com.fasterxml.jackson.databind.deser"><span class="strong">Prev Class</span></a></li> 207<li><a href="../../../../../com/fasterxml/jackson/databind/deser/SettableAnyProperty.html" title="class in com.fasterxml.jackson.databind.deser"><span class="strong">Next Class</span></a></li> 208</ul> 209<ul class="navList"> 210<li><a href="../../../../../index.html?com/fasterxml/jackson/databind/deser/ResolvableDeserializer.html" target="_top">Frames</a></li> 211<li><a href="ResolvableDeserializer.html" target="_top">No Frames</a></li> 212</ul> 213<ul class="navList" id="allclasses_navbar_bottom"> 214<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li> 215</ul> 216<div> 217<script type="text/javascript"><!-- 218 allClassesLink = document.getElementById("allclasses_navbar_bottom"); 219 if(window==top) { 220 allClassesLink.style.display = "block"; 221 } 222 else { 223 allClassesLink.style.display = "none"; 224 } 225 //--> 226</script> 227</div> 228<div> 229<ul class="subNavList"> 230<li>Summary: </li> 231<li>Nested | </li> 232<li>Field | </li> 233<li>Constr | </li> 234<li><a href="#method_summary">Method</a></li> 235</ul> 236<ul class="subNavList"> 237<li>Detail: </li> 238<li>Field | </li> 239<li>Constr | </li> 240<li><a href="#method_detail">Method</a></li> 241</ul> 242</div> 243<a name="skip-navbar_bottom"> 244<!-- --> 245</a></div> 246<!-- ======== END OF BOTTOM NAVBAR ======= --> 247<p class="legalCopy"><small>Copyright © 2014 <a href="http://fasterxml.com/">FasterXML</a>. All Rights Reserved.</small></p> 248</body> 249</html> 250