net.sf.saxon.instruct

Class QuerySimpleContentConstructor

Implemented Interfaces:
EvaluableItem, InstructionInfoProvider, SequenceIterable, Serializable, SourceLocator

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

Fields inherited from class net.sf.saxon.expr.Expression

EVALUATE_METHOD, ITERATE_METHOD, PROCESS_METHOD, locationId, staticProperties

Constructor Summary

QuerySimpleContentConstructor(Expression select, Expression separator, boolean noNodeIfEmpty)

Method Summary

protected int
computeCardinality()
Compute the cardinality of the result of the expression.
Expression
copy()
Copy an expression.
Item
evaluateItem(XPathContext context)
Evaluate an expression as a single item.
CharSequence
expandChildren(XPathContext context)
Expand the stylesheet elements subordinate to this one, returning the result as a string.
boolean
isNoNodeWhenEmpty()

Methods inherited from class net.sf.saxon.instruct.SimpleContentConstructor

computeCardinality, copy, evaluateItem, explain, getImplementationMethod, getItemType, getSelectExpression, getSeparatorExpression, isAtomic, isSingleton, iterateSubExpressions, optimize, promote, replaceSubExpression, simplify, typeCheck

Methods inherited from class net.sf.saxon.expr.Expression

addToPathMap, adoptChildExpression, checkPermittedContents, computeCardinality, computeDependencies, computeSpecialProperties, computeStaticProperties, copy, display, doPromotion, dynamicError, effectiveBooleanValue, evaluateAsString, evaluateItem, explain, explain, findParentOf, getCardinality, getColumnNumber, getConstructType, getContainer, getDependencies, getExecutable, getHostLanguage, getImplementationMethod, getInstructionInfo, getIntrinsicDependencies, getItemType, getLineNumber, getLocationId, getLocationProvider, getPublicId, getSlotsUsed, getSpecialProperties, getSystemId, hasLoopingSubexpression, implementsStaticTypeCheck, iterate, iterateEvents, iterateSubExpressions, markTailFunctionCalls, optimize, process, promote, replaceSubExpression, resetLocalStaticProperties, setContainer, setFiltered, setFlattened, setLocationId, simplify, staticTypeCheck, suppressValidation, toString, typeCheck, typeError

Constructor Details

QuerySimpleContentConstructor

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

Method Details

computeCardinality

protected int computeCardinality()
Compute the cardinality of the result of the expression.
Overrides:
computeCardinality in interface SimpleContentConstructor
Returns:
the cardinality, @link {StaticProperty.EXACTLY_ONE}

copy

public Expression copy()
Copy an expression. This makes a deep copy.
Overrides:
copy in interface SimpleContentConstructor
Returns:
the copy of the original expression

evaluateItem

public Item evaluateItem(XPathContext context)
            throws XPathException
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.
Specified by:
evaluateItem in interface EvaluableItem
Overrides:
evaluateItem in interface SimpleContentConstructor
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

expandChildren

public CharSequence expandChildren(XPathContext context)
            throws XPathException
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()