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 voidcompileToItem(CompilerService compiler, Expression expression)Generate bytecode to evaluate the expression as an Item Precondition: none.voidcompileToPush(CompilerService compiler, Expression expression)Generate bytecode to evaluate the expression in push mode Precondition: none.protected static voidgenerateAttributeValidationPushCode(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:ExpressionCompilerGenerate 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:
compileToPushin 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:ExpressionCompilerGenerate 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:
compileToItemin classToPushCompiler- Parameters:
compiler- the compiler serviceexpression- the expression to be compiled- Throws:
CannotCompileException- if the expression cannot be compiled to bytecode
-
-