@SuppressWarnings({ "unchecked" }) public UnaryArithmeticOperation( CriteriaBuilderImpl criteriaBuilder, Operation operation, Expression<T> operand) { super( criteriaBuilder, (Class)operand.getJavaType() ); this.operation = operation; this.operand = operand; }
@SuppressWarnings({ "unchecked" }) public MAX(CriteriaBuilderImpl criteriaBuilder, Expression<N> expression) { super( criteriaBuilder, ( Class<N> ) expression.getJavaType(), NAME , expression); } }
@SuppressWarnings({ "unchecked" }) public LEAST(CriteriaBuilderImpl criteriaBuilder, Expression<X> expression) { super( criteriaBuilder, ( Class<X> ) expression.getJavaType(), NAME , expression); } }
@SuppressWarnings({ "unchecked" }) public MIN(CriteriaBuilderImpl criteriaBuilder, Expression<N> expression) { super( criteriaBuilder, ( Class<N> ) expression.getJavaType(), NAME , expression); } }
@SuppressWarnings({ "unchecked" }) public GREATEST(CriteriaBuilderImpl criteriaBuilder, Expression<X> expression) { super( criteriaBuilder, ( Class<X> ) expression.getJavaType(), NAME , expression); } }
public AbsFunction(CriteriaBuilderImpl criteriaBuilder, Expression expression) { super( criteriaBuilder, expression.getJavaType(), NAME, expression ); }
private static Class determineType(Class javaType, Expression primaryExpression) { return javaType != null ? javaType : primaryExpression.getJavaType(); }
/** * Helper for determining the appropriate operation return type based on one of the operands as an expression. * * @param defaultType The default return type to use if we cannot determine the java type of 'expression' operand. * @param expression The operand. * * @return The appropriate return type. */ public static Class<? extends Number> determineReturnType( Class<? extends Number> defaultType, Expression<? extends Number> expression) { return expression == null || expression.getJavaType() == null ? defaultType : expression.getJavaType(); }
@SuppressWarnings({ "unchecked" }) public Coalesce<T> value(Expression<? extends T> value) { expressions.add( value ); if ( javaType == null ) { javaType = (Class<T>) value.getJavaType(); } return this; }
@SuppressWarnings({ "unchecked" }) public SUM(CriteriaBuilderImpl criteriaBuilder, Expression<N> expression) { super( criteriaBuilder, (Class<N>)expression.getJavaType(), NAME , expression); // force the use of a ValueHandler resetJavaType( expression.getJavaType() ); }
public Expression<R> otherwise(Expression<? extends R> result) { this.otherwiseResult = result; resetJavaType( result.getJavaType() ); return this; }
public Expression<R> otherwise(Expression<? extends R> result) { this.otherwiseResult = result; resetJavaType( result.getJavaType() ); return this; }
@Override @SuppressWarnings({ "unchecked" }) public <N extends Number> Expression<N> sum(Expression<? extends N> expression1, Expression<? extends N> expression2) { if ( expression1 == null || expression2 == null ) { throw new IllegalArgumentException( "arguments to sum() cannot be null" ); } final Class resultType = BinaryArithmeticOperation.determineResultType( expression1.getJavaType(), expression2.getJavaType() ); return new BinaryArithmeticOperation<N>( this, resultType, BinaryArithmeticOperation.Operation.ADD, expression1, expression2 ); }
@Override @SuppressWarnings( {"unchecked"}) public Expression<Number> quot(Expression<? extends Number> expression1, Expression<? extends Number> expression2) { if ( expression1 == null || expression2 == null ) { throw new IllegalArgumentException( "arguments to quot() cannot be null" ); } final Class resultType = BinaryArithmeticOperation.determineResultType( expression1.getJavaType(), expression2.getJavaType(), true ); return new BinaryArithmeticOperation<Number>( this, resultType, BinaryArithmeticOperation.Operation.DIVIDE, expression1, expression2 ); }
@Override @SuppressWarnings({ "unchecked" }) public <N extends Number> Expression<N> diff(Expression<? extends N> expression1, Expression<? extends N> expression2) { if ( expression1 == null || expression2 == null ) { throw new IllegalArgumentException( "arguments to diff() cannot be null" ); } final Class resultType = BinaryArithmeticOperation.determineResultType( expression1.getJavaType(), expression2.getJavaType() ); return new BinaryArithmeticOperation<N>( this, resultType, BinaryArithmeticOperation.Operation.SUBTRACT, expression1, expression2 ); }
public Case<R> when(Expression<Boolean> condition, Expression<? extends R> result) { WhenClause whenClause = new WhenClause( condition, result ); whenClauses.add( whenClause ); resetJavaType( result.getJavaType() ); return this; }
@Override @SuppressWarnings( {"unchecked"}) public Expression<Number> quot(Number number, Expression<? extends Number> expression) { if ( expression == null || number == null ) { throw new IllegalArgumentException( "arguments to quot() cannot be null" ); } final Class resultType = BinaryArithmeticOperation.determineResultType( number.getClass(), expression.getJavaType(), true ); return new BinaryArithmeticOperation<Number>( this, resultType, BinaryArithmeticOperation.Operation.DIVIDE, number, expression ); }
@Override @SuppressWarnings( {"unchecked"}) public Expression<Number> quot(Expression<? extends Number> expression, Number number) { if ( expression == null || number == null ) { throw new IllegalArgumentException( "arguments to quot() cannot be null" ); } final Class resultType = BinaryArithmeticOperation.determineResultType( expression.getJavaType(), number.getClass(), true ); return new BinaryArithmeticOperation<Number>( this, resultType, BinaryArithmeticOperation.Operation.DIVIDE, expression, number ); }
@Override @SuppressWarnings({ "unchecked" }) public <N extends Number> Expression<N> prod(Expression<? extends N> expression, N n) { if ( expression == null || n == null ) { throw new IllegalArgumentException( "arguments to prod() cannot be null" ); } final Class resultType = BinaryArithmeticOperation.determineResultType( expression.getJavaType(), n.getClass() ); return new BinaryArithmeticOperation<N>( this, resultType, BinaryArithmeticOperation.Operation.MULTIPLY, expression, n ); }
public SimpleCase<C, R> when(C condition, Expression<? extends R> result) { WhenClause whenClause = new WhenClause( new LiteralExpression<C>( criteriaBuilder(), condition ), result ); whenClauses.add( whenClause ); resetJavaType( result.getJavaType() ); return this; }