Review called by John Reekie and Michael Shilman for the Diva Graph package. Eager to stabilize API as soon as possible.
http://ptolemy.eecs.berkeley.edu/~johnr/diva/api/diva/graph/package-summary.html
diva.graph.Edge
diva.graph.Graph
diva.graph.GraphEvent
diva.graph.GraphListener
diva.graph.GraphModel
diva.graph.Node
diva.graph.Raw*
http://ptolemy.eecs.berkeley.edu/~johnr/diva/api/diva/util/package-summary.html
diva.util.PropertyContainer
Review started:1.30 PM
Review ended: 3.00 PM
This design review seemed less productive than last time, but I think that was my fault for changing the class structure so much and not providing a clear list of changes (though it would have been quite large). Also the poor documentation on GraphModel and the lack of resolution on the event types was bad. But I have finished writing the interfaces and their implementations, and am nearly ready for a "release" of this low-level part of the package. All that remains is a little more documentation of how listeners should make use of the events, which is probably a short document in itself. Thank you all so much for your time and patience.
Apparently not, according to the reaction. The Raw interfaces have been removed and folded into the "cooked" ones.
Weights have been removed from the graph interface.
Done. (remove throws an exception)
Done. (a iterator with no elements is returned)
Done. (an algorithm should "setVisited(false)" before each pass.)
Done.
The nodes are connected by the edge and an event is dispatched. This is now generally discussed in the class-level documentation.
Renamed.
Done.
Done.
Same issue as the "addEdge" issue above, and same response.
I don't remember this point being raised, but doing anything more fine-grained would force additions to an already substantial interface.
Graph hierarchy is not officially supported in release 1.
Done.
Done.
This method has been removed from the interface, as it is not necessary for a client to know about. Also hierarchical graph models will not be supported in this release.
Renamed to disconnectEdge().
See above.
I have eliminated a few methods by collapsing setNode/Edge/GraphProperty into setProperty(PropertyContainer).
I have documented this in GraphListener.
Done.
Yes it does. This is a generic capability, so UserObjectChangeEvent and UserObjectChangeListener have been added.