public MapArray<String, MapArray<String, ICell>> columnsContains(String value, Row row) { return columns().containsValue(value, row); } public MapArray<String, MapArray<String, ICell>> columnsMatches(String regEx, Row row) {
public List<String> columnValue(int colNum) { return columns().getColumnValue(colNum); }
private int getColumnIndex(String name) { int nameIndex; List<String> headers = columns().headers(); if (headers != null && headers.contains(name)) nameIndex = headers.indexOf(name); else throw exception("Can't Get Column: '" + name + "'. " + ((headers == null) ? "ColumnHeaders is Null" : ("Available ColumnHeaders: " + print(headers, ", ", "'{0}'") + ")"))); return nameIndex + columns().getStartIndex(); }
public final MapArray<String, ICell> getRow(String rowName) { try { int colsCount = table.columns().count(); List<WebElement> webRowLine = timer().getResultByCondition( () -> getLineAction(rowName), els -> els.size() == colsCount); List<String> headers = table.columns().headers(); if (webRowLine.size() != headers.size() || headers.size() != table.columns().headers().size() || headers.size() == 0) throw exception("Can't getRow" + rowName); return new MapArray<>(colsCount, table.columns().headers()::get, value -> table.cell(webRowLine.get(value), new Column(headers.get(value)), new Row(rowName))); } catch (Exception | Error ex) { throw throwRowsException(rowName, ex.getMessage()); } }
public String columnName() { return (columnName != null && !columnName.equals("")) ? columnName : table.columns().headers().get(columnNum - 1); }
public MapArray<String, ICell> column(String colName) { return columns().getColumn(colName); }
public final ISelect header(String name) { return columns().header(name); } public final <TEnum extends Enum> ISelect header(TEnum enumName) {
Cell(int columnNum, int rowNum, String colName, String rowName, Table table) { this.columnNum = columnNum; this.rowNum = rowNum; this.columnName = colName; this.rowName = rowName; int colIndex = columnNum - 1 + table.columns().getStartIndex(); int rowIndex = rowNum - 1 + table.rows().getStartIndex(); if (table.cellLocatorTemplate != null) setLocator(fillByMsgTemplate(table.cellLocatorTemplate, colIndex, rowIndex)); else { if (table.rows().locatorChanged()) getFunc = () -> table.row(rowNum).get(columnNum-1).value; else { if (table.columns().locatorChanged()) getFunc = () -> table.column(columnNum).get(rowNum-1).value; }} if (!hasLocator() && getFunc == null) setLocator(fillByMsgTemplate(defaultLocator, columnNum, rowNum)); this.table = table; }
public void clean() { allCells = new ArrayList<>(); columns().clean(); rows().clean(); }
private MapArray<String, MapArray<String, ICell>> withValueByRule( Column column, JFuncTTREx<String, String, Boolean> func) { Collection<String> rowNames = column.hasName() ? table.columns().getColumnAsText(column.getName()).where(func).keys() : table.columns().getColumnAsText(column.getNum()).where(func).keys(); return new MapArray<>(rowNames, key -> key, this::getRow); } public final MapArray<String, MapArray<String, ICell>> withValue(String value, Column column) {
public MapArray<String, MapArray<String, ICell>> columns(String... rowNameValues) { if (rowNameValues.length == 0) return columns().get(); MapArray<String, MapArray<String, ICell>> result = new MapArray<>(); for (Pair<String, MapArray<String, ICell>> column : columns().get()) { boolean matches = true; for (String rowNameValue : rowNameValues) { if (!rowNameValue.matches("[^=]+=[^=]*")) throw exception("Wrong searchCritaria for Cells: " + rowNameValue); String[] splitted = rowNameValue.split("="); String rowName = splitted[0]; String rowValue = splitted[1]; ICell cell = column.value.get(rowName); if (cell == null || !cell.getValue().equals(rowValue)) { matches = false; break; } } if (matches) result.add(column); } return result; }
private int getColumnIndex(String name) { int nameIndex; List<String> headers = select(columns().headers(), String::toLowerCase); String lName = name.toLowerCase(); if (headers != null && headers.contains(lName)) nameIndex = headers.indexOf(lName); else throw exception("Can't Get Column: '" + name + "'. " + ((headers == null) ? "ColumnHeaders is Null" : ("Available ColumnHeaders: " + print(headers, ", ", "'%s'") + ")"))); return nameIndex + columns().getStartIndex(); }
public final MapArray<String, ICell> getRow(String rowName) { try { int colsCount = table.columns().count(); List<String> headers = table.columns().headers(); List<WebElement> webRowLine = timer().getResultByCondition( () -> getLineAction(rowName), els -> els.size() == colsCount); return new MapArray<>(colsCount, headers::get, value -> table.cell(webRowLine.get(value), new Column(headers.get(value)), new Row(rowName))); } catch (Exception | Error ex) { throw throwRowsException(rowName, ex.getMessage()); } }
public String columnName() { return (columnName != null && !columnName.equals("")) ? columnName : table.columns().headers().get(columnNum - 1); }
public MapArray<String, ICell> column(String colName) { return columns().getColumn(colName); }
public final MapArray<String, ISelect> header() { return columns().header(); }
Cell(int columnNum, int rowNum, String colName, String rowName, Table table) { this.columnNum = columnNum; this.rowNum = rowNum; this.columnName = colName; this.rowName = rowName; int colIndex = columnNum - 1 + table.columns().getStartIndex(); int rowIndex = rowNum - 1 + table.rows().getStartIndex(); if (table.cellLocatorTemplate != null) setLocator(fillByMsgTemplate(table.cellLocatorTemplate, colIndex, rowIndex)); else { if (table.rows().locatorChanged()) getFunc = () -> table.row(rowNum).get(columnNum-1).value; else { if (table.columns().locatorChanged()) getFunc = () -> table.column(columnNum).get(rowNum-1).value; }} if (!hasLocator() && getFunc == null) setLocator(fillByMsgTemplate(defaultLocator, columnNum, rowNum)); this.table = table; }
public void clean() { allCells = new ArrayList<>(); columns().clean(); rows().clean(); }
private MapArray<String, MapArray<String, ICell>> withValueByRule(Column column, JFuncTTREx<String, String, Boolean> func) { Collection<String> rowNames = column.hasName() ? table.columns().getColumnAsText(column.getName()).where(func).keys() : table.columns().getColumnAsText(column.getNum()).where(func).keys(); return new MapArray<>(rowNames, key -> key, this::getRow); } public final MapArray<String, MapArray<String, ICell>> withValue(String value, Column column) {