test_class.file: gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/util/iterator/MultiIteratorTest.java
test_class.identifier: MultiIteratorTest
test_case.body: @Test(expected = FastNoSuchElementException.class)
      public void shouldThrowFastNoSuchElementExceptionIfNoIteratorsAreAdded() {
          final Iterator<String> itty = new MultiIterator<>();
          itty.next();
      }
test_case.class_method_signature: MultiIteratorTest.shouldThrowFastNoSuchElementExceptionIfNoIteratorsAreAdded()
test_case.full_signature: @Test(expected = FastNoSuchElementException.class) public void shouldThrowFastNoSuchElementExceptionIfNoIteratorsAreAdded()
test_case.identifier: shouldThrowFastNoSuchElementExceptionIfNoIteratorsAreAdded
test_case.invocations: next
test_case.modifiers: @Test(expected = FastNoSuchElementException.class) public
test_case.parameters: ()
test_case.return: void
test_case.signature: void shouldThrowFastNoSuchElementExceptionIfNoIteratorsAreAdded()
focal_class.declarator: iterators = new ArrayList<>()
focal_class.modifier: private final
focal_class.original_string: private final List<Iterator<T>> iterators = new ArrayList<>();
focal_class.type: List<Iterator<T>>
focal_class.var_name: iterators
focal_class.declarator: current = 0
focal_class.modifier: private
focal_class.original_string: private int current = 0;
focal_class.type: int
focal_class.var_name: current
focal_class.file: gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/util/iterator/MultiIterator.java
focal_class.identifier: MultiIterator
focal_class.interfaces: implements Iterator<T>, Serializable
focal_class.class_method_signature: MultiIterator.addIterator(final Iterator<T> iterator)
focal_class.full_signature: public void addIterator(final Iterator<T> iterator)
focal_class.identifier: addIterator
focal_class.modifiers: public
focal_class.parameters: (final Iterator<T> iterator)
focal_class.return: void
focal_class.signature: void addIterator(final Iterator<T> iterator)
focal_class.class_method_signature: MultiIterator.hasNext()
focal_class.full_signature: @Override public boolean hasNext()
focal_class.identifier: hasNext
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: boolean
focal_class.signature: boolean hasNext()
focal_class.class_method_signature: MultiIterator.remove()
focal_class.full_signature: @Override public void remove()
focal_class.identifier: remove
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void remove()
focal_class.class_method_signature: MultiIterator.next()
focal_class.full_signature: @Override public T next()
focal_class.identifier: next
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: T
focal_class.signature: T next()
focal_class.class_method_signature: MultiIterator.clear()
focal_class.full_signature: public void clear()
focal_class.identifier: clear
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void clear()
focal_method.body: @Override
      public T next() {
          if (this.iterators.isEmpty()) throw FastNoSuchElementException.instance();
  
          Iterator<T> currentIterator = iterators.get(this.current);
          while (true) {
              if (currentIterator.hasNext()) {
                  return currentIterator.next();
              } else {
                  this.current++;
                  if (this.current >= iterators.size())
                      break;
                  currentIterator = iterators.get(current);
              }
          }
          throw FastNoSuchElementException.instance();
      }
focal_method.class_method_signature: MultiIterator.next()
focal_method.full_signature: @Override public T next()
focal_method.identifier: next
focal_method.invocations: isEmpty instance get hasNext next size get instance
focal_method.modifiers: @Override public
focal_method.parameters: ()
focal_method.return: T
focal_method.signature: T next()