net.sf.saxon.instruct
Class QuerySimpleContentConstructor

java.lang.Object
  extended by net.sf.saxon.expr.Expression
      extended by net.sf.saxon.instruct.SimpleContentConstructor
          extended by net.sf.saxon.instruct.QuerySimpleContentConstructor
All Implemented Interfaces:
Serializable, SourceLocator, LocationProvider, SaxonLocator, EvaluableItem, SequenceIterable, DivisibleInstruction, InstructionInfo, Locator

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.

See Also:
Serialized Form

Field Summary
 
Fields inherited from class net.sf.saxon.expr.Expression
EVALUATE_METHOD, ITERATE_METHOD, locationId, PROCESS_METHOD, 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()
           
 void process(XPathContext context, int locationId, int options)
          Process the instruction, without returning any tail calls
 
Methods inherited from class net.sf.saxon.instruct.SimpleContentConstructor
explain, getImplementationMethod, getItemType, getSelectExpression, getSeparatorExpression, isAtomic, isSingleton, iterateSubExpressions, optimize, processLeft, processRight, promote, replaceSubExpression, simplify, typeCheck
 
Methods inherited from class net.sf.saxon.expr.Expression
addToPathMap, adoptChildExpression, checkForUpdatingSubexpressions, checkPermittedContents, computeDependencies, computeSpecialProperties, computeStaticProperties, doPromotion, dynamicError, effectiveBooleanValue, evaluateAsString, evaluatePendingUpdates, explain, getCardinality, getColumnNumber, getColumnNumber, getConstructType, getContainer, getDependencies, getExecutable, getHostLanguage, getIntrinsicDependencies, getLineNumber, getLineNumber, getLocationId, getLocationProvider, getObjectName, getProperties, getProperty, getPublicId, getSlotsUsed, getSpecialProperties, getSystemId, getSystemId, hasLoopingSubexpression, implementsStaticTypeCheck, isSubtreeExpression, isUpdatingExpression, isVacuousExpression, iterate, iterateEvents, iterateSameFocusSubExpressions, markTailFunctionCalls, process, resetLocalStaticProperties, setContainer, setFiltered, setFlattened, setLocationId, staticTypeCheck, suppressValidation, toString, typeError
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

QuerySimpleContentConstructor

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

isNoNodeWhenEmpty

public boolean isNoNodeWhenEmpty()

computeCardinality

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

Overrides:
computeCardinality in class SimpleContentConstructor
Returns:
the cardinality, @link {StaticProperty.EXACTLY_ONE}

copy

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

Overrides:
copy in class SimpleContentConstructor
Returns:
the copy of the original 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
Throws:
XPathException

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 class 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

process

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

Overrides:
process in class SimpleContentConstructor
Parameters:
context - The dynamic context, giving access to the current node, the current variables, etc.
Throws:
XPathException


Copyright (c) Saxonica Limited. All rights reserved.