public Parameter createOrLookupParam( boolean definition, String name, Type type, Exp defaultExp, String description) { final SchemaReader schemaReader = getQuery().getSchemaReader(false); Parameter param = schemaReader.getParameter(name); if (definition) { if (param != null) { if (param.getScope() == Parameter.Scope.Statement) { ParameterImpl paramImpl = (ParameterImpl) param; paramImpl.setDescription(description); paramImpl.setDefaultExp(defaultExp); paramImpl.setType(type); } return param; } param = new ParameterImpl(name, defaultExp, description, type); // Append it to the list of known parameters. defineParameter(param); return param; } else { if (param != null) { return param; } throw MondrianResource.instance().UnknownParameter.ex(name); } }