net.sf.saxon.functions
Class Subsequence
java.lang.Object
net.sf.saxon.expr.Expression
net.sf.saxon.expr.FunctionCall
net.sf.saxon.functions.SystemFunction
net.sf.saxon.functions.Subsequence
- All Implemented Interfaces:
- Serializable, SourceLocator, LocationProvider, SaxonLocator, EvaluableItem, SequenceIterable, InstructionInfo, Locator
public class Subsequence
- extends SystemFunction
Implements the XPath 2.0 subsequence() function
- See Also:
- Serialized Form
Methods inherited from class net.sf.saxon.functions.SystemFunction |
addContextDocumentArgument, addDocToPathMap, checkArguments, copy, getDetails, getErrorCodeForTypeErrors, getImplementationMethod, getRequiredType, makeSystemFunction, setDetails, useContextItemAsDefault |
Methods inherited from class net.sf.saxon.expr.FunctionCall |
addExternalFunctionCallToPathMap, checkArgumentCount, equals, explain, getArguments, getDisplayName, getExpressionName, getFunctionName, getNumberOfArguments, hashCode, iterateSubExpressions, preEvaluate, promote, replaceSubExpression, setArguments, setFunctionName, simplify, simplifyArguments, toString, typeCheck |
Methods inherited from class net.sf.saxon.expr.Expression |
addToPathMap, adoptChildExpression, checkForUpdatingSubexpressions, checkPermittedContents, computeDependencies, computeStaticProperties, doPromotion, dynamicError, effectiveBooleanValue, evaluateAsString, evaluateItem, evaluatePendingUpdates, explain, getCardinality, getColumnNumber, getColumnNumber, getConstructType, getContainer, getDependencies, getEvaluationMethod, getExecutable, getHostLanguage, getIntrinsicDependencies, getLineNumber, getLineNumber, getLocationId, getLocationProvider, getObjectName, getProperties, getProperty, getPublicId, getSlotsUsed, getSpecialProperties, getSystemId, getSystemId, hasLoopingSubexpression, implementsStaticTypeCheck, isSubtreeExpression, isUpdatingExpression, isVacuousExpression, iterateEvents, iterateSameFocusSubExpressions, markTailFunctionCalls, process, resetLocalStaticProperties, setContainer, setEvaluationMethod, setFiltered, setFlattened, setLocationId, staticTypeCheck, suppressValidation, typeError |
Subsequence
public Subsequence()
getItemType
public ItemType getItemType(TypeHierarchy th)
- Determine the data type of the items in the sequence
- Overrides:
getItemType
in class SystemFunction
- Parameters:
th
- the type hierarchy cache
- Returns:
- the type of the argument
computeSpecialProperties
public int computeSpecialProperties()
- Get the static properties of this expression (other than its type). The result is
bit-significant. These properties are used for optimizations. In general, if
property bit is set, it is true, but if it is unset, the value is unknown.
- Overrides:
computeSpecialProperties
in class SystemFunction
- Returns:
- the special properties, as a bit-significant integer
computeCardinality
public int computeCardinality()
- Determine the cardinality of the function.
- Overrides:
computeCardinality
in class SystemFunction
- Returns:
- the computed cardinality, as one of the values
StaticProperty.ALLOWS_ZERO_OR_ONE
,
StaticProperty.EXACTLY_ONE
, StaticProperty.ALLOWS_ONE_OR_MORE
,
StaticProperty.ALLOWS_ZERO_OR_MORE
optimize
public Expression optimize(ExpressionVisitor visitor,
ItemType contextItemType)
throws XPathException
- Perform optimisation of an expression and its subexpressions.
This method is called after all references to functions and variables have been resolved
to the declaration of the function or variable, and after all type checking has been done.
- Overrides:
optimize
in class SystemFunction
- Parameters:
visitor
- an expression visitorcontextItemType
- the static type of "." at the point where this expression is invoked.
The parameter is set to null if it is known statically that the context item will be undefined.
If the type of the context item is not known statically, the argument is set to
Type.ITEM_TYPE
- Returns:
- the original expression, rewritten if appropriate to optimize execution
- Throws:
XPathException
- if an error is discovered during this phase
(typically a type error)
iterate
public SequenceIterator iterate(XPathContext context)
throws XPathException
- Evaluate the function to return an iteration of selected nodes.
- Specified by:
iterate
in interface SequenceIterable
- Overrides:
iterate
in class Expression
- 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
Copyright (c) 2004-2010 Saxonica Limited. All rights reserved.