Package mondrian.rolap

Implements the data access layer for the olap package.

See:
          Description

Interface Summary
BitKey Represents a set of bits.
CacheControlImpl.CellRegionImpl  
CacheControlImpl.CellRegionVisitor Visitor which visits various sub-types of CacheControlImpl.MemberCellRegion.
CacheControlImpl.MemberEditCommandPlus Implementation-specific extensions to the CacheControl.MemberEditCommand interface.
CacheControlImpl.MemberSetPlus Implementation-specific extensions to the CacheControl.MemberSet interface.
CacheControlImpl.MemberSetVisitor Visits the subclasses of CacheControlImpl.MemberSetPlus.
CellKey A CellKey is used as a key in maps which access cells by their position.
CellReader A CellReader finds the cell value for the current context held by evaluator.
FastBatchingCellReader.Loadable Encapsulates a common property of FastBatchingCellReader.CompositeBatch and FastBatchingCellReader.CompositeBatch, namely, that they can be asked to load their aggregations into the cache.
MemberCache A MemberCache can retrieve members based upon their parent and name.
MemberReader A MemberReader implements common operations to retrieve members from a hierarchy.
MemberSource A MemberSource has the basic operations to read the members of a hierarchy.
Modulos Modulos implementations encapsulate algorithms to map between integral ordinals and position arrays.
RolapAggregationManager.PinSet A set of segments which are pinned (prevented from garbage collection) for a short duration as a result of a cache inquiry.
RolapCalculation Entry in the evaluation context that indicates a calculation that needs to be performed before we get to the atomic stored cells.
RolapCubeHierarchy.RolapCubeHierarchyMemberReader TODO: Since this is part of a caching strategy, should be implemented as a Strategy Pattern, avoiding hirarchy.
RolapCubeLevel.LevelReader Encapsulation of the difference between levels in terms of how constraints are generated.
RolapMeasure Interface implemented by all measures (both stored and calculated).
RolapMember.PropertyValueMapFactory Interface definition for the pluggable factory used to decide which implementation of Map to use to store property string/value pairs for member properties.
RolapNative.Listener  
RolapNativeSet.CrossJoinArg "Light version" of a TupleConstraint, represents one of member.children, level.members, member.descendants, {enumeration}.
RolapNativeSet.SchemaReaderWithMemberReaderAvailable  
RolapNativeSql.SqlCompiler Translates an expression into SQL
RolapResult.CellInfoContainer API for the creation and lookup of RolapResult.CellInfo objects.
RolapResult.CellInfoPool.CellKeyMaker Implementations of CellKeyMaker convert the Cell position integer array to a long.
RolapResult.ValueFormatter Formatter to convert values into formatted strings.
RolapStoredMeasure A measure which is implemented by a SQL column or SQL expression (as opposed to a RolapCalculatedMember.
RolapUtil.ExecuteQueryHook  
SqlMemberSource.ValuePoolFactory Interface definition for the pluggable factory used to decide which implementation of Map to use to pool reusable values.
StarColumnPredicate Refinement of StarPredicate which constrains precisely one column.
StarPredicate Condition which constrains a set of values of a single RolapStar.Column or a set of columns.
TupleReader Describes the public methods of SqlTupleReader.
TupleReader.MemberBuilder Factory to create new members for a hierarchy from SQL result.
 

Class Summary
ArrayMemberSource ArrayMemberSource implements a flat, static hierarchy.
BatchTestCase To support all Batch related tests.
BatchTestCase.CellRequestConstraint  
BatchTestCase.TestListener Gets notified on various test events: when a matching native evaluator was found when SQL is executed when result is found in the cache
BitKey.AbstractBitKey Abstract implementation of BitKey.
BitKey.Big Implementation of BitKey with more than 64 bits.
BitKey.Factory  
BitKey.Mid128 Implementation of BitKey good for sizes less than 128.
BitKey.Small Implementation of BitKey for bit counts less than 64.
BitKeyTest Unit test for BitKey.
CacheControlImpl Implementation of CacheControl API.
CacheControlImpl.CrossjoinCellRegion Cell region formed by a cartesian product of two or more CellRegions.
CacheControlImpl.EmptyMemberSet Member set containing no members.
CacheControlImpl.MemberCellRegion Cell region formed by a list of members.
CacheControlImpl.MemberRangeCellRegion Cell region formed a range of members between a lower and upper bound.
CacheControlImpl.MemberSetVisitorImpl Default implementation of CacheControlImpl.MemberSetVisitor.
CacheControlImpl.RangeMemberSet Member set defined by a range of members between a lower and upper bound.
CacheControlImpl.SimpleMemberSet Member set defined by a list of members from one hierarchy.
CacheControlImpl.UnionMemberSet Member set defined by the union of other member sets.
CacheControlTest Unit-test for cache-flushing functionality.
CacheMemberReader CacheMemberReader implements MemberReader by reading from a pre-populated array of Members.
CellKey.Generator  
CellKey.Many  
CellKey.One  
CellKey.Three  
CellKey.Two  
CellKey.Zero  
CellKeyTest Test that the implementations of the CellKey interface are correct.
ChildByNameConstraint Constraint which optimizes the search for a child by name.
DataSourceChangeListenerTest Tests for testing the DataSourceChangeListener plugin.
DefaultMemberChildrenConstraint Restricts the SQL result set to the parent member of a MemberChildren query.
DefaultTupleConstraint TupleConstraint which does not restrict the result.
DelegatingMemberReader A DelegatingMemberReader is a MemberReader which redirects all method calls to an underlying MemberReader.
DescendantsConstraint TupleConstaint which restricts the result of a tuple sqlQuery to a set of parents.
FastBatchingCellReader A FastBatchingCellReader doesn't really Read cells: when asked to look up the values of stored measures, it lies, and records the fact that the value was asked for.
FastBatchingCellReaderTest Test for FastBatchingCellReader.
FilterTest Tests for Filter and native Filters.
GroupingSetQueryTest Test support for generating SQL queries with the GROUPING SETS construct, if the DBMS supports it.
GroupingSetsCollector The GroupingSetsCollector collects the GroupinpSets and pass the consolidated list to form group by grouping sets sql
HierarchyUsage A HierarchyUsage is the usage of a hierarchy in the context of a cube.
HighCardSqlTupleReader Reads the members of a single level (level.members) or of multiple levels (crossjoin).
HighDimensionsTest Unit-test for non cacheable elementos of high dimensions.
IndexedValuesTest Test case for '&[..]' capability in MDX identifiers.
MeasureMemberSource A MeasureMemberSource implements the MemberReader interface for the special Measures dimension.
MemberCacheControlTest Unit tests for flushing member cache and editing cached member properties.
MemberCacheHelper Encapsulation of member caching.
MemberKey MemberKey todo:
MemberNoCacheHelper Encapsulation of member caching for no caching.
Modulos.Base  
Modulos.Generator  
Modulos.Many  
Modulos.One  
Modulos.Three  
Modulos.Two  
Modulos.Zero  
ModulosTest Test that the implementations of the Modulos interface are correct.
ModulosTest.PositionList  
NoCacheMemberReader NoCacheMemberReader implements MemberReader but without doing any kind of caching and avoiding to read all members.
NonEmptyPropertyForAllAxisTest Tests the MondrianProperties.EnableNonEmptyOnAllAxis property.
NonEmptyTest Tests for NON EMPTY Optimization, includes SqlConstraint type hierarchy and RolapNative classes.
RestrictedMemberReader A RestrictedMemberReader reads only the members of a hierarchy allowed by a role's access profile.
ResultLoader Loader to be iterated to load all results from database.
RolapAggregationManager RolapAggregationManager manages all Aggregations in the system.
RolapAggregator Describes an aggregation operator, such as "sum" or "count".
RolapAggregator.AvgFromAvg Aggregator used for aggregate tables implementing the average aggregator.
RolapAggregator.AvgFromSum Aggregator used for aggregate tables implementing the average aggregator.
RolapAggregator.BaseAggor This is the base class for implementing aggregators over sum and average columns in an aggregate table.
RolapAggregator.SumFromAvg This is an aggregator used for aggregate tables implementing the sum aggregator.
RolapAxis Derived classes of RolapAxis implements the Axis interface which are specializations based upon the number of Positions, how each Position's Members are orgainized and whether the Members/Member[]s are in a List or an Iterable.
RolapAxis.MemberArrayIterable A MemberArrayIterable takes an Iterable<Member[]> where each Position has an array of Members from the corresponding location in the iterator.
RolapAxis.MemberArrayList A MemberArrayList takes a List<Member[]> where each Position has the Member's from the corresponding location in the list.
RolapAxis.MemberIterable A MemberIterable takes an Iterable<Member> where each Position has a single Member from the corresponding location in the iterator.
RolapAxis.MemberList A MemberList takes a List<Member> where each Position has a single Member from the corresponding location in the list.
RolapAxis.NoPosition The NoPosition Axis implementation is an Axis that has no Positions, the size of the list of positions is zero.
RolapAxis.PositionBase The PositionBase is an abstract implementation of the Position interface and provides both Iterator<Member> and ListIterator<Member> implementations.
RolapAxis.PositionIterBase  
RolapAxis.PositionList The PositionList Axis implementation takes a List of positions.
RolapAxis.PositionListBase The PositionListBase is an abstract implementation of the List<Position> interface and provides both Iterator<Position> and ListIterator<Position> implementations.
RolapAxis.PositionListUnsupported  
RolapAxis.PositionUnsupported A List<Member> for which all methods throw the UnsupportedOperationException exception when invoked.
RolapAxis.SingleEmptyPosition A SingleEmptyPosition has a single Position and the Position has no Members.
RolapAxis.SingleEmptyPosition.EmptyPosition  
RolapAxis.Wrapper A Wrapper has many uses.
RolapAxisTest  
RolapBaseCubeMeasure Measure which is computed from a SQL column (or expression) and which is defined in a non-virtual cube.
RolapCacheRegion A RolapCacheRegion represents a region of multidimensional space in the cache.
RolapCalculatedMember A RolapCalculatedMember is a member based upon a Formula.
RolapCell RolapCell implements Cell within a RolapResult.
RolapConnection A RolapConnection is a connection to a Mondrian OLAP Server.
RolapConnection.NonEmptyResult A NonEmptyResult filters a result by removing empty rows on a particular axis.
RolapConnectionPool Singleton class that holds a connection pool.
RolapConnectionTest Unit test for RolapConnection.
RolapCube RolapCube implements Cube for a ROLAP database.
RolapCube.CubeComparator  
RolapCubeDimension RolapCubeDimension wraps a RolapDimension for a specific Cube.
RolapCubeHierarchy Hierarchy that is associated with a specific Cube.
RolapCubeHierarchy.RolapCubeSqlMemberSource  
RolapCubeLevel RolapCubeLevel wraps a RolapLevel for a specific Cube.
RolapCubeLevel.AllLevelReaderImpl Level reader for the level which contains the 'all' member.
RolapCubeLevel.NullLevelReader Level reader for the level which contains the null member.
RolapCubeMember RolapCubeMember wraps RolapMembers and binds them to a specific cube.
RolapCubeTest Unit test for RolapCube.
RolapCubeUsages RolapCubeUsages This provides us with the base cubes that a virtual cube uses and specifies if unrelated dimensions to measures from these cubes should be ignored.
RolapDependencyTestingEvaluator Evaluator which checks dependencies of expressions.
RolapDependencyTestingEvaluator.DteCompiler Expression compiler which introduces dependency testing.
RolapDependencyTestingEvaluator.DteRoot Holds context for a tree of RolapDependencyTestingEvaluator.
RolapDimension RolapDimension implements Dimensionfor a ROLAP database.
RolapEvaluator RolapEvaluator evaluates expressions in a dimensional environment.
RolapEvaluatorRoot Context at the root of a tree of evaluators.
RolapHierarchy RolapHierarchy implements Hierarchy for a ROLAP database.
RolapHierarchy.LimitedRollupMember Substitute for a member in a hierarchy whose rollup policy is 'partial' or 'hidden'.
RolapHierarchy.RolapCalculatedMeasure Calculated member which is also a measure (that is, a member of the [Measures] dimension).
RolapHierarchy.RolapNullMember A RolapNullMember is the null member of its hierarchy.
RolapLevel RolapLevel implements Level for a ROLAP database.
RolapMember A RolapMember is a member of a RolapHierarchy.
RolapMember.DefaultPropertyValueMapFactory Default RolapMember.PropertyValueMapFactory implementation, used if MondrianProperties.PropertyValueMapFactoryClass is not set.
RolapMember.PropertyValueMapFactoryFactory Creates the PropertyValueMapFactory which is in turn used to create property-value maps for member properties.
RolapMemberCalculation Implementation of RolapCalculation that wraps a calculated member.
RolapNamedSetEvaluator Evaluation context for a particular named set.
RolapNative A factory for NativeEvaluator.
RolapNative.NativeEvent  
RolapNative.TupleEvent  
RolapNativeCrossJoin Creates a NativeEvaluator that evaluates NON EMPTY CrossJoin in SQL.
RolapNativeCrossJoin.NonEmptyCrossJoinConstraint Constraint that restricts the result to the current context.
RolapNativeFilter Computes a Filter(set, condition) in SQL.
RolapNativeFilter.FilterConstraint  
RolapNativeRegistry Composite of RolapNatives.
RolapNativeSet Analyses set expressions and executes them in SQL if possible.
RolapNativeSet.DescendantsCrossJoinArg Represents one of: Level.Members: member == null and level != null Member.Children: member != null and level = member.getLevel().getChildLevel() Member.Descendants: member != null and level == some level below member.getLevel()
RolapNativeSet.MemberListCrossJoinArg Represents an enumeration {member1, member2, ...}.
RolapNativeSet.SetConstraint Constraint for non empty {crossjoin, member.children, member.descendants, level.members}
RolapNativeSql Creates SQL from parse tree nodes.
RolapNativeSql.CompositeSqlCompiler Implementation of RolapNativeSql.SqlCompiler that uses chain of responsibility to find a matching sql compiler.
RolapNativeTopCount Computes a TopCount in SQL.
RolapNativeTopCount.TopCountConstraint  
RolapProperty RolapProperty is the definition of a member property.
RolapResult A RolapResult is the result of running a query.
RolapResult.CellFormatterValueFormatter A CellFormatterValueFormatter uses a user-defined CellFormatter to format values.
RolapResult.CellInfo A CellInfo contains all of the information that a Cell requires.
RolapResult.CellInfoMap Implementation of RolapResult.CellInfoContainer which uses a Map to store CellInfo Objects.
RolapResult.CellInfoPool Implementation of RolapResult.CellInfoContainer which uses an ObjectPool to store RolapResult.CellInfo Objects.
RolapResult.CellInfoPool.Four For axis of size 4.
RolapResult.CellInfoPool.One For axis of size 1.
RolapResult.CellInfoPool.Three For axis of size 3.
RolapResult.CellInfoPool.Two For axis of size 2.
RolapResult.CellInfoPool.Zero For axis of size 0.
RolapResult.FormatValueFormatter A FormatValueFormatter takes a Locale as a parameter and uses it to get the Format to be used in formatting an Object value with a given format string.
RolapResult.RolapResultEvaluatorRoot Extension to RolapEvaluatorRoot which is capable of evaluating 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.

RolapResultTest Testcase for
RolapSchema A RolapSchema is a collection of RolapCubes and shared RolapDimensions.
RolapSchema.Pool A collection of schemas, identified by their connection properties (catalog name, JDBC URL, and so forth).
RolapSchema.RolapSchemaFunctionTable Function table which contains all of the user-defined functions in this schema, plus all of the standard functions.
RolapSchemaParameter Parameter which is defined in a schema.
RolapSchemaReader A RolapSchemaReader allows you to read schema objects while observing the access-control profile specified by a given role.
RolapSchemaReaderTest Unit test for SchemaReader.
RolapStar A RolapStar is a star schema.
RolapStar.AliasReplacer Creates a copy of an expression, everywhere replacing one alias with another.
RolapStar.Column A column in a star schema.
RolapStar.ColumnComparator Comparator to compare columns based on their name
RolapStar.Condition  
RolapStar.Measure Definition of a measure in a star schema.
RolapStar.Table Definition of a table in a star schema.
RolapTupleCalculation Implementation of RolapCalculation that changes one or more dimensions, then evaluates a given calculation.
RolapUtil Utility methods for classes in the mondrian.rolap package.
RolapUtil.Semaphore A Semaphore is a primitive for process synchronization.
RolapUtil.TeeWriter Writes to a string and also to an underlying writer.
RolapVirtualCubeMeasure Measure which is defined in a virtual cube, and based on a stored measure in one of the virtual cube's base cubes.
ScenarioImpl Implementation of Scenario.
SharedDimensionTest SharedDimensionTest tests shared dimensions.
SmartMemberListCache<K,V> Uses a SmartCache to store lists of members, where the key depends on a SqlConstraint.
SmartMemberListCache.Key2<T1,T2> a HashMap key that consists of two components.
SmartMemberReader SmartMemberReader implements MemberReader by keeping a cache of members and their children.
SqlConstraintFactory Creates the right constraint for common tasks.
SqlConstraintUtils Utility class used by implementations of SqlConstraint, used to generate constraints into SqlQuery.
SqlContextConstraint limits the result of a Member SQL query to the current evaluation context.
SqlMemberSource A SqlMemberSource reads members from a SQL database.
SqlMemberSource.NullValuePoolFactory Default SqlMemberSource.ValuePoolFactory implementation, used if MondrianProperties.SqlMemberSourceValuePoolFactoryClass is not set.
SqlMemberSource.ValuePoolFactoryFactory Creates the ValuePoolFactory which is in turn used to create property-value maps for member properties.
SqlStatement SqlStatement contains a SQL statement and associated resources throughout its lifetime.
SqlTupleReader Reads the members of a single level (level.members) or of multiple levels (crossjoin).
StarColumnPredicate.Overlap Returned by StarColumnPredicate.intersect(mondrian.rolap.StarColumnPredicate), describes whether two predicates overlap, and if so, the remaining predicate.
StringList StringList makes it easy to build up a comma-separated string.
SubstitutingMemberReader Implementation of MemberReader which replaces given members with a substitute.
Target helper class for HighCardSqlTupleReader HighCardSqlTupleReader Keeps track of target levels and constraints for adding to sql query
TargetBase Base helper class for the SQL tuple readers HighCardSqlTupleReader and SqlTupleReader.
Test todo:
TestAggregationManager Unit test for AggregationManager.
VirtualCubeTest VirtualCubeTest shows virtual cube tests.
 

Enum Summary
HierarchyUsage.Kind  
RolapConnectionProperties RolapConnectionProperties enumerates the allowable values of keywords in a Mondrian connect string.
RolapLevel.HideMemberCondition Conditions under which a level's members may be hidden (thereby creating a ragged hierarchy).
ScenarioImpl.CellRelation Decribes the relationship between two cells.
SqlTupleReader.WhichSelect Description of the position of a SELECT statement in a UNION.
 

Error Summary
BatchTestCase.Bomb Fake exception to interrupt the test when we see the desired query.
 

Package mondrian.rolap Description

Implements the data access layer for the olap package.

MemberReader

When a member expression like member.children is evaluated, the function requests the SchemaReader from the Evaluator. The RolapEvaluator uses the RolapSchemaReader which delegates most calls to one of its MemberReaders (one per dimension). In most cases, a SmartMemberReader will be used, which returns the requested members immediately.

CellReader

Cells are evaluated multiple times. For the first time, a FastBatchingCellReader is used. When a cell is evaluated, Evaluator.evaluateCurrent() is called. The FastBatchingCellReader will not compute the cells value but record a CellRequest for that cell and return (not throw) an exception. After all CellRequests for all cells have been recorded, the Aggregation will generate SQL to load all cells with a single SQL query. After that the cells are evaluated again with an AggregatingCellReader that will return the cell values from the cache.


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