private void addSentinelMembers(List<Exp> args) { Exp prev = args.get(0); for (int i = 1; i < args.size(); i++) { Exp curr = args.get(i); if (prev.toString().equals(curr.toString())) { OlapElement element = null; if (curr instanceof NamedSetExpr) { element = ((NamedSetExpr) curr).getNamedSet(); } else if (curr instanceof MemberExpr) { element = ((MemberExpr) curr).getMember(); } if (element != null) { Level level = element.getHierarchy().getLevels()[0]; Id memberId = createSentinelId(level); Formula formula = query.findFormula(memberId.toString()); args.add(i++, Util.createExpr(formula.getMdxMember())); } } prev = curr; } } }
/** * Finds formula by name and renames it to new name. */ public void renameFormula(String uniqueName, String newName) { Formula formula = findFormula(uniqueName); if (formula == null) { throw MondrianResource.instance().MdxFormulaNotFound.ex( "formula", uniqueName, Util.unparse(this)); } formula.rename(newName); }
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); }
Formula formula = findFormula(uniqueName); if (formula == null) { return false;
Formula formula = findFormula(uniqueName); if (failIfUsedInQuery && formula != null) { OlapElement mdxElement = formula.getElement();