package org.gbif.checklistbank.iterable;
import java.util.Iterator;
import java.util.regex.Pattern;
/**
* Wrapper class that extracts a single column from an underlying string iterator
*/
public class ColumnExtractor implements Iterator<String> {
private final Iterator<String> iter;
private final Pattern delimiter;
private final int column;
public ColumnExtractor(Iterator<String> iterator, char delimiter, int column) {
this.iter = iterator;
this.delimiter = Pattern.compile(String.valueOf(delimiter));
this.column = column;
}
@Override
public boolean hasNext() {
return iter.hasNext();
}
@Override
public String next() {
String[] cols = delimiter.split(iter.next());
return cols.length > column ? cols[column] : null;
}
@Override
public void remove() {
iter.remove();
}
}