def next()

in cassovary-core/src/main/scala/com/twitter/cassovary/graph/Traverser.scala [104:122]


  def next() = {
    val nextNodeId = if (currNode == null ||
      (maxDepth.isDefined && pathLength >= maxDepth.get)) {
      goHome()
    } else {
      val randNextNodeId = takeRandomStep()
      if (onlyOnce && seenBefore(randNextNodeId)) {
        seenNodesTracker.clear()
        goHome()
      } else {
        randNextNodeId
      }
    }
    seenNodesTracker.recordInfo(nextNodeId, false)
    pathLength += 1
    currNode = getExistingNodeById(graph, nextNodeId)

    currNode
  }