Class Doc

All Implemented Interfaces:
Serializable, SourceLocator, LocationProvider, SaxonLocator, EvaluableItem, SequenceIterable, InstructionInfo, Locator

public class Doc extends SystemFunction
Implement the fn:doc() function - a simplified form of the Document function
See Also:
  • Constructor Details

    • Doc

      public Doc()
  • Method Details

    • setReadOnce

      public void setReadOnce(boolean once)
      Indicate that the document will be read once only (or that it should be treated as if it is read once only. This means (a) the document will not be held in memory after all references to it go out of scope, and (b) if the query or transformation tries to read it again, it will get a new copy, with different node identities, and potentially with different content. It also means that the document is eligible for document projection.
      Parameters:
      once - true if this document is to be treated as being read once only
    • isReadOnce

      public boolean isReadOnce()
      Ask whether this document has been marked as being read once only.
      Returns:
      true if the document has been marked as being read once only
    • 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
    • getStaticBaseURI

      public String getStaticBaseURI()
      Get the static base URI of the expression
      Returns:
      the static base URI
    • preEvaluate

      public Expression preEvaluate(ExpressionVisitor visitor)
      preEvaluate: this method suppresses compile-time evaluation unless a configuration option has been set to allow early evaluation.
      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
    • computeCardinality

      public int computeCardinality()
      Description copied from class: SystemFunction
      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
    • 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
    • copy

      public Expression copy()
      Copy an expression. This makes a deep copy.
      Overrides:
      copy in class SystemFunction
      Returns:
      the copy of the original expression
    • evaluateItem

      public Item evaluateItem(XPathContext context) throws XPathException
      Evaluate the expression
      Specified by:
      evaluateItem in interface EvaluableItem
      Overrides:
      evaluateItem in class Expression
      Parameters:
      context - the dynamic evaluation context
      Returns:
      the result of evaluating the expression (a document node)
      Throws:
      XPathException
    • computeSpecialProperties

      public int computeSpecialProperties()
      Get the static properties of this expression (other than its type). The result is bit-signficant. 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
    • sendDocument

      public void sendDocument(XPathContext context, Receiver out) throws XPathException
      Copy the document identified by this expression to a given Receiver. This method is used only when it is known that the document is being copied, because there is then no problem about node identity.
      Parameters:
      context - the XPath dynamic context
      out - the destination to which the document will be sent
      Throws:
      XPathException