package tc.oc.commons.core.inject; import java.io.File; import java.io.IOException; import java.io.PrintWriter; import com.google.common.base.Charsets; import com.google.inject.Guice; import com.google.inject.Injector; import com.google.inject.grapher.graphviz.GraphvizGrapher; import com.google.inject.grapher.graphviz.GraphvizModule; /** * https://github.com/google/guice/wiki/Grapher */ public class Grapher { public void writeGraph(File file, Injector injector) throws IOException { final PrintWriter out = new PrintWriter(file, Charsets.UTF_8.name()); final GraphvizGrapher grapher = Guice.createInjector(new GraphvizModule()).getInstance(GraphvizGrapher.class); grapher.setOut(out); grapher.setRankdir("TB"); grapher.graph(injector); } }