public Number getEndValue(Comparable rowKey, Comparable columnKey,
			int subinterval) {
		int r = getRowIndex(rowKey);
		int c = getColumnIndex(columnKey);
		if (c != -1) {
            return this.underlying.getEndValue(r,
            		c + this.firstCategoryIndex, subinterval);
		}
		else {
			throw new UnknownKeyException("Unknown columnKey: " + columnKey);
		}
	}

    /**
     * Returns the end value of a sub-interval for a given item.
     *
     * @param row  the row index (zero-based).
     * @param column  the column index (zero-based).
     * @param subinterval  the sub-interval.
     *
     * @return The end value (possibly <code>null</code>).
     *
     * @see #getStartValue(int, int, int)
     */
	public Number getEndValue(int row, int column, int subinterval) {
		return this.underlying.getEndValue(row,
				column + this.firstCategoryIndex, subinterval);