Class SqlMemberSource

    • Constructor Detail

    • Method Detail

      • getMemberCount

        public int getMemberCount()
        Description copied from interface: MemberSource
        Returns an estimate of number of members in this hierarchy.
        Specified by:
        getMemberCount in interface MemberSource
      • substitute

        public RolapMember substitute​(RolapMember member)
        Description copied from interface: MemberReader
        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'.

        Specified by:
        substitute in interface MemberReader
        Parameters:
        member - Member
        Returns:
        Substitute member
      • desubstitute

        public RolapMember desubstitute​(RolapMember member)
        Description copied from interface: MemberReader
        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'.

        Specified by:
        desubstitute in interface MemberReader
        Parameters:
        member - Member
        Returns:
        Internal member
      • getMemberByKey

        public RolapMember getMemberByKey​(RolapLevel level,
                                          java.util.List<java.lang.Comparable> keyValues)
        Description copied from interface: MemberReader
        Looks up a member by its key value.
        Specified by:
        getMemberByKey in interface MemberReader
        Parameters:
        level - Level
        keyValues - Key values
        Returns:
        Member, or null
      • getLevelMemberCount

        public int getLevelMemberCount​(RolapLevel level)
        Description copied from interface: MemberReader
        Returns the number of members in this level.
        Specified by:
        getLevelMemberCount in interface MemberReader
        Parameters:
        level - Level
        Returns:
        number of members in level
      • makeChildMemberSql

        Pair<java.lang.String,​java.util.List<SqlStatement.Type>> makeChildMemberSql​(RolapMember member,
                                                                                          javax.sql.DataSource dataSource,
                                                                                          MemberChildrenConstraint constraint)
        Generates the SQL statement to access the children of member. For example,
        SELECT "city"
         FROM "customer"
         WHERE "country" = 'USA'
         AND "state_province" = 'BC'
         GROUP BY "city"
        retrieves the children of the member [Canada].[BC].

        Note that this method is never called in the context of virtual cubes, it is only called on regular cubes.

        See also SqlTupleReader.makeLevelMembersSql(javax.sql.DataSource).

      • levelContainsMultipleColumns

        public static boolean levelContainsMultipleColumns​(RolapLevel level)
        Determine if a level contains more than a single column for its data, such as an ordinal column or property column
        Parameters:
        level - the level to check
        Returns:
        true if multiple relational columns are involved in this level
      • isLevelCollapsed

        public static boolean isLevelCollapsed​(AggStar aggStar,
                                               RolapCubeLevel level)
        Determine if the given aggregate table has the dimension level specified within in (AggStar.FactTable) it, aka collapsed, or associated with foreign keys (AggStar.DimTable)
        Parameters:
        aggStar - aggregate star if exists
        level - level
        Returns:
        true if agg table has level or not
      • getMemberChildren

        public java.util.Map<? extends Member,​Access> getMemberChildren​(java.util.List<RolapMember> parentMembers,
                                                                              java.util.List<RolapMember> children,
                                                                              MemberChildrenConstraint mcc)
        Description copied from interface: MemberReader
        Populates a list of the children of a given set of Members, optionally applying a constraint.
        Specified by:
        getMemberChildren in interface MemberReader
        Parameters:
        parentMembers - List of members whose children to find
        children - List to populate with members
        mcc - 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

        public java.util.Map<? extends Member,​Access> getMemberChildren​(RolapMember parentMember,
                                                                              java.util.List<RolapMember> children,
                                                                              MemberChildrenConstraint constraint)
        Description copied from interface: MemberReader
        Populates a list of the children of a Member, optionally applying a constraint.
        Specified by:
        getMemberChildren in interface MemberReader
        Parameters:
        parentMember - 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.
      • makeMember

        public RolapMember makeMember​(RolapMember parentMember,
                                      RolapLevel childLevel,
                                      java.lang.Object value,
                                      java.lang.Object captionValue,
                                      boolean parentChild,
                                      SqlStatement stmt,
                                      java.lang.Object key,
                                      int columnOffset)
                               throws java.sql.SQLException
        Description copied from interface: TupleReader.MemberBuilder
        Creates a new member (together with its properties).
        Specified by:
        makeMember in interface TupleReader.MemberBuilder
        Parameters:
        parentMember - Parent member
        childLevel - Child level
        value - Member value
        captionValue - Caption
        parentChild - Whether a parent-child hierarchy
        stmt - SQL statement
        key - Member key
        columnOffset - Column ordinal (0-based)
        Returns:
        new member
        Throws:
        java.sql.SQLException - on error
      • compare

        public int compare​(RolapMember m1,
                           RolapMember m2,
                           boolean siblingsAreEqual)
        Description copied from interface: MemberReader
        Compares two members according to their order in a prefix ordered traversal. If siblingsAreEqual, then two members with the same parent will compare equal.
        Specified by:
        compare in interface MemberReader
        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