@Override
          public Node apply(final NodeType input) {
            return input.getNode();
          }
Function which handles the selection of nodes in a path finding scenario. The function performs
four BFS runs: BFS 1 searches for all successors of the start nodes. BFS 2 searches for all
predecessors of the end nodes. BFS 2 searches for all predecessors of the start nodes. BFS 4
searches for all successors of the end nodes.

<p>These four BFS runs are used in two sets: Set 1 is intersect of nodes reached through (BFS
1, BFS 2). Set 2 is intersect of nodes reached through (BFS 3, BFS 4).

<p>Therefore Set 1 represents all nodes on paths if the set of start nodes contains parents of
the newly selected node and Set 2 represents all nodes on paths if the set of start nodes
contains child nodes of the newly selected node.

@param graph The graph in which the selection takes place.
@param alreadySelectedNodes The List of nodes already selected.
@param newlySelectedNode The node which is newly selected.
java/zylib/src/main/java/com/google/security/zynamics/zylib/yfileswrap/gui/zygraph/editmode/helpers/CGraphSelector.java