package br.com.caelum.seleniumdsl.table; import br.com.caelum.seleniumdsl.search.RowMatcher; import br.com.caelum.seleniumdsl.search.RowVisitor; import br.com.caelum.seleniumdsl.search.TableCriteria; import br.com.caelum.seleniumdsl.table.layout.TableLayout; public interface Table { public String getType(); /** * @param columnIndex * the index of the column. * @return the br.com.caelum.seleniumdsl.table.Column object */ public Column column(int columnIndex); /** * @param columnName * the label of the column. * @return the br.com.caelum.seleniumdsl.Column object */ public Column column(String columnName); public int getColCount(); /** * The first time that method is called for, it makes the internal cache. If method is called for again, it uses the * cached value. */ public int getRowCount(); /** * @return the number of rows of the contents, ignoring header and footer (if one is found) */ public int getContentCount(); /** * @return the header br.com.caelum.seleniumdsl.table.Row object */ public Row header(); /** * @param row * Only counts the CONTENTS of the table. So index 1 is the first data row of the table, ignoring the * header. * @return the br.com.caelum.seleniumdsl.table.Row object */ public Row row(Integer row); /** * @param row * Only counts the CONTENTS of the table. So index 1 is the first data row of the table, ignoring the * header. * @return the Cell object */ public Cell cell(int row, int col); /** * @param row * Only counts the CONTENTS of the table. So index 1 is the first data row of the table, ignoring the * header. * @return the Cell object */ public Cell cell(int row, String col); public String getId(); public boolean exists(); public void iterate(RowVisitor visitor); /** * @param columnName * the header label of the column * @return the column index */ public Integer findColumn(String columnName); public RowMatcher select(RowMatcher matcher); public TableCriteria createCriteria(); public TableLayout getLayout(); }