public boolean usesHierarchy(Hierarchy hierarchy, boolean definitely) { return this.hierarchy == hierarchy || (!definitely && this.hierarchy == null && (this.dimension == null || this.dimension == hierarchy.getDimension())); }
public Level getParentLevel() { int parentDepth = depth - 1; Level[] levels = hierarchy.getLevels(); return (parentDepth >= 0) ? levels[parentDepth] : null; }
headings.add( hierarchy.getUniqueName() );
private void addToDimMemberSet(Hierarchy hierarchy) { if (mapToAllMember && !hierarchy.getDimension().isMeasures()) { memberSet.add(hierarchy.getAllMember()); } } }
public Hierarchy lookupHierarchy(Id.NameSegment s, boolean unique) { for (Dimension dimension : dimensions) { Hierarchy[] hierarchies = dimension.getHierarchies(); for (Hierarchy hierarchy : hierarchies) { String name = unique ? hierarchy.getUniqueName() : hierarchy.getName(); if (name.equals(s.getName())) { return hierarchy; } } } return null; }
public Access getAccess(Hierarchy hierarchy) { assert hierarchy != null; HierarchyAccessImpl hierarchyAccess = hierarchyGrants.get(hierarchy); if (hierarchyAccess != null) { LOGGER.trace( "Access level " + hierarchyAccess.access + " granted to dimension " + hierarchy.getUniqueName()); return hierarchyAccess.access; } // There was no explicit rule for this particular hierarchy. // Let's check the parent dimension. Access access = getAccess(hierarchy.getDimension()); if (access == Access.ALL) { // Access levels of 'none' and 'custom' are not enough. LOGGER.trace( "Access level ALL " + " granted to hierarchy " + hierarchy.getUniqueName() + " because of the grant to dimension " + hierarchy.getDimension().getUniqueName()); return Access.ALL; } // Access denied, since we know that the dimension check has // checked for its parents as well. LOGGER.trace( "Access denided to hierarchy " + hierarchy.getUniqueName()); return Access.NONE; }
LOGGER.trace( "Granting access " + access + " on hierarchy " + hierarchy.getUniqueName()); hierarchyGrants.put( hierarchy, toAccess(dimensionGrants.get(hierarchy.getDimension())); if (dimAccess == Access.NONE) { LOGGER.trace( "Cascading grant CUSTOM on dimension " + hierarchy.getDimension().getUniqueName() + " because of the grant to hierarchy" + hierarchy.getUniqueName()); grant(hierarchy.getDimension(), Access.CUSTOM); hierarchy.getName(), access.name()}); hash = 0;
+ "because its parent is at the lowest level " + "in the " + parentMember.getHierarchy().getUniqueName() + " hierarchy."); .MdxCalculatedHierarchyError.ex(id.toString()); level = hierarchy.getLevels()[0]; level.getHierarchy().createMember( parentMember, level, segment.getName(), this); assert mdxMember != null;
if (hierarchy.hasAll()) { tupleCopy.set(j, hierarchy.getAllMember()); } else { tupleCopy.set(j, hierarchy.getDefaultMember());
final String hierarchyName = hier.getName(); if (hierarchyName.equals(levelHierName) || (isClosure && hierarchyName.equals(closHierName))) final RolapCubeLevel baseLevel = ((RolapCubeLevel) hier.getLevels()[1]).getClosedPeer(); virtualToBaseMap.put(level, baseLevel); return baseLevel; for (Level lvl : hier.getLevels()) { if (lvl.getName().equals(level.getName())) { final RolapCubeLevel baseLevel =
static Member makeNullMember(MemberType memberType) { Hierarchy hierarchy = memberType.getHierarchy(); if (hierarchy == null) { return NullMember; } return hierarchy.getNullMember(); }
String name = hierarchy.getName(); if (!name.equals(hierarchy.getDimension().getName()) && MondrianProperties.instance().SsasCompatibleNaming.get()) name = hierarchy.getDimension().getName() + "." + name;
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 String getName() { return hierarchy.getName(); }
private static boolean isMemberDefault(Member member) { // Remove members that are the default for their hierarchy, // except for the measures hierarchy. return member.getHierarchy().getDefaultMember().equals(member); }
/** * Returns the [All] member from HierarchyExpr and DimensionExpr * associated with hierarchies that have an All member. * Returns the member associated with a MemberExpr. * For all other Exp returns null. */ private Member getMemberFromExp(Exp exp) { if (exp instanceof DimensionExpr) { Hierarchy hier = ((DimensionExpr)exp) .getDimension().getHierarchy(); if (hier.hasAll()) { return hier.getAllMember(); } } else if (exp instanceof HierarchyExpr) { Hierarchy hier = ((HierarchyExpr)exp) .getHierarchy(); if (hier.hasAll()) { return hier.getAllMember(); } } else if (exp instanceof MemberExpr) { return ((MemberExpr)exp).getMember(); } return null; }
/** * Returns the current member of a given hierarchy at a given location. * * @param pos Coordinates in cell set * @param hierarchy Hierarchy * @return current member of given hierarchy */ public Member getMember(int[] pos, Hierarchy hierarchy) { for (int i = -1; i < axes.length; i++) { Axis axis = slicerAxis; int index = 0; if (i >= 0) { axis = axes[i]; index = pos[i]; } List<Position> positions = axis.getPositions(); Position position = positions.get(index); for (Member member : position) { if (member.getHierarchy() == hierarchy) { return member; } } } return hierarchy.getHierarchy().getDefaultMember(); }
&& !hierarchy.hasAll() && !rootMembers.isEmpty()) hierarchy.createMember( null, rootMembers.get(0).getLevel(), int rc; if (matchType.isExact() || hierarchy.hasAll()) { rc = rootMember.getName().compareToIgnoreCase(memberName.name); } else { return rootMember; if (!hierarchy.hasAll()) { if (matchType == MatchType.BEFORE) { if (rc < 0
return member != cubeLevel.hierarchy.getDefaultMember() || cubeLevel.hierarchy.hasAll();
private void addMember(Member member) { if (!mapToAllMember) { memberSet.add(member); } else { memberSet.add(member.getHierarchy().getAllMember()); } }