package hip.ch6.joins.replicated.framework;
import org.apache.commons.io.FileUtils;
import org.apache.commons.io.LineIterator;
import org.apache.commons.lang.StringUtils;
import java.io.File;
import java.io.IOException;
import java.util.Iterator;
public class TextDistributedCacheFileReader
implements DistributedCacheFileReader<String, String>, Iterator<Pair<String, String>> {
LineIterator iter;
@Override
public void init(File f) throws IOException {
iter = FileUtils.lineIterator(f);
}
@Override
public void close() {
iter.close();
}
@Override
public Iterator<Pair<String, String>> iterator() {
return this;
}
@Override
public boolean hasNext() {
return iter.hasNext();
}
@Override
public Pair<String, String> next() {
String line = iter.next();
Pair<String, String> pair = new Pair<String, String>();
String[] parts = StringUtils.split(line, "\t", 2);
System.out.println("Got line '" + line + "'");
System.out.println("Got parts '" + StringUtils.join(parts, ",") + "'");
pair.setKey(parts[0]);
if (parts.length > 1) {
pair.setData(parts[1]);
}
return pair;
}
@Override
public void remove() {
throw new UnsupportedOperationException();
}
}