com.saxonica.bytecode

## Class LiteralCompiler

- java.lang.Object
- - com.saxonica.bytecode.ExpressionCompiler
  - - com.saxonica.bytecode.LiteralCompiler

-     public class LiteralCompiler
      extends ExpressionCompiler

  Generate byte code for a literal expression in the expression tree

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `LiteralCompiler()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `compileToBoolean(CompilerService compiler, Expression expression)` Generate bytecode to evaluate the expression as a boolean Precondition: none.
    `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.
    `void` | `compileToPush(CompilerService compiler, Expression expression)` Generate bytecode to evaluate the expression in push mode Precondition: none.

    - ### Methods inherited from class com.saxonica.bytecode.ExpressionCompiler

      `allocateStatic, compileItemFromInt, compileItemFromString, compileToLoop, generateMethod, handleEmptyStringResult, 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

    - #### LiteralCompiler

          public LiteralCompiler()

  - ### 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).
      Specified by:
        `compileToItem` in class `ExpressionCompiler`
      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

      Generate bytecode to evaluate the expression leaving a plain Java value on the stack. The static type of the expression must be 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` - action to be performed if the value of the expression is an empty sequence
      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`

    - #### compileToBoolean

          public void compileToBoolean(CompilerService compiler,
                              Expression expression)
                                throws CannotCompileException

      Description copied from class: `ExpressionCompiler`
      Generate 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
      Specified by:
        `compileToBoolean` in class `ExpressionCompiler`
      Parameters:
        `compiler` - the compiler service
        `expression` - the expression to be compiled
      Throws:
        `CannotCompileException`

    - #### compileToPush

          public void compileToPush(CompilerService compiler,
                           Expression expression)
                             throws CannotCompileException

      Description copied from class: `ExpressionCompiler`
      Generate 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
      Specified by:
        `compileToPush` in class `ExpressionCompiler`
      Parameters:
        `compiler` - the compiler service
        `expression` - the expression to be compiled
      Throws:
        `CannotCompileException`

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