/** * Creates a validator for this query. * * @return Validator */ public Validator createValidator() { return createValidator( statement.getSchema().getFunTable(), false, new HashMap<QueryPart, QueryPart>()); }
public Validator createValidator( Map<QueryPart, QueryPart> resolvedIdentifiers) { return createValidator( statement.getSchema().getFunTable(), false, resolvedIdentifiers); }
public ExpCompiler createCompiler() { // REVIEW: Set query on a connection's shared internal statement is // not re-entrant. statement.setQuery(this); Evaluator evaluator = RolapEvaluator.create(statement); Validator validator = createValidator(); return createCompiler( evaluator, validator, Collections.singletonList(resultStyle)); }
public void setExpression( Evaluator evaluator, List<Member> childMembers) { final Exp exp = makeExpr(childMembers); final Validator validator = evaluator.getQuery().createValidator(); final Exp validatedExp = exp.accept(validator); setExpression(validatedExp); }
private Object replaceLevelMembersReferences(ResolvedFunCall call) { LOGGER.debug("replaceLevelMembersReferences " + call); Level level = ((LevelExpr) call.getArg(0)).getLevel(); Id setId = createSetId(level); Formula formula = query.findFormula(setId.toString()); Exp exp = Util.createExpr(formula.getNamedSet()); return query.createValidator().validate(exp, false); }
final Validator validator = createValidator(); List<ResultStyle> resultStyleList; resultStyleList =
/** * Performs type-checking and validates internal consistency of a query, * using the default resolver. * * <p>This method is called automatically when a query is created; you need * to call this method manually if you have modified the query's expression * tree in any way. */ public void resolve() { // Before commencing validation, create all calculated members // and calculated sets createFormulaElements(); Map<QueryPart, QueryPart> resolvedIdentifiers = new IdBatchResolver(this).resolve(); final Validator validator = createValidator(resolvedIdentifiers); resolve(validator); // resolve self and children // Create a dummy result so we can use its evaluator final Evaluator evaluator = RolapUtil.createEvaluator(statement); ExpCompiler compiler = createCompiler( evaluator, validator, Collections.singletonList(resultStyle)); compile(compiler); }
new Parameter[0], false); query.createValidator().validate(formula); calculatedMemberList.add(formula); return (RolapMember) formula.getMdxMember();
private VisualTotalMember createMember( Member member, int i, final List<Member> list, Evaluator evaluator) { final String name; final String caption; if (stringCalc != null) { final String namePattern = stringCalc.evaluateString(evaluator); name = substitute(namePattern, member.getName()); caption = name; } else { name = member.getName(); caption = member.getCaption(); } final List<Member> childMemberList = followingDescendants(member, i + 1, list); final Exp exp = makeExpr(childMemberList); final Validator validator = evaluator.getQuery().createValidator(); final Exp validatedExp = exp.accept(validator); return new VisualTotalMember(member, name, caption, validatedExp); }
formulaClone.accept(query.createValidator()); olapElement = formulaClone.getMdxMember();