Dependency Implosion
Dependency implosion is the process of finding the objects which depended on (i.e., used) by a given object, and so on down the dependency tree. There are three different kinds of implosion: immediate, creation, and program.
As an example, to list all of objects that are used by pMainMenu, enter
ZOMList pMainMenu +i
The result is the list of objects that are used by pMainMenu directly, regardless of whether the dependency is creation or program. The diagram below highlights the selected objects:
Objects Selected by “pMainMenu +i”
This selects only objects that are used by pMainMenu explicitly by means of a creation dependency or a program dependency. The objects that use these depended on objects are ignored.
Similar to dependency explosions, you can implode by either creation dependencies (using the ‘t’ option) or program dependencies (using the ‘p’ option). Now suppose we want to list only the objects that are used by pMainMenu by means of a program dependency:
ZOMList pMainMenu +i p
The diagram below highlights the selected objects:
Objects Selected by “pMainMenu +i p”
This selects only objects that are used by pMainMenu by means of a program dependency, as well as any objects that have program dependencies on these dependent objects, and so on all the way down to the leaves of the tree. Creation dependencies are ignored.
Next suppose we want to list only the objects that are used by pMainMenu by means of either creation or program dependencies and recursively search all the way down to the leaves of the tree:
ZOMList Customers +i pt
The diagram below highlights the selected objects:
Objects Selected by “pMainMenu +i pt”
This selects objects that are used by Customers by means of any dependency, as well as any objects that have a dependency on these dependent objects, and so on all the way down to the leaves of the tree.
To list only the objects that are used by pMainMenu by means of either creation or program dependencies and recursively search all the way forward to the leaves, but not include the pMainMenu object, enter
ZOMList pMainMenu +i pth
The diagram below highlights the selected objects:
Objects Selected by “pMainMenu +i pth”
This selects only objects that are used by pMainMenu by means of any dependency, as well as any objects that are used by these dependent objects, and so on all the way down to the leaves of the tree, but not the set of objects that were used as the starting point of the implosion. This is called a hollow implosion.
In a hollow implosion, the selected object set does not contain the original objects that fed the implosion algorithm in the first place.