private void handle(List<?> args) { for (Object arg : args) { if (arg instanceof Expression) { ((Expression) arg).accept(this, null); } } }
@Override public RT produceNext(ResultSet rs) throws Exception { return get(rs, expr, 1, expr.getType()); } };
@SuppressWarnings("unchecked") public GMax(Expression<T> expr) { super((Class)expr.getType(), expr); }
private void visit(Expression<?> expr, QueryMetadata context) { if (expr != null) { expr.accept(this, context); } }
@Override public Type getType(Type targetType) { return expression.getType(); }
private void visit(List<Expression<?>> exprs, QueryMetadata context) { for (Expression<?> arg : exprs) { arg.accept(this, context); } }
@Override public final Class<? extends T> getType() { return mixin.getType(); }
public final S handle(Expression<?> expr) { expr.accept(this, null); return self; }
public WindowFunction(Expression<A> expr) { super(expr.getType()); this.target = expr; }
@SuppressWarnings("unchecked") public GMin(Expression<T> expr) { super((Class) expr.getType(), expr); }
private void handle(@Nullable Expression<?> e) { if (e != null) { e.accept(this, null); } }
@SuppressWarnings("unchecked") public GOne(Expression<T> expr) { super((Class)expr.getType(), expr); }
@Nullable private ValueExpr toValue(Expression<?> expr, QueryMetadata md) { return (ValueExpr)expr.accept(this, md); }
protected void typeMismatch(Class<?> type, Expression<?> expr) { final String msg = expr.getType().getName() + " is not compatible with " + type.getName(); throw new IllegalArgumentException(msg); }
@Nullable private Expression<?> transform(Expression<?> expr, Filters filters) { return (Expression<?>) expr.accept(this, filters); }
private <T extends Comparable> Cases<T, DateExpression<T>> thenDate(Expression<T> expr) { return new Cases<T, DateExpression<T>>((Class)expr.getType()) { @Override protected DateExpression<T> createResult(Class<T> type, Expression<T> last) { return DateOperation.create(type, Ops.CASE, last); } }.addCase(when, expr); }
@Nullable private ValueExpr toValue(Expression<?> expr, QueryMetadata md) { return (ValueExpr) expr.accept(this, md); }
/** * @param measureExpr * @param n * @return */ public static <T> WindowOver<T> nthValue(Expression<T> measureExpr, Expression<? extends Number> n) { return new WindowOver<T>((Class<T>)measureExpr.getType(), SQLOps.NTHVALUE, measureExpr, n); }
public static Set<RelationalPath<?>> extract(Expression<?> expr) { return expr.accept(DEFAULT, ImmutableSet.<RelationalPath<?>>of()); }