## com.saxonica.codegen
Class PushExpressionCompiler

    java.lang.Object
      com.saxonica.codegen.ExpressionCompiler
          com.saxonica.codegen.PushExpressionCompiler

Direct Known Subclasses:
  BlockCompiler, CommentCompiler, ComputedAttributeCompiler, ComputedElementCompiler, CopyOfCompiler, FixedAttributeCompiler, FixedElementCompiler, ProcessingInstructionCompiler, ValueOfCompiler

    public abstract class PushExpressionCompiler

extends ExpressionCompiler

Superclass for compiling expressions whose natural evaluation mode is "push", that is, expressions that construct new nodes.

Constructor Summary
`PushExpressionCompiler()`

Method Summary
`String` `compileToCharSequence(CompilerService compiler, Expression exp)` Generate Java code to evaluate the expression as a CharSequence
`String` `compileToEffectiveBooleanValue(CompilerService compiler, Expression expr, ReturnAction result)` Generate Java code to evaluate the effective boolean value of the expression
`String` `compileToItem(CompilerService compiler, Expression exp)` Generate Java code to evaluate the expression as an Item
`String` `compileToIterator(CompilerService compiler, Expression exp)` Generate Java code to evaluate the expression as a SequenceIterator
`String` `getStaticBaseURI(Expression exp)` Get the base URI of the instruction being compiled.
`static String` `prepareToPush(int n, CompilerService compiler, String baseURI)`

Methods inherited from class com.saxonica.codegen.ExpressionCompiler
`compileAsLoop, compilePush, compileToValueRepresentation, getConfiguration, makeExpressionCompiler, setConfiguration`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### PushExpressionCompiler

    public PushExpressionCompiler()

Method Detail

### compileToItem

    public String compileToItem(CompilerService compiler,
                                Expression exp)

  Description copied from class: `ExpressionCompiler`
  Generate Java code to evaluate the expression as an Item

  Specified by:
    `compileToItem` in class `ExpressionCompiler`
  Parameters:
    `compiler` - the compiler service
    `exp` - 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).

### compileToIterator

    public String compileToIterator(CompilerService compiler,
                                    Expression exp)

  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
    `exp` - 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

### prepareToPush

    public static String prepareToPush(int n,
                                       CompilerService compiler,
                                       String baseURI)

### compileToEffectiveBooleanValue

    public String compileToEffectiveBooleanValue(CompilerService compiler,
                                                 Expression expr,
                                                 ReturnAction result)

  Description copied from class: `ExpressionCompiler`
  Generate Java code to evaluate the effective boolean value of the expression

  Specified by:
    `compileToEffectiveBooleanValue` in class `ExpressionCompiler`
  Parameters:
    `compiler` - the compiler service
    `expr` - the XPath expression to be compiled
    `result` - 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 exp)

  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
    `exp` - 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

### getStaticBaseURI

    public String getStaticBaseURI(Expression exp)

  Get the base URI of the instruction being compiled. The default implementation returns null, indicating that the base URI is not needed for this kind of instruction

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