Class 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:
  • Field Details

    • EMPTY_COLLECTION

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

    • Collection

      public Collection()
  • Method Details

    • 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