com.saxonica.bytecode
Class AtomizerCompiler
java.lang.Object
com.saxonica.bytecode.ExpressionCompiler
com.saxonica.bytecode.ToIteratorCompiler
com.saxonica.bytecode.AtomizerCompiler
public class AtomizerCompiler
- extends ToIteratorCompiler
Generate code for Atomizer
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 |
AtomizerCompiler
public AtomizerCompiler()
compileToItem
public void compileToItem(CompilerService compiler,
Expression expression)
throws CannotCompileException
- Generate bytecode to evaluate the Atomizer as an Item
Precondition: none.
Postcondition: the stack contains an Item representing the result of the expression
- Overrides:
compileToItem
in class ToIteratorCompiler
- Parameters:
compiler
- the compiler serviceexpression
- 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 serviceexpression
- the expression to be compiledrequiredClass
- 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
- Generate bytecode to evaluate the Atomizer as a MappingIterator
(i.e. return new MappingIterator(base, AtomizingFunction.getInstance()))
Precondition: none.
Postcondition: the stack contains a MappingIterator representing the result of the expression
- Specified by:
compileToIterator
in class ExpressionCompiler
- Parameters:
compiler
- the compiler serviceexpression
- the expression to be compiled
- Throws:
CannotCompileException
Copyright (c) 2004-2011 Saxonica Limited. All rights reserved.