com.saxonica.bytecode

## Class ArithmeticCompiler

- java.lang.Object
- - com.saxonica.bytecode.ExpressionCompiler
  - - com.saxonica.bytecode.ToItemCompiler
    - - com.saxonica.bytecode.ArithmeticCompiler

-     public class ArithmeticCompiler
      extends ToItemCompiler

  Generate bytecode for a call to the ArithmeticExpression

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static HashMap<Class<? extends Calculator>,CalculatorCompiler>` | `map`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `ArithmeticCompiler()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `compileToItem(CompilerService compiler, Expression expression)` Generate bytecode to evaluate the ArithmeticExpression Precondition: none.
    `void` | `compileToPrimitive(CompilerService compiler, Expression expression, Class requiredClass, OnEmpty onEmpty)` Generate bytecode to evaluate the expression leaving a plain Java value on the stack.
    `static CalculatorCompiler` | `map(Calculator calc)`

    - ### Methods inherited from class com.saxonica.bytecode.ToItemCompiler

      `compileToBoolean, compileToIterator, compileToPush, returnZeroLengthStringIfNull`

    - ### Methods inherited from class com.saxonica.bytecode.ExpressionCompiler

      `allocateStatic, compileItemFromInt, compileItemFromString, compileToLoop, generateMethod, handleEmptyStringResult, throwXPathException, throwXPathException, unboxItem, verify, visitAnnotation, visitLineNumber`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### map

          public static HashMap<Class<? extends Calculator>,CalculatorCompiler> map

  - ### Constructor Detail

    - #### ArithmeticCompiler

          public ArithmeticCompiler()

  - ### Method Detail

    - #### compileToItem

          public void compileToItem(CompilerService compiler,
                           Expression expression)
                             throws CannotCompileException

      Generate bytecode to evaluate the ArithmeticExpression Precondition: none. Postcondition: the stack contains an item representing the result of the expression
      Specified by:
        `compileToItem` in class `ExpressionCompiler`
      Parameters:
        `compiler` - the compiler service
        `expression` - the expression to be compiled
      Throws:
        `CannotCompileException`

    - #### compileToPrimitive

          public void compileToPrimitive(CompilerService compiler,
                                Expression expression,
                                Class requiredClass,
                                OnEmpty onEmpty)
                                  throws CannotCompileException

      Generate bytecode to evaluate the expression leaving a plain Java value on the stack. The static type of the expression must be such that the value is known to be representable by a value of the specified class; the cardinality must be either exactly-one or zero-or-one.
      Overrides:
        `compileToPrimitive` in class `ExpressionCompiler`
      Parameters:
        `compiler` - the compiler service
        `expression` - the expression to be compiled
        `requiredClass` - the class of the Java value that is to be left on the stack if the generated code exits normally. This must be one of Integer.TYPE, Double.TYPE, Float.TYPE, BigDecimal.class, CharSequence.class.
        `onEmpty` - a label to which control will be transferred (with nothing on the stack) if the result of the
      Throws:
        `CannotCompileException`

    - #### map

          public static CalculatorCompiler map(Calculator calc)
                                        throws CannotCompileException

      Throws:
        `CannotCompileException`

Copyright (c) 2004-2013 Saxonica Limited. All rights reserved.