### Question:
BufferizedProducerSupport { public T next() { if (current == null || !current.hasNext()) { current = supplier.get(); } return current != null && current.hasNext() ? current.next() : null; }  T next();  }### Answer:
@Test void iterate() { final Iterator<List<String>> strings = asList(asList("a", "b"), asList("c"), asList("d", "e", "f")).iterator(); final BufferizedProducerSupport<String> support = new BufferizedProducerSupport<>(() -> strings.hasNext() ? strings.next().iterator() : null); assertEquals("a", support.next()); assertEquals("b", support.next()); assertEquals("c", support.next()); assertEquals("d", support.next()); assertEquals("e", support.next()); assertEquals("f", support.next()); assertNull(support.next()); }