Package mondrian.olap
Class RoleImpl
- java.lang.Object
-
- mondrian.olap.RoleImpl
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description (package private) static class
RoleImpl.CachingHierarchyAccess
Implementation ofRole.HierarchyAccess
that caches the access of each member and level.static class
RoleImpl.DelegatingHierarchyAccess
Implementation ofRole.HierarchyAccess
that delegates all methods to an underlying hierarchy access.-
Nested classes/interfaces inherited from interface mondrian.olap.Role
Role.HierarchyAccess, Role.RollupPolicy
-
-
Constructor Summary
Constructors Constructor Description RoleImpl()
Creates a role with no permissions.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
canAccess(OlapElement olapElement)
Returns whether this role is allowed to see a given element.protected RoleImpl
clone()
static Role.HierarchyAccess
createAllAccess(Hierarchy hierarchy)
Creates an element which represents all access to a hierarchy.boolean
equals(Object obj)
Access
getAccess(Cube cube)
Returns the access this role has to a given cube.Access
getAccess(Dimension dimension)
Returns the access this role has to a given dimension.Access
getAccess(Hierarchy hierarchy)
Returns the access this role has to a given hierarchy.Access
getAccess(Level level)
Returns the access this role has to a given level.Access
getAccess(Member member)
Returns the access this role has to a given member.Access
getAccess(NamedSet set)
Returns the access this role has to a given named set.Access
getAccess(Schema schema)
Returns the access this role has to a given schema.Role.HierarchyAccess
getAccessDetails(Hierarchy hierarchy)
Returns the details of this hierarchy's access, or null if the hierarchy has not been given explicit access.void
grant(Cube cube, Access access)
Defines access to a cube.void
grant(Dimension dimension, Access access)
Defines access to a dimension.void
grant(Hierarchy hierarchy, Access access, Level topLevel, Level bottomLevel, Role.RollupPolicy rollupPolicy)
Defines access to a hierarchy.void
grant(Member member, Access access)
Defines access to a member in a hierarchy.void
grant(Schema schema, Access access)
Defines access to all cubes and dimensions in a schema.int
hashCode()
boolean
isMutable()
Returns whether modifications are possible.void
makeImmutable()
Prevents any further modifications.RoleImpl
makeMutableClone()
Returns a copy of thisRole
which can be modified.static Role
union(List<Role> roleList)
Returns a role that is the union of the given roles.
-
-
-
Method Detail
-
makeMutableClone
public RoleImpl makeMutableClone()
Returns a copy of thisRole
which can be modified.
-
makeImmutable
public void makeImmutable()
Prevents any further modifications.- Post-condition:
- !isMutable()
-
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
- Anaccess code
- Pre-condition:
- schema != null, access == Access.ALL || access == Access.NONE || access == Access.ALL_DIMENSIONS, isMutable()
-
getAccess
public Access getAccess(Schema schema)
Description copied from interface:Role
Returns the access this role has to a given schema.
-
grant
public void grant(Cube cube, Access access)
Defines access to a cube.- Parameters:
cube
- Cube whose access to grant/deny.access
- Anaccess code
- Pre-condition:
- cube != null, access == Access.ALL || access == Access.NONE, isMutable()
-
getAccess
public Access getAccess(Cube cube)
Description copied from interface:Role
Returns the access this role has to a given cube.
-
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- Pre-condition:
- dimension != null, access == Access.ALL || access == Access.CUSTOM || access == Access.NONE, isMutable()
-
getAccess
public Access getAccess(Dimension dimension)
Description copied from interface:Role
Returns the access this role has to a given dimension.
-
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
- Anaccess code
topLevel
- Top-most level which can be accessed, or null if the highest level. May only be specified ifaccess
isAccess.CUSTOM
.bottomLevel
- Bottom-most level which can be accessed, or null if the lowest level. May only be specified ifaccess
isAccess.CUSTOM
.rollupPolicy
- Rollup policy- Pre-condition:
- hierarchy != null, Access.instance().isValid(access), (access == Access.CUSTOM) || (topLevel == null && bottomLevel == null), topLevel == null || topLevel.getHierarchy() == hierarchy, bottomLevel == null || bottomLevel.getHierarchy() == hierarchy, isMutable()
-
getAccess
public Access getAccess(Hierarchy hierarchy)
Description copied from interface:Role
Returns the access this role has to a given hierarchy.
-
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 interfaceRole
-
getAccess
public Access getAccess(Level level)
Description copied from interface:Role
Returns the access this role has to a given level.
-
grant
public void grant(Member member, Access access)
Defines access to a member in a hierarchy.Notes:
- The order of grants matters. If you grant/deny access to a member, previous grants/denials to its descendants are ignored.
- Member grants do not supersde top/bottom levels set using
grant(Hierarchy, Access, Level, Level, mondrian.olap.Role.RollupPolicy)
. - If you have access to a member, then you can see its ancestors even those explicitly denied, up to the top level.
- Pre-condition:
- member != null, isMutable(), getAccess(member.getHierarchy()) == Access.CUSTOM
-
getAccess
public Access getAccess(Member member)
Description copied from interface:Role
Returns the access this role has to a given member.
-
getAccess
public Access getAccess(NamedSet set)
Description copied from interface:Role
Returns the access this role has to a given named set.
-
canAccess
public boolean canAccess(OlapElement olapElement)
Description copied from interface:Role
Returns whether this role is allowed to see a given element.
-
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
-
-