com.saxonica.bytecode
Class FixedAttributeCompiler

java.lang.Object
  extended by com.saxonica.bytecode.ExpressionCompiler
      extended by com.saxonica.bytecode.ToIteratorCompiler
          extended by com.saxonica.bytecode.ToPushCompiler
              extended by com.saxonica.bytecode.FixedAttributeCompiler

public class FixedAttributeCompiler
extends ToPushCompiler

Generate bytecode for a fixed attribute constructor


Constructor Summary
FixedAttributeCompiler()
           
 
Method Summary
 void compileToItem(CompilerService compiler, Expression expression)
          Generate bytecode to evaluate the expression as an Item Precondition: none.
 void compileToPush(CompilerService compiler, Expression expression)
          Generate bytecode to evaluate the expression in push mode Precondition: none.
protected static void generateAttributeValidationPushCode(CompilerService compiler, ValidatingInstruction instr, int nameCode, int nameCodeVar)
          Generate code to validate the contents of the attribute against schema definitions.
 
Methods inherited from class com.saxonica.bytecode.ToPushCompiler
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

FixedAttributeCompiler

public FixedAttributeCompiler()
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

generateAttributeValidationPushCode

protected static void generateAttributeValidationPushCode(CompilerService compiler,
                                                          ValidatingInstruction instr,
                                                          int nameCode,
                                                          int nameCodeVar)
Generate code to validate the contents of the attribute against schema definitions. Both on entry and exit, the bytecode stack holds: SequenceReceiver(out), NodeName(nodeName) int(annotation) CharSequence(value) As well as validating the value, the method may modify the type annotation that is held on the stack.

Parameters:
compiler - the compiler service
instr - the instruction (fixed or computed attribute)
nameCode - the (fixed) namecode of the attribute, or -1 if the name is computed
nameCodeVar - the slot number of the variable holding the computed namecode, or -1 if the name is fixed

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).

Overrides:
compileToItem in class ToPushCompiler
Parameters:
compiler - the compiler service
expression - the expression to be compiled
Throws:
CannotCompileException


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