RolapHierarchy nthHierarchy(Evaluator evaluator, int n) { RolapCube cube = (RolapCube) evaluator.getCube(); List<RolapHierarchy> hierarchies = cube.getHierarchies(); if (n >= hierarchies.size() || n < 0) { throw newEvalException( this, "Index '" + n + "' out of bounds"); } return hierarchies.get(n); } }
private Level getLevel(Evaluator evaluator) { switch (levelType) { case TimeYears: return evaluator.getCube().getYearLevel(); case TimeQuarters: return evaluator.getCube().getQuarterLevel(); case TimeMonths: return evaluator.getCube().getMonthLevel(); case TimeWeeks: return evaluator.getCube().getWeekLevel(); case TimeDays: return evaluator.getCube().getWeekLevel(); default: throw Util.badValue(levelType); } }
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; }
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; }
new IdentifierParser.TupleBuilder( evaluator.getSchemaReader(), evaluator.getCube(), hierarchies)
private static int parseMember( Evaluator evaluator, String string, int i, final Member[] members, Hierarchy hierarchy) { IdentifierParser.MemberListBuilder builder = new IdentifierParser.MemberListBuilder( evaluator.getSchemaReader(), evaluator.getCube(), hierarchy) { @Override public void memberComplete() { members[0] = resolveMember(hierarchyList.get(0)); segmentList.clear(); } }; return IdentifierParser.parseMember(builder, string, i); }
static Member parseMember( Evaluator evaluator, String string, Hierarchy hierarchy) { Member[] members = {null}; int i = parseMember(evaluator, string, 0, members, hierarchy); // todo: check for garbage at end of string final Member member = members[0]; if (member == null) { throw MondrianResource.instance().MdxChildObjectNotFound.ex( string, evaluator.getCube().getQualifiedName()); } return member; }
Level findLevel(Evaluator evaluator, String s) { Cube cube = evaluator.getCube(); OlapElement o = (s.startsWith("[")) ? evaluator.getSchemaReader().lookupCompound( cube, parseIdentifier(s), false, Category.Level) // lookupCompound barfs if "s" doesn't have matching // brackets, so don't even try : null; if (o instanceof Level) { return (Level) o; } else if (o == null) { throw newEvalException(this, "Level '" + s + "' not found"); } else { throw newEvalException( this, "Levels('" + s + "') found " + o); } } });
/** * Looks up a hierarchy in the current cube with a given name. * * @param name Hierarchy name * @param evaluator Evaluator * @return Hierarchy */ Hierarchy findHierarchy(String name, Evaluator evaluator) { if (name.indexOf("[") == -1) { name = Util.quoteMdxIdentifier(name); } OlapElement o = evaluator.getSchemaReader().lookupCompound( evaluator.getCube(), parseIdentifier(name), false, Category.Hierarchy); if (o instanceof Hierarchy) { return (Hierarchy) o; } else if (o == null) { throw newEvalException( this, "Hierarchy '" + name + "' not found"); } else { throw newEvalException( this, "Hierarchy(" + name + ") found " + o); } } }
public Object evaluate(Evaluator evaluator) { RolapCube baseCube; RolapCube virtualCube = (RolapCube) evaluator.getCube(); final List<Member> memberList = getCalcsMembers(evaluator);
public Calc compileCall(ResolvedFunCall call, ExpCompiler compiler) { // Member defaults to [Time].currentmember Exp[] args = call.getArgs(); final MemberCalc memberCalc; if (args.length == 1) { final RolapHierarchy timeHierarchy = ((RolapCube) compiler.getEvaluator().getCube()) .getTimeHierarchy(getName()); memberCalc = new HierarchyCurrentMemberFunDef.FixedCalcImpl( call, timeHierarchy); } else { memberCalc = compiler.compileMember(args[1]); } // Numeric Expression. final IntegerCalc indexValueCalc = compiler.compileInteger(args[0]); return new AbstractListCalc( call, new Calc[] {memberCalc, indexValueCalc}) { public TupleList evaluateList(Evaluator evaluator) { Member member = memberCalc.evaluateMember(evaluator); int indexValue = indexValueCalc.evaluateInteger(evaluator); return new UnaryTupleList( lastPeriods(member, evaluator, indexValue)); } }; }
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(); }
return false; RolapCube cube = (RolapCube) context.getCube(); if (disallowVirtualCube) { if (cube.isVirtual()) {
final RolapHierarchy timeHierarchy = levelCalc == null ? ((RolapCube) compiler.getEvaluator().getCube()).getTimeHierarchy( getName()) : null;
RolapCube virtualCube = (RolapCube) evaluator.getCube(); if (virtualCube.isVirtual()) {
default: final RolapHierarchy timeHierarchy = ((RolapCube) compiler.getEvaluator().getCube()) .getTimeHierarchy(getName()); memberCalc =
(SqlContextConstraint) constraint; Evaluator evaluator = contextConstraint.getEvaluator(); RolapCube cube = (RolapCube) evaluator.getCube(); RolapStar star = cube.getStar(); final int starColumnCount = star.getColumnCount();
baseCube = (RolapCube) evaluator.getCube();