コード例 #1
0
 /**
  * Creates a <code>RestrictedMemberReader</code>.
  *
  * <p>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.
  *
  * @param memberReader Underlying (presumably unrestricted) member reader
  * @param role Role whose access profile to obey. The role must have restrictions on this
  *     hierarchy
  * @pre role.getAccessDetails(memberReader.getHierarchy()) != null ||
  *     memberReader.getHierarchy().isRagged()
  */
 RestrictedMemberReader(MemberReader memberReader, Role role) {
   super(memberReader);
   RolapHierarchy hierarchy = memberReader.getHierarchy();
   ragged = hierarchy.isRagged();
   if (role.getAccessDetails(hierarchy) == null) {
     assert ragged;
     hierarchyAccess = RoleImpl.createAllAccess(hierarchy);
   } else {
     hierarchyAccess = role.getAccessDetails(hierarchy);
   }
 }