net.sf.saxon.instruct

Class QuerySimpleContentConstructor

public class QuerySimpleContentConstructor extends SimpleContentConstructor

This class implements the rules for an XQuery simple content constructor, which are used in constructing the string value of an attribute node, text node, comment node, etc, from the value of the select expression or the contained sequence constructor. These differ slightly from the XSLT rules implemented in the superclass - specifically, the sequence is simply atomized, whereas XSLT takes special steps to concatenate adjacent text nodes before inserting separators.
Field Summary
booleannoNodeIfEmpty
Constructor Summary
QuerySimpleContentConstructor(Expression select, Expression separator, boolean noNodeIfEmpty)
Method Summary
protected intcomputeCardinality()
Compute the cardinality of the result of the expression.
Expressioncopy()
Copy an expression.
ItemevaluateItem(XPathContext context)
Evaluate an expression as a single item.
CharSequenceexpandChildren(XPathContext context)
Expand the stylesheet elements subordinate to this one, returning the result as a string.
booleanisNoNodeWhenEmpty()
voidprocess(XPathContext context, int locationId, int options)
Process the instruction, without returning any tail calls

Field Detail

noNodeIfEmpty

boolean noNodeIfEmpty

Constructor Detail

QuerySimpleContentConstructor

public QuerySimpleContentConstructor(Expression select, Expression separator, boolean noNodeIfEmpty)

Method Detail

computeCardinality

protected int computeCardinality()
Compute the cardinality of the result of the expression.

Returns: the cardinality, @link {StaticProperty.EXACTLY_ONE}

copy

public Expression copy()
Copy an expression. This makes a deep copy.

Returns: the copy of the original expression

evaluateItem

public Item evaluateItem(XPathContext context)
Evaluate an expression as a single item. This always returns either a single Item or null (denoting the empty sequence). No conversion is done. This method should not be used unless the static type of the expression is a subtype of "item" or "item?": that is, it should not be called if the expression may return a sequence. There is no guarantee that this condition will be detected.

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: net.sf.saxon.trans.XPathException if any dynamic error occurs evaluating the expression

expandChildren

public CharSequence expandChildren(XPathContext context)
Expand the stylesheet elements subordinate to this one, returning the result as a string. The expansion must not generate any element or attribute nodes.

Parameters: context The dynamic context for the transformation

isNoNodeWhenEmpty

public boolean isNoNodeWhenEmpty()

process

public void process(XPathContext context, int locationId, int options)
Process the instruction, without returning any tail calls

Parameters: context The dynamic context, giving access to the current node, the current variables, etc.