Package com.saxonica.ee.bytecode
Class ChooseCompiler
- java.lang.Object
- 
- com.saxonica.ee.bytecode.ExpressionCompiler
- 
- com.saxonica.ee.bytecode.ToIteratorCompiler
- 
- com.saxonica.ee.bytecode.ChooseCompiler
 
 
 
- 
 public class ChooseCompiler extends ToIteratorCompiler Generate code for a conditional expression (if-then-else, xsl:if, xsl:choose, typeswitch...)
- 
- 
Constructor SummaryConstructors Constructor Description ChooseCompiler()
 - 
Method SummaryAll Methods Instance Methods Concrete Methods Modifier and Type Method Description voidcompileToBoolean(CompilerService compiler, Expression expression)Generate bytecode to evaluate the expression as a boolean Precondition: none.voidcompileToItem(CompilerService compiler, Expression expression)Generate bytecode to evaluate the expression as an Item Precondition: none.voidcompileToIterator(CompilerService compiler, Expression expression)Generate bytecode to evaluate the expression as a SequenceIterator Precondition: none.voidcompileToPrimitive(CompilerService compiler, Expression expression, java.lang.Class requiredClass, OnEmpty onEmpty)Generate bytecode to evaluate the expression leaving a plain Java value on the stack.voidcompileToPush(CompilerService compiler, Expression expression)Generate bytecode to evaluate the expression in push mode Precondition: none.- 
Methods inherited from class com.saxonica.ee.bytecode.ExpressionCompilerallocateStatic, compileItemFromInt, generateMethod, handleEmptyStringResult, printStackTop, verify, visitAnnotation, visitLineNumber
 
- 
 
- 
- 
- 
Method Detail- 
compileToIteratorpublic void compileToIterator(CompilerService compiler, Expression expression) throws CannotCompileException Generate bytecode to evaluate the expression as a SequenceIterator Precondition: none. Postcondition: the stack contains a SequenceIterator representing the result of the expression- Specified by:
- compileToIteratorin class- ExpressionCompiler
- Parameters:
- compiler- the compiler service
- expression- the expression to be compiled
- Throws:
- CannotCompileException- if the expression cannot be compiled to bytecode
 
 - 
compileToItempublic void compileToItem(CompilerService compiler, Expression expression) throws CannotCompileException Description copied from class:ExpressionCompilerGenerate 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:
- compileToItemin class- ToIteratorCompiler
- Parameters:
- compiler- the compiler service
- expression- the expression to be compiled
- Throws:
- CannotCompileException- if the expression cannot be compiled to bytecode
 
 - 
compileToBooleanpublic void compileToBoolean(CompilerService compiler, Expression expression) throws CannotCompileException Description copied from class:ExpressionCompilerGenerate bytecode to evaluate the expression as a boolean Precondition: none. Postcondition: at execution time, the stack contains an integer (0=false, 1=true) representing the result of the expression- Overrides:
- compileToBooleanin class- ToIteratorCompiler
- Parameters:
- compiler- the compiler service
- expression- the expression to be compiled
- Throws:
- CannotCompileException- if the expression cannot be compiled to bytecode
 
 - 
compileToPrimitivepublic void compileToPrimitive(CompilerService compiler, Expression expression, java.lang.Class requiredClass, OnEmpty onEmpty) throws CannotCompileException Description copied from class:ExpressionCompilerGenerate bytecode to evaluate the expression leaving a plain Java value on the stack. This method must only be called if the static type of the expressionis 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:
- compileToPrimitivein 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- defines the action to be taken if the expression evaluates to the empty sequence. May be null if the expression is known statically not to evaluate to an empty sequence. If the return class is a primitive type (double, float, etc) this must be an instance of- OnEmpty.UnwindAndJump
- Throws:
- CannotCompileException- if the expression cannot be compiled to bytecode
 
 - 
compileToPushpublic void compileToPush(CompilerService compiler, Expression expression) throws CannotCompileException Description copied from class:ExpressionCompilerGenerate 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:
- compileToPushin class- ToIteratorCompiler
- Parameters:
- compiler- the compiler service
- expression- the expression to be compiled
- Throws:
- CannotCompileException- if the expression cannot be compiled to bytecode
 
 
- 
 
-