Package net.sf.saxon.functions
Class Collection
- java.lang.Object
-
- net.sf.saxon.expr.Expression
-
- net.sf.saxon.expr.FunctionCall
-
- net.sf.saxon.functions.SystemFunction
-
- net.sf.saxon.functions.Collection
-
- All Implemented Interfaces:
java.io.Serializable
,javax.xml.transform.SourceLocator
,LocationProvider
,SaxonLocator
,CallableExpression
,InstructionInfo
,org.xml.sax.Locator
public class Collection extends SystemFunction implements CallableExpression
Implement the fn:collection() function. This is responsible for calling the registeredCollectionURIResolver
. For the effect of the default system-supplied CollectionURIResolver, seeStandardCollectionURIResolver
- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.String
EMPTY_COLLECTION
URI representing a collection that is always empty, regardless of any collection URI resolver-
Fields inherited from class net.sf.saxon.functions.SystemFunction
operation
-
Fields inherited from class net.sf.saxon.expr.FunctionCall
argument
-
Fields inherited from class net.sf.saxon.expr.Expression
EFFECTIVE_BOOLEAN_VALUE, EVALUATE_METHOD, EVENT_FEED_METHOD, ITEM_FEED_METHOD, ITERATE_METHOD, locationId, MAX_SEQUENCE_LENGTH, MAX_STRING_LENGTH, PROCESS_METHOD, PUSH_SELECTION, staticProperties, UNBOUNDED_LOWER, UNBOUNDED_UPPER, WATCH_METHOD
-
-
Constructor Summary
Constructors Constructor Description Collection()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description PathMap.PathMapNodeSet
addToPathMap(PathMap pathMap, PathMap.PathMapNodeSet pathMapNodeSet)
Add a representation of this expression to a PathMap.SequenceIterator
call(SequenceIterator[] arguments, XPathContext context)
Evaluate the expressionvoid
checkArguments(ExpressionVisitor visitor)
Method called during static type checkingint
computeSpecialProperties()
Determine the special properties of this expression.static SequenceIterator
getResolverResults(SequenceIterator iter, java.lang.String baseURI, XPathContext context, javax.xml.transform.SourceLocator locator)
Return the results of iterating over the results returned by the CollectionURIResolver.java.lang.String
getStaticBaseURI()
SequenceIterator<Item>
iterate(XPathContext context)
Iterate over the contents of the collectionExpression
preEvaluate(ExpressionVisitor visitor)
preEvaluate: this method suppresses compile-time evaluation by doing nothing-
Methods inherited from class net.sf.saxon.functions.SystemFunction
addContextDocumentArgument, addDocToPathMap, computeCardinality, copy, equals, getDetails, getErrorCodeForTypeErrors, getImplementationMethod, getItemType, getOperation, getRequiredType, makeSystemFunction, optimize, setDetails, useContextItemAsDefault
-
Methods inherited from class net.sf.saxon.expr.FunctionCall
addExternalFunctionCallToPathMap, checkArgumentCount, explain, getArguments, getDisplayName, getExpressionName, getFunctionName, getNumberOfArguments, hashCode, iterateSubExpressions, promote, replaceSubExpression, setArguments, setFunctionName, simplify, simplifyArguments, toString, typeCheck
-
Methods inherited from class net.sf.saxon.expr.Expression
adoptChildExpression, checkForUpdatingSubexpressions, checkPermittedContents, computeDependencies, computeStaticProperties, doPromotion, dynamicError, effectiveBooleanValue, evaluateAsString, evaluateItem, evaluatePendingUpdates, explain, getCardinality, getColumnNumber, getColumnNumber, getConstructType, getContainer, getDependencies, getEvaluationMethod, getExecutable, getHostLanguage, getIntegerBounds, getIntrinsicDependencies, getLineNumber, getLineNumber, getLocationId, getLocationProvider, getObjectName, getProperties, getProperty, getPublicId, getSlotsUsed, getSpecialProperties, getSystemId, getSystemId, hasLoopingSubexpression, hasVariableBinding, implementsStaticTypeCheck, isSubtreeExpression, isUpdatingExpression, isVacuousExpression, iterateEvents, iterateSameFocusSubExpressions, markTailFunctionCalls, process, resetLocalStaticProperties, setContainer, setEvaluationMethod, setFiltered, setFlattened, setLocationId, staticTypeCheck, suppressValidation, typeError
-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface net.sf.saxon.expr.CallableExpression
getArguments
-
-
-
-
Method Detail
-
getStaticBaseURI
public java.lang.String getStaticBaseURI()
-
checkArguments
public void checkArguments(ExpressionVisitor visitor) throws XPathException
Description copied from class:SystemFunction
Method called during static type checking- Overrides:
checkArguments
in classSystemFunction
- Parameters:
visitor
- the expression visitor- Throws:
XPathException
- if the arguments are incorrect
-
computeSpecialProperties
public int computeSpecialProperties()
Description copied from class:SystemFunction
Determine the special properties of this expression. The general rule is that a system function call is non-creative if its return type is atomic, or if all its arguments are non-creative. This is overridden for the generate-id() function, which is considered creative if its operand is creative (because the result depends on the identity of the operand)- Overrides:
computeSpecialProperties
in classSystemFunction
- Returns:
- the special properties, as a bit-significant integer
-
preEvaluate
public Expression preEvaluate(ExpressionVisitor visitor)
preEvaluate: this method suppresses compile-time evaluation by doing nothing- Overrides:
preEvaluate
in classFunctionCall
- Parameters:
visitor
- an expression visitor- Returns:
- the result of the early evaluation, or the original expression, or potentially a simplified expression
-
addToPathMap
public PathMap.PathMapNodeSet addToPathMap(PathMap pathMap, PathMap.PathMapNodeSet pathMapNodeSet)
Add a representation of this expression to a PathMap. The PathMap captures a map of the nodes visited by an expression in a source tree.- Overrides:
addToPathMap
in classExpression
- Parameters:
pathMap
- the PathMap to which the expression should be addedpathMapNodeSet
- the PathMapNodeSet to which the paths embodied in this expression should be added- Returns:
- the pathMapNode representing the focus established by this expression, in the case where this expression is the first operand of a path expression or filter expression
-
iterate
public SequenceIterator<Item> iterate(XPathContext context) throws XPathException
Iterate over the contents of the collection- Overrides:
iterate
in classExpression
- Parameters:
context
- the dynamic context- Returns:
- an iterator, whose items will always be nodes (typically but not necessarily document nodes)
- Throws:
XPathException
-
getResolverResults
public static SequenceIterator getResolverResults(SequenceIterator iter, java.lang.String baseURI, XPathContext context, javax.xml.transform.SourceLocator locator)
Return the results of iterating over the results returned by the CollectionURIResolver.Note, this method is called by generated code
- Parameters:
iter
- iterator over the results of the CollectionURIResolverbaseURI
- the base URIcontext
- the dynamic contextlocator
- location of the instruction- Returns:
- an iterator over the documents in the collection.
-
call
public SequenceIterator call(SequenceIterator[] arguments, XPathContext context) throws XPathException
Description copied from interface:CallableExpression
Evaluate the expression- Specified by:
call
in interfaceCallableExpression
- Parameters:
arguments
- the values of the arguments, supplied as SequenceIteratorscontext
- the dynamic evaluation context- Returns:
- the result of the evaluation, in the form of a SequenceIterator
- Throws:
XPathException
- if a dynamic error occurs during the evaluation of the expression
-
-