Class RolapResult.CellInfoPool

  • All Implemented Interfaces:
    RolapResult.CellInfoContainer
    Enclosing class:
    RolapResult

    static class RolapResult.CellInfoPool
    extends Object
    implements RolapResult.CellInfoContainer
    Implementation of RolapResult.CellInfoContainer which uses an ObjectPool to store RolapResult.CellInfo Objects.

    There is an inner interface (CellKeyMaker) and implementations for 0 through 4 axes that convert the Cell position integer array into a long.

    It should be noted that there is an alternate approach. As the executeStripe method is recursively called, at each call it is known which axis is being iterated across and it is known whether or not the Position object for that axis is a List or just an Iterable. It it is a List, then one knows the real size of the axis. If it is an Iterable, then one has to use one of the MAX_AXIS_SIZE values. Given that this information is available when one recursives down to the next executeStripe call, the Cell ordinal, the position integer array could converted to an long, could be generated on the call stack!! Just a thought for the future.

    • Field Detail

      • MAX_AXIS_SIZE_2

        protected static final long MAX_AXIS_SIZE_2
        The maximum number of Members, 2,147,483,647, that can be any given Axis when the number of Axes is 2.
        See Also:
        Constant Field Values
      • MAX_AXIS_SIZE_3

        protected static final long MAX_AXIS_SIZE_3
        The maximum number of Members, 2,000,000, that can be any given Axis when the number of Axes is 3.
        See Also:
        Constant Field Values
      • MAX_AXIS_SIZE_4

        protected static final long MAX_AXIS_SIZE_4
        The maximum number of Members, 50,000, that can be any given Axis when the number of Axes is 4.
        See Also:
        Constant Field Values
    • Constructor Detail

      • CellInfoPool

        CellInfoPool​(int axisLength)
      • CellInfoPool

        CellInfoPool​(int axisLength,
                     int initialSize)