Member lastChild(Evaluator evaluator, Member member) { List<Member> children = evaluator.getSchemaReader().getMemberChildren(member); return (children.size() == 0) ? member.getHierarchy().getNullMember() : children.get(children.size() - 1); } });
Member firstChild(Evaluator evaluator, Member member) { List<Member> children = evaluator.getSchemaReader() .getMemberChildren(member); return (children.size() == 0) ? member.getHierarchy().getNullMember() : children.get(0); } });
static List<Member> memberRange( Evaluator evaluator, Member startMember, Member endMember) { final Level level = startMember.getLevel(); assertTrue(level == endMember.getLevel()); List<Member> members = new ArrayList<Member>(); evaluator.getSchemaReader().getMemberRange( level, startMember, endMember, members); if (members.isEmpty()) { // The result is empty, so maybe the members are reversed. This is // cheaper than comparing the members before we call getMemberRange. evaluator.getSchemaReader().getMemberRange( level, endMember, startMember, members); } return members; }
public static List<Member> getNonEmptyMemberChildren( Evaluator evaluator, Member member) { SchemaReader sr = evaluator.getSchemaReader(); if (evaluator.isNonEmpty()) { return sr.getMemberChildren(member, evaluator); } else { return sr.getMemberChildren(member); } }
Member memberParent(Evaluator evaluator, Member member) { Member parent = evaluator.getSchemaReader().getMemberParent(member); if (parent == null) { parent = member.getHierarchy().getNullMember(); } return parent; } });
public static Map<Member, Access> getNonEmptyMemberChildrenWithDetails( Evaluator evaluator, Member member) { SchemaReader sr = evaluator.getSchemaReader(); if (evaluator.isNonEmpty()) { return (Map<Member, Access>) sr.getMemberChildrenWithDetails(member, evaluator); } else { return (Map<Member, Access>) sr.getMemberChildrenWithDetails(member, null); } }
static List<Member> parseMemberList( Evaluator evaluator, String string, Hierarchy hierarchy) { IdentifierParser.MemberListBuilder builder = new IdentifierParser.MemberListBuilder( evaluator.getSchemaReader(), evaluator.getCube(), hierarchy); IdentifierParser.parseMemberList(builder, string); return builder.memberList; }
static TupleList parseTupleList( Evaluator evaluator, String string, List<Hierarchy> hierarchies) { final IdentifierParser.TupleListBuilder builder = new IdentifierParser.TupleListBuilder( evaluator.getSchemaReader(), evaluator.getCube(), hierarchies); IdentifierParser.parseTupleList(builder, string); return builder.tupleList; }
public TupleList evaluateList(Evaluator evaluator) { final Member member = memberCalc.evaluateMember(evaluator); List<Member> result = new ArrayList<Member>(); final int depth = depthCalc.evaluateInteger(evaluator); final SchemaReader schemaReader = evaluator.getSchemaReader(); descendantsByDepth( member, result, schemaReader, depth, flag1.before, flag1.self, flag1.after, evaluator); hierarchizeMemberList(result, false); return new UnaryTupleList(result); } };
public Member evaluateMember(Evaluator evaluator) { Member member = memberCalc.evaluateMember(evaluator); int n = integerCalc.evaluateInteger(evaluator); if (lag) { if (n == Integer.MIN_VALUE) { // Bump up lagValue by one, otherwise -n (used // in the getLeadMember call below) is out of // range because Integer.MAX_VALUE == // -(Integer.MIN_VALUE + 1). n += 1; } n = -n; } return evaluator.getSchemaReader().getLeadMember(member, n); } };
Member firstSibling(Member member, Evaluator evaluator) { Member parent = member.getParentMember(); List<Member> children; final SchemaReader schemaReader = evaluator.getSchemaReader(); if (parent == null) { if (member.isNull()) { return member; } children = schemaReader.getHierarchyRootMembers( member.getHierarchy()); } else { children = schemaReader.getMemberChildren(parent); } return children.get(children.size() - 1); } });
public TupleList evaluateList(Evaluator evaluator) { final Member member = memberCalc.evaluateMember(evaluator); List<Member> result = new ArrayList<Member>(); int depth = -1; if (depthCalc != null) { depth = depthCalc.evaluateInteger(evaluator); if (depth < 0) { depth = -1; // no limit } } final SchemaReader schemaReader = evaluator.getSchemaReader(); descendantsLeavesByDepth( member, result, schemaReader, depth); hierarchizeMemberList(result, false); return new UnaryTupleList(result); } };
public boolean evaluate(Object o) { Role role = constraint .getEvaluator().getSchemaReader().getRole(); Member member = (Member) o; return member.isHidden() || !role.canAccess(member); } };
private boolean isCustomAccess(Hierarchy hierarchy) { if (constraint.getEvaluator() == null) { return false; } Access access = constraint .getEvaluator() .getSchemaReader() .getRole() .getAccess(hierarchy); return access == Access.CUSTOM; }
Member firstSibling(Member member, Evaluator evaluator) { Member parent = member.getParentMember(); List<Member> children; final SchemaReader schemaReader = evaluator.getSchemaReader(); if (parent == null) { if (member.isNull()) { return member; } children = schemaReader.getHierarchyRootMembers( member.getHierarchy()); } else { children = schemaReader.getMemberChildren(parent); } return children.get(0); } });
List<Member> memberSiblings(Member member, Evaluator evaluator) { if (member.isNull()) { // the null member has no siblings -- not even itself return Collections.emptyList(); } Member parent = member.getParentMember(); final SchemaReader schemaReader = evaluator.getSchemaReader(); if (parent == null) { return schemaReader.getHierarchyRootMembers( member.getHierarchy()); } else { return schemaReader.getMemberChildren(parent); } } });
public TupleList evaluateList(Evaluator evaluator) { ResolvedFunCall call = (ResolvedFunCall) exp; // Use a native evaluator, if more efficient. // TODO: Figure this out at compile time. SchemaReader schemaReader = evaluator.getSchemaReader(); NativeEvaluator nativeEvaluator = schemaReader.getNativeSetEvaluator( call.getFunDef(), call.getArgs(), evaluator, this); if (nativeEvaluator != null) { return (TupleList) nativeEvaluator.execute( ResultStyle.ITERABLE); } else { return makeList(evaluator); } } protected abstract TupleList makeList(Evaluator evaluator);
private boolean isHighCardinality(Exp funArg, Evaluator evaluator) { Level level = findLevel(funArg); if (level != null) { int cardinality = evaluator.getSchemaReader() .getLevelCardinality(level, false, true); final int minThreshold = MondrianProperties.instance() .NativizeMinThreshold.get(); final boolean isHighCard = cardinality > minThreshold; logHighCardinality( ESTIMATE_MESSAGE, minThreshold, cardinality, isHighCard); return isHighCard; } return false; }
public boolean isSuported( DataSource ds ) { Evaluator evaluator = this.getEvaluator(); SqlQuery testQuery = SqlQuery.newQuery( ds, "testQuery" ); SqlTupleReader sqlTupleReader = new SqlTupleReader( this ); Role role = evaluator.getSchemaReader().getRole(); RolapSchemaReader reader = new RolapSchemaReader( role, evaluator.getSchemaReader().getSchema() ); for ( CrossJoinArg arg : args ) { addLevel( sqlTupleReader, reader, arg ); } RolapCube cube = (RolapCube) evaluator.getCube(); this.addConstraint( testQuery, cube, sqlTupleReader.chooseAggStar( this, evaluator, cube ) ); return testQuery.isSupported(); }
public TupleList evaluateList(Evaluator evaluator) { final Evaluator context = evaluator.isNonEmpty() ? evaluator : null; final Member member = memberCalc.evaluateMember(evaluator); List<Member> result = new ArrayList<Member>(); final SchemaReader schemaReader = evaluator.getSchemaReader(); final Level level = levelCalc != null ? levelCalc.evaluateLevel(evaluator) : member.getLevel(); descendantsByLevel( schemaReader, member, level, result, flag2.before, flag2.self, flag2.after, flag2.leaves, context); hierarchizeMemberList(result, false); return new UnaryTupleList(result); } };