Package com.saxonica.ee.bytecode
Class NamespaceConstructorCompiler
- java.lang.Object
-
- com.saxonica.ee.bytecode.ExpressionCompiler
-
- com.saxonica.ee.bytecode.ToIteratorCompiler
-
- com.saxonica.ee.bytecode.ToPushCompiler
-
- com.saxonica.ee.bytecode.SimpleNodeConstructorCompiler
-
- com.saxonica.ee.bytecode.NamespaceConstructorCompiler
-
public class NamespaceConstructorCompiler extends SimpleNodeConstructorCompiler
Generate bytecode for the xsl:namespace Instruction
-
-
Constructor Summary
Constructors Constructor Description NamespaceConstructorCompiler()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
compileNodeName(CompilerService compiler, Expression expression)
Compile code to generate the node name (if any) and leave it on the top of the stack.protected boolean
isNamedNodeKind()
Ask whether this instruction generates a kind of node that is namedprotected void
pushNode(CompilerService compiler, Expression expression)
Generate code to write the node to the current receiver.-
Methods inherited from class com.saxonica.ee.bytecode.SimpleNodeConstructorCompiler
checkContent, compileToItem, compileToPush, isNoNodeIfEmpty
-
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
-
isNamedNodeKind
protected boolean isNamedNodeKind()
Ask whether this instruction generates a kind of node that is named- Overrides:
isNamedNodeKind
in classSimpleNodeConstructorCompiler
- Returns:
- true if the instruction generates a kind of node that is named
-
compileNodeName
protected void compileNodeName(CompilerService compiler, Expression expression) throws CannotCompileException
Compile code to generate the node name (if any) and leave it on the top of the stack. For node kinds that are always unnamed (such as comments), the stack is not changed. For node kinds that may be named or unnamed (namespace nodes), an entry is always added to the stack, which will be "" if the particular node has no name.- Overrides:
compileNodeName
in classSimpleNodeConstructorCompiler
- Parameters:
compiler
- the compiler serviceexpression
- the expression to be compiled- Throws:
CannotCompileException
- if the expression cannot be compiled to bytecode
-
pushNode
protected void pushNode(CompilerService compiler, Expression expression)
Generate code to write the node to the current receiver. On entry the stack holds the current receiver, the node name (for named node kinds only) and the content (for all nodes)- Specified by:
pushNode
in classSimpleNodeConstructorCompiler
- Parameters:
compiler
-expression
-
-
-