Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  1. It spares us having to write redundant code for the 2 traversals needed during the OperatorSpec Graph Analysis step.

  2. It makes it easy to carry out more traversals of any part of the OperatorSpecGraph should the need arise.

  3. It allows us to write modular visitors, i.e. implementations of Consumer<T>, that observe different aspects of the graph while keeping their code exclusively focused on collecting, maintaining, and updating metadata about the traversed graph in isolation from the traversal code itself.

  4. It allows us to customize the traversal progression so that virtual connections can be made between otherwise disconnected parts of the OperatorSpecGraph, as in the second traversal in OperatorSpecGraph Analysis. This way, we can keep the OperatorSpecGraph representation as close as possible to the way it was defined by the user without being limited by it.

This utility can be used to carry out the 2 traversals in the OperatorSpecGraph Analysis step as shown below.

  1. The first traversal can be done as follows:

...