A table element consists of rows, columns, and cells.
Cells can span one or more rows and columns.
Currently, only one cell is allowed to exist at the intersection
of a row and a column, but this may be relaxed in the future.

The word "tier" is used to refer to either a row or a column. Some tiers
may be designated as header tiers. Header tiers must be the first tiers
in the table. Similarly, some tiers may be designated as footer tiers.
Footer tiers must be the last tiers in the table.

java.lang.IndexOutOfBoundsException - if any index is negative, if an
end index is less than its corresponding start index,
or if an end index is greater than or equal to the number of
corresponding tiers in this table

java.lang.IndexOutOfBoundsException - if any index is negative, if an
end index is less than its corresponding start index,
or if an end index is greater than or equal to the number of
tiers in this table element

getHeaderTierCount

Returns the number of header rows or header columns in this table element.
If the specified direction is ROW, the number of header rows is given;
if COLUMN, the number of header columns is given. The returned count
may be zero and must be less than the toal number of tiers.

getFooterTierCount

Returns the number of footer rows or footer columns in this table element.
If the specified type is ROW, the number of footer rows is given;
if COLUMN, the number of footer columns is given. The returned count
may be zero and must be less than the toal number of tiers.