net.sf.saxon.functions
Class Collection

java.lang.Object
  extended by net.sf.saxon.expr.Expression
      extended by net.sf.saxon.expr.FunctionCall
          extended by net.sf.saxon.functions.SystemFunction
              extended by net.sf.saxon.functions.Collection
All Implemented Interfaces:
Serializable, SourceLocator, LocationProvider, SaxonLocator, EvaluableItem, SequenceIterable, InstructionInfo, Locator

public class Collection
extends SystemFunction

Implement the fn:collection() function. This is responsible for calling the registered CollectionURIResolver. For the effect of the default system-supplied CollectionURIResolver, see StandardCollectionURIResolver

See Also:
Serialized Form

Field Summary
 
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
EVALUATE_METHOD, EVENT_FEED_METHOD, ITEM_FEED_METHOD, ITERATE_METHOD, locationId, PROCESS_METHOD, PUSH_SELECTION, staticProperties, WATCH_METHOD
 
Constructor Summary
Collection()
           
 
Method Summary
 PathMap.PathMapNodeSet addToPathMap(PathMap pathMap, PathMap.PathMapNodeSet pathMapNodeSet)
          Add a representation of this expression to a PathMap.
 void checkArguments(ExpressionVisitor visitor)
          Method called during static type checking
 int computeSpecialProperties()
          Determine the special properties of this expression.
static SequenceIterator getResolverResults(SequenceIterator iter, String baseURI, XPathContext context, SourceLocator locator)
          Return the results of iterating over the results returned by the CollectionURIResolver.
 String getStaticBaseURI()
           
 SequenceIterator iterate(XPathContext context)
          Iterate over the contents of the collection
 Expression 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, getDetails, getErrorCodeForTypeErrors, getImplementationMethod, getItemType, getRequiredType, makeSystemFunction, optimize, setDetails, useContextItemAsDefault
 
Methods inherited from class net.sf.saxon.expr.FunctionCall
addExternalFunctionCallToPathMap, checkArgumentCount, equals, 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, 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
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Constructor Detail

Collection

public Collection()
Method Detail

getStaticBaseURI

public String getStaticBaseURI()

checkArguments

public void checkArguments(ExpressionVisitor visitor)
                    throws XPathException
Description copied from class: SystemFunction
Method called during static type checking

Overrides:
checkArguments in class SystemFunction
Parameters:
visitor - the expression visitor
Throws:
XPathException

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 class SystemFunction
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 class FunctionCall
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 class Expression
Parameters:
pathMap - the PathMap to which the expression should be added
pathMapNodeSet -
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 iterate(XPathContext context)
                         throws XPathException
Iterate over the contents of the collection

Specified by:
iterate in interface SequenceIterable
Overrides:
iterate in class Expression
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,
                                                  String baseURI,
                                                  XPathContext context,
                                                  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 CollectionURIResolver
baseURI - the base URI
context - the dynamic context
locator - location of the instruction
Returns:
an iterator over the documents in the collection.


Copyright (c) 2004-2010 Saxonica Limited. All rights reserved.