public static String getParameterName(Exp[] args) { if (args[0] instanceof Literal && args[0].getCategory() == Category.String) { return (String) ((Literal) args[0]).getValue(); } else { throw Util.newInternal("Parameter name must be a string constant"); } }
protected Object convert(Object value) { // Convert from old-style tuple list (list of member or member[]) // to new-style list (TupleList). if (value instanceof List && !(value instanceof TupleList)) { List list = (List) value; return TupleCollections.asTupleList(list); } if (value instanceof MemberExpr) { return ((MemberExpr) value).getMember(); } if (value instanceof Literal) { return ((Literal) value).getValue(); } return value; }
public String compile(Exp exp) { if (!(exp instanceof Literal)) { return null; } if ((exp.getCategory() & Category.Numeric) == 0) { return null; } Literal literal = (Literal) exp; String expr = String.valueOf(literal.getValue()); if (!DECIMAL.matcher(expr).matches()) { throw new MondrianEvaluationException( "Expected to get decimal, but got " + expr); } if (dialect.getDatabaseProduct().getFamily() == Dialect.DatabaseProduct.DB2) { expr = "FLOAT(" + expr + ")"; } return expr; }
public FunDef resolve( Exp[] args, Validator validator, List<Conversion> conversions) { if (args.length != 2) { return null; } if (!(args[1] instanceof Literal)) { return null; } Literal literal = (Literal) args[1]; String typeName = (String) literal.getValue(); int returnCategory; if (typeName.equalsIgnoreCase("String")) { returnCategory = Category.String; } else if (typeName.equalsIgnoreCase("Numeric")) { returnCategory = Category.Numeric; } else if (typeName.equalsIgnoreCase("Boolean")) { returnCategory = Category.Logical; } else if (typeName.equalsIgnoreCase("Integer")) { returnCategory = Category.Integer; } else { throw MondrianResource.instance().CastInvalidType.ex(typeName); } final FunDef dummyFunDef = createDummyFunDef(this, returnCategory, args); return new CastFunDef(dummyFunDef); } }
/** * Returns an approximate type for a parameter, based upon the 1'th * argument. Does not use the default value expression, so this method * can safely be used before the expression has been validated. */ public static Type getParameterType(Exp[] args) { if (args[1] instanceof Id) { Id id = (Id) args[1]; String[] names = id.toStringArray(); if (names.length == 1) { final String name = names[0]; if (name.equals("NUMERIC")) { return new NumericType(); } if (name.equals("STRING")) { return new StringType(); } } } else if (args[1] instanceof Literal) { final Literal literal = (Literal) args[1]; if (literal.getValue().equals("NUMERIC")) { return new NumericType(); } else if (literal.getValue().equals("STRING")) { return new StringType(); } } else if (args[1] instanceof MemberExpr) { return new MemberType(null, null, null, null); } return new StringType(); }
if (exp instanceof Literal) { Literal literal = (Literal) exp; final Object value = literal.getValue(); if (value instanceof Number) { return (Number) value;
"Expected a symbol, found '" + arg + "'"); String s = (String) ((Literal) arg).getValue(); for (E e : allowedValues.getEnumConstants()) { if (e.name().equalsIgnoreCase(s)) {
"Expected a symbol, found '" + arg + "'"); String s = (String) ((Literal) arg).getValue(); StringBuilder sb = new StringBuilder(64); for (int j = 0; j < allowedValues.length; j++) {
final boolean includeEmpty = call.getArgCount() < 2 || ((Literal) call.getArg(1)).getValue().equals( "INCLUDEEMPTY"); return new AbstractIntegerCalc(
String value = String.valueOf(((Literal) exp).getValue()); mdxMember.setProperty(memberProperty.getName(), value);
(String) ((Literal) propertyNameExp).getValue(); Hierarchy hierarchy = memberExp.getType().getHierarchy(); if (hierarchy == null) {
String formatString = (String) ((Literal) args[1]).getValue(); final Format format = new Format(formatString, locale); return new AbstractStringCalc(call, new Calc[] {calc}) {
Number number = (Number) n.getValue(); if (number.doubleValue() < 0 || number.doubleValue() != number.intValue())