mondrian.rolap
Class RolapCell

java.lang.Object
  extended by mondrian.rolap.RolapCell
All Implemented Interfaces:
Cell

public class RolapCell
extends Object
implements Cell

RolapCell implements Cell within a RolapResult.


Field Summary
protected  RolapResult.CellInfo ci
           
protected  int[] pos
           
 
Constructor Summary
RolapCell(RolapResult result, int[] pos, RolapResult.CellInfo ci)
          Creates a RolapCell.
 
Method Summary
 boolean canDrillThrough()
          Returns whether it is possible to drill through this cell.
static RolapCube chooseDrillThroughCube(Member[] currentMembers, RolapCube defaultCube)
           
 SqlStatement drillThroughInternal(int maxRowCount, int firstRowOrdinal, List<Exp> fields, boolean extendedContext, org.apache.log4j.Logger logger)
          Generates an executes a SQL statement to drill through this cell.
 String getCachedFormatString()
          Return the cached formatted string, that survives an aggregate cache clear.
 Member getContextMember(Hierarchy hierarchy)
          Returns the context member for a particular dimension.
 List<Integer> getCoordinateList()
          Returns the coordinates of this Cell in its Result.
 int getDrillThroughCount()
          Returns the number of fact table rows which contributed to this Cell.
 String getDrillThroughSQL(boolean extendedContext)
          Returns a SQL query that, when executed, returns drill through data for this Cell.
 String getDrillThroughSQL(List<Exp> fields, boolean extendedContext)
           
 String getFormattedValue()
          Returns the cell's value formatted according to the current format string, and locale-specific settings such as currency symbol.
 Object getPropertyValue(String propertyName)
          Returns the value of a property.
 Object getValue()
          Returns the cell's raw value.
 boolean isError()
          Returns whether the cell's calculation returned an error.
 boolean isNull()
          Returns whether the cell's value is null.
 void setValue(Scenario scenario, Object newValue, AllocationPolicy allocationPolicy, Object... allocationArgs)
          Helper method to implement Cell.setValue(java.lang.Object, org.olap4j.AllocationPolicy, java.lang.Object...).
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

pos

protected final int[] pos

ci

protected RolapResult.CellInfo ci
Constructor Detail

RolapCell

RolapCell(RolapResult result,
          int[] pos,
          RolapResult.CellInfo ci)
Creates a RolapCell.

Parameters:
result - Result cell belongs to
pos - Coordinates of cell
ci - Cell information, containing value et cetera
Method Detail

getCoordinateList

public List<Integer> getCoordinateList()
Description copied from interface: Cell
Returns the coordinates of this Cell in its Result.

Specified by:
getCoordinateList in interface Cell
Returns:
Coordinates of this Cell

getValue

public Object getValue()
Description copied from interface: Cell
Returns the cell's raw value. This is useful for sending to further data processing, such as plotting a chart.

The value is never null. It may have various types:

Specified by:
getValue in interface Cell

getCachedFormatString

public String getCachedFormatString()
Description copied from interface: Cell
Return the cached formatted string, that survives an aggregate cache clear.

Specified by:
getCachedFormatString in interface Cell

getFormattedValue

public String getFormattedValue()
Description copied from interface: Cell
Returns the cell's value formatted according to the current format string, and locale-specific settings such as currency symbol. The current format string may itself be derived via an expression. For more information about format strings, see Format.

Specified by:
getFormattedValue in interface Cell

isNull

public boolean isNull()
Description copied from interface: Cell
Returns whether the cell's value is null.

Specified by:
isNull in interface Cell

isError

public boolean isError()
Description copied from interface: Cell
Returns whether the cell's calculation returned an error.

Specified by:
isError in interface Cell

getDrillThroughSQL

public String getDrillThroughSQL(boolean extendedContext)
Description copied from interface: Cell
Returns a SQL query that, when executed, returns drill through data for this Cell.

If the parameter extendedContext is true, then the query will include all the levels (i.e. columns) of non-constraining members (i.e. members which are at the "All" level).

If the parameter extendedContext is false, the query will exclude the levels (coulmns) of non-constraining members.

The result is null if the cell is based upon a calculated member.

Specified by:
getDrillThroughSQL in interface Cell

getDrillThroughSQL

public String getDrillThroughSQL(List<Exp> fields,
                                 boolean extendedContext)

getDrillThroughCount

public int getDrillThroughCount()
Description copied from interface: Cell
Returns the number of fact table rows which contributed to this Cell.

Specified by:
getDrillThroughCount in interface Cell

canDrillThrough

public boolean canDrillThrough()
Returns whether it is possible to drill through this cell. Drill-through is possible if the measure is a stored measure and not possible for calculated measures.

Specified by:
canDrillThrough in interface Cell
Returns:
true if can drill through

chooseDrillThroughCube

public static RolapCube chooseDrillThroughCube(Member[] currentMembers,
                                               RolapCube defaultCube)

drillThroughInternal

public SqlStatement drillThroughInternal(int maxRowCount,
                                         int firstRowOrdinal,
                                         List<Exp> fields,
                                         boolean extendedContext,
                                         org.apache.log4j.Logger logger)
Generates an executes a SQL statement to drill through this cell.

Throws if this cell is not drillable.

Enforces limits on the starting and last row.

If tabFields is not null, returns the specified columns. (This option is deprecated.)

Parameters:
maxRowCount - Maximum number of rows to retrieve, <= 0 if unlimited
firstRowOrdinal - Ordinal of row to skip to (1-based), or 0 to start from beginning
fields - List of field expressions to return as the result set columns.
extendedContext - If true, add non-constraining columns to the query for levels below each current member. This additional context makes the drill-through queries easier for humans to understand.
logger - Logger. If not null and debug is enabled, log SQL here
Returns:
executed SQL statement

getPropertyValue

public Object getPropertyValue(String propertyName)
Description copied from interface: Cell
Returns the value of a property.

Specified by:
getPropertyValue in interface Cell
Parameters:
propertyName - Case-sensitive property name
Returns:
Value of property

getContextMember

public Member getContextMember(Hierarchy hierarchy)
Description copied from interface: Cell
Returns the context member for a particular dimension. The member is defined as follows (note that there is always a member):

Specified by:
getContextMember in interface Cell
Parameters:
hierarchy - Hierarchy
Returns:
current member of given hierarchy

setValue

public void setValue(Scenario scenario,
                     Object newValue,
                     AllocationPolicy allocationPolicy,
                     Object... allocationArgs)
Description copied from interface: Cell
Helper method to implement Cell.setValue(java.lang.Object, org.olap4j.AllocationPolicy, java.lang.Object...).

Specified by:
setValue in interface Cell
Parameters:
scenario - Scenario
newValue - New value
allocationPolicy - Allocation policy
allocationArgs - Arguments for allocation policy

Get Mondrian at SourceForge.net. Fast, secure and free Open Source software downloads