com.saxonica.bytecode
Class AtomicSequenceConverterCompiler

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

public class AtomicSequenceConverterCompiler
extends ToIteratorCompiler

Generate bytecode for an AtomicSequenceConverter expression, performing run-time type checking


Constructor Summary
AtomicSequenceConverterCompiler()
           
 
Method Summary
 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 compileToPrimitive(CompilerService compiler, Expression expression, Class requiredClass, OnEmpty onEmpty)
          Generate bytecode to evaluate the expression leaving a plain Java value on the stack.
 
Methods inherited from class com.saxonica.bytecode.ToIteratorCompiler
compileToBoolean, compileToPush
 
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
 

Constructor Detail

AtomicSequenceConverterCompiler

public AtomicSequenceConverterCompiler()
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

compileToPrimitive

public void compileToPrimitive(CompilerService compiler,
                               Expression expression,
                               Class requiredClass,
                               OnEmpty onEmpty)
                        throws CannotCompileException
Description copied from class: ExpressionCompiler
Generate 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:
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 - 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

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


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