Skip to content

Instantly share code, notes, and snippets.

@gissuebot
Created July 7, 2014 18:03
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save gissuebot/d7e466de203b05e510a9 to your computer and use it in GitHub Desktop.
Save gissuebot/d7e466de203b05e510a9 to your computer and use it in GitHub Desktop.
Migrated attachment for Guice issue 213, comment 11
/**
*
*/
package com.google.inject.tools.graph.demo;
import com.google.inject.AbstractModule;
import com.google.inject.Provides;
import com.google.inject.Singleton;
import com.google.inject.name.Names;
public class BackToTheFutureModule extends AbstractModule {
@Override
protected void configure() {
bind(DeLorian.class);
bind(EnergySource.class).toProvider(new EnergySourceProvider());
bind(EnergySource.class).annotatedWith(Nuclear.class).to(Plutonium.class);
bind(EnergySource.class).annotatedWith(Renewable.class).to(Lightning.class);
bind(Plutonium.class).toProvider(PlutoniumProvider.class);
bind(PinballParts.class).annotatedWith(Used.class).toInstance(new PinballParts());
bind(Person.class).annotatedWith(Driver.class).to(MartyMcFly.class).in(Singleton.class);
bind(Person.class).annotatedWith(Inventor.class).to(DocBrown.class).in(Singleton.class);
bindConstant().annotatedWith(Names.named("year")).to("1955");
}
/**
* The {@link EnergySource} dependency will not be visible in the graph until
* defect 286 is fixed.
*/
@Provides
public FluxCapacitor provideFluxCapacitor(EnergySource energySource) {
return null;
}
}
digraph injector {
graph [rankdir=LR];
"k-1290424031i" [label=<<table cellspacing="0" cellpadding="3" border="0" cellborder="1"><tr><td port="clazz" align="left" bgcolor="#aaaaaa"><font color="white"><font point-size="10">BackToTheFutureModule.configure(BackToTheFutureModule.java:21)</font><br align="left"/>PinballParts</font></td></tr></table>>, shape=plaintext]
"k475618286i" [label=<<table cellspacing="0" cellpadding="3" border="0" cellborder="1"><tr><td port="clazz" align="left" bgcolor="#aaaaaa"><font color="white"><font point-size="10">BackToTheFutureModule.configure(BackToTheFutureModule.java:26)</font><br align="left"/>String</font></td></tr></table>>, shape=plaintext]
"k-1185726561" [label=<<table cellspacing="0" cellpadding="3" border="0" cellborder="1"><tr><td port="clazz" align="left" bgcolor="black"><font color="white">DocBrown</font></td></tr><tr><td align="left" port="m377971969">&lt;init&gt;</td></tr></table>>, shape=plaintext]
"k-695030430i" [label=<<table cellspacing="0" cellpadding="3" border="0" cellborder="1"><tr><td port="clazz" align="left" bgcolor="#aaaaaa"><font color="white"><font point-size="10">BackToTheFutureModule.configure(BackToTheFutureModule.java:16)</font><br align="left"/>EnergySourceProvider</font></td></tr><tr><td align="left" port="m1319507329">#setSources(...)</td></tr><tr><td align="left" port="m5211848">#setYear(...)</td></tr></table>>, shape=plaintext]
"k740614173" [style=dashed, label=<<table cellspacing="0" cellpadding="1" border="0" cellborder="0"><tr><td align="left"><font point-size="10">@Inventor</font></td></tr><tr><td><font>Person</font></td></tr></table>>, shape=box]
"k-1092684121" [style=dashed, label=<<table cellspacing="0" cellpadding="1" border="0" cellborder="0"><tr><td align="left"><font point-size="10">@Renewable</font></td></tr><tr><td><font>EnergySource</font></td></tr></table>>, shape=box]
"k2041115573" [style=dashed, label=<<table cellspacing="0" cellpadding="1" border="0" cellborder="0"><tr><td align="left"><font point-size="10">@Named(value=year)</font></td></tr><tr><td><font>Integer</font></td></tr></table>>, shape=box]
"k-1290424031" [style=dashed, label=<<table cellspacing="0" cellpadding="1" border="0" cellborder="0"><tr><td align="left"><font point-size="10">@Used</font></td></tr><tr><td><font>PinballParts</font></td></tr></table>>, shape=box]
"k-1194783960" [style=dashed, label=<<table cellspacing="0" cellpadding="1" border="0" cellborder="0"><tr><td align="left"><font point-size="10">@Nuclear</font></td></tr><tr><td><font>EnergySource</font></td></tr></table>>, shape=box]
"k303412495" [style=dashed, label=<<table cellspacing="0" cellpadding="1" border="0" cellborder="0"><tr><td align="left"></td></tr><tr><td><font>Plutonium</font></td></tr></table>>, shape=box]
"k863897229" [label=<<table cellspacing="0" cellpadding="3" border="0" cellborder="1"><tr><td port="clazz" align="left" bgcolor="black"><font color="white">PlutoniumProvider</font></td></tr><tr><td align="left" port="m1907005973">&lt;init&gt;</td></tr></table>>, shape=plaintext]
"k475618286" [style=dashed, label=<<table cellspacing="0" cellpadding="1" border="0" cellborder="0"><tr><td align="left"><font point-size="10">@Named(value=year)</font></td></tr><tr><td><font>String</font></td></tr></table>>, shape=box]
"k-327189018" [label=<<table cellspacing="0" cellpadding="3" border="0" cellborder="1"><tr><td port="clazz" align="left" bgcolor="black"><font color="white">Lightning</font></td></tr><tr><td align="left" port="m30294279">&lt;init&gt;</td></tr><tr><td align="left" port="m-1405093183">yearOfStrike</td></tr></table>>, shape=plaintext]
"k-2119988028i" [label=<<table cellspacing="0" cellpadding="3" border="0" cellborder="1"><tr><td port="clazz" align="left" bgcolor="#aaaaaa"><font color="white"><font point-size="10">public FluxCapacitor BackToTheFutureModule.provideFluxCapacitor(EnergySource)</font><br align="left"/>ProviderMethod</font></td></tr></table>>, shape=plaintext]
"k320812614" [style=dashed, label=<<table cellspacing="0" cellpadding="1" border="0" cellborder="0"><tr><td align="left"><font point-size="10">@Driver</font></td></tr><tr><td><font>Person</font></td></tr></table>>, shape=box]
"k393931506" [label=<<table cellspacing="0" cellpadding="3" border="0" cellborder="1"><tr><td port="clazz" align="left" bgcolor="black"><font color="white">DeLorian</font></td></tr><tr><td align="left" port="m-524048725">&lt;init&gt;</td></tr><tr><td align="left" port="m1373585027">driver</td></tr><tr><td align="left" port="m821760882">fluxCapacitor</td></tr><tr><td align="left" port="m-2102810386">#setEnergySource(...)</td></tr></table>>, shape=plaintext]
"k-695030430" [style=dashed, label=<<table cellspacing="0" cellpadding="1" border="0" cellborder="0"><tr><td align="left"></td></tr><tr><td><font>EnergySource</font></td></tr></table>>, shape=box]
"k-2119988028" [style=dashed, label=<<table cellspacing="0" cellpadding="1" border="0" cellborder="0"><tr><td align="left"></td></tr><tr><td><font>FluxCapacitor</font></td></tr></table>>, shape=box]
"k1044832919" [label=<<table cellspacing="0" cellpadding="3" border="0" cellborder="1"><tr><td port="clazz" align="left" bgcolor="black"><font color="white">MartyMcFly</font></td></tr><tr><td align="left" port="m-2108984899">&lt;init&gt;</td></tr></table>>, shape=plaintext]
"k393931506":"m1373585027":e -> "k320812614" [arrowhead=normal]
"k393931506":"m821760882":e -> "k-2119988028" [arrowhead=normal]
"k393931506":"m-2102810386":e -> "k-695030430" [arrowhead=normal]
"k320812614" -> "k1044832919" [style=dashed, arrowhead=empty]
"k-695030430" -> "k-695030430i" [style=dashed, arrowhead=emptyempty]
"k-695030430i":"m1319507329":e -> "k-1194783960" [arrowhead=normal]
"k-695030430i":"m1319507329":e -> "k-1092684121" [arrowhead=normal]
"k-695030430i":"m5211848":e -> "k2041115573" [arrowhead=normal]
"k-2119988028" -> "k-2119988028i" [style=dashed, arrowhead=emptyempty]
"k2041115573" -> "k475618286" [style=dashed, arrowhead=emptyodot]
"k303412495" -> "k863897229" [style=dashed, arrowhead=emptyempty]
"k740614173" -> "k-1185726561" [style=dashed, arrowhead=empty]
"k-1290424031" -> "k-1290424031i" [style=dashed, arrowhead=empty]
"k475618286" -> "k475618286i" [style=dashed, arrowhead=empty]
"k863897229":"m1907005973":e -> "k740614173" [arrowhead=normal]
"k863897229":"m1907005973":e -> "k-1290424031" [arrowhead=normal]
"k-1092684121" -> "k-327189018" [style=dashed, arrowhead=empty]
"k-327189018":"m-1405093183":e -> "k475618286" [arrowhead=normal]
"k-1194783960" -> "k303412495" [style=dashed, arrowhead=empty]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment