// Copyright � 2006-2007 ASERT. Released under the Canoo Webtest license. package com.canoo.webtest.plugins.exceltest; import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.poi.hssf.util.CellReference; import com.canoo.webtest.engine.StepExecutionException; /** * Base class for steps that deal with an individual cell of an Excel spreadsheet.<p> * * @author Rob Nielsen */ public abstract class AbstractExcelCellStep extends AbstractExcelSheetStep { private String fRow; private String fCol; private String fCell; /** * @param cell The index of the sheet to select * @webtest.parameter required="yes/no" * description="The spreadsheet cell to select. eg. A5. Either <em>cell</em> or <em>row</em> and <em>col</em> must be specified." */ public void setCell(final String cell) { fCell = cell; } public String getCell() { return fCell; } /** * @param row The row of the sheet to select * @webtest.parameter required="yes/no" * description="The number of the row to select, starting at 1. Either <em>cell</em> or <em>row</em> and <em>col</em> must be specified." */ public void setRow(final String row) { fRow = row; } public String getRow() { return fRow; } /** * @param col The column to select * @webtest.parameter required="no" * description="The name or number (starting at 1) of the column to select. eg 1 or A. Either <em>cell</em> or <em>row</em> and <em>col</em> must be specified." */ public void setCol(final String col) { fCol = col; } public String getCol() { return fCol; } protected void verifyParameters() { super.verifyParameters(); if (getCell() == null && (getRow() == null || getCol() == null)) { throw new StepExecutionException("You must specify a row and column or a cell reference.", this); } if (getCell() != null && (getRow() != null || getCol() != null)) { throw new StepExecutionException("You must specify either a row and column or a cell reference.", this); } } protected HSSFCell getExcelCell() { final CellReference cellReference = ExcelCellUtils.getCellReference(this, getCell(), getRow(), getCol()); return ExcelCellUtils.getExcelCellAt(this, cellReference.getRow(), cellReference.getCol()); } protected String getCellValue() { return ExcelCellUtils.getCellValueAt(getExcelCell()); } protected CellReference getCellReference() { return ExcelCellUtils.getCellReference(this, getCell(), getRow(), getCol()); } protected String getCellReferenceStr() { return getCellReference().formatAsString(); } }