In the following line
Graph<Number,Number> ig = Graphs.<Number,Number>synchronizedDirectedGraph(
new DirectedSparseMultigraph<Number,Number>());
could you please explain what Graphs.<Number,Number>synchronizedDirectedGraph
means ? It looks like a call to a method Graphs.synchronizedDirectedGraph, but the template-like thingie after the dot puzzles me (at least due to my C++ background).