View Javadoc

1   package br.com.caelum.seleniumdsl.search;
2   
3   import java.util.ArrayList;
4   import java.util.List;
5   
6   import br.com.caelum.seleniumdsl.table.Row;
7   import br.com.caelum.seleniumdsl.table.Table;
8   
9   public class TableCriteria {
10  
11  	private final Table table;
12  	private List<TableCriterion> criteria;
13  
14  	public TableCriteria(Table table) {
15  		this.table = table;
16  		this.criteria = new ArrayList<TableCriterion>();
17  	}
18  
19  	public TableCriteria eq(String columnName, String value) {
20  		this.add(new TableCriterion(columnName, value));
21  		return this;
22  	}
23  
24  	public TableCriteria add(TableCriterion criterion) {
25  		this.criteria.add(criterion.prepare(table));
26  		return this;
27  	}
28  
29  	public Row getFirstResult() {
30  		int rowCount = table.getRowCount();
31  		OUTTER: for (int i = 0; i < rowCount; i++) {
32  			Row row = table.row(i + 1);
33  			for (TableCriterion criterion : criteria) {
34  				if (!criterion.match(row))
35  					continue OUTTER;
36  			}
37  			return row;
38  		}
39  
40  		return null;
41  	}
42  
43  	public boolean matches() {
44  		return getFirstResult() != null;
45  	}
46  }