public class RolapResult extends ResultBase
RolapResult
is the result of running a query.Modifier and Type | Class and Description |
---|---|
(package private) static class |
RolapResult.CellFormatterValueFormatter
A CellFormatterValueFormatter uses a user-defined
CellFormatter
to format values. |
(package private) static class |
RolapResult.CellInfo
A CellInfo contains all of the information that a Cell requires.
|
(package private) static interface |
RolapResult.CellInfoContainer
API for the creation and
lookup of
RolapResult.CellInfo objects. |
(package private) static class |
RolapResult.CellInfoMap
Implementation of
RolapResult.CellInfoContainer which uses a Map to
store CellInfo Objects. |
(package private) static class |
RolapResult.CellInfoPool
Implementation of
RolapResult.CellInfoContainer which uses an
ObjectPool to store RolapResult.CellInfo Objects. |
(package private) static class |
RolapResult.FormatValueFormatter
|
protected static class |
RolapResult.RolapResultEvaluatorRoot
Extension to
RolapEvaluatorRoot which is capable
of evaluating sets and named sets.
A given set is only evaluated once each time a query is executed; the
result is added to the RolapResult.RolapResultEvaluatorRoot.namedSetEvaluators cache on first execution
and re-used. |
(package private) static interface |
RolapResult.ValueFormatter
Formatter to convert values into formatted strings.
|
Modifier and Type | Field and Description |
---|---|
protected static Map<Locale,RolapResult.ValueFormatter> |
formatValueFormatters
Synchronized Map from Locale to ValueFormatter.
|
(package private) static org.apache.log4j.Logger |
LOGGER |
(package private) RolapEvaluator |
slicerEvaluator |
axes, execution, query, slicerAxis, statement
Constructor and Description |
---|
RolapResult(Execution execution,
boolean execute)
Creates a RolapResult.
|
Modifier and Type | Method and Description |
---|---|
void |
close() |
(package private) TupleIterable |
evalExecute(List<List<Member>> nonAllMembers,
int cnt,
RolapEvaluator evaluator,
QueryAxis queryAxis,
Calc calc) |
(package private) void |
evalLoad(List<List<Member>> nonAllMembers,
int cnt,
Evaluator evaluator,
QueryAxis axis,
Calc calc,
mondrian.rolap.RolapResult.AxisMemberList axisMembers) |
(package private) Object |
evaluateExp(Calc calc,
RolapEvaluator slicerEvaluator,
Evaluator contextEvaluator)
Evaluates an expression.
|
Axis[] |
getAxes()
Returns the non-slicer axes.
|
Cell |
getCell(int[] pos)
Get the Cell for the given Cell position.
|
(package private) RolapMember[] |
getCellMembers(int[] pos)
Called only by RolapCell.
|
(package private) int |
getCellOrdinal(int[] pos)
Converts a set of cell coordinates to a cell ordinal.
|
RolapCube |
getCube() |
(package private) Evaluator |
getEvaluator(int[] pos) |
Execution |
getExecution() |
protected org.apache.log4j.Logger |
getLogger() |
(package private) Evaluator |
getRootEvaluator() |
(package private) boolean |
isDirty() |
protected void |
loadMembers(List<List<Member>> nonAllMembers,
RolapEvaluator evaluator,
QueryAxis axis,
Calc calc,
mondrian.rolap.RolapResult.AxisMemberList axisMembers) |
protected void |
loadSpecialMembers(List<Member> nonDefaultAllMembers,
List<List<Member>> nonAllMembers,
List<Member> measureMembers)
Finds all root Members 1) whose Hierarchy does not have an ALL
Member, 2) whose default Member is not the ALL Member and 3)
all Measures.
|
protected void |
makeModulos()
Instantiates the calculator to convert cell coordinates to a cell ordinal
and vice versa.
|
(package private) static TupleList |
mergeAxes(TupleList axis1,
TupleIterable axis2,
boolean ordered) |
(package private) void |
populateEvaluator(Evaluator evaluator,
int[] pos) |
protected boolean |
removeDimension(Dimension dimension,
List<List<Member>> memberLists) |
protected boolean |
replaceNonAllMembers(List<List<Member>> nonAllMembers,
mondrian.rolap.RolapResult.AxisMemberList axisMembers) |
getMember, getQuery, getSlicerAxis, print
static final org.apache.log4j.Logger LOGGER
RolapEvaluator slicerEvaluator
protected static final Map<Locale,RolapResult.ValueFormatter> formatValueFormatters
RolapResult(Execution execution, boolean execute)
execution
- Execution of a statementexecute
- Whether to execute the querypublic void close()
close
in interface Result
close
in class ResultBase
protected boolean removeDimension(Dimension dimension, List<List<Member>> memberLists)
public final Execution getExecution()
protected boolean replaceNonAllMembers(List<List<Member>> nonAllMembers, mondrian.rolap.RolapResult.AxisMemberList axisMembers)
protected void loadMembers(List<List<Member>> nonAllMembers, RolapEvaluator evaluator, QueryAxis axis, Calc calc, mondrian.rolap.RolapResult.AxisMemberList axisMembers)
void evalLoad(List<List<Member>> nonAllMembers, int cnt, Evaluator evaluator, QueryAxis axis, Calc calc, mondrian.rolap.RolapResult.AxisMemberList axisMembers)
TupleIterable evalExecute(List<List<Member>> nonAllMembers, int cnt, RolapEvaluator evaluator, QueryAxis queryAxis, Calc calc)
protected void loadSpecialMembers(List<Member> nonDefaultAllMembers, List<List<Member>> nonAllMembers, List<Member> measureMembers)
nonDefaultAllMembers
- List of all root Members for Hierarchies
whose default Member is not the ALL Member.nonAllMembers
- List of root Members for Hierarchies that have no
ALL Member.measureMembers
- List all Measuresprotected org.apache.log4j.Logger getLogger()
getLogger
in class ResultBase
public final RolapCube getCube()
public Axis[] getAxes()
Result
getAxes
in interface Result
getAxes
in class ResultBase
public Cell getCell(int[] pos)
pos
- Cell position.boolean isDirty()
Object evaluateExp(Calc calc, RolapEvaluator slicerEvaluator, Evaluator contextEvaluator)
Does not modify the contents of the evaluator.
calc
- Compiled expressionslicerEvaluator
- Evaluation context for slicerscontextEvaluator
- Evaluation context (optional)int getCellOrdinal(int[] pos)
This method can be expensive, because the ordinal is computed from the length of the axes, and therefore the axes need to be instantiated.
protected void makeModulos()
To create the calculator, any axis that is based upon an Iterable is converted into a List - thus increasing memory usage.
RolapMember[] getCellMembers(int[] pos)
pos
- Coordinates of cellEvaluator getRootEvaluator()
Evaluator getEvaluator(int[] pos)
void populateEvaluator(Evaluator evaluator, int[] pos)
static TupleList mergeAxes(TupleList axis1, TupleIterable axis2, boolean ordered)