Class HierarchyUsage


  • public class HierarchyUsage
    extends java.lang.Object
    A 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.
    Since:
    21 March, 2002
    Author:
    jhyde
    • Field Detail

      • fact

        protected final MondrianDef.Relation fact
        Fact table (or relation) which this usage is joining to. This identifies the usage, and determines which join conditions need to be used.
    • Constructor Detail

      • HierarchyUsage

        HierarchyUsage​(RolapCube cube,
                       RolapHierarchy hierarchy,
                       MondrianDef.CubeDimension cubeDim)
        Creates a HierarchyUsage.
        Parameters:
        cube - Cube
        hierarchy - Hierarchy
        cubeDim - XML definition of a dimension which belongs to a cube
    • Method Detail

      • getLogger

        protected org.apache.log4j.Logger getLogger()
      • getHierarchyName

        public java.lang.String getHierarchyName()
      • getFullName

        public java.lang.String getFullName()
      • getName

        public java.lang.String getName()
      • getForeignKey

        public java.lang.String getForeignKey()
      • getSource

        public java.lang.String getSource()
      • getLevelName

        public java.lang.String getLevelName()
      • getUsagePrefix

        public java.lang.String getUsagePrefix()
      • isShared

        public boolean isShared()
      • isVirtual

        public boolean isVirtual()
      • isPrivate

        public boolean isPrivate()
      • equals

        public boolean equals​(java.lang.Object o)
        Overrides:
        equals in class java.lang.Object
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class java.lang.Object
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object