class RolapDimension extends DimensionBase
RolapDimension
implements Dimension
for a ROLAP
database.
RolapEvaluator
needs each dimension to have an ordinal, so that it
can store the evaluation context as an array of members.
A dimension may be either shared or private to a particular cube. The
dimension object doesn't actually know which; Schema
has a list of
shared hierarchies (Schema.getSharedHierarchies()
), and Cube
has a list of dimensions (Cube.getDimensions()
).
If a dimension is shared between several cubes, the Dimension
objects
which represent them may (or may not be) the same. (That's why there's no
getCube()
method.)
Furthermore, since members are created by a MemberReader
which
belongs to the RolapHierarchy
, you will the members will be the same
too. For example, if you query [Product].[Beer]
from the
Sales
and Warehouse
cubes, you will get the
same RolapMember
object.
(RolapSchema.mapSharedHierarchyToReader
holds the mapping. I don't
know whether it's still necessary.)
OlapElement.LocalizedProperty
description, dimensionType, hierarchies, highCardinality, name, uniqueName
caption, visible
MEASURES_NAME, MEASURES_UNIQUE_NAME
Constructor and Description |
---|
RolapDimension(RolapSchema schema,
RolapCube cube,
MondrianDef.Dimension xmlDimension,
MondrianDef.CubeDimension xmlCubeDimension)
Creates a dimension from an XML definition.
|
RolapDimension(Schema schema,
String name,
String caption,
boolean visible,
String description,
DimensionType dimensionType,
boolean highCardinality,
Map<String,Annotation> annotationMap) |
Modifier and Type | Method and Description |
---|---|
Map<String,Annotation> |
getAnnotationMap()
Returns a list of annotations.
|
Hierarchy |
getHierarchy()
Returns the hierarchy of an expression.
|
protected org.apache.log4j.Logger |
getLogger() |
Schema |
getSchema()
Returns the schema this dimension belongs to.
|
(package private) void |
init(MondrianDef.CubeDimension xmlDimension)
Initializes a dimension within the context of a cube.
|
(package private) RolapHierarchy |
newHierarchy(String subName,
boolean hasAll,
RolapHierarchy closureFor)
Creates a hierarchy.
|
getDescription, getDimension, getDimensionType, getHierarchies, getName, getQualifiedName, getUniqueName, isHighCardinality, isMeasures, lookupChild
clone, computeHashCode, equals, equals, getCaption, getLocalized, hashCode, isVisible, setCaption, toString
finalize, getClass, notify, notifyAll, wait, wait, wait
getCaption, getLocalized, isVisible
RolapDimension(Schema schema, String name, String caption, boolean visible, String description, DimensionType dimensionType, boolean highCardinality, Map<String,Annotation> annotationMap)
RolapDimension(RolapSchema schema, RolapCube cube, MondrianDef.Dimension xmlDimension, MondrianDef.CubeDimension xmlCubeDimension)
protected org.apache.log4j.Logger getLogger()
getLogger
in class OlapElementBase
void init(MondrianDef.CubeDimension xmlDimension)
RolapHierarchy newHierarchy(String subName, boolean hasAll, RolapHierarchy closureFor)
subName
- Name of this hierarchy.hasAll
- Whether hierarchy has an 'all' memberclosureFor
- Hierarchy for which the new hierarchy is a closure;
null for regular hierarchiespublic Hierarchy getHierarchy()
In this case, the expression is a dimension, so the hierarchy is the dimension's default hierarchy (its first).
getHierarchy
in interface OlapElement
getHierarchy
in class DimensionBase
public Schema getSchema()
Dimension
public Map<String,Annotation> getAnnotationMap()
Annotated
The map may be empty, never null.