<!DOCTYPE html>


















































<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.ico" />
<title>

  AssistedInjectTargetVisitor


| Guice

</title>
<link href="../../../../../javadoc/assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
<link href="../../../../../javadoc/assets/customizations.css" rel="stylesheet" type="text/css" />
<script src="../../../../../javadoc/assets/search_autocomplete.js" type="text/javascript"></script>
<script src="../../../../../javadoc/assets/jquery-resizable.min.js" type="text/javascript"></script>
<script src="../../../../../javadoc/assets/android-developer-docs.js" type="text/javascript"></script>
<script src="../../../../../javadoc/assets/prettify.js" type="text/javascript"></script>
<script type="text/javascript">
  setToRoot("../../../../", "../../../../../javadoc/assets/");
</script>
<script src="../../../../../javadoc/assets/android-developer-reference.js" type="text/javascript"></script>
<script src="../../../../../javadoc/assets/navtree_data.js" type="text/javascript"></script>
<script src="../../../../../javadoc/assets/customizations.js" type="text/javascript"></script>
<noscript>
  <style type="text/css">
    html,body{overflow:auto;}
    #body-content{position:relative; top:0;}
    #doc-content{overflow:visible;border-left:3px solid #666;}
    #side-nav{padding:0;}
    #side-nav .toggle-list ul {display:block;}
    #resize-packages-nav{border-bottom:3px solid #666;}
  </style>
</noscript>
</head>

<body class="Guice_3.0">

<div id="header">
    <div id="headerLeft">
    
      <span id="masthead-title">Guice</span>
    
    </div>
    <div id="headerRight">
      
  <div id="search" >
      <div id="searchForm">
          <form accept-charset="utf-8" class="gsc-search-box" 
                onsubmit="return submit_search()">
            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
                <tr>
                  <td class="gsc-input">
                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
                      title="search developer docs" name="q"
                      value="search developer docs"
                      onFocus="search_focus_changed(this, true)"
                      onBlur="search_focus_changed(this, false)"
                      onkeydown="return search_changed(event, true, '../../../../')"
                      onkeyup="return search_changed(event, false, '../../../../')" />
                  <div id="search_filtered_div" class="no-display">
                      <table id="search_filtered" cellspacing=0>
                      </table>
                  </div>
                  </td>
                  <td class="gsc-search-button">
                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
                  </td>
                  <td class="gsc-clear-button">
                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
                  </td>
                </tr></tbody>
              </table>
          </form>
      </div><!-- searchForm -->
  </div><!-- search -->
      
        
  <div id="api-level-toggle">
    <input type="checkbox" id="apiLevelCheckbox" onclick="toggleApiLevelSelector(this)" />
    <label for="apiLevelCheckbox" class="disabled">Filter by API Level: </label>
    <select id="apiLevelSelector">
      <!-- option elements added by buildApiLevelSelector() -->
    </select>
  </div>
  <script>
   var SINCE_DATA = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
    
    var SINCE_LABELS = [ 'Guice_1.0', 'Guice_2.0', 'Guice_3.0' ];
    buildApiLevelSelector();
    addLoadEvent(changeApiLevel);
  </script>


      
    </div>
</div><!-- header -->


  <div class="g-section g-tpl-240" id="body-content">
    <div class="g-unit g-first side-nav-resizable" id="side-nav">
      <div id="swapper">
        <div id="nav-panels">
          <div id="resize-packages-nav">
            <div id="packages-nav">
              <div id="index-links"><nobr>
                <a href="../../../../packages.html"  >Package Index</a> | 
                <a href="../../../../classes.html" >Class Index</a></nobr>
              </div>
              <ul>
                
    <li class="api apilevel-Guice_1.0">
  <a href="../../../../com/google/inject/package-summary.html">com.google.inject</a></li>
    <li class="selected api apilevel-Guice_2.0">
  <a href="../../../../com/google/inject/assistedinject/package-summary.html">com.google.inject.assistedinject</a></li>
    <li class="api apilevel-Guice_1.0">
  <a href="../../../../com/google/inject/binder/package-summary.html">com.google.inject.binder</a></li>
    <li class="api apilevel-Guice_1.0">
  <a href="../../../../com/google/inject/jndi/package-summary.html">com.google.inject.jndi</a></li>
    <li class="api apilevel-Guice_1.0">
  <a href="../../../../com/google/inject/matcher/package-summary.html">com.google.inject.matcher</a></li>
    <li class="api apilevel-Guice_2.0">
  <a href="../../../../com/google/inject/multibindings/package-summary.html">com.google.inject.multibindings</a></li>
    <li class="api apilevel-Guice_1.0">
  <a href="../../../../com/google/inject/name/package-summary.html">com.google.inject.name</a></li>
    <li class="api apilevel-Guice_3.0">
  <a href="../../../../com/google/inject/persist/package-summary.html">com.google.inject.persist</a></li>
    <li class="api apilevel-Guice_3.0">
  <a href="../../../../com/google/inject/persist/finder/package-summary.html">com.google.inject.persist.finder</a></li>
    <li class="api apilevel-Guice_3.0">
  <a href="../../../../com/google/inject/persist/jpa/package-summary.html">com.google.inject.persist.jpa</a></li>
    <li class="api apilevel-Guice_1.0">
  <a href="../../../../com/google/inject/servlet/package-summary.html">com.google.inject.servlet</a></li>
    <li class="api apilevel-Guice_1.0">
  <a href="../../../../com/google/inject/spi/package-summary.html">com.google.inject.spi</a></li>
    <li class="api apilevel-Guice_2.0">
  <a href="../../../../com/google/inject/spring/package-summary.html">com.google.inject.spring</a></li>
    <li class="api apilevel-Guice_2.0">
  <a href="../../../../com/google/inject/throwingproviders/package-summary.html">com.google.inject.throwingproviders</a></li>
    <li class="api apilevel-Guice_1.0">
  <a href="../../../../com/google/inject/tools/jmx/package-summary.html">com.google.inject.tools.jmx</a></li>
    <li class="api apilevel-Guice_2.0">
  <a href="../../../../com/google/inject/util/package-summary.html">com.google.inject.util</a></li>
              </ul><br/>
            </div> <!-- end packages -->
          </div> <!-- end resize-packages -->
          <div id="classes-nav">
            <ul>
              
    <li><h2>Interfaces</h2>
      <ul>
          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/assistedinject/AssistedInjectBinding.html">AssistedInjectBinding</a>&lt;T&gt;</li>
          <li class="selected api apilevel-Guice_3.0"><a href="../../../../com/google/inject/assistedinject/AssistedInjectTargetVisitor.html">AssistedInjectTargetVisitor</a>&lt;T,&nbsp;V&gt;</li>
          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/assistedinject/AssistedMethod.html">AssistedMethod</a></li>
      </ul>
    </li>
              
    <li><h2>Classes</h2>
      <ul>
          <li class="api apilevel-Guice_3.0"><a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a></li>
          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/assistedinject/FactoryProvider.html">FactoryProvider</a>&lt;F&gt;</li>
      </ul>
    </li>
              
    <li><h2>Annotations</h2>
      <ul>
          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/assistedinject/Assisted.html">Assisted</a></li>
          <li class="api apilevel-Guice_2.0"><a href="../../../../com/google/inject/assistedinject/AssistedInject.html">AssistedInject</a></li>
      </ul>
    </li>
              
              
              
            </ul><br/>
          </div><!-- end classes -->
        </div><!-- end nav-panels -->
        <div id="nav-tree" style="display:none">
          <div id="index-links"><nobr>
            <a href="../../../../packages.html"  >Package Index</a> | 
            <a href="../../../../classes.html" >Class Index</a></nobr>
          </div>
        </div><!-- end nav-tree -->
      </div><!-- end swapper -->
    </div> <!-- end side-nav -->
    <script>
      if (!isMobile) {
        $("<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");
        chooseDefaultNav();
        if ($("#nav-tree").is(':visible')) {
          init_default_navtree("../../../../");
        } else {
          addLoadEvent(function() {
            scrollIntoView("packages-nav");
            scrollIntoView("classes-nav");
          });
        }
        $("#swapper").css({borderBottom:"2px solid #aaa"});
      } else {
        swapNav(); // tree view should be used on mobile
      }
    </script>



<div class="g-unit" id="doc-content">

<div id="api-info-block">



  
   
  
  
  
  


<div class="sum-details-links">

Summary:











  <a href="#pubmethods">Methods</a>
  



  &#124; <a href="#inhmethods">Inherited Methods</a>

&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>

</div><!-- end sum-details-links -->
<div class="api-level">
  

  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>


  
  

</div>
</div><!-- end api-info-block -->


<!-- ======== START OF CLASS DATA ======== -->

<div id="jd-header">
    public
     
     
    
    interface
<h1>AssistedInjectTargetVisitor</h1>



  
  
      implements 
      
        <a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a>&lt;T,&nbsp;V&gt; 
      
  
  


</div><!-- end header -->

<div id="naMessage"></div>

<div id="jd-content" class="api apilevel-Guice_3.0">
<table class="jd-inheritance-table">


    <tr>
         	
        <td colspan="1" class="jd-inheritance-class-cell">com.google.inject.assistedinject.AssistedInjectTargetVisitor&lt;T,&nbsp;V&gt;</td>
    </tr>
    

</table>







<div class="jd-descr">


<h2>Class Overview</h2>
<p>A visitor for the AssistedInject extension.
 <p>
 If your <code><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">BindingTargetVisitor</a></code> implements this interface, bindings created by using
 <code><a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a></code> will be visited through this interface.</p>





</div><!-- jd-descr -->
















<div class="jd-descr">


<h2>Summary</h2>



























<!-- ========== METHOD SUMMARY =========== -->
<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>



	 
    <tr class="alt-color api apilevel-Guice_3.0" >
        <td class="jd-typecol"><nobr>
            abstract
            
            
            
            
            V</nobr>
        </td>
        <td class="jd-linkcol" width="100%"><nobr>
        <span class="sympad"><a href="../../../../com/google/inject/assistedinject/AssistedInjectTargetVisitor.html#visit(com.google.inject.assistedinject.AssistedInjectBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/assistedinject/AssistedInjectBinding.html">AssistedInjectBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; assistedInjectBinding)</nobr>
        
        <div class="jd-descrdiv">Visits an <code><a href="../../../../com/google/inject/assistedinject/AssistedInjectBinding.html">AssistedInjectBinding</a></code> created through <code><a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a></code>.</div>
  
  </td></tr>



</table>







<!-- ========== METHOD SUMMARY =========== -->
<table id="inhmethods" class="jd-sumtable"><tr><th>
  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
  <div style="clear:left;">Inherited Methods</div></th></tr>


<tr class="api apilevel-" >
<td colspan="12">
  <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.inject.spi.BindingTargetVisitor" class="jd-expando-trigger closed"
          ><img id="inherited-methods-com.google.inject.spi.BindingTargetVisitor-trigger"
          src="../../../../../javadoc/assets/images/triangle-closed.png"
          class="jd-expando-trigger-img" /></a>
From interface

  <a href="../../../../com/google/inject/spi/BindingTargetVisitor.html">com.google.inject.spi.BindingTargetVisitor</a>

<div id="inherited-methods-com.google.inject.spi.BindingTargetVisitor">
  <div id="inherited-methods-com.google.inject.spi.BindingTargetVisitor-list"
        class="jd-inheritedlinks">
  </div>
  <div id="inherited-methods-com.google.inject.spi.BindingTargetVisitor-summary" style="display: none;">
    <table class="jd-sumtable-expando">
    


	 
    <tr class="alt-color api apilevel-Guice_2.0" >
        <td class="jd-typecol"><nobr>
            abstract
            
            
            
            
            V</nobr>
        </td>
        <td class="jd-linkcol" width="100%"><nobr>
        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html#visit(com.google.inject.spi.ConstructorBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/ConstructorBinding.html">ConstructorBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</nobr>
        
        <div class="jd-descrdiv">Visit a constructor binding.</div>
  
  </td></tr>


	 
    <tr class=" api apilevel-Guice_2.0" >
        <td class="jd-typecol"><nobr>
            abstract
            
            
            
            
            V</nobr>
        </td>
        <td class="jd-linkcol" width="100%"><nobr>
        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html#visit(com.google.inject.spi.ConvertedConstantBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/ConvertedConstantBinding.html">ConvertedConstantBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</nobr>
        
        <div class="jd-descrdiv">Visit a binding created from converting a bound instance to a new type.</div>
  
  </td></tr>


	 
    <tr class="alt-color api apilevel-Guice_2.0" >
        <td class="jd-typecol"><nobr>
            abstract
            
            
            
            
            V</nobr>
        </td>
        <td class="jd-linkcol" width="100%"><nobr>
        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html#visit(com.google.inject.spi.ExposedBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/ExposedBinding.html">ExposedBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</nobr>
        
        <div class="jd-descrdiv">Visit a binding to a key exposed from an enclosed private environment.</div>
  
  </td></tr>


	 
    <tr class=" api apilevel-Guice_2.0" >
        <td class="jd-typecol"><nobr>
            abstract
            
            
            
            
            V</nobr>
        </td>
        <td class="jd-linkcol" width="100%"><nobr>
        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html#visit(com.google.inject.spi.InstanceBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/InstanceBinding.html">InstanceBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</nobr>
        
        <div class="jd-descrdiv">Visit a instance binding.</div>
  
  </td></tr>


	 
    <tr class="alt-color api apilevel-Guice_2.0" >
        <td class="jd-typecol"><nobr>
            abstract
            
            
            
            
            V</nobr>
        </td>
        <td class="jd-linkcol" width="100%"><nobr>
        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html#visit(com.google.inject.spi.LinkedKeyBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/LinkedKeyBinding.html">LinkedKeyBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</nobr>
        
        <div class="jd-descrdiv">Visit a linked key binding.</div>
  
  </td></tr>


	 
    <tr class=" api apilevel-Guice_2.0" >
        <td class="jd-typecol"><nobr>
            abstract
            
            
            
            
            V</nobr>
        </td>
        <td class="jd-linkcol" width="100%"><nobr>
        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html#visit(com.google.inject.spi.ProviderBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/ProviderBinding.html">ProviderBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</nobr>
        
        <div class="jd-descrdiv">Visit a binding to a <code><a href="../../../../com/google/inject/Provider.html">Provider</a></code> that delegates to the binding for the
 provided type.</div>
  
  </td></tr>


	 
    <tr class="alt-color api apilevel-Guice_2.0" >
        <td class="jd-typecol"><nobr>
            abstract
            
            
            
            
            V</nobr>
        </td>
        <td class="jd-linkcol" width="100%"><nobr>
        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html#visit(com.google.inject.spi.ProviderInstanceBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/ProviderInstanceBinding.html">ProviderInstanceBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</nobr>
        
        <div class="jd-descrdiv">Visit a provider instance binding.</div>
  
  </td></tr>


	 
    <tr class=" api apilevel-Guice_2.0" >
        <td class="jd-typecol"><nobr>
            abstract
            
            
            
            
            V</nobr>
        </td>
        <td class="jd-linkcol" width="100%"><nobr>
        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html#visit(com.google.inject.spi.ProviderKeyBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/ProviderKeyBinding.html">ProviderKeyBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</nobr>
        
        <div class="jd-descrdiv">Visit a provider key binding.</div>
  
  </td></tr>


	 
    <tr class="alt-color api apilevel-Guice_2.0" >
        <td class="jd-typecol"><nobr>
            abstract
            
            
            
            
            V</nobr>
        </td>
        <td class="jd-linkcol" width="100%"><nobr>
        <span class="sympad"><a href="../../../../com/google/inject/spi/BindingTargetVisitor.html#visit(com.google.inject.spi.UntargettedBinding<? extends T>)">visit</a></span>(<a href="../../../../com/google/inject/spi/UntargettedBinding.html">UntargettedBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; binding)</nobr>
        
        <div class="jd-descrdiv">Visit an untargetted binding.</div>
  
  </td></tr>


</table>
  </div>
</div>
</td></tr>


</table>


</div><!-- jd-descr (summary) -->

<!-- Details -->








<!-- XML Attributes -->


<!-- Enum Values -->


<!-- Constants -->


<!-- Fields -->


<!-- Public ctors -->



<!-- ========= CONSTRUCTOR DETAIL ======== -->
<!-- Protected ctors -->



<!-- ========= METHOD DETAIL ======== -->
<!-- Public methdos -->

<h2>Public Methods</h2>



<A NAME="visit(com.google.inject.assistedinject.AssistedInjectBinding<? extends T>)"></A>

<div class="jd-details api apilevel-Guice_3.0"> 
    <h4 class="jd-details-title">
      <span class="normal">
        public 
         
         
        abstract 
         
        V
      </span>
      <span class="sympad">visit</span>
      <span class="normal">(<a href="../../../../com/google/inject/assistedinject/AssistedInjectBinding.html">AssistedInjectBinding</a>&lt;?&nbsp;extends&nbsp;T&gt; assistedInjectBinding)</span>
    </h4>
      <div class="api-level">
        <div>

  Since: <a href="../../../../guide/appendix/api-levels.html#levelGuice_3.0">API Level Guice_3.0</a>

</div>
        
  

      </div>
    <div class="jd-details-descr">
      
  <div class="jd-tagdata jd-tagdescr"><p>Visits an <code><a href="../../../../com/google/inject/assistedinject/AssistedInjectBinding.html">AssistedInjectBinding</a></code> created through <code><a href="../../../../com/google/inject/assistedinject/FactoryModuleBuilder.html">FactoryModuleBuilder</a></code>.
</p></div>

    </div>
</div>





<!-- ========= METHOD DETAIL ======== -->



<!-- ========= END OF CLASS DATA ========= -->
<A NAME="navbar_top"></A>

<div id="footer">
Generated by <a href="http://code.google.com/p/doclava/">Doclava</a>.
</div> <!-- end footer -->

</div> <!-- jd-content -->

</div><!-- end doc-content -->

</div> <!-- end body-content --> 

<script type="text/javascript">
init(); /* initialize android-developer-docs.js */
</script>

</body>
</html>
