com.saxonica.bytecode
Class SwitchExpressionCompiler

java.lang.Object
  extended by com.saxonica.bytecode.ExpressionCompiler
      extended by com.saxonica.bytecode.ToIteratorCompiler
          extended by com.saxonica.bytecode.SwitchExpressionCompiler

public class SwitchExpressionCompiler
extends ToIteratorCompiler

compiler for switch expression in XQuery 3.0, whether explicitly written as such, or the result of optimizing an xsl:choose or a sequence of if/then/elseif/then expressions


Constructor Summary
SwitchExpressionCompiler()
           
 
Method Summary
 Map<Object,Expression> compileMap(CompilerService compiler, Map<Object,Expression> in, int evaluationMode)
          Internal method to generate a map containing the compiled "case" expressions
 void compileToItem(CompilerService compiler, Expression expression)
          Generate bytecode to evaluate the expression as an Item Precondition: none.
 void compileToIterator(CompilerService compiler, Expression expression)
          Generate bytecode to evaluate the expression as a SequenceIterator Precondition: none.
 void compileToPush(CompilerService compiler, Expression expression)
          Generate bytecode to evaluate the expression in push mode Precondition: none.
 
Methods inherited from class com.saxonica.bytecode.ToIteratorCompiler
compileToBoolean
 
Methods inherited from class com.saxonica.bytecode.ExpressionCompiler
allocateStatic, compileItemFromInt, compileItemFromString, compileToLoop, compileToPrimitive, 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
 

Constructor Detail

SwitchExpressionCompiler

public SwitchExpressionCompiler()
Method Detail

compileToItem

public void compileToItem(CompilerService compiler,
                          Expression expression)
                   throws CannotCompileException
Description copied from class: ExpressionCompiler
Generate bytecode to evaluate the expression as an Item Precondition: none. Postcondition: at execution time, the stack contains either an item (the result of the expression), or null (representing an empty sequence).

Overrides:
compileToItem in class ToIteratorCompiler
Parameters:
compiler - the compiler service
expression - the expression to be compiled
Throws:
CannotCompileException

compileToPush

public void compileToPush(CompilerService compiler,
                          Expression expression)
                   throws CannotCompileException
Description copied from class: ExpressionCompiler
Generate bytecode to evaluate the expression in push mode Precondition: none. Postcondition: at execution time, the stack is unchanged, and the value of the expression has been written to the current receiver

Overrides:
compileToPush in class ToIteratorCompiler
Parameters:
compiler - the compiler service
expression - the expression to be compiled
Throws:
CannotCompileException

compileToIterator

public void compileToIterator(CompilerService compiler,
                              Expression expression)
                       throws CannotCompileException
Description copied from class: ExpressionCompiler
Generate bytecode to evaluate the expression as a SequenceIterator Precondition: none. Postcondition: at execution time, the stack contains a SequenceIterator representing the result of the expression

Specified by:
compileToIterator in class ExpressionCompiler
Parameters:
compiler - the compiler service
expression - the expression to be compiled
Throws:
CannotCompileException

compileMap

public Map<Object,Expression> compileMap(CompilerService compiler,
                                         Map<Object,Expression> in,
                                         int evaluationMode)
                                  throws CannotCompileException
Internal method to generate a map containing the compiled "case" expressions

Throws:
CannotCompileException


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