after recent discussions on the mailing list ("[Graph] On graph weight type(s)") I am proposing a first patch to enable support for generic weights in the current implementation.
Main changes include:
- adding an interface Weighted<W> with method W getWeight()
- modifying WeightedEdge, WeightedPath, WeightedGraph etc. to implement the new interface
- changing the implemented algorithms (at the moment they all still require weights to be Double)
- changing the DOT exporter (prints the weight as an attribute only if it is of type Double)
- incidentally also fixing a small bug in the DOT exporter ('weight' was part of the label, now it is a proper attribute as documented in DOT language specs http://www.graphviz.org/content/attrs#dweight)
This can be the first safe step to dig into different types and/or properties of weights.
Please let me know if it looks good.