public class HierarchyUsage extends Object
HierarchyUsage
is the usage of a hierarchy in the context
of a cube. Private hierarchies can only be used in their own
cube. Public hierarchies can be used in several cubes. The problem comes
when several cubes which the same public hierarchy are brought together
in one virtual cube. There are now several usages of the same public
hierarchy. Which one to use? It depends upon what measure we are
currently using. We should use the hierarchy usage for the fact table
which underlies the measure. That is what determines the foreign key to
join on.
A HierarchyUsage
is identified by
(hierarchy.sharedHierarchy, factTable)
if the hierarchy is
shared, or (hierarchy, factTable)
if it is private.Modifier and Type | Class and Description |
---|---|
(package private) static class |
HierarchyUsage.Kind |
Modifier and Type | Field and Description |
---|---|
protected MondrianDef.Relation |
fact
Fact table (or relation) which this usage is joining to.
|
Constructor and Description |
---|
HierarchyUsage(RolapCube cube,
RolapHierarchy hierarchy,
MondrianDef.CubeDimension cubeDim)
Creates a HierarchyUsage.
|
Modifier and Type | Method and Description |
---|---|
boolean |
equals(Object o) |
String |
getForeignKey() |
String |
getFullName() |
String |
getHierarchyName() |
MondrianDef.Expression |
getJoinExp() |
MondrianDef.Relation |
getJoinTable() |
HierarchyUsage.Kind |
getKind() |
String |
getLevelName() |
protected org.apache.log4j.Logger |
getLogger() |
String |
getName() |
String |
getSource() |
String |
getUsagePrefix() |
int |
hashCode() |
(package private) void |
init(RolapCube cube,
RolapHierarchy hierarchy,
MondrianDef.DimensionUsage cubeDim) |
boolean |
isPrivate() |
boolean |
isShared() |
boolean |
isVirtual() |
String |
toString() |
protected final MondrianDef.Relation fact
HierarchyUsage(RolapCube cube, RolapHierarchy hierarchy, MondrianDef.CubeDimension cubeDim)
cube
- Cubehierarchy
- HierarchycubeDim
- XML definition of a dimension which belongs to a cubeprotected org.apache.log4j.Logger getLogger()
public String getHierarchyName()
public String getFullName()
public String getName()
public String getForeignKey()
public String getSource()
public String getLevelName()
public String getUsagePrefix()
public MondrianDef.Relation getJoinTable()
public MondrianDef.Expression getJoinExp()
public HierarchyUsage.Kind getKind()
public boolean isShared()
public boolean isVirtual()
public boolean isPrivate()
void init(RolapCube cube, RolapHierarchy hierarchy, MondrianDef.DimensionUsage cubeDim)