Class RolapAggregationManager

  • Direct Known Subclasses:
    AggregationManager

    public abstract class RolapAggregationManager
    extends Object
    RolapAggregationManager manages all Segments in the system.

    The bits of the implementation which depend upon dimensional concepts RolapMember, etc.) live in this class, and the other bits live in the derived class, AggregationManager.

    Since:
    30 August, 2001
    Author:
    jhyde
    • Constructor Detail

      • RolapAggregationManager

        protected RolapAggregationManager()
        Creates the RolapAggregationManager.
    • Method Detail

      • makeRequest

        public static CellRequest makeRequest​(Member[] members)
        Creates a request to evaluate the cell identified by members.

        If any of the members is the null member, returns null, since there is no cell. If the measure is calculated, returns null.

        Parameters:
        members - Set of members which constrain the cell
        Returns:
        Cell request, or null if the requst is unsatisfiable
      • makeDrillThroughRequest

        public static DrillThroughCellRequest makeDrillThroughRequest​(Member[] members,
                                                                      boolean extendedContext,
                                                                      RolapCube cube,
                                                                      List<OlapElement> returnClauseMembers)
        Creates a request for the fact-table rows underlying the cell identified by members.

        If any of the members is the null member, returns null, since there is no cell. If the measure is calculated, returns null.

        Parameters:
        members - Set of members which constrain the cell
        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.
        cube - Cube
        Returns:
        Cell request, or null if the requst is unsatisfiable
      • makeRequest

        public static CellRequest makeRequest​(RolapEvaluator evaluator)
        Creates a request to evaluate the cell identified by the context specified in evaluator.

        If any of the members from the context is the null member, returns null, since there is no cell. If the measure is calculated, returns null.

        Parameters:
        evaluator - the cell specified by the evaluator context
        Returns:
        Cell request, or null if the requst is unsatisfiable
      • getCellFromCache

        public abstract Object getCellFromCache​(CellRequest request)
        Retrieves the value of a cell from the cache.
        Parameters:
        request - Cell request
        Returns:
        Cell value, or null if cell is not in any aggregation in cache, or Util.nullValue if cell's value is null
      • getDrillThroughSql

        public abstract String getDrillThroughSql​(DrillThroughCellRequest request,
                                                  StarPredicate starPredicateSlicer,
                                                  List<OlapElement> fields,
                                                  boolean countOnly)
        Generates a SQL statement which will return the rows which contribute to this request.
        Parameters:
        request - Cell request
        countOnly - If true, return a statment which returns only the count
        starPredicateSlicer - A StarPredicate representing slicer positions that could not be represented by the CellRequest, or null if no additional predicate is necessary.
        Returns:
        SQL statement
      • getCacheCellReader

        public mondrian.rolap.CellReader getCacheCellReader()
        Returns a CellReader which reads cells from cache.