com.saxonica.bytecode
Class ArithmeticCompiler

java.lang.Object
  extended by com.saxonica.bytecode.ExpressionCompiler
      extended by com.saxonica.bytecode.ToItemCompiler
          extended by com.saxonica.bytecode.ArithmeticCompiler

public class ArithmeticCompiler
extends ToItemCompiler

Generate bytecode for a call to the ArithmeticExpression


Field Summary
static HashMap<Class<? extends Calculator>,CalculatorCompiler> map
           
 
Constructor Summary
ArithmeticCompiler()
           
 
Method Summary
 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, getConfiguration, handleEmptyStringResult, setConfiguration, 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-2011 Saxonica Limited. All rights reserved.