## org.hibernate.ejb.criteria.expression
Class BinaryArithmeticOperation<N extends Number>

    java.lang.Object
      org.hibernate.ejb.criteria.AbstractNode
          org.hibernate.ejb.criteria.expression.AbstractTupleElement<X>
              org.hibernate.ejb.criteria.expression.SelectionImpl<T>
                  org.hibernate.ejb.criteria.expression.ExpressionImpl<N>
                      org.hibernate.ejb.criteria.expression.BinaryArithmeticOperation<N>

All Implemented Interfaces:
  Serializable, javax.persistence.criteria.Expression<N>, javax.persistence.criteria.Selection<N>, TupleElement<N>, BinaryOperatorExpression<N>, ExpressionImplementor<N>, ParameterContainer, Renderable, SelectionImplementor<N>, TupleElementImplementor<N>

    public class BinaryArithmeticOperation<N extends Number>

extends ExpressionImpl<N>
implements BinaryOperatorExpression<N>, Serializable

Models standard arithmetc operations with two operands.

Author:
  Steve Ebersole
See Also:
  Serialized Form

Nested Class Summary
`static class` `BinaryArithmeticOperation.Operation`

Nested classes/interfaces inherited from interface org.hibernate.ejb.criteria.ParameterContainer
`ParameterContainer.Helper`

Constructor Summary
`BinaryArithmeticOperation(CriteriaBuilderImpl criteriaBuilder, Class<N> resultType, BinaryArithmeticOperation.Operation operator, javax.persistence.criteria.Expression<? extends N> lhs, javax.persistence.criteria.Expression<? extends N> rhs)` Creates an arithmethic operation based on 2 expressions.
`BinaryArithmeticOperation(CriteriaBuilderImpl criteriaBuilder, Class<N> javaType, BinaryArithmeticOperation.Operation operator, javax.persistence.criteria.Expression<? extends N> lhs, N rhs)` Creates an arithmethic operation based on an expression and a literal.
`BinaryArithmeticOperation(CriteriaBuilderImpl criteriaBuilder, Class<N> javaType, BinaryArithmeticOperation.Operation operator, N lhs, javax.persistence.criteria.Expression<? extends N> rhs)` Creates an arithmetic operation based on an expression and a literal.

Method Summary
`static Class<? extends Number>` `determineResultType(Class<? extends Number> argument1Type, Class<? extends Number> argument2Type)`
`static Class<? extends Number>` `determineResultType(Class<? extends Number> argument1Type, Class<? extends Number> argument2Type, boolean isQuotientOperation)`
`static Class<? extends Number>` `determineReturnType(Class<? extends Number> defaultType, javax.persistence.criteria.Expression<? extends Number> expression)` Helper for determining the appropriate operation return type based on one of the operands as an expression.
`static Class<? extends Number>` `determineReturnType(Class<? extends Number> defaultType, Number numberLiteral)` Helper for determining the appropriate operation return type based on one of the operands as a literal.
`javax.persistence.criteria.Expression<? extends N>` `getLeftHandOperand()` Get the left-hand operand.
`BinaryArithmeticOperation.Operation` `getOperator()`
`javax.persistence.criteria.Expression<? extends N>` `getRightHandOperand()` Get the right-hand operand.
`void` `registerParameters(ParameterRegistry registry)` Register any parameters contained within this query component with the given registry.
`String` `render(CriteriaQueryCompiler.RenderingContext renderingContext)`
`String` `renderProjection(CriteriaQueryCompiler.RenderingContext renderingContext)`

Methods inherited from class org.hibernate.ejb.criteria.expression.ExpressionImpl
`as, asBigDecimal, asBigInteger, asDouble, asFloat, asInteger, asLong, asString, in, in, in, in, isNotNull, isNull`

Methods inherited from class org.hibernate.ejb.criteria.expression.SelectionImpl
`alias, getCompoundSelectionItems, getValueHandlers, isCompoundSelection`

Methods inherited from class org.hibernate.ejb.criteria.expression.AbstractTupleElement
`forceConversion, getAlias, getJavaType, getValueHandler, resetJavaType, setAlias`

Methods inherited from class org.hibernate.ejb.criteria.AbstractNode
`criteriaBuilder`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Methods inherited from interface javax.persistence.criteria.Expression
`as, in, in, in, in, isNotNull, isNull`

Methods inherited from interface javax.persistence.criteria.Selection
`alias, getCompoundSelectionItems, isCompoundSelection`

Methods inherited from interface javax.persistence.TupleElement
`getAlias, getJavaType`

Methods inherited from interface org.hibernate.ejb.criteria.SelectionImplementor
`getValueHandlers`

Methods inherited from interface org.hibernate.ejb.criteria.TupleElementImplementor
`getValueHandler`

Constructor Detail

### BinaryArithmeticOperation

    public BinaryArithmeticOperation(CriteriaBuilderImpl criteriaBuilder,
                                     Class<N> resultType,
                                     BinaryArithmeticOperation.Operation operator,
                                     javax.persistence.criteria.Expression<? extends N> lhs,
                                     javax.persistence.criteria.Expression<? extends N> rhs)

  Creates an arithmethic operation based on 2 expressions.

  Parameters:
    `criteriaBuilder` - The builder for query components.
    `resultType` - The operation result type
    `operator` - The operator (type of operation).
    `lhs` - The left-hand operand.
    `rhs` - The right-hand operand

### BinaryArithmeticOperation

    public BinaryArithmeticOperation(CriteriaBuilderImpl criteriaBuilder,
                                     Class<N> javaType,
                                     BinaryArithmeticOperation.Operation operator,
                                     javax.persistence.criteria.Expression<? extends N> lhs,
                                     N rhs)

  Creates an arithmethic operation based on an expression and a literal.

  Parameters:
    `criteriaBuilder` - The builder for query components.
    `javaType` - The operation result type
    `operator` - The operator (type of operation).
    `lhs` - The left-hand operand
    `rhs` - The right-hand operand (the literal)

### BinaryArithmeticOperation

    public BinaryArithmeticOperation(CriteriaBuilderImpl criteriaBuilder,
                                     Class<N> javaType,
                                     BinaryArithmeticOperation.Operation operator,
                                     N lhs,
                                     javax.persistence.criteria.Expression<? extends N> rhs)

  Creates an arithmetic operation based on an expression and a literal.

  Parameters:
    `criteriaBuilder` - The builder for query components.
    `javaType` - The operation result type
    `operator` - The operator (type of operation).
    `lhs` - The left-hand operand (the literal)
    `rhs` - The right-hand operand

Method Detail

### determineResultType

    public static Class<? extends Number> determineResultType(Class<? extends Number> argument1Type,
                                                              Class<? extends Number> argument2Type)

### determineResultType

    public static Class<? extends Number> determineResultType(Class<? extends Number> argument1Type,
                                                              Class<? extends Number> argument2Type,
                                                              boolean isQuotientOperation)

### determineReturnType

    public static Class<? extends Number> determineReturnType(Class<? extends Number> defaultType,
                                                              javax.persistence.criteria.Expression<? extends Number> expression)

  Helper for determining the appropriate operation return type based on one of the operands as an expression.

  Parameters:
    `defaultType` - The default return type to use if we cannot determine the java type of 'expression' operand.
    `expression` - The operand.
  Returns:
    The appropriate return type.

### determineReturnType

    public static Class<? extends Number> determineReturnType(Class<? extends Number> defaultType,
                                                              Number numberLiteral)

  Helper for determining the appropriate operation return type based on one of the operands as a literal.

  Parameters:
    `defaultType` - The default return type to use if we cannot determine the java type of 'numberLiteral' operand.
    `numberLiteral` - The operand.
  Returns:
    The appropriate return type.

### getOperator

    public BinaryArithmeticOperation.Operation getOperator()

### getRightHandOperand

    public javax.persistence.criteria.Expression<? extends N> getRightHandOperand()

  Get the right-hand operand.

  Specified by:
    `getRightHandOperand` in interface `BinaryOperatorExpression<N extends Number>`
  Returns:
    The right-hand operand.

### getLeftHandOperand

    public javax.persistence.criteria.Expression<? extends N> getLeftHandOperand()

  Get the left-hand operand.

  Specified by:
    `getLeftHandOperand` in interface `BinaryOperatorExpression<N extends Number>`
  Returns:
    The left-hand operand.

### registerParameters

    public void registerParameters(ParameterRegistry registry)

  Register any parameters contained within this query component with the given registry.

  Specified by:
    `registerParameters` in interface `ParameterContainer`
  Parameters:
    `registry` - The parameter registry with which to register.

### render

    public String render(CriteriaQueryCompiler.RenderingContext renderingContext)

  Specified by:
    `render` in interface `Renderable`

### renderProjection

    public String renderProjection(CriteriaQueryCompiler.RenderingContext renderingContext)

  Specified by:
    `renderProjection` in interface `Renderable`

Copyright © 2001-2010 Red Hat, Inc. All Rights Reserved.