public List<Level> getHierarchyLevels(Hierarchy hierarchy) { assert hierarchy != null; final Role.HierarchyAccess hierarchyAccess = role.getAccessDetails(hierarchy); final Level[] levels = hierarchy.getLevels(); if (hierarchyAccess == null) { return Arrays.asList(levels); } Level topLevel = levels[hierarchyAccess.getTopLevelDepth()]; Level bottomLevel = levels[hierarchyAccess.getBottomLevelDepth()]; List<Level> restrictedLevels = Arrays.asList(levels).subList( topLevel.getDepth(), bottomLevel.getDepth() + 1); assert restrictedLevels.size() >= 1 : "postcondition"; return restrictedLevels; }
public List<RolapMember> getMembersInLevel( RolapLevel level, TupleConstraint constraint) { if (hierarchyAccess != null) { final int depth = level.getDepth(); if (depth < hierarchyAccess.getTopLevelDepth()) { return Collections.emptyList(); } if (depth > hierarchyAccess.getBottomLevelDepth()) { return Collections.emptyList(); } } final List<RolapMember> membersInLevel = memberReader.getMembersInLevel( level, constraint); List<RolapMember> filteredMembers = new ArrayList<RolapMember>(); filterMembers(membersInLevel, filteredMembers); return filteredMembers; }
hierarchyAccess.getBottomLevelDepth(); if (hierarchyAccess.getBottomLevelDepth() == hierarchy.getLevels().length) Math.max( access, hierarchyAccess.getBottomLevelDepth());
public int getBottomLevelDepth() { return hierarchyAccess.getBottomLevelDepth(); }
private boolean isBottomLeveRestricted() { for (HierarchyAccess hierarchyAccess : list) { if (hierarchyAccess.getBottomLevelDepth() == hierarchy.getLevels().length) { return true; } } return false; } }
@Override public int getBottomLevelDepth() { if (bottomLevelDepth == null) { bottomLevelDepth = hierarchyAccess.getBottomLevelDepth(); } return bottomLevelDepth; }