package io.pcp.parfait.dxm.ioutils;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.LineNumberReader;
import java.io.Reader;
import java.io.StringReader;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
public class StringIterable implements Iterable<String> {
private final Reader reader;
private StringIterable(Reader reader) {
this.reader = (reader == null ? new StringReader("") : reader);
}
@Override
public Iterator<String> iterator() {
LineNumberReader lineReader = new LineNumberReader(reader);
Collection<String> results = new ArrayList<String>();
String line = null;
try {
while ((line = lineReader.readLine()) != null) {
results.add(line);
}
lineReader.close();
} catch (IOException e) {
throw new RuntimeException(e);
}
return results.iterator();
}
public static StringIterable fromFile(File data) {
try {
return new StringIterable(data == null ? null: new FileReader(data));
} catch (FileNotFoundException e) {
throw new RuntimeException(e);
}
}
public static StringIterable fromStream(InputStream input) {
return new StringIterable(input == null ? null: new InputStreamReader(input));
}
public static StringIterable fromReader(Reader input) {
return new StringIterable(input);
}
}