Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## com.saxonica.bytecode
Class ElementCreatorCompiler

    java.lang.Object
      com.saxonica.bytecode.ExpressionCompiler
          com.saxonica.bytecode.ToIteratorCompiler
              com.saxonica.bytecode.ToPushCompiler
                  com.saxonica.bytecode.ElementCreatorCompiler

Direct Known Subclasses:
  ComputedElementCompiler, FixedElementCompiler

    public abstract class ElementCreatorCompiler

extends ToPushCompiler

Generate bytecode. An instruction that creates an element node. There are two subtypes, FixedElement for use where the name is known statically, and Element where it is computed dynamically.

Constructor Summary
`ElementCreatorCompiler()`

Method Summary
`protected static void` | `addTypeStripper(CompilerService compiler)` Add a filter to the output pipeline that removes type annotations.
`void` | `compileToPush(CompilerService compiler, Expression expression)` Generate bytecode to evaluate the expression in push mode Precondition: none.
`abstract void` | `identifyExpression(CompilerService compiler, Expression expression, String evalMode)`
`protected void` | `outputNamespaceNodes(CompilerService compiler, Expression expression)` Callback for subclasses to implement: generate code to output namespace nodes
`protected abstract void` | `pushNodeName(CompilerService compiler, Expression expression)` Callback from the superclass ElementCreatorCompiler to get the nameCode.

Methods inherited from class com.saxonica.bytecode.ToPushCompiler
`compileToItem, compileToIterator`

Methods inherited from class com.saxonica.bytecode.ToIteratorCompiler
`compileToBoolean`

Methods inherited from class com.saxonica.bytecode.ExpressionCompiler
`allocateStatic, compileItemFromInt, compileItemFromString, compileToLoop, compileToPrimitive, 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

### ElementCreatorCompiler

    public ElementCreatorCompiler()

Method Detail

### 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

  Overrides:
    `compileToPush` in class `ToIteratorCompiler`
  Parameters:
    `compiler` - the compiler service
    `expression` - the expression to be compiled
  Throws:
    `CannotCompileException`

### outputNamespaceNodes

    protected void outputNamespaceNodes(CompilerService compiler,
                                        Expression expression)

  Callback for subclasses to implement: generate code to output namespace nodes

  Parameters:
    `compiler` -
    `expression` -

### pushNodeName

    protected abstract void pushNodeName(CompilerService compiler,
                                         Expression expression)
                                  throws CannotCompileException

  Callback from the superclass ElementCreatorCompiler to get the nameCode. Leaves the name code for the element name on the stack for the element name

  Parameters:
    `compiler` -
    `expression` -
  Throws:
    `CannotCompileException`

### addTypeStripper

    protected static void addTypeStripper(CompilerService compiler)

  Add a filter to the output pipeline that removes type annotations. This method adds a new entry to the receiver stack, whether it creates a new filter or not.

  Parameters:
    `compiler` - the compiler service

### identifyExpression

    public abstract void identifyExpression(CompilerService compiler,
                                            Expression expression,
                                            String evalMode)

Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

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