class RestrictedMemberReader extends DelegatingMemberReader
RestrictedMemberReader
reads only the members of a hierarchy
allowed by a role's access profile.Modifier and Type | Class and Description |
---|---|
(package private) static class |
RestrictedMemberReader.MultiCardinalityDefaultMember
This is a special subclass of
DelegatingRolapMember . |
Modifier and Type | Field and Description |
---|---|
(package private) Role |
role |
memberReader
Constructor and Description |
---|
RestrictedMemberReader(MemberReader memberReader,
Role role)
Creates a
RestrictedMemberReader . |
Modifier and Type | Method and Description |
---|---|
RolapMember |
getDefaultMember() |
RolapMember |
getLeadMember(RolapMember member,
int n)
Returns the member
n after member in the same
level (or before, if n is negative). |
void |
getMemberChildren(List<RolapMember> parentMembers,
List<RolapMember> children)
Returns all members which are a child of one of the members in
parentMembers , 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.
|
void |
getMemberChildren(RolapMember parentMember,
List<RolapMember> children)
Writes all children
parentMember to children . |
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.
|
RolapMember |
getMemberParent(RolapMember member) |
List<RolapMember> |
getMembersInLevel(RolapLevel level)
Returns all of the members in
level whose ordinal lies
between startOrdinal and endOrdinal . |
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.
|
boolean |
setCache(MemberCache cache)
Sets the cache which this
MemberSource will write to. |
compare, desubstitute, getHierarchy, getLevelMemberCount, getMemberBuilder, getMemberByKey, getMemberCount, getMemberRange, getMembers, lookupMember, substitute
final Role role
RestrictedMemberReader(MemberReader memberReader, Role role)
RestrictedMemberReader
.
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.
memberReader
- Underlying (presumably unrestricted) member readerrole
- Role whose access profile to obey. The role must have
restrictions on this hierarchypublic boolean setCache(MemberCache cache)
MemberSource
MemberSource
will write to.
Cache-writeback is optional (for example, SqlMemberSource
supports it, and ArrayMemberSource
does not), and the return
value from this method indicates whether this object supports it.
If this method returns true
, the MemberSource.getMembers()
,
MemberSource.getRootMembers()
and MemberSource.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.
setCache
in interface MemberSource
setCache
in class DelegatingMemberReader
cache
- The MemberCache
which the caller would like
this MemberSource
to write to.MemberSource
supports cache-writeback.public RolapMember getLeadMember(RolapMember member, int n)
MemberReader
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.getLeadMember
in interface MemberReader
getLeadMember
in class DelegatingMemberReader
public void getMemberChildren(RolapMember parentMember, List<RolapMember> children)
MemberSource
parentMember
to children
.
If this object supports cache-writeback
, also
writes these members to the cache.
getMemberChildren
in interface MemberSource
getMemberChildren
in class DelegatingMemberReader
public Map<? extends Member,Access> getMemberChildren(RolapMember parentMember, List<RolapMember> children, MemberChildrenConstraint constraint)
MemberReader
getMemberChildren
in interface MemberReader
getMemberChildren
in class DelegatingMemberReader
parentMember
- Members whose children to findchildren
- List to populate with membersconstraint
- Constraintnull
values.public void getMemberChildren(List<RolapMember> parentMembers, List<RolapMember> children)
MemberSource
parentMembers
, sorted by ordinal.
If this object supports cache-writeaback
, also
writes these members to the cache.
getMemberChildren
in interface MemberSource
getMemberChildren
in class DelegatingMemberReader
public Map<? extends Member,Access> getMemberChildren(List<RolapMember> parentMembers, List<RolapMember> children, MemberChildrenConstraint constraint)
MemberReader
getMemberChildren
in interface MemberReader
getMemberChildren
in class DelegatingMemberReader
parentMembers
- List of members whose children to findchildren
- List to populate with membersconstraint
- Constraintnull
values.public List<RolapMember> getRootMembers()
MemberSource
If this object supports cache-writeback
, also
writes these members to the cache.
getRootMembers
in interface MemberSource
getRootMembers
in class DelegatingMemberReader
List
of RolapMember
spublic List<RolapMember> getMembersInLevel(RolapLevel level)
MemberReader
level
whose ordinal lies
between startOrdinal
and endOrdinal
.
If this object
supports cache-writeback
, also
writes these members to the cache.
getMembersInLevel
in interface MemberReader
getMembersInLevel
in class DelegatingMemberReader
List
of RolapMember
public List<RolapMember> getMembersInLevel(RolapLevel level, TupleConstraint constraint)
MemberReader
getMembersInLevel
in interface MemberReader
getMembersInLevel
in class DelegatingMemberReader
level
- Levelconstraint
- Constraintpublic RolapMember getDefaultMember()
getDefaultMember
in interface MemberReader
getDefaultMember
in class DelegatingMemberReader
public RolapMember getMemberParent(RolapMember member)
getMemberParent
in interface MemberReader
getMemberParent
in class DelegatingMemberReader