| This class calculates a commit order for a series of classes
based on the dependencies between them. It builds up a graph of
dependencies (CommitOrderDependencyNodes) then applies topological
sort to them to get an ordering.
This is a throwaway class, which exists only for the lifetime of
the calculation.
The algorithm is descrbied in the method comment for orderCommits().
This class also includes static methods for quicksort, copied from
the standard libraries and adapted for these objects, since that
seemed like the easiest way to sort.
|