54
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
55
<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
58
ProviderWithExtensionVisitor
64
<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
65
<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
66
<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
67
<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
68
<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
69
<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
70
<script type="text/javascript">
71
setToRoot("../../../../", "../../../../../javadoc/assets/");
73
<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
74
<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
75
<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
77
<style type="text/css">
78
html,body{overflow:auto;}
79
#body-content{position:relative; top:0;}
80
#doc-content{overflow:visible;border-left:3px solid #666;}
82
#side-nav .toggle-list ul {display:block;}
83
#resize-packages-nav{border-bottom:3px solid #666;}
88
<body class="Guice_3.0">
93
<span id="masthead-title">Guice</span>
96
<div id="headerRight">
100
<form accept-charset="utf-8" class="gsc-search-box"
101
onsubmit="return submit_search()">
102
<table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
104
<td class="gsc-input">
105
<input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
106
title="search developer docs" name="q"
107
value="search developer docs"
108
onFocus="search_focus_changed(this, true)"
109
onBlur="search_focus_changed(this, false)"
110
onkeydown="return search_changed(event, true, '../../../../')"
111
onkeyup="return search_changed(event, false, '../../../../')" />
112
<div id="search_filtered_div" class="no-display">
113
<table id="search_filtered" cellspacing=0>
117
<td class="gsc-search-button">
118
<input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
120
<td class="gsc-clear-button">
121
<div title="clear results" class="gsc-clear-button"> </div>
126
</div><!-- searchForm -->
127
</div><!-- search -->
130
<div id="api-level-toggle">
131
<input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
132
<label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
133
<select id="apiLevelSelector">
134
<!-- option elements added by buildApiLevelSelector() -->
138
var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
140
var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
141
buildApiLevelSelector();
142
addLoadEvent(changeApiLevel);
148
</div><!-- header -->
151
<div class="g-section g-tpl-240" id="body-content">
152
<div class="g-unit g-first side-nav-resizable" id="side-nav">
154
<div id="nav-panels">
155
<div id="resize-packages-nav">
156
<div id="packages-nav">
157
<div id="index-links"><nobr>
158
<a href="../../../../packages.html" >Package Index</a> |
159
<a href="../../../../classes.html" >Class Index</a></nobr>
163
<li class="api apilevel-Guice_1.0">
164
<a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
165
<li class="api apilevel-Guice_2.0">
166
<a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
167
<li class="api apilevel-Guice_1.0">
168
<a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
169
<li class="api apilevel-Guice_3.0">
170
<a href="../../../../com/google/inject/grapher/package-summary.html">com.google.inject.grapher</a></li>
171
<li class="api apilevel-Guice_3.0">
172
<a href="../../../../com/google/inject/grapher/graphviz/package-summary.html">com.google.inject.grapher.graphviz</a></li>
173
<li class="api apilevel-Guice_1.0">
174
<a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
175
<li class="api apilevel-Guice_1.0">
176
<a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
177
<li class="api apilevel-Guice_2.0">
178
<a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
179
<li class="api apilevel-Guice_1.0">
180
<a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
181
<li class="api apilevel-Guice_3.0">
182
<a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
183
<li class="api apilevel-Guice_3.0">
184
<a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
185
<li class="api apilevel-Guice_3.0">
186
<a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
187
<li class="api apilevel-Guice_1.0">
188
<a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
189
<li class="selected api apilevel-Guice_1.0">
190
<a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
191
<li class="api apilevel-Guice_2.0">
192
<a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
193
<li class="api apilevel-Guice_2.0">
194
<a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
195
<li class="api apilevel-Guice_1.0">
196
<a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
197
<li class="api apilevel-Guice_2.0">
198
<a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
200
</div> <!-- end packages -->
201
</div> <!-- end resize-packages -->
202
<div id="classes-nav">
205
<li><h2>Interfaces</h2>
207
<li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingScopingVisitor.html">BindingScopingVisitor</a><V></li>
208
<li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a><T, V></li>
209
<li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConstructorBinding.html">ConstructorBinding</a><T></li>
210
<li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ConvertedConstantBinding.html">ConvertedConstantBinding</a><T></li>
211
<li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Element.html">Element</a></li>
212
<li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ElementVisitor.html">ElementVisitor</a><V></li>
213
<li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ExposedBinding.html">ExposedBinding</a><T></li>
214
<li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/HasDependencies.html">HasDependencies</a></li>
215
<li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionListener.html">InjectionListener</a><I></li>
216
<li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InstanceBinding.html">InstanceBinding</a><T></li>
217
<li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/LinkedKeyBinding.html">LinkedKeyBinding</a><T></li>
218
<li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/PrivateElements.html">PrivateElements</a></li>
219
<li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderBinding.html">ProviderBinding</a><T extends <a href="../../../../com/google/inject/Provider.html">Provider</a><?>></li>
220
<li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderInstanceBinding.html">ProviderInstanceBinding</a><T></li>
221
<li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderKeyBinding.html">ProviderKeyBinding</a><T></li>
222
<li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderWithDependencies.html">ProviderWithDependencies</a><T></li>
223
<li class="selected api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/ProviderWithExtensionVisitor.html">ProviderWithExtensionVisitor</a><T></li>
224
<li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverter.html">TypeConverter</a></li>
225
<li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeEncounter.html">TypeEncounter</a><I></li>
226
<li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListener.html">TypeListener</a></li>
227
<li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/UntargettedBinding.html">UntargettedBinding</a><T></li>
233
<li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingScopingVisitor.html">DefaultBindingScopingVisitor</a><V></li>
234
<li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultBindingTargetVisitor.html">DefaultBindingTargetVisitor</a><T, V></li>
235
<li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/DefaultElementVisitor.html">DefaultElementVisitor</a><V></li>
236
<li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Dependency.html">Dependency</a><T></li>
237
<li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/DisableCircularProxiesOption.html">DisableCircularProxiesOption</a></li>
238
<li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/Elements.html">Elements</a></li>
239
<li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionPoint.html">InjectionPoint</a></li>
240
<li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InjectionRequest.html">InjectionRequest</a><T></li>
241
<li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/InterceptorBinding.html">InterceptorBinding</a></li>
242
<li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/MembersInjectorLookup.html">MembersInjectorLookup</a><T></li>
243
<li class="api apilevel-Guice_1.0"><a href="../../../../com/google/inject/spi/Message.html">Message</a></li>
244
<li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ProviderLookup.html">ProviderLookup</a><T></li>
245
<li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/RequireExplicitBindingsOption.html">RequireExplicitBindingsOption</a></li>
246
<li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/ScopeBinding.html">ScopeBinding</a></li>
247
<li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/StaticInjectionRequest.html">StaticInjectionRequest</a></li>
248
<li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeConverterBinding.html">TypeConverterBinding</a></li>
249
<li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/spi/TypeListenerBinding.html">TypeListenerBinding</a></li>
253
<li><h2>Annotations</h2>
255
<li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/spi/Toolable.html">Toolable</a></li>
262
</div><!-- end classes -->
263
</div><!-- end nav-panels -->
264
<div id="nav-tree" style="display:none">
265
<div id="index-links"><nobr>
266
<a href="../../../../packages.html" >Package Index</a> |
267
<a href="../../../../classes.html" >Class Index</a></nobr>
269
</div><!-- end nav-tree -->
270
</div><!-- end swapper -->
271
</div> <!-- end side-nav -->
274
$("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
276
if ($("#nav-tree").is(':visible')) {
277
init_default_navtree("../../../../");
279
addLoadEvent(function() {
280
scrollIntoView("packages-nav");
281
scrollIntoView("classes-nav");
284
$("#swapper").css({borderBottom:"2px solid #aaa"});
286
swapNav(); // tree view should be used on mobile
292
<div class="g-unit" id="doc-content">
294
<div id="api-info-block">
313
<div class="sum-details-links">
327
<a href="#pubmethods">Methods</a>
332
| <a href="#inhmethods">Inherited Methods</a>
334
| <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
336
</div><!-- end sum-details-links -->
337
<div class="api-level">
340
Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
347
</div><!-- end api-info-block -->
350
<!-- ======== START OF CLASS DATA ======== -->
358
<h1>ProviderWithExtensionVisitor</h1>
366
<a href="../../../../com/google/inject/Provider.html">Provider</a><T>
372
</div><!-- end header -->
374
<div id="naMessage"></div>
376
<div id="jd-content" class="api apilevel-Guice_3.0">
377
<table class="jd-inheritance-table">
382
<td colspan="1" class="jd-inheritance-class-cell">com.google.inject.spi.ProviderWithExtensionVisitor<T></td>
394
<div class="jd-descr">
397
<h2>Class Overview</h2>
398
<p>A Provider that is part of an extension which supports a custom
399
BindingTargetVisitor.
401
When an extension binds a provider instance, the provider can implement this
402
interface to allow users using the
403
<code><a href="../../../../com/google/inject/Binding.html#acceptTargetVisitor(com.google.inject.spi.BindingTargetVisitor<? super T, V>)">acceptTargetVisitor(BindingTargetVisitor)</a></code> method to visit a
404
custom visitor designed for that extension. A typical implementation within
405
the extension would look like
407
<V, B> V acceptExtensionVisitor(BindingTargetVisitor<B, V> visitor, ProviderInstanceBinding<? extends B> binding) {
408
if(visitor instanceof MyCustomExtensionVisitor) {
409
return ((MyCustomExtensionVisitor<B, V>)visitor).visitCustomExtension(customProperties, binding);
411
return visitor.visit(binding);
414
'MyCustomExtensionVisitor' in the example above would be an interface the
415
extension provides that users can implement in order to be notified of custom
416
extension information. These visitor interfaces must extend from
417
BindingTargetVisitor.</p>
423
</div><!-- jd-descr -->
440
<div class="jd-descr">
471
<!-- ========== METHOD SUMMARY =========== -->
472
<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
477
<tr class="alt-color api apilevel-Guice_3.0" >
478
<td class="jd-typecol"><nobr>
486
<td class="jd-linkcol" width="100%"><nobr>
487
<span class="sympad"><a href="../../../../com/google/inject/spi/ProviderWithExtensionVisitor.html#acceptExtensionVisitor(com.google.inject.spi.BindingTargetVisitor<B, V>, com.google.inject.spi.ProviderInstanceBinding<? extends B>)">acceptExtensionVisitor</a></span>(<a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a><B, V> visitor, <a href="../../../../com/google/inject/spi/ProviderInstanceBinding.html">ProviderInstanceBinding</a><? extends B> binding)</nobr>
489
<div class="jd-descrdiv">Instructs the extension determine if the visitor is an instance of a custom
490
extension visitor, and if so, visit it using that method.</div>
504
<!-- ========== METHOD SUMMARY =========== -->
505
<table id="inhmethods" class="jd-sumtable"><tr><th>
506
<a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
507
<div style="clear:left;">Inherited Methods</div></th></tr>
510
<tr class="api apilevel-" >
512
<a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.Provider" class="jd-expando-trigger closed"
513
><img id="inherited-methods-com.google.inject.Provider-trigger"
514
src="../../../../../javadoc/assets/images/triangle-closed.png"
515
class="jd-expando-trigger-img" /></a>
518
<a href="../../../../com/google/inject/Provider.html">com.google.inject.Provider</a>
520
<div id="inherited-methods-com.google.inject.Provider">
521
<div id="inherited-methods-com.google.inject.Provider-list"
522
class="jd-inheritedlinks">
524
<div id="inherited-methods-com.google.inject.Provider-summary" style="display: none;">
525
<table class="jd-sumtable-expando">
530
<tr class="alt-color api apilevel-Guice_1.0" >
531
<td class="jd-typecol"><nobr>
539
<td class="jd-linkcol" width="100%"><nobr>
540
<span class="sympad"><a href="../../../../com/google/inject/Provider.html#get()">get</a></span>()</nobr>
542
<div class="jd-descrdiv">Provides an instance of <code>T</code>.</div>
554
<tr class="api apilevel-" >
556
<a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-javax.inject.Provider" class="jd-expando-trigger closed"
557
><img id="inherited-methods-javax.inject.Provider-trigger"
558
src="../../../../../javadoc/assets/images/triangle-closed.png"
559
class="jd-expando-trigger-img" /></a>
562
javax.inject.Provider
564
<div id="inherited-methods-javax.inject.Provider">
565
<div id="inherited-methods-javax.inject.Provider-list"
566
class="jd-inheritedlinks">
568
<div id="inherited-methods-javax.inject.Provider-summary" style="display: none;">
569
<table class="jd-sumtable-expando">
574
<tr class="alt-color api apilevel-" >
575
<td class="jd-typecol"><nobr>
583
<td class="jd-linkcol" width="100%"><nobr>
584
<span class="sympad">get</span>()</nobr>
598
</div><!-- jd-descr (summary) -->
609
<!-- XML Attributes -->
621
<!-- Public ctors -->
625
<!-- ========= CONSTRUCTOR DETAIL ======== -->
626
<!-- Protected ctors -->
630
<!-- ========= METHOD DETAIL ======== -->
631
<!-- Public methdos -->
633
<h2>Public Methods</h2>
637
<A NAME="acceptExtensionVisitor(com.google.inject.spi.BindingTargetVisitor<B, V>, com.google.inject.spi.ProviderInstanceBinding<? extends B>)"></A>
639
<div class="jd-details api apilevel-Guice_3.0">
640
<h4 class="jd-details-title">
641
<span class="normal">
649
<span class="sympad">acceptExtensionVisitor</span>
650
<span class="normal">(<a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a><B, V> visitor, <a href="../../../../com/google/inject/spi/ProviderInstanceBinding.html">ProviderInstanceBinding</a><? extends B> binding)</span>
652
<div class="api-level">
655
Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>
662
<div class="jd-details-descr">
664
<div class="jd-tagdata jd-tagdescr"><p>Instructs the extension determine if the visitor is an instance of a custom
665
extension visitor, and if so, visit it using that method. If the visitor is
666
not an instance of the custom extension visitor, this method <b>MUST</b>
667
call visitor.visit(binding).
669
Due to issues with generics, the type parameters of this method do not
670
relate to the type of the provider. In practice, the 'B' type will always
671
be a supertype of 'T'.
681
<!-- ========= METHOD DETAIL ======== -->
685
<!-- ========= END OF CLASS DATA ========= -->
686
<A NAME="navbar_top"></A>
689
Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
690
</div> <!-- end footer -->
692
</div> <!-- jd-content -->
694
</div><!-- end doc-content -->
696
</div> <!-- end body-content -->
698
<script type="text/javascript">
699
init(); /* initialize android-developer-docs.js */
1
<html><head><title>Guice has moved to GitHub, redirecting...</title>
2
<meta http-equiv="refresh" content="0;URL='http://google.github.io/guice/api-docs/latest/javadoc/index.html?com/google/inject/spi/ProviderWithExtensionVisitor.html'"/>
3
</head><body><p>Guice has moved to GitHub. Redirecting to <a href="http://google.github.io/guice/api-docs/latest/javadoc/index.html?com/google/inject/spi/ProviderWithExtensionVisitor.html">http://google.github.io/guice/api-docs/latest/javadoc/index.html?com/google/inject/spi/ProviderWithExtensionVisitor.html</a>.</p></body></html>