com.saxonica.codegen
Class LazyExpressionCompiler

java.lang.Object
  extended by com.saxonica.codegen.ExpressionCompiler
      extended by com.saxonica.codegen.SequenceExpressionCompiler
          extended by com.saxonica.codegen.LazyExpressionCompiler

public class LazyExpressionCompiler
extends SequenceExpressionCompiler

Compile code for a LazyExpression - an expression which is always evaluated lazily


Constructor Summary
LazyExpressionCompiler()
           
 
Method Summary
 void compileAsLoop(CompilerService compiler, Expression expr, LoopAction action)
          Compile an expression in the form of a loop.
 void compilePush(CompilerService compiler, Expression expr)
          Generate Java code to execute the expression in push mode, that is, code to write events to the current output Receiver
 String compileToCharSequence(CompilerService compiler, Expression expr)
          Generate Java code to evaluate the expression as a CharSequence
 String compileToEffectiveBooleanValue(CompilerService compiler, Expression expr, ReturnAction options)
          Generate Java code to evaluate the effective boolean value of the expression
static String compileToEvaluableItem(CompilerService compiler, LazyExpression exp)
           
 String compileToItem(CompilerService compiler, Expression expr)
          Generate Java code to evaluate the expression as an Item
 String compileToIterator(CompilerService compiler, Expression expr)
          Generate Java code to evaluate the expression as a SequenceIterator
 
Methods inherited from class com.saxonica.codegen.ExpressionCompiler
compileToValueRepresentation
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

LazyExpressionCompiler

public LazyExpressionCompiler()
Method Detail

compileToIterator

public String compileToIterator(CompilerService compiler,
                                Expression expr)
Description copied from class: ExpressionCompiler
Generate Java code to evaluate the expression as a SequenceIterator

Specified by:
compileToIterator in class ExpressionCompiler
Parameters:
compiler - the compiler service
expr - the XPath expression to be compiled
Returns:
a simple Java expression (usually the name of a variable that has been declared) which will be of class SequenceIterator, and which at run-time will hold an iterator over the the value of the XPath expression

compilePush

public void compilePush(CompilerService compiler,
                        Expression expr)
Description copied from class: ExpressionCompiler
Generate Java code to execute the expression in push mode, that is, code to write events to the current output Receiver

Overrides:
compilePush in class SequenceExpressionCompiler
Parameters:
compiler - the compiler service
expr - the expression to be compiled

compileToItem

public String compileToItem(CompilerService compiler,
                            Expression expr)
Description copied from class: ExpressionCompiler
Generate Java code to evaluate the expression as an Item

Overrides:
compileToItem in class SequenceExpressionCompiler
Parameters:
compiler - the compiler service
expr - the expression to be compiled
Returns:
a simple Java expression (usually the name of a variable that has been declared) which will be of class Item, and which will hold the value of the expression at run-time (or hold null, representing an empty sequence).

compileToEffectiveBooleanValue

public String compileToEffectiveBooleanValue(CompilerService compiler,
                                             Expression expr,
                                             ReturnAction options)
Description copied from class: ExpressionCompiler
Generate Java code to evaluate the effective boolean value of the expression

Overrides:
compileToEffectiveBooleanValue in class SequenceExpressionCompiler
Parameters:
compiler - the compiler service
expr - the XPath expression to be compiled
options - indicates how the boolean result is to be returned
Returns:
the result depends on the supplied value of the options argument. If options is a JavaDeclaration, the code must declare a Java variable and return the name of this variable. If options is a JavaAssignment, the code must assign the value to an existing Java variable. If options is a Return, the code must generate a return statement that returns the value of the boolean (in which case the result of this method is null).

compileToCharSequence

public String compileToCharSequence(CompilerService compiler,
                                    Expression expr)
Description copied from class: ExpressionCompiler
Generate Java code to evaluate the expression as a CharSequence

Overrides:
compileToCharSequence in class ExpressionCompiler
Parameters:
compiler - the compiler service
expr - the XPath expression to be compiled
Returns:
a simple Java expression (usually the name of a variable that has been declared, or a string literal) which will be of class CharSequence, and which will hold the string value of the XPath expression at run-time

compileAsLoop

public void compileAsLoop(CompilerService compiler,
                          Expression expr,
                          LoopAction action)
Compile an expression in the form of a loop. Default implementation.

Overrides:
compileAsLoop in class ExpressionCompiler
Parameters:
compiler - the CompilerService
expr - the expression to be compiled
action - the action to be taken to process each item in the sequence returned by the expression

compileToEvaluableItem

public static String compileToEvaluableItem(CompilerService compiler,
                                            LazyExpression exp)


Copyright (c) Saxonica Limited. All rights reserved.