code: public FlowNode goDownstream() {
          if (isValid) {
              Direction direction = Direction.forFlow(flow);
              if (direction != null) {
                  FlowNode nextNode = new FlowNode(gridIter, cols, rows, col + direction.col, row + direction.row);
                  if (nextNode.isValid) {
                      return nextNode;
                  }
              }
          }
          return null;
      }
docs: Get the next downstream node.
  
  @return the next downstream node or <code>null</code> if the end has been reached.