private Expression call(Expression operand, Type type, TimeUnit timeUnit) { return Expressions.call(SqlFunctions.class, methodName, Types.castIfNecessary(type, operand), Types.castIfNecessary(type, Expressions.constant(timeUnit.multiplier))); } }
private Expression call(Expression operand, Type type, TimeUnit timeUnit) { return Expressions.call(SqlFunctions.class, methodName, Types.castIfNecessary(type, operand), Types.castIfNecessary(type, Expressions.constant(timeUnit.multiplier))); } }
public List<Expression> accessors(Expression v1, List<Integer> argList) { final List<Expression> expressions = new ArrayList<>(); for (int field : argList) { expressions.add( Types.castIfNecessary( fieldClass(field), fieldReference(v1, field))); } return expressions; }
public List<Expression> accessors(Expression v1, List<Integer> argList) { final List<Expression> expressions = new ArrayList<>(); for (int field : argList) { expressions.add( Types.castIfNecessary( fieldClass(field), fieldReference(v1, field))); } return expressions; }
/** Returns an expression for the object wrapped by this schema (not the * schema itself). */ Expression getTargetExpression(SchemaPlus parentSchema, String name) { return Types.castIfNecessary( target.getClass(), Expressions.call( Schemas.unwrap( getExpression(parentSchema, name), ReflectiveSchema.class), BuiltInMethod.REFLECTIVE_SCHEMA_GET_TARGET.method)); }
/** Returns an expression for the object wrapped by this schema (not the * schema itself). */ Expression getTargetExpression(SchemaPlus parentSchema, String name) { return Types.castIfNecessary( target.getClass(), Expressions.call( Schemas.unwrap( getExpression(parentSchema, name), ReflectiveSchema.class), BuiltInMethod.REFLECTIVE_SCHEMA_GET_TARGET.method)); }
public Expression implement( RexToLixTranslator translator, RexCall call, List<Expression> translatedOperands) { final Expression expression; if (Modifier.isStatic(method.getModifiers())) { expression = Expressions.call(method, translatedOperands); } else { expression = Expressions.call(translatedOperands.get(0), method, Util.skip(translatedOperands, 1)); } final Type returnType = translator.typeFactory.getJavaClass(call.getType()); return Types.castIfNecessary(returnType, expression); } }
public Expression implement( RexToLixTranslator translator, RexCall call, List<Expression> translatedOperands) { final Expression expression; if (Modifier.isStatic(method.getModifiers())) { expression = Expressions.call(method, translatedOperands); } else { expression = Expressions.call(translatedOperands.get(0), method, Util.skip(translatedOperands, 1)); } final Type returnType = translator.typeFactory.getJavaClass(call.getType()); return Types.castIfNecessary(returnType, expression); } }
@Override public void implementNotNullAdd(AggContext info, AggAddContext add) { Expression acc = add.accumulator().get(0); Expression next; if (info.returnType() == BigDecimal.class) { next = Expressions.call(acc, "add", add.arguments().get(0)); } else { next = Expressions.add(acc, Types.castIfNecessary(acc.type, add.arguments().get(0))); } accAdvance(add, acc, next); }
@Override public void implementNotNullAdd(AggContext info, AggAddContext add) { Expression acc = add.accumulator().get(0); Expression next; if (info.returnType() == BigDecimal.class) { next = Expressions.call(acc, "add", add.arguments().get(0)); } else { next = Expressions.add(acc, Types.castIfNecessary(acc.type, add.arguments().get(0))); } accAdvance(add, acc, next); }
protected final void accAdvance(AggAddContext add, Expression acc, Expression next) { add.currentBlock().add( Expressions.statement( Expressions.assign(acc, Types.castIfNecessary(acc.type, next)))); }
protected final void accAdvance(AggAddContext add, Expression acc, Expression next) { add.currentBlock().add( Expressions.statement( Expressions.assign(acc, Types.castIfNecessary(acc.type, next)))); }
return Types.castIfNecessary(returnType, Expressions.makeBinary(expressionType, expressions.get(0), expressions.get(1)));
return Types.castIfNecessary(returnType, Expressions.makeBinary(expressionType, expressions.get(0), expressions.get(1)));
Expressions.constant(tableName)); return Types.castIfNecessary(clazz, expression);
Expressions.constant(tableName)); return Types.castIfNecessary(clazz, expression);
Expressions.condition( Expressions.foldOr(list), Types.castIfNecessary(box.getType(), NULL_EXPR), box)); case FALSE:
final Type keyClass = typeFactory.getJavaClass(keyType); leftExpressions.add( Types.castIfNecessary(keyClass, leftResult.physType.fieldReference(left_, pair.left))); rightExpressions.add( Types.castIfNecessary(keyClass, rightResult.physType.fieldReference(right_, pair.right)));
final Type keyClass = typeFactory.getJavaClass(keyType); leftExpressions.add( Types.castIfNecessary(keyClass, leftResult.physType.fieldReference(left_, pair.left))); rightExpressions.add( Types.castIfNecessary(keyClass, rightResult.physType.fieldReference(right_, pair.right)));
switch (Primitive.flavor(fieldClass(index))) { case OBJECT: arg0 = Types.castIfNecessary(Comparable.class, arg0); arg1 = Types.castIfNecessary(Comparable.class, arg1);