1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 2 <!--NewPage--> 3 <HTML> 4 <HEAD> 5 <!-- Generated by javadoc (build 1.5.0_16) on Mon Oct 12 16:11:19 PDT 2009 --> 6 <TITLE> 7 Provider 8 </TITLE> 9 10 <META NAME="keywords" CONTENT="javax.inject.Provider interface"> 11 12 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../stylesheet.css" TITLE="Style"> 13 14 <SCRIPT type="text/javascript"> 15 function windowTitle() 16 { 17 parent.document.title="Provider"; 18 } 19 </SCRIPT> 20 <NOSCRIPT> 21 </NOSCRIPT> 22 23 </HEAD> 24 25 <BODY BGCOLOR="white" onload="windowTitle();"> 26 27 28 <!-- ========= START OF TOP NAVBAR ======= --> 29 <A NAME="navbar_top"><!-- --></A> 30 <A HREF="#skip-navbar_top" title="Skip navigation links"></A> 31 <TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY=""> 32 <TR> 33 <TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> 34 <A NAME="navbar_top_firstrow"><!-- --></A> 35 <TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY=""> 36 <TR ALIGN="center" VALIGN="top"> 37 <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../javax/inject/package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD> 38 <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD> 39 <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD> 40 <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD> 41 <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD> 42 <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD> 43 </TR> 44 </TABLE> 45 </TD> 46 <TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM> 47 </EM> 48 </TD> 49 </TR> 50 51 <TR> 52 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2"> 53 <A HREF="../../javax/inject/Named.html" title="annotation in javax.inject"><B>PREV CLASS</B></A> 54 <A HREF="../../javax/inject/Qualifier.html" title="annotation in javax.inject"><B>NEXT CLASS</B></A></FONT></TD> 55 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2"> 56 <A HREF="../../index.html?javax/inject/Provider.html" target="_top"><B>FRAMES</B></A> 57 <A HREF="Provider.html" target="_top"><B>NO FRAMES</B></A> 58 <SCRIPT type="text/javascript"> 59 <!-- 60 if(window==top) { 61 document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>'); 62 } 63 //--> 64 </SCRIPT> 65 <NOSCRIPT> 66 <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A> 67 </NOSCRIPT> 68 69 70 </FONT></TD> 71 </TR> 72 <TR> 73 <TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2"> 74 SUMMARY: NESTED | FIELD | CONSTR | <A HREF="#method_summary">METHOD</A></FONT></TD> 75 <TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2"> 76 DETAIL: FIELD | CONSTR | <A HREF="#method_detail">METHOD</A></FONT></TD> 77 </TR> 78 </TABLE> 79 <A NAME="skip-navbar_top"></A> 80 <!-- ========= END OF TOP NAVBAR ========= --> 81 82 <HR> 83 <!-- ======== START OF CLASS DATA ======== --> 84 <H2> 85 <FONT SIZE="-1"> 86 javax.inject</FONT> 87 <BR> 88 Interface Provider<T></H2> 89 <HR> 90 <DL> 91 <DT><PRE>public interface <B>Provider<T></B></DL> 92 </PRE> 93 94 <P> 95 Provides instances of <code>T</code>. Typically implemented by an injector. For 96 any type <code>T</code> that can be injected, you can also inject 97 <code>Provider<T></code>. Compared to injecting <code>T</code> directly, injecting 98 <code>Provider<T></code> enables: 99 100 <ul> 101 <li>retrieving multiple instances.</li> 102 <li>lazy or optional retrieval of an instance.</li> 103 <li>breaking circular dependencies.</li> 104 <li>abstracting scope so you can look up an instance in a smaller scope 105 from an instance in a containing scope.</li> 106 </ul> 107 108 <p>For example: 109 110 <pre> 111 class Car { 112 @Inject Car(Provider<Seat> seatProvider) { 113 Seat driver = seatProvider.get(); 114 Seat passenger = seatProvider.get(); 115 ... 116 } 117 }</pre> 118 <P> 119 120 <P> 121 <HR> 122 123 <P> 124 125 <!-- ========== METHOD SUMMARY =========== --> 126 127 <A NAME="method_summary"><!-- --></A> 128 <TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY=""> 129 <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor"> 130 <TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2"> 131 <B>Method Summary</B></FONT></TH> 132 </TR> 133 <TR BGCOLOR="white" CLASS="TableRowColor"> 134 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"> 135 <CODE> <A HREF="../../javax/inject/Provider.html" title="type parameter in Provider">T</A></CODE></FONT></TD> 136 <TD><CODE><B><A HREF="../../javax/inject/Provider.html#get()">get</A></B>()</CODE> 137 138 <BR> 139 Provides a fully-constructed and injected instance of <code>T</code>.</TD> 140 </TR> 141 </TABLE> 142 143 <P> 144 145 <!-- ============ METHOD DETAIL ========== --> 146 147 <A NAME="method_detail"><!-- --></A> 148 <TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY=""> 149 <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor"> 150 <TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2"> 151 <B>Method Detail</B></FONT></TH> 152 </TR> 153 </TABLE> 154 155 <A NAME="get()"><!-- --></A><H3> 156 get</H3> 157 <PRE> 158 <A HREF="../../javax/inject/Provider.html" title="type parameter in Provider">T</A> <B>get</B>()</PRE> 159 <DL> 160 <DD>Provides a fully-constructed and injected instance of <code>T</code>. 161 <P> 162 <DD><DL> 163 164 <DT><B>Throws:</B> 165 <DD><CODE>java.lang.RuntimeException</CODE> - if the injector encounters an error while 166 providing an instance. For example, if an injectable member on 167 <code>T</code> throws an exception, the injector may wrap the exception 168 and throw it to the caller of <code>get()</code>. Callers should not try 169 to handle such exceptions as the behavior may vary across injector 170 implementations and even different configurations of the same injector.</DL> 171 </DD> 172 </DL> 173 <!-- ========= END OF CLASS DATA ========= --> 174 <HR> 175 176 177 <!-- ======= START OF BOTTOM NAVBAR ====== --> 178 <A NAME="navbar_bottom"><!-- --></A> 179 <A HREF="#skip-navbar_bottom" title="Skip navigation links"></A> 180 <TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY=""> 181 <TR> 182 <TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> 183 <A NAME="navbar_bottom_firstrow"><!-- --></A> 184 <TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY=""> 185 <TR ALIGN="center" VALIGN="top"> 186 <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../javax/inject/package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD> 187 <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD> 188 <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD> 189 <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD> 190 <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD> 191 <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD> 192 </TR> 193 </TABLE> 194 </TD> 195 <TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM> 196 </EM> 197 </TD> 198 </TR> 199 200 <TR> 201 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2"> 202 <A HREF="../../javax/inject/Named.html" title="annotation in javax.inject"><B>PREV CLASS</B></A> 203 <A HREF="../../javax/inject/Qualifier.html" title="annotation in javax.inject"><B>NEXT CLASS</B></A></FONT></TD> 204 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2"> 205 <A HREF="../../index.html?javax/inject/Provider.html" target="_top"><B>FRAMES</B></A> 206 <A HREF="Provider.html" target="_top"><B>NO FRAMES</B></A> 207 <SCRIPT type="text/javascript"> 208 <!-- 209 if(window==top) { 210 document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>'); 211 } 212 //--> 213 </SCRIPT> 214 <NOSCRIPT> 215 <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A> 216 </NOSCRIPT> 217 218 219 </FONT></TD> 220 </TR> 221 <TR> 222 <TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2"> 223 SUMMARY: NESTED | FIELD | CONSTR | <A HREF="#method_summary">METHOD</A></FONT></TD> 224 <TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2"> 225 DETAIL: FIELD | CONSTR | <A HREF="#method_detail">METHOD</A></FONT></TD> 226 </TR> 227 </TABLE> 228 <A NAME="skip-navbar_bottom"></A> 229 <!-- ======== END OF BOTTOM NAVBAR ======= --> 230 231 <HR> 232 <font size='-1'>Copyright (C) 2009 <a href='http://code.google.com/p/atinject/'>The JSR-330 Expert Group</a>. Licensed under the <a href='http://www.apache.org/licenses/LICENSE-2.0'>Apache License</a>, Version 2.0.</font> 233 </BODY> 234 </HTML> 235