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, EvaluableItem, SequenceIterable, InstructionInfoProvider

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, PROCESS_METHOD
 
Constructor Summary
QuerySimpleContentConstructor(Expression select, Expression separator, boolean noNodeIfEmpty)
           
 
Method Summary
 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
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, computeDependencies, computeStaticProperties, display, doPromotion, effectiveBooleanValue, evaluateAsString, explain, findParentOf, getCardinality, getColumnNumber, getContainer, getDependencies, getExecutable, getHostLanguage, getInstructionInfo, getIntrinsicDependencies, getLineNumber, getLocationId, getLocationProvider, getPublicId, getSlotsUsed, getSpecialProperties, getSystemId, hasLoopingSubexpression, implementsStaticTypeCheck, iterate, iterateEvents, markTailFunctionCalls, process, setContainer, setFiltered, setFlattened, setLocationId, staticTypeCheck, suppressValidation, toString
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

QuerySimpleContentConstructor

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

isNoNodeWhenEmpty

public boolean isNoNodeWhenEmpty()

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


Copyright (C) Michael H. Kay. All rights reserved.