protected boolean removeDimension( Dimension dimension, List<List<Member>> memberLists) { for (int i = 0; i < memberLists.size(); i++) { List<Member> memberList = memberLists.get(i); if (memberList.get(0).getDimension().equals(dimension)) { memberLists.remove(i); return true; } } return false; }
MemberCellRegion(List<Member> memberList, boolean descendants) { assert memberList.size() > 0; this.memberList = memberList; this.dimension = (memberList.get(0)).getDimension(); Util.discard(descendants); }
public Dimension getDimension() { return new MondrianOlap4jDimension( olap4jSchema, member.getDimension()); }
@Override public Object visit(MemberExpr member) { dimensions.add(member.getMember().getDimension()); return null; } }
public Dimension evaluateDimension(Evaluator evaluator) { Member member = memberCalc.evaluateMember(evaluator); return member.getDimension(); } };
public boolean isInstance(Object value) { return value instanceof Member && (level == null || ((Member) value).getLevel().equals(level)) && (hierarchy == null || ((Member) value).getHierarchy().equals(hierarchy)) && (dimension == null || ((Member) value).getDimension().equals(dimension)); }
/** * Finds out non joining dimensions for this cube. * Useful for finding out non joining dimensions for a stored measure from * a base cube. * * @param tuple array of members * @return Set of dimensions that do not exist (non joining) in this cube */ public Set<Dimension> nonJoiningDimensions(Member[] tuple) { Set<Dimension> otherDims = new HashSet<Dimension>(); for (Member member : tuple) { if (!member.isCalculated()) { otherDims.add(member.getDimension()); } } return nonJoiningDimensions(otherDims); }
private static boolean canOptimize( Member parentMember, Cube baseCube) { return dimensionJoinsToBaseCube( parentMember.getDimension(), baseCube) || !parentMember.isAll(); }
private void printAxis(PrintWriter pw, Axis axis) { List<Position> positions = axis.getPositions(); for (Position position : positions) { boolean firstTime = true; pw.print("{"); for (Member member : position) { if (member.getDimension().isHighCardinality()) { pw.println(" -- High cardinality dimension --}"); return; } if (! firstTime) { pw.print(", "); } pw.print(member.getUniqueName()); firstTime = false; } pw.println("}"); } }
MondrianOlap4jMember toOlap4j(mondrian.olap.Member member) { if (member == null) { return null; } if (member instanceof RolapMeasure) { RolapMeasure measure = (RolapMeasure) member; return new MondrianOlap4jMeasure( toOlap4j(member.getDimension().getSchema()), measure); } return new MondrianOlap4jMember( toOlap4j(member.getDimension().getSchema()), member); }
for (int j = 0; j < tuple.size(); j++) { final Member member = tuple.get(j); if (nonJoiningDimensions.contains(member.getDimension())) { if (tupleCopy == tuple) { member.getDimension().getHierarchy(); if (hierarchy.hasAll()) { tupleCopy.set(j, hierarchy.getAllMember());
public static MemberType forMember(Member member) { final Dimension dimension; final Hierarchy hierarchy; final Level level; if (member == null) { dimension = null; hierarchy = null; level = null; } else { dimension = member.getDimension(); hierarchy = member.getHierarchy(); level = member.getLevel(); } return new MemberType(dimension, hierarchy, level, member); }
/** * Sorts a list of members into hierarchical order. The members must belong * to the same dimension. * * @param memberList List of members * @param post Whether to sort in post order; if false, sorts in pre order * * @see #hierarchizeTupleList(mondrian.calc.TupleList, boolean) */ public static void hierarchizeMemberList( List<Member> memberList, boolean post) { if (memberList.size() <= 1) { return; } Dimension dimension = memberList.get(0).getDimension(); if (dimension.isHighCardinality()) { LOGGER.warn( MondrianResource.instance() .HighCardinalityInDimension.str( dimension.getUniqueName())); return; } Comparator<Member> comparator = new HierarchizeComparator(post); Collections.sort(memberList, comparator); }
private boolean isAxisHighCardinality( int axisOrdinal, TupleList tupleList) { Boolean highCardinality = positionsHighCardinality.get(axisOrdinal); if (highCardinality != null) { return highCardinality; } highCardinality = false; //noinspection LoopStatementThatDoesntLoop List<Member> tuple = !tupleList.isEmpty() ? tupleList.get(0) : null; if (tuple != null && !tuple.isEmpty()) { Dimension dimension = tuple.get(0).getDimension(); highCardinality = dimension.isHighCardinality(); if (highCardinality) { LOGGER.warn( MondrianResource.instance() .HighCardinalityInDimension.str( dimension.getUniqueName())); } } positionsHighCardinality.put(axisOrdinal, highCardinality); return highCardinality; }
public Access getAccess(Member member) { assert member != null; HierarchyAccess hierarchyAccess = getAccessDetails(member.getHierarchy()); if (hierarchyAccess != null) { return hierarchyAccess.getAccess(member); } final Access access = getAccess(member.getDimension()); LOGGER.debug( "Access level " + access + " granted to member " + member.getUniqueName() + " because of a union of roles."); return access; }
public static boolean hasMultipleLevelSlicer(Evaluator evaluator) { Map<Dimension, Level> levels = new HashMap<Dimension, Level>(); List<Member> slicerMembers = expandSupportedCalculatedMembers( ((RolapEvaluator) evaluator).getSlicerMembers(), evaluator).getMembers(); for (Member member : slicerMembers) { if (member.isAll()) { continue; } Level before = levels .put(member.getDimension(), member.getLevel()); if (before != null && !before.equals(member.getLevel())) { return true; } } return false; }
if (memberList.get(i).getDimension().isMeasures()) { measurePosition = i; break;
|| parent.equals(formulaMember.getDimension());
result.add(member); if (level != null && member.getLevel() != level) { if (level.getDimension() != member.getDimension()) { throw newEvalException( DrilldownLevelTopBottomFunDef.this,
if (o instanceof Member) { Dimension dimension = ((Member)o).getDimension(); if (dimension.isHighCardinality()) { LOGGER.warn(