Interface RolapCubeHierarchy.RolapCubeHierarchyMemberReader

All Superinterfaces:
MemberSource
All Known Implementing Classes:
RolapCubeHierarchy.CacheRolapCubeHierarchyMemberReader, RolapCubeHierarchy.NoCacheRolapCubeHierarchyMemberReader
Enclosing class:
RolapCubeHierarchy

public static interface RolapCubeHierarchy.RolapCubeHierarchyMemberReader
TODO: Since this is part of a caching strategy, should be implemented as a Strategy Pattern, avoiding hierarchy.
  • Method Details

    • lookupCubeMember

      RolapCubeMember lookupCubeMember(RolapCubeMember parent, RolapMember member, RolapCubeLevel level)
    • getRolapCubeMemberCacheHelper

      MemberCacheHelper getRolapCubeMemberCacheHelper()
    • getLeadMember

      RolapMember getLeadMember(RolapMember member, int n)
      Returns the member n after member in the same level (or before, if n is negative). Returns Hierarchy.getNullMember() if we run off the beginning or end of the level.
    • getMembersInLevel

      List<RolapMember> getMembersInLevel(RolapLevel level)
      Returns all of the members in level whose ordinal lies between startOrdinal and endOrdinal.

      If this object supports cache-writeback, also writes these members to the cache.

      Returns:
      List of RolapMember
    • getMemberRange

      void getMemberRange(RolapLevel level, RolapMember startMember, RolapMember endMember, List<RolapMember> list)
      Writes all members between startMember and endMember into list.
    • compare

      int compare(RolapMember m1, RolapMember m2, boolean siblingsAreEqual)
      Compares two members according to their order in a prefix ordered traversal. If siblingsAreEqual, then two members with the same parent will compare equal.
      Returns:
      less than zero if m1 occurs before m2, greater than zero if m1 occurs after m2, zero if m1 is equal to m2, or if siblingsAreEqual and m1 and m2 have the same parent
    • getMemberChildren

      Map<? extends Member,Access> getMemberChildren(RolapMember member, List<RolapMember> children, MemberChildrenConstraint constraint)
      Populates a list of the children of a Member, optionally applying a constraint.
      Parameters:
      member - Members whose children to find
      children - List to populate with members
      constraint - Constraint
      Returns:
      After populating the list passed as an argument, this method returns a map of the members it just populated along with the Access information applicable. If no access control applies to the member, the map will contain null values.
    • getMemberChildren

      Map<? extends Member,Access> getMemberChildren(List<RolapMember> parentMembers, List<RolapMember> children, MemberChildrenConstraint constraint)
      Populates a list of the children of a given set of Members, optionally applying a constraint.
      Parameters:
      parentMembers - List of members whose children to find
      children - List to populate with members
      constraint - Constraint
      Returns:
      After populating the list passed as an argument, this method returns a map of the members it just populated along with the Access information applicable. If no access control applies to the member, the map will contain null values.
    • getMembersInLevel

      List<RolapMember> getMembersInLevel(RolapLevel level, TupleConstraint constraint)
      Returns the members in the given Level, optionally applying a constraint.
      Parameters:
      level - Level
      constraint - Constraint
      Returns:
      list of members
    • getLevelMemberCount

      int getLevelMemberCount(RolapLevel level)
      Returns the number of members in this level.
      Parameters:
      level - Level
      Returns:
      number of members in level
    • getMemberBuilder

      TupleReader.MemberBuilder getMemberBuilder()
    • getDefaultMember

      RolapMember getDefaultMember()
    • getMemberParent

      RolapMember getMemberParent(RolapMember member)
    • substitute

      RolapMember substitute(RolapMember member)
      Substitutes a given member. If member is null, returns null.

      This method is called whenever a member is returned from the wrapped member reader and is to be returned to the caller. You could say that it translates 'to caller space'.

      Parameters:
      member - Member
      Returns:
      Substitute member
    • desubstitute

      RolapMember desubstitute(RolapMember member)
      Returns the member which was substituted. If member is null, returns null.

      This method is called whenever the caller passes a member into a method and needs to be passed to a method on the wrapped member reader. You could say that it translates 'from caller space'.

      Parameters:
      member - Member
      Returns:
      Internal member
    • getMemberByKey

      RolapMember getMemberByKey(RolapLevel level, List<Comparable> keyValues)
      Looks up a member by its key value.
      Parameters:
      level - Level
      keyValues - Key values
      Returns:
      Member, or null
    • countMemberChildren

      int countMemberChildren(Member member, List<RolapMember> children, MemberChildrenConstraint constraint)