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, CallableExpression, InstructionInfo, Locator

public class Collection
extends SystemFunction
implements CallableExpression

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
static 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
Collection()
           
 
Method Summary
 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 expression
 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<Item> 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, 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
 

Field Detail

EMPTY_COLLECTION

public static String EMPTY_COLLECTION
URI representing a collection that is always empty, regardless of any collection URI resolver

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

call

public SequenceIterator call(SequenceIterator[] arguments,
                             XPathContext context)
                      throws XPathException
Description copied from interface: CallableExpression
Evaluate the expression

Specified by:
call in interface CallableExpression
Parameters:
arguments - the values of the arguments, supplied as SequenceIterators
context - 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


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