# Class WebTable

java.lang.Object
com.meterware.httpunit.WebTable

All Implemented Interfaces:
  `HTMLElement, ScriptingEventHandler`

public class WebTable extends Object
This class represents a table in an HTML page.

Author:
  Russell Gold, Benoit Xhenseval

## Field Summary

Fields
Modifier and Type
Field
Description
`static final HTMLElementPredicate`
`MATCH_FIRST_NONBLANK_CELL`
Predicate to match the complete text of a table's first non-blank cell.
`static final HTMLElementPredicate`
`MATCH_FIRST_NONBLANK_CELL_PREFIX`
Predicate to match a prefix of a table's first non-blank cell.
`static final HTMLElementPredicate`
`MATCH_ID`
Predicate to match a table's ID.
`static final HTMLElementPredicate`
`MATCH_SUMMARY`
Predicate to match a table's summary attribute.

## Method Summary

Modifier and Type
Method
Description
`String[][]`
`asText()`
Returns a rendering of this table with all cells converted to text.
`boolean`
`doEvent(String eventScript)`
Deprecated.
since 1.7 - use doEventScript instead
`boolean`
`doEventScript(String eventScript)`
optional do the event if it's defined
`String`
`getAttribute(String name)`
get the Attribute with the given name - by delegating to NodeUtils
`protected String`
`getAttribute(String name, String defaultValue)`
`String`
`getCellAsText(int row, int column)`
Returns the contents of the specified table cell as text.
`String`
`getClassName()`
Returns the class associated with this element.
`int`
`getColumnCount()`
Returns the number of columns in the table.
`String`
`getID()`
Returns the ID associated with this element.
`String`
`getName()`
Returns the name associated with this element.
`Node`
`getNode()`
Returns the DOM node underlying this element.
`ScriptableDelegate`
`getParentDelegate()`
Returns the scriptable delegate which can provide the scriptable delegate for this element.
`int`
`getRowCount()`
Returns the number of rows in the table.
`TableRow[]`
`getRows()`
Returns an array of rows for this table.
`ScriptingHandler`
`getScriptingHandler()`
Returns a scriptable object which can act as a proxy for this control.
`String`
`getSummary()`
Returns the summary attribute associated with this table.
`TableCell`
`getTableCell(int row, int column)`
Returns the contents of the specified table cell as text.
`TableCell`
`getTableCellWithID(String id)`
Returns the contents of the specified table cell with a given ID
`String`
`getTagName()`
Returns the tag name of this node.
`String`
`getText()`
Returns the text value of this block.
`String`
`getTitle()`
Returns the title associated with this element.
`boolean`
`handleEvent(String eventName)`
handle the event with the given name by getting the attribute and then executing the eventScript for it
`boolean`
`isSupportedAttribute(String name)`
Returns true if this element may have an attribute with the specified name.
`ScriptableDelegate`
`newScriptable()`
Creates and returns a scriptable object for this control.
`void`
`purgeEmptyCells()`
Removes all rows and all columns from this table which have no visible text in them.
`void`
`removeAttribute(String name)`
remove the Attribute with the given name - by delegating to NodeUtils
`void`
`setAttribute(String name, Object value)`
set the Attribute with the given name - by delegating to NodeUtils
`protected void`
`supportAttribute(String name)`
`String`
`toString()`

### Methods inherited from class Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

## Field Details

### MATCH_FIRST_NONBLANK_CELL

public static final HTMLElementPredicate MATCH_FIRST_NONBLANK_CELL
Predicate to match the complete text of a table's first non-blank cell.

### MATCH_FIRST_NONBLANK_CELL_PREFIX

public static final HTMLElementPredicate MATCH_FIRST_NONBLANK_CELL_PREFIX
Predicate to match a prefix of a table's first non-blank cell.

### MATCH_SUMMARY

public static final HTMLElementPredicate MATCH_SUMMARY
Predicate to match a table's summary attribute.

### MATCH_ID

public static final HTMLElementPredicate MATCH_ID
Predicate to match a table's ID.

## Method Details

### getRowCount

public int getRowCount()
Returns the number of rows in the table.

### getColumnCount

public int getColumnCount()
Returns the number of columns in the table.

### getCellAsText

public String getCellAsText(int row, int column)
Returns the contents of the specified table cell as text. The row and column numbers are zero-based.

Throws:
  `IndexOutOfBoundsException` - if the specified cell numbers are not valid

### getTableCell

public TableCell getTableCell(int row, int column)
Returns the contents of the specified table cell as text. The row and column numbers are zero-based.

Throws:
  `IndexOutOfBoundsException` - if the specified cell numbers are not valid

### getTableCellWithID

public TableCell getTableCellWithID(String id)
Returns the contents of the specified table cell with a given ID

Returns:
  TableCell with given ID or null if ID is not found.

### purgeEmptyCells

public void purgeEmptyCells()
Removes all rows and all columns from this table which have no visible text in them. patch [ 1117822 ] Patch for purgeEmptyCells() problem by Glen Stampoultzis

### asText

public String[][] asText()
Returns a rendering of this table with all cells converted to text.

### getSummary

public String getSummary()
Returns the summary attribute associated with this table.

### toString

public String toString()

Overrides:
  `toString` in class `Object`

### newScriptable

public ScriptableDelegate newScriptable()
Creates and returns a scriptable object for this control. Subclasses should override this if they use a different implementation of Scriptable.

Specified by:
  `newScriptable` in interface `HTMLElement`

### getParentDelegate

public ScriptableDelegate getParentDelegate()
Description copied from interface: `HTMLElement`
Returns the scriptable delegate which can provide the scriptable delegate for this element.

### getRows

public TableRow[] getRows()
Returns an array of rows for this table.

### getID

public String getID()
Description copied from interface: `HTMLElement`
Returns the ID associated with this element. IDs are unique throughout the HTML document.

Specified by:
  `getID` in interface `HTMLElement`

### getClassName

public String getClassName()
Description copied from interface: `HTMLElement`
Returns the class associated with this element.

Specified by:
  `getClassName` in interface `HTMLElement`

### getTitle

public String getTitle()
Description copied from interface: `HTMLElement`
Returns the title associated with this element.

Specified by:
  `getTitle` in interface `HTMLElement`

### getName

public String getName()
Description copied from interface: `HTMLElement`
Returns the name associated with this element.

Specified by:
  `getName` in interface `HTMLElement`

### getScriptingHandler

public ScriptingHandler getScriptingHandler()
Returns a scriptable object which can act as a proxy for this control.

Specified by:
  `getScriptingHandler` in interface `HTMLElement`

### doEvent

public boolean doEvent(String eventScript)
Deprecated.
since 1.7 - use doEventScript instead
handle the event that has the given script attached by compiling the eventScript as a function and executing it

Specified by:
  `doEvent` in interface `ScriptingEventHandler`
Parameters:
  `eventScript` - - the script to use
Returns:
  true if the script is empty or the result of the script

### doEventScript

public boolean doEventScript(String eventScript)
optional do the event if it's defined

Specified by:
  `doEventScript` in interface `ScriptingEventHandler`
Parameters:
  `eventScript` -
Returns:
  true if the script is empty or the result of the script

### handleEvent

public boolean handleEvent(String eventName)
Description copied from interface: `ScriptingEventHandler`
handle the event with the given name by getting the attribute and then executing the eventScript for it

Specified by:
  `handleEvent` in interface `ScriptingEventHandler`
Parameters:
  `eventName` -
Returns:
  the result of doEventScript

### getText

public String getText()
Returns the text value of this block.

Specified by:
  `getText` in interface `HTMLElement`

### getTagName

public String getTagName()
Description copied from interface: `HTMLElement`
Returns the tag name of this node.

Specified by:
  `getTagName` in interface `HTMLElement`

### getAttribute

public String getAttribute(String name)
get the Attribute with the given name - by delegating to NodeUtils

Specified by:
  `getAttribute` in interface `HTMLElement`
Parameters:
  `name` - - the name of the attribute to get
Returns:
  the attribute

### setAttribute

public void setAttribute(String name, Object value)
set the Attribute with the given name - by delegating to NodeUtils

Specified by:
  `setAttribute` in interface `HTMLElement`
Parameters:
  `name` - - the name of the attribute to set
  `value` - - the value to set

### removeAttribute

public void removeAttribute(String name)
remove the Attribute with the given name - by delegating to NodeUtils

Specified by:
  `removeAttribute` in interface `HTMLElement`
Parameters:
  `name` - - the name of the attribute to remove

### isSupportedAttribute

public boolean isSupportedAttribute(String name)
Description copied from interface: `HTMLElement`
Returns true if this element may have an attribute with the specified name.

Specified by:
  `isSupportedAttribute` in interface `HTMLElement`

### getAttribute

protected String getAttribute(String name, String defaultValue)

### getNode

public Node getNode()
Description copied from interface: `HTMLElement`
Returns the DOM node underlying this element.

Specified by:
  `getNode` in interface `HTMLElement`

### supportAttribute

protected void supportAttribute(String name)