net.sf.saxon.instruct
public class Choose extends Instruction
Constructor Summary | |
---|---|
Choose(Expression[] conditions, Expression[] actions)
Construct an xsl:choose instruction |
Method Summary | |
---|---|
void | checkPermittedContents(SchemaType parentType, StaticContext env, boolean whole)
Check that any elements and attributes constructed or returned by this expression are acceptable
in the content model of a given complex type. |
boolean | createsNewNodes()
Determine whether this instruction creates new nodes.
|
void | display(int level, NamePool pool, PrintStream out)
Diagnostic print of expression structure. |
Item | evaluateItem(XPathContext context)
Evaluate an expression as a single item. |
int | getImplementationMethod()
An implementation of Expression must provide at least one of the methods evaluateItem(), iterate(), or process().
|
int | getInstructionNameCode()
Get the name of this instruction for diagnostic and tracing purposes
We assume that if there was
only one condition then it was an xsl:if; this is not necessarily so, but
it's adequate for tracing purposes. |
ItemType | getItemType(TypeHierarchy th)
Get the item type of the items returned by evaluating this instruction |
SequenceIterator | iterate(XPathContext context)
Return an Iterator to iterate over the values of a sequence. |
Iterator | iterateSubExpressions()
Get all the XPath expressions associated with this instruction
(in XSLT terms, the expression present on attributes of the instruction,
as distinct from the child instructions in a sequence construction) |
boolean | markTailFunctionCalls()
Mark tail calls on used-defined functions. |
Expression | optimize(Optimizer opt, StaticContext env, ItemType contextItemType) |
TailCall | processLeavingTail(XPathContext context)
Process this instruction, that is, choose an xsl:when or xsl:otherwise child
and process it. |
protected void | promoteInst(PromotionOffer offer)
Handle promotion offers, that is, non-local tree rewrites. |
Expression | simplify(StaticContext env)
Simplify an expression. |
Expression | typeCheck(StaticContext env, ItemType contextItemType) |
Parameters: conditions the conditions to be tested, in order actions the actions to be taken when the corresponding condition is true
Parameters: level indentation level for this expression out
Parameters: context The context in which the expression is to be evaluated
Returns: the node or atomic value that results from evaluating the expression; or null to indicate that the result is an empty sequence
Throws: XPathException if any dynamic error occurs evaluating the expression
Parameters: th
Returns: the static item type of the instruction
Parameters: context supplies the context for evaluation
Returns: a SequenceIterator that can be used to iterate over the result of the expression
Throws: XPathException if any dynamic error occurs evaluating the expression
Parameters: context the dynamic context of this transformation
Returns: a TailCall, if the chosen branch ends with a call of call-template or apply-templates. It is the caller's responsibility to execute such a TailCall. If there is no TailCall, returns null.
Throws: XPathException if any non-recoverable dynamic error occurs
Parameters: offer The type of rewrite being offered
Throws: XPathException
Returns: the simplified expression
Throws: XPathException if an error is discovered during expression rewriting