@@ -0,0 +1,838 @@
+package com.jillesvangurp.iterables;%0A%0Aimport java.util.Iterator;%0A%0Apublic class ProcessingIterable %3CInput,Output%3E implements Iterable%3COutput%3E %7B%0A%0A    private final Iterator%3CInput%3E it;%0A    private final Processor%3CInput, Output%3E processor;%0A%0A    public ProcessingIterable(Iterator%3CInput%3E it, Processor%3CInput, Output%3E processor) %7B%0A        this.it = it;%0A        this.processor = processor;%0A    %7D%0A    %0A    @Override%0A    public Iterator%3COutput%3E iterator() %7B%0A        return new Iterator%3COutput%3E() %7B%0A%0A            @Override%0A            public boolean hasNext() %7B%0A                return it.hasNext();%0A            %7D%0A%0A            @Override%0A            public Output next() %7B%0A                return processor.process(it.next());%0A            %7D%0A%0A            @Override%0A            public void remove() %7B%0A                it.remove();%0A            %7D%7D;%0A    %7D%0A%7D%0A

add non concurrent processing iterable