Rev 156 | Blame | Compare with Previous | Last modification | View Log | RSS feed
<!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.5.0_22) on Wed Jan 06 21:26:37 EST 2010 --><TITLE>GinModule</TITLE><META NAME="keywords" CONTENT="com.google.gwt.inject.client.GinModule interface"><LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style"><SCRIPT type="text/javascript">function windowTitle(){parent.document.title="GinModule";}</SCRIPT><NOSCRIPT></NOSCRIPT></HEAD><BODY BGCOLOR="white" onload="windowTitle();"><!-- ========= 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> </TD><TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD><TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD><TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD><TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD><TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD><TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD></TR></TABLE></TD><TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM></EM></TD></TR><TR><TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2"> <A HREF="../../../../../com/google/gwt/inject/client/Ginjector.html" title="interface in com.google.gwt.inject.client"><B>PREV CLASS</B></A> <A HREF="../../../../../com/google/gwt/inject/client/GinModules.html" title="annotation in com.google.gwt.inject.client"><B>NEXT CLASS</B></A></FONT></TD><TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2"><A HREF="../../../../../index.html?com/google/gwt/inject/client/GinModule.html" target="_top"><B>FRAMES</B></A> <A HREF="GinModule.html" target="_top"><B>NO FRAMES</B></A> <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: NESTED | FIELD | CONSTR | <A HREF="#method_summary">METHOD</A></FONT></TD><TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">DETAIL: FIELD | CONSTR | <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">com.google.gwt.inject.client</FONT><BR>Interface GinModule</H2><DL><DT><B>All Known Implementing Classes:</B> <DD><A HREF="../../../../../com/google/gwt/inject/client/AbstractGinModule.html" title="class in com.google.gwt.inject.client">AbstractGinModule</A></DD></DL><HR><DL><DT><PRE>public interface <B>GinModule</B></DL></PRE><P>GIN counterpart of Guice's <code>Module</code>. A <code>GinModule</code>implementation is compiled both by the regular Java compiler andby the GWT compiler.<p>The regular-compiled version is used at GWT compile time as partof the implementation of the <code>Generator</code> that outputs the generated<code>Ginjector</code> class. Notably, the <code>Generator</code> calls the<code>configure</code> method on the module class.<p>The GWT-compiled version is used client-side at runtime. This isnecessary to support provider methods. Important, the GWT clientcode never actually calls the <code>configure</code> method on the module classand it is eliminated as dead code by the compiler. So <code>configure</code>needs to be GWT compilable, but the resulting code will never execute.<p>Because <code>GinModule</code> classes need to compile as GWT code,all types that modules reference must be GWT translatable. Thisis a problem for types like <A HREF="http://google-guice.googlecode.com/svn/trunk/javadoc/com/google/inject/Key.html" title="class or interface in com.google.inject"><CODE>Key</CODE></A> and<A HREF="http://google-guice.googlecode.com/svn/trunk/javadoc/com/google/inject/TypeLiteral.html" title="class or interface in com.google.inject"><CODE>TypeLiteral</CODE></A>, since they normallyreference <CODE>Type</CODE> instances and other untranslatablethings. But since the <code>configure</code> method that uses them won't actuallybe executed, all we need is to satisfy the compiler. Thus, we can get awaywith using <code>super-source</code> to provide dummy stubs of <code>Key</code> and<code>TypeLiteral</code>.<P><P><HR><P><!-- ========== 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> void</CODE></FONT></TD><TD><CODE><B><A HREF="../../../../../com/google/gwt/inject/client/GinModule.html#configure(com.google.gwt.inject.client.binder.GinBinder)">configure</A></B>(<A HREF="../../../../../com/google/gwt/inject/client/binder/GinBinder.html" title="interface in com.google.gwt.inject.client.binder">GinBinder</A> binder)</CODE><BR> </TD></TR></TABLE> <P><!-- ============ 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="configure(com.google.gwt.inject.client.binder.GinBinder)"><!-- --></A><H3>configure</H3><PRE>void <B>configure</B>(<A HREF="../../../../../com/google/gwt/inject/client/binder/GinBinder.html" title="interface in com.google.gwt.inject.client.binder">GinBinder</A> binder)</PRE><DL><DD><DL></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> </TD><TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD><TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD><TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD><TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD><TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD><TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD></TR></TABLE></TD><TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM></EM></TD></TR><TR><TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2"> <A HREF="../../../../../com/google/gwt/inject/client/Ginjector.html" title="interface in com.google.gwt.inject.client"><B>PREV CLASS</B></A> <A HREF="../../../../../com/google/gwt/inject/client/GinModules.html" title="annotation in com.google.gwt.inject.client"><B>NEXT CLASS</B></A></FONT></TD><TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2"><A HREF="../../../../../index.html?com/google/gwt/inject/client/GinModule.html" target="_top"><B>FRAMES</B></A> <A HREF="GinModule.html" target="_top"><B>NO FRAMES</B></A> <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: NESTED | FIELD | CONSTR | <A HREF="#method_summary">METHOD</A></FONT></TD><TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">DETAIL: FIELD | CONSTR | <A HREF="#method_detail">METHOD</A></FONT></TD></TR></TABLE><A NAME="skip-navbar_bottom"></A><!-- ======== END OF BOTTOM NAVBAR ======= --><HR></BODY></HTML>