Class RestrictedMemberReader
- java.lang.Object
-
- mondrian.rolap.DelegatingMemberReader
-
- mondrian.rolap.RestrictedMemberReader
-
- All Implemented Interfaces:
MemberReader,MemberSource
- Direct Known Subclasses:
SmartRestrictedMemberReader
class RestrictedMemberReader extends DelegatingMemberReader
ARestrictedMemberReaderreads only the members of a hierarchy allowed by a role's access profile.- Since:
- Feb 26, 2003
- Author:
- jhyde
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description (package private) static classRestrictedMemberReader.MultiCardinalityDefaultMemberThis is a special subclass ofDelegatingRolapMember.
-
Field Summary
Fields Modifier and Type Field Description (package private) Rolerole-
Fields inherited from class mondrian.rolap.DelegatingMemberReader
memberReader
-
-
Constructor Summary
Constructors Constructor Description RestrictedMemberReader(MemberReader memberReader, Role role)Creates aRestrictedMemberReader.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description RolapMembergetDefaultMember()RolapMembergetLeadMember(RolapMember member, int n)Returns the membernaftermemberin the same level (or before, ifnis negative).voidgetMemberChildren(List<RolapMember> parentMembers, List<RolapMember> children)Returns all members which are a child of one of the members inparentMembers, sorted by ordinal.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.voidgetMemberChildren(RolapMember parentMember, List<RolapMember> children)Writes all childrenparentMembertochildren.Map<? extends Member,Access>getMemberChildren(RolapMember parentMember, List<RolapMember> children, MemberChildrenConstraint constraint)Populates a list of the children of a Member, optionally applying a constraint.RolapMembergetMemberParent(RolapMember member)List<RolapMember>getMembersInLevel(RolapLevel level)Returns all of the members inlevelwhose ordinal lies betweenstartOrdinalandendOrdinal.List<RolapMember>getMembersInLevel(RolapLevel level, TupleConstraint constraint)Returns the members in the given Level, optionally applying a constraint.List<RolapMember>getRootMembers()Returns all members of this hierarchy which do not have a parent, sorted by ordinal.booleansetCache(MemberCache cache)Sets the cache which thisMemberSourcewill write to.-
Methods inherited from class mondrian.rolap.DelegatingMemberReader
compare, desubstitute, getHierarchy, getLevelMemberCount, getMemberBuilder, getMemberByKey, getMemberCount, getMemberRange, getMembers, lookupMember, substitute
-
-
-
-
Field Detail
-
role
final Role role
-
-
Constructor Detail
-
RestrictedMemberReader
RestrictedMemberReader(MemberReader memberReader, Role role)
Creates aRestrictedMemberReader.There's no filtering to be done unless either the role has restrictions on this hierarchy, or the hierarchy is ragged; there's a pre-condition to this effect.
- Parameters:
memberReader- Underlying (presumably unrestricted) member readerrole- Role whose access profile to obey. The role must have restrictions on this hierarchy- Pre-condition:
- role.getAccessDetails(memberReader.getHierarchy()) != null || memberReader.getHierarchy().isRagged()
-
-
Method Detail
-
setCache
public boolean setCache(MemberCache cache)
Description copied from interface:MemberSourceSets the cache which thisMemberSourcewill write to.Cache-writeback is optional (for example,
SqlMemberSourcesupports it, andArrayMemberSourcedoes not), and the return value from this method indicates whether this object supports it.If this method returns
true, theMemberSource.getMembers(),MemberSource.getRootMembers()andMemberSource.getMemberChildren(mondrian.rolap.RolapMember, java.util.List<mondrian.rolap.RolapMember>)methods must write to the cache, in addition to returning members as a return value.- Specified by:
setCachein interfaceMemberSource- Overrides:
setCachein classDelegatingMemberReader- Parameters:
cache- TheMemberCachewhich the caller would like thisMemberSourceto write to.- Returns:
- Whether this
MemberSourcesupports cache-writeback.
-
getLeadMember
public RolapMember getLeadMember(RolapMember member, int n)
Description copied from interface:MemberReaderReturns the membernaftermemberin the same level (or before, ifnis negative). ReturnsHierarchy.getNullMember()if we run off the beginning or end of the level.- Specified by:
getLeadMemberin interfaceMemberReader- Overrides:
getLeadMemberin classDelegatingMemberReader
-
getMemberChildren
public void getMemberChildren(RolapMember parentMember, List<RolapMember> children)
Description copied from interface:MemberSourceWrites all childrenparentMembertochildren.If this object
supports cache-writeback, also writes these members to the cache.- Specified by:
getMemberChildrenin interfaceMemberSource- Overrides:
getMemberChildrenin classDelegatingMemberReader
-
getMemberChildren
public Map<? extends Member,Access> getMemberChildren(RolapMember parentMember, List<RolapMember> children, MemberChildrenConstraint constraint)
Description copied from interface:MemberReaderPopulates a list of the children of a Member, optionally applying a constraint.- Specified by:
getMemberChildrenin interfaceMemberReader- Overrides:
getMemberChildrenin classDelegatingMemberReader- Parameters:
parentMember- Members whose children to findchildren- List to populate with membersconstraint- 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
nullvalues.
-
getMemberChildren
public void getMemberChildren(List<RolapMember> parentMembers, List<RolapMember> children)
Description copied from interface:MemberSourceReturns all members which are a child of one of the members inparentMembers, sorted by ordinal.If this object
supports cache-writeaback, also writes these members to the cache.- Specified by:
getMemberChildrenin interfaceMemberSource- Overrides:
getMemberChildrenin classDelegatingMemberReader
-
getMemberChildren
public Map<? extends Member,Access> getMemberChildren(List<RolapMember> parentMembers, List<RolapMember> children, MemberChildrenConstraint constraint)
Description copied from interface:MemberReaderPopulates a list of the children of a given set of Members, optionally applying a constraint.- Specified by:
getMemberChildrenin interfaceMemberReader- Overrides:
getMemberChildrenin classDelegatingMemberReader- Parameters:
parentMembers- List of members whose children to findchildren- List to populate with membersconstraint- 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
nullvalues.
-
getRootMembers
public List<RolapMember> getRootMembers()
Description copied from interface:MemberSourceReturns all members of this hierarchy which do not have a parent, sorted by ordinal.If this object
supports cache-writeback, also writes these members to the cache.- Specified by:
getRootMembersin interfaceMemberSource- Overrides:
getRootMembersin classDelegatingMemberReader- Returns:
ListofRolapMembers
-
getMembersInLevel
public List<RolapMember> getMembersInLevel(RolapLevel level)
Description copied from interface:MemberReaderReturns all of the members inlevelwhose ordinal lies betweenstartOrdinalandendOrdinal.If this object
supports cache-writeback, also writes these members to the cache.- Specified by:
getMembersInLevelin interfaceMemberReader- Overrides:
getMembersInLevelin classDelegatingMemberReader- Returns:
ListofRolapMember
-
getMembersInLevel
public List<RolapMember> getMembersInLevel(RolapLevel level, TupleConstraint constraint)
Description copied from interface:MemberReaderReturns the members in the given Level, optionally applying a constraint.- Specified by:
getMembersInLevelin interfaceMemberReader- Overrides:
getMembersInLevelin classDelegatingMemberReader- Parameters:
level- Levelconstraint- Constraint- Returns:
- list of members
-
getDefaultMember
public RolapMember getDefaultMember()
- Specified by:
getDefaultMemberin interfaceMemberReader- Overrides:
getDefaultMemberin classDelegatingMemberReader
-
getMemberParent
public RolapMember getMemberParent(RolapMember member)
- Specified by:
getMemberParentin interfaceMemberReader- Overrides:
getMemberParentin classDelegatingMemberReader
-
-