def next()

in cassovary-core/src/main/scala/com/twitter/cassovary/util/io/ListOfEdgesGraphReader.scala [174:197]


      def next() = {

        def prepareEdges(buf: Array[Int]) : (Array[Int], Int) = {
          (removeDuplicates, sortNeighbors) match {
            case (false, false) => (buf, buf.max)
            case (true, false) =>
              val b = buf.distinct
              (b, b.max)
            case (false, true) =>
              val b = buf.sorted
              (b, b(b.length - 1))
            case (true, true) =>
              val b = buf.sorted.distinct
              (b, b(b.length - 1))
          }
        }

        val buf = idAndEdgesIterator.next()
        val id = buf(0)
        val edgesArr = buf.toArray(1)
        val (edges, edgesMaxId) = prepareEdges(edgesArr)
        val nodeMaxId = id.max(edgesMaxId)
        NodeIdEdgesMaxId(id, edges, nodeMaxId)
      }