public UnaryOperationTileView(UnaryOperator.OPERATOR_TYPE operation, TileData<List<T>> tileData, Number errorValue) { _op = new UnaryOperator(operation); _tileData = tileData; _errorValue = errorValue; }
/** * Apply the unary operation. * @param operand The unary operand. * @return The calculated value or the error value. */ public Number calculate(Number operand) { return calculate(operand, null); } }
@Override public List<T> getBin(int x, int y) { List<T> result = new ArrayList<>(); for (T d: _tileData.getBin(x, y)) { result.add((T) _op.calculate(d, _errorValue)); } return result; }
@Override public List<T> getDefaultValue () { List<T> baseDefault = _tileData.getDefaultValue(); if (null == baseDefault) return null; else { List<T> ourDefault = new ArrayList<>(); for (T t: baseDefault) ourDefault.add((T) _op.calculate(t, _errorValue)); } return null; }