private static boolean checkLevelIsOkWithRestrictions( HierarchyAccessImpl hierarchyAccess, Level level) { // Check if this level is explicitly excluded by top/bototm // level restrictions. if (level.getDepth() < hierarchyAccess.topLevel.getDepth()) { return false; } if (level.getDepth() > hierarchyAccess.bottomLevel.getDepth()) { return false; } return true; }
public final int getTopLevelDepth() { return topLevel.getDepth(); }
public final int getBottomLevelDepth() { return bottomLevel.getDepth(); }
public int getDepth() { return level.getDepth() - getDepthOffset(); }
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 int getLevelMemberCount(RolapLevel level) { int count = 0; int levelDepth = level.getDepth(); for (Member member : members) { if (member.getLevel().getDepth() == levelDepth) { ++count; } } return count; }
private Element createMemberElem(String name, Element parent, Member m) { Element e = elem(name, parent); e.setAttribute("caption", m.getCaption()); e.setAttribute("depth", Integer.toString(m.getLevel().getDepth())); //e.setAttribute("name", m.getName()); //e.setAttribute("qname", m.getQualifiedName()); e.setAttribute("uname", m.getUniqueName()); e.setAttribute("colspan", "1"); e.setAttribute("rowspan", "1"); // add properties to dom tree addMemberProperties(m, e); return e; }
/** * Returns whether tuple1 is a superset of tuple2. * * @param tuple1 First tuple * @param tuple2 Second tuple * @return boolean Whether tuple1 is a superset of tuple2 */ public static boolean isSuperSet(Member[] tuple1, Member[] tuple2) { int parentLevelCount = 0; for (int i = 0; i < tuple1.length; i++) { Member member1 = tuple1[i]; Member member2 = tuple2[i]; if (!member2.isChildOrEqualTo(member1)) { return false; } if (member1.getLevel().getDepth() < member2.getLevel().getDepth()) { parentLevelCount++; } } return parentLevelCount > 0; }
public TupleList evaluateList(Evaluator evaluator) { Level level = levelCalc.evaluateLevel(evaluator); Member member = memberCalc.evaluateMember(evaluator); int distance = member.getDepth() - level.getDepth(); List<Member> ancestors = new ArrayList<Member>(); for (int curDist = 1; curDist <= distance; curDist++) { ancestors.add( ancestor(evaluator, member, curDist, null)); } return TupleCollections.asTupleList(ancestors); } };
final int levelDepth = level.getDepth(); List<Member> members = Collections.singletonList(ancestor); List<Member> nextMembers = new ArrayList<Member>(); for (Member member : members) { final int currentDepth = member.getLevel().getDepth(); List<Member> childMembers = schemaReader.getMemberChildren(member, context); fertileMembers.clear(); for (Member member : members) { final int currentDepth = member.getLevel().getDepth(); if (currentDepth == levelDepth) { if (self) {
final int targetLevelDepth = targetLevel.getDepth(); assertPrecondition(member.getLevel().getDepth() < targetLevelDepth, "member.getLevel().getDepth() < targetLevel.getDepth()"); returnFirstDescendant ? 0 : (children.size() - 1); member = children.get(index); if (member.getLevel().getDepth() == targetLevelDepth) { if (member.isHidden()) { return member.getHierarchy().getNullMember();
public int getMemberDepth(Member member) { final Role.HierarchyAccess hierarchyAccess = role.getAccessDetails(member.getHierarchy()); if (hierarchyAccess != null) { final int memberDepth = member.getLevel().getDepth(); final int topLevelDepth = hierarchyAccess.getTopLevelDepth(); return memberDepth - topLevelDepth; } else if (((RolapLevel) member.getLevel()).isParentChild()) { // For members of parent-child hierarchy, members in the same level // may have different depths. int depth = 0; for (Member m = member.getParentMember(); m != null; m = m.getParentMember()) { depth++; } return depth; } else { return member.getLevel().getDepth(); } }
public Member evaluateMember(Evaluator evaluator) { Member member = memberCalc.evaluateMember(evaluator); // If the level argument is present, use it. Otherwise use the // level immediately after that of the member argument. Level level; if (levelCalc == null) { int targetDepth = member.getLevel().getDepth() + 1; Level[] levels = member.getHierarchy().getLevels(); if (levels.length <= targetDepth) { return member.getHierarchy().getNullMember(); } level = levels[targetDepth]; } else { level = levelCalc.evaluateLevel(evaluator); } // Shortcut if the level is above the member. if (level.getDepth() < member.getLevel().getDepth()) { return member.getHierarchy().getNullMember(); } // Shortcut if the level is the same as the member if (level == member.getLevel()) { return member; } return getDescendant( evaluator.getSchemaReader(), member, level, opening); } };
public TupleList evaluateList(Evaluator evaluator) { TupleList list = listCalc.evaluateList(evaluator); if (list.size() == 0) { return list; } int searchDepth = -1; if (levelCalc != null) { Level level = levelCalc.evaluateLevel(evaluator); searchDepth = level.getDepth(); } return new UnaryTupleList( drill(searchDepth, list.slice(0), evaluator)); } };
public int getDepth() { return level.getDepth(); }
return parentMember == null ? 0 : parentMember.getLevel().getDepth();