Package com.saxonica.ee.bytecode
Class FixedAttributeCompiler
- java.lang.Object
-
- com.saxonica.ee.bytecode.ExpressionCompiler
-
- com.saxonica.ee.bytecode.ToIteratorCompiler
-
- com.saxonica.ee.bytecode.ToPushCompiler
-
- com.saxonica.ee.bytecode.FixedAttributeCompiler
-
public class FixedAttributeCompiler extends ToPushCompiler
Generate bytecode for a fixed attribute constructor
-
-
Constructor Summary
Constructors Constructor Description FixedAttributeCompiler()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description 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, NodeName nodeName, int nodeNameVar)
Generate code to validate the contents of the attribute against schema definitions.-
Methods inherited from class com.saxonica.ee.bytecode.ToPushCompiler
compilePushToSequenceCollector, compileToIterator
-
Methods inherited from class com.saxonica.ee.bytecode.ToIteratorCompiler
compileToBoolean
-
Methods inherited from class com.saxonica.ee.bytecode.ExpressionCompiler
allocateStatic, compileItemFromInt, compileToPrimitive, generateMethod, handleEmptyStringResult, printStackTop, verify, visitAnnotation, visitLineNumber
-
-
-
-
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 classToIteratorCompiler
- Parameters:
compiler
- the compiler serviceexpression
- the expression to be compiled- Throws:
CannotCompileException
- if the expression cannot be compiled to bytecode
-
generateAttributeValidationPushCode
protected static void generateAttributeValidationPushCode(CompilerService compiler, ValidatingInstruction instr, NodeName nodeName, int nodeNameVar)
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 serviceinstr
- the instruction (fixed or computed attribute)nodeName
- the (fixed) nodeName of the attribute, or null if the name is computednodeNameVar
- the slot number of the variable holding the computed node name, 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 classToPushCompiler
- Parameters:
compiler
- the compiler serviceexpression
- the expression to be compiled- Throws:
CannotCompileException
- if the expression cannot be compiled to bytecode
-
-