Interface CellSet
- All Superinterfaces:
AutoCloseable,OlapWrapper,ResultSet,Wrapper
A CellSet consists of a set of (typically two) axes,
each populated with a sequence of members, and a collection of cells at the
intersection of these axes.
Cell ordinals and coordinates
There are two ways to identify a particular cell: ordinal and coordinates.
Suppose that there are p axes, and each axis k
(k between 0 and p - 1) has
Uk positions.
There are U
= U0 * ... * Up - 1 cells in total.
Then:
- A cell's
ordinalis an integer between 0 andU - 1. - A cell's
coordinatesare a list ofpintegers, indicating the cell's position on each axis. Each integer is between 0 andUp-1.
The ordinal number of a cell whose tuple ordinals are
(S0, S1, ... Sp-1) is
Σi=0p-1 Si . EiwhereE0 = 1andEi = Πi=0p-1 Uk
- Since:
- Aug 22, 2006
- Author:
- jhyde
-
Field Summary
Fields inherited from interface java.sql.ResultSet
CLOSE_CURSORS_AT_COMMIT, CONCUR_READ_ONLY, CONCUR_UPDATABLE, FETCH_FORWARD, FETCH_REVERSE, FETCH_UNKNOWN, HOLD_CURSORS_OVER_COMMIT, TYPE_FORWARD_ONLY, TYPE_SCROLL_INSENSITIVE, TYPE_SCROLL_SENSITIVE -
Method Summary
Modifier and TypeMethodDescriptionintcoordinatesToOrdinal(List<Integer> coordinates) Converts a list of cell coordinates to a cell ordinal.getAxes()Retrieves a list of CellSetAxis objects containing the result.getCell(int ordinal) Returns the Cell at an ordinal.Returns the Cell at a given set of coordinates.Returns the Cell at the intersection of a set of axis positions.Retrieves the CellSetAxis representing the filter axis.Retrieves the description of thisCellSet's axes and cells.Retrieves theOlapStatementobject that produced thisCellSetobject.ordinalToCoordinates(int ordinal) Converts a cell ordinal to a list of cell coordinates.Methods inherited from interface org.olap4j.OlapWrapper
isWrapperFor, unwrapMethods inherited from interface java.sql.ResultSet
absolute, afterLast, beforeFirst, cancelRowUpdates, clearWarnings, close, deleteRow, findColumn, first, getArray, getArray, getAsciiStream, getAsciiStream, getBigDecimal, getBigDecimal, getBigDecimal, getBigDecimal, getBinaryStream, getBinaryStream, getBlob, getBlob, getBoolean, getBoolean, getByte, getByte, getBytes, getBytes, getCharacterStream, getCharacterStream, getClob, getClob, getConcurrency, getCursorName, getDate, getDate, getDate, getDate, getDouble, getDouble, getFetchDirection, getFetchSize, getFloat, getFloat, getHoldability, getInt, getInt, getLong, getLong, getNCharacterStream, getNCharacterStream, getNClob, getNClob, getNString, getNString, getObject, getObject, getObject, getObject, getObject, getObject, getRef, getRef, getRow, getRowId, getRowId, getShort, getShort, getSQLXML, getSQLXML, getString, getString, getTime, getTime, getTime, getTime, getTimestamp, getTimestamp, getTimestamp, getTimestamp, getType, getUnicodeStream, getUnicodeStream, getURL, getURL, getWarnings, insertRow, isAfterLast, isBeforeFirst, isClosed, isFirst, isLast, last, moveToCurrentRow, moveToInsertRow, next, previous, refreshRow, relative, rowDeleted, rowInserted, rowUpdated, setFetchDirection, setFetchSize, updateArray, updateArray, updateAsciiStream, updateAsciiStream, updateAsciiStream, updateAsciiStream, updateAsciiStream, updateAsciiStream, updateBigDecimal, updateBigDecimal, updateBinaryStream, updateBinaryStream, updateBinaryStream, updateBinaryStream, updateBinaryStream, updateBinaryStream, updateBlob, updateBlob, updateBlob, updateBlob, updateBlob, updateBlob, updateBoolean, updateBoolean, updateByte, updateByte, updateBytes, updateBytes, updateCharacterStream, updateCharacterStream, updateCharacterStream, updateCharacterStream, updateCharacterStream, updateCharacterStream, updateClob, updateClob, updateClob, updateClob, updateClob, updateClob, updateDate, updateDate, updateDouble, updateDouble, updateFloat, updateFloat, updateInt, updateInt, updateLong, updateLong, updateNCharacterStream, updateNCharacterStream, updateNCharacterStream, updateNCharacterStream, updateNClob, updateNClob, updateNClob, updateNClob, updateNClob, updateNClob, updateNString, updateNString, updateNull, updateNull, updateObject, updateObject, updateObject, updateObject, updateObject, updateObject, updateObject, updateObject, updateRef, updateRef, updateRow, updateRowId, updateRowId, updateShort, updateShort, updateSQLXML, updateSQLXML, updateString, updateString, updateTime, updateTime, updateTimestamp, updateTimestamp, wasNullMethods inherited from interface java.sql.Wrapper
isWrapperFor, unwrap
-
Method Details
-
getStatement
Retrieves theOlapStatementobject that produced thisCellSetobject. If the result set was generated some other way, such as by aOlapDatabaseMetaDatamethod, this method may returnnull.- Specified by:
getStatementin interfaceResultSet- Returns:
- the
OlapStatmentobject that produced thisCellSetobject ornullif the cell set was produced some other way - Throws:
SQLException- if a database access error occurs or this method is called on a closed cell set
-
getMetaData
Retrieves the description of thisCellSet's axes and cells.- Specified by:
getMetaDatain interfaceResultSet- Returns:
- the description of this
CellSet's axes and cells - Throws:
OlapException- if a database access error occurs
-
getAxes
List<CellSetAxis> getAxes()Retrieves a list of CellSetAxis objects containing the result.The list contains axes according to their ordinal: 0 is the columns axis, 1 the rows axis, and so forth.
- Returns:
- list of CellSetAxis objects containing the result
- See Also:
-
getFilterAxis
CellSetAxis getFilterAxis()Retrieves the CellSetAxis representing the filter axis.If the query has a WHERE clause, the contains the members returned by that expression. Most query authors write a WHERE clause so that it evaluates to just one member or tuple. The members in this tuple (or the sole member), are referred to as the 'slicer context' of the query. The tuple contains only members of hierarchies explicitly mentioned in the WHERE expression; the slicer context of every hierarchy in the query's cube is implicitly the default member of that hierarchy.
While not typical, note that a query's WHERE clause may also evaluate to zero or more than one tuples.
If the query has no WHERE clause, the filter axis has a single position, but the position has no members.
The filter axis is not included in the
getAxes()collection.- Returns:
- the filter axis
-
getCell
Returns the Cell at a given set of coordinates.- Parameters:
coordinates- List of 0-based coordinates of the cell- Returns:
- Cell
- Throws:
IndexOutOfBoundsException- if coordinates are outside CellSet bounds
-
getCell
Returns the Cell at an ordinal.Equivalent to
getCell(ordinalToCoordinates(ordinal))- Parameters:
ordinal- 0-based ordinal of the cell- Returns:
- Cell
- Throws:
IndexOutOfBoundsException- if ordinal lies outside CellSet bounds
-
getCell
Returns the Cell at the intersection of a set of axis positions.Equivalent to
getCell( Arrays.asList( positions[0].ordinal(), positions[1].ordinal() [, ...]))- Parameters:
positions- Array of positions- Returns:
- Cell
- Throws:
IllegalArgumentException- if positions does not have the same number of members as the cell set has axesIndexOutOfBoundsException- if positions lie outside CellSet bounds
-
ordinalToCoordinates
Converts a cell ordinal to a list of cell coordinates.- Parameters:
ordinal- Cell ordinal- Returns:
- Cell coordinates
-
coordinatesToOrdinal
Converts a list of cell coordinates to a cell ordinal.- Parameters:
coordinates- Cell coordinates- Returns:
- Cell ordinal
-