test_class.declarator: expectedException = ExpectedException.none ()
test_class.modifier: @Rule
      public
test_class.original_string: @Rule
      public ExpectedException expectedException = ExpectedException.none ();
test_class.type: ExpectedException
test_class.var_name: expectedException
test_class.file: a-foundation/src/test/java/com/ajjpj/afoundation/collection/ACompositeIteratorTest.java
test_class.identifier: ACompositeIteratorTest
test_case.body: @Test
      public void testPureNext() {
          final ACompositeIterator<Integer> iter = new ACompositeIterator<> (Arrays.asList (
                  Arrays.asList (1,2,3,4).iterator (),
                  Arrays.asList (5,6,7,8).iterator (),
                  Arrays.asList (9,10).iterator ()
          ));
  
          int expected = 1;
          while (expected <= 10) {
              int elem = iter.next ();
              assertEquals (expected, elem);
              expected++;
          }
  
          expectedException.expect (NoSuchElementException.class);
          iter.next ();
      }
test_case.class_method_signature: ACompositeIteratorTest.testPureNext()
test_case.full_signature: @Test public void testPureNext()
test_case.identifier: testPureNext
test_case.invocations: asList iterator asList iterator asList iterator asList next assertEquals expect next
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testPureNext()
focal_class.declarator: itit
focal_class.modifier: private final
focal_class.original_string: private final Iterator<Iterator<T>> itit;
focal_class.type: Iterator<Iterator<T>>
focal_class.var_name: itit
focal_class.declarator: curIterator = (Iterator<T>) EMPTY
focal_class.modifier: @SuppressWarnings("unchecked")
      private
focal_class.original_string: @SuppressWarnings("unchecked")
      private Iterator<T> curIterator = (Iterator<T>) EMPTY;
focal_class.type: Iterator<T>
focal_class.var_name: curIterator
focal_class.declarator: EMPTY = new Iterator<Object>() {
          @Override
          public boolean hasNext() {
              return false;
          }
  
          @Override
          public Object next() {
              throw new UnsupportedOperationException();
          }
  
          @Override
          public void remove() {
              throw new UnsupportedOperationException();
          }
      }
focal_class.modifier: private static final
focal_class.original_string: private static final Iterator<Object> EMPTY = new Iterator<Object>() {
          @Override
          public boolean hasNext() {
              return false;
          }
  
          @Override
          public Object next() {
              throw new UnsupportedOperationException();
          }
  
          @Override
          public void remove() {
              throw new UnsupportedOperationException();
          }
      };
focal_class.type: Iterator<Object>
focal_class.var_name: EMPTY
focal_class.file: a-foundation/src/main/java/com/ajjpj/afoundation/collection/ACompositeIterator.java
focal_class.identifier: ACompositeIterator
focal_class.interfaces: implements Iterator<T>
focal_class.class_method_signature: ACompositeIterator.ACompositeIterator(Iterator<Iterator<T>> itit)
focal_class.full_signature: public  ACompositeIterator(Iterator<Iterator<T>> itit)
focal_class.identifier: ACompositeIterator
focal_class.modifiers: public
focal_class.parameters: (Iterator<Iterator<T>> itit)
focal_class.signature:  ACompositeIterator(Iterator<Iterator<T>> itit)
focal_class.class_method_signature: ACompositeIterator.ACompositeIterator(Iterable<Iterator<T>> itit)
focal_class.full_signature: public  ACompositeIterator(Iterable<Iterator<T>> itit)
focal_class.identifier: ACompositeIterator
focal_class.modifiers: public
focal_class.parameters: (Iterable<Iterator<T>> itit)
focal_class.signature:  ACompositeIterator(Iterable<Iterator<T>> itit)
focal_class.class_method_signature: ACompositeIterator.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: ACompositeIterator.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: ACompositeIterator.refreshCurrent()
focal_class.full_signature: private void refreshCurrent()
focal_class.identifier: refreshCurrent
focal_class.modifiers: private
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void refreshCurrent()
focal_class.class_method_signature: ACompositeIterator.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_method.body: @Override
      public T next() {
          refreshCurrent ();
          return curIterator.next();
      }
focal_method.class_method_signature: ACompositeIterator.next()
focal_method.full_signature: @Override public T next()
focal_method.identifier: next
focal_method.invocations: refreshCurrent next
focal_method.modifiers: @Override public
focal_method.parameters: ()
focal_method.return: T
focal_method.signature: T next()