Package mondrian.olap

Class RoleImpl

  • All Implemented Interfaces:
    Role

    public class RoleImpl
    extends Object
    implements Role
    Default implementation of the Role interface.
    Since:
    Oct 5, 2002
    Author:
    jhyde, lucboudreau
    • Constructor Detail

      • RoleImpl

        public RoleImpl()
        Creates a role with no permissions.
    • Method Detail

      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class Object
      • makeMutableClone

        public RoleImpl makeMutableClone()
        Returns a copy of this Role which can be modified.
      • makeImmutable

        public void makeImmutable()
        Prevents any further modifications.
      • isMutable

        public boolean isMutable()
        Returns whether modifications are possible.
      • grant

        public void grant​(Schema schema,
                          Access access)
        Defines access to all cubes and dimensions in a schema.
        Parameters:
        schema - Schema whose access to grant/deny.
        access - An access code
      • getAccess

        public Access getAccess​(Schema schema)
        Description copied from interface: Role
        Returns the access this role has to a given schema.
        Specified by:
        getAccess in interface Role
      • grant

        public void grant​(Cube cube,
                          Access access)
        Defines access to a cube.
        Parameters:
        cube - Cube whose access to grant/deny.
        access - An access code
      • getAccess

        public Access getAccess​(Cube cube)
        Description copied from interface: Role
        Returns the access this role has to a given cube.
        Specified by:
        getAccess in interface Role
      • grant

        public void grant​(Dimension dimension,
                          Access access)
        Defines access to a dimension.
        Parameters:
        dimension - Dimension whose access to grant/deny.
        access - An Access instance
      • getAccess

        public Access getAccess​(Dimension dimension)
        Description copied from interface: Role
        Returns the access this role has to a given dimension.
        Specified by:
        getAccess in interface Role
      • grant

        public void grant​(Hierarchy hierarchy,
                          Access access,
                          Level topLevel,
                          Level bottomLevel,
                          Role.RollupPolicy rollupPolicy)
        Defines access to a hierarchy.
        Parameters:
        hierarchy - Hierarchy whose access to grant/deny.
        access - An access code
        topLevel - Top-most level which can be accessed, or null if the highest level. May only be specified if access is Access.CUSTOM.
        bottomLevel - Bottom-most level which can be accessed, or null if the lowest level. May only be specified if access is Access.CUSTOM.
        rollupPolicy - Rollup policy
      • getAccess

        public Access getAccess​(Hierarchy hierarchy)
        Description copied from interface: Role
        Returns the access this role has to a given hierarchy.
        Specified by:
        getAccess in interface Role
      • getAccessDetails

        public Role.HierarchyAccess getAccessDetails​(Hierarchy hierarchy)
        Description copied from interface: Role
        Returns the details of this hierarchy's access, or null if the hierarchy has not been given explicit access.
        Specified by:
        getAccessDetails in interface Role
      • getAccess

        public Access getAccess​(Level level)
        Description copied from interface: Role
        Returns the access this role has to a given level.
        Specified by:
        getAccess in interface Role
      • grant

        public void grant​(Member member,
                          Access access)
        Defines access to a member in a hierarchy.

        Notes:

        1. The order of grants matters. If you grant/deny access to a member, previous grants/denials to its descendants are ignored.
        2. Member grants do not supersde top/bottom levels set using grant(Hierarchy, Access, Level, Level, mondrian.olap.Role.RollupPolicy).
        3. If you have access to a member, then you can see its ancestors even those explicitly denied, up to the top level.
      • getAccess

        public Access getAccess​(Member member)
        Description copied from interface: Role
        Returns the access this role has to a given member.
        Specified by:
        getAccess in interface Role
      • getAccess

        public Access getAccess​(NamedSet set)
        Description copied from interface: Role
        Returns the access this role has to a given named set.
        Specified by:
        getAccess in interface Role
      • canAccess

        public boolean canAccess​(OlapElement olapElement)
        Description copied from interface: Role
        Returns whether this role is allowed to see a given element.
        Specified by:
        canAccess in interface Role
      • createAllAccess

        public static Role.HierarchyAccess createAllAccess​(Hierarchy hierarchy)
        Creates an element which represents all access to a hierarchy.
        Parameters:
        hierarchy - Hierarchy
        Returns:
        element representing all access to a given hierarchy
      • union

        public static Role union​(List<Role> roleList)
        Returns a role that is the union of the given roles.
        Parameters:
        roleList - List of roles
        Returns:
        Union role