@@ -0,0 +1,1379 @@
+package innovimax.mixthem.io;%0A%0Aimport java.io.IOException;%0Aimport java.util.ArrayList;%0Aimport java.util.List;%0A%0Apublic class MultiChannelLineReader implements IMultiChannelLineInput %7B%0A%09%0A%09private final List%3CILineInput%3E reader = new ArrayList%3CILineInput%3E();%0A%09%0A%09public MultiChannelLineReader(final List%3CInputResource%3E inputs) %7B%0A%09%09inputs.stream().forEach(input -%3E %7B%0A%09%09%09try %7B%0A%09%09%09%09this.readers.add(new DefaultLineReader(input));%0A%09%09%09%7D catch (IOException e) %7B%0A%09%09%09%09throw new RuntimeException(e);%0A%09%09%09%7D%0A%09%09%7D);%0A%09%7D%0A%09%0A%09@Override%0A%09public boolean hasLine() throws IOException %7B%0A%09%09final Iterator%3CILineInput%3E iterator = this.readers.iterator();%0A%09%09while (iterator.hasNext()) %7B%0A%09%09%09final ILineInput reader = iterator.next();%0A%09%09%09if (reader.hasLine()) %7B%0A%09%09%09%09return true;%0A%09%09%09%7D%0A%09%09%7D%0A%09%09return false;%0A%09%7D%0A%09%0A%09@Override%0A%09public String%5B%5D nextLineRange() throws IOException %7B%0A%09%09final string%5B%5D lines = new String%5Bthis.readers.size()%5D;%0A%09%09int channel = 0;%0A%09%09final Iterator%3CILineInput%3E iterator = this.readers.iterator();%0A%09%09while (iterator.hasNext()) %7B%0A%09%09%09final ILineInput reader = iterator.next();%0A%09%09%09final String line = reader.nextLine();%0A%09%09%09lines%5Bchannel++%5D = line;%0A%09%09%7D%0A%09%09return chars;%0A%09%7D%0A%0A%09@Override%0A%09public void close() throws IOException %7B%0A%09%09final Iterator%3CLineInput%3E iterator = this.readers.iterator();%0A%09%09while (iterator.hasNext()) %7B%0A%09%09%09final ILineInput reader = iterator.next()%0A%09%09%09reader.close();%0A%09%09%7D%09%09%0A%09%7D%0A%09%0A%7D%0A

Create MultiChannelLineReader.java