package br.com.caelum.seleniumdsl.search;
import java.util.ArrayList;
import java.util.List;
import br.com.caelum.seleniumdsl.table.Row;
import br.com.caelum.seleniumdsl.table.Table;
public class Search implements RowMatcher {
protected List<Matcher> matchers = new ArrayList<Matcher>();
private Table table;
private int currentRow = 0;
private int rowCount;
protected void where(String name, Matcher matcher) {
matcher.setColumn(name);
matchers.add(matcher);
}
protected Matcher equals(String content) {
return new EqualsMatcher(content);
}
protected Matcher containsAll(String...contents) {
return new ContainsAllMatcher(contents);
}
public void setTable(Table table) {
this.table = table;
this.rowCount = table.getRowCount();
}
public Row next() {
OUTTER:
for (currentRow++; currentRow <= rowCount; currentRow++) {
Row row = table.row(currentRow);
for (Matcher matcher : matchers) {
if(!matcher.matches(row))
continue OUTTER;
}
return row;
}
return null;
}
}