## net.sf.saxon.expr
Class RootExpression

    java.lang.Object
      net.sf.saxon.expr.Expression
          net.sf.saxon.expr.SingleNodeExpression
              net.sf.saxon.expr.RootExpression

All Implemented Interfaces:
  java.io.Serializable, javax.xml.transform.SourceLocator, LocationProvider, SaxonLocator, EvaluableItem, SequenceIterable, InstructionInfo, org.xml.sax.Locator

    public class RootExpression

extends SingleNodeExpression

An expression whose value is always a set of nodes containing a single node, the document root. This corresponds to the XPath Expression "/", including the implicit "/" at the start of a path expression with a leading "/".

See Also:
  Serialized Form

Field Summary

Fields inherited from class net.sf.saxon.expr.Expression
`EVALUATE_METHOD, ITERATE_METHOD, locationId, PROCESS_METHOD, staticProperties`

Constructor Summary
`RootExpression()`

Method Summary
`PathMap.PathMapNodeSet` `addToPathMap(PathMap pathMap, PathMap.PathMapNodeSet pathMapNodeSet)` Add a representation of this expression to a PathMap.
`int` `computeCardinality()` Specify that the expression returns a singleton
`Expression` `copy()` Copy an expression.
`boolean` `equals(java.lang.Object other)` Is this expression the same as another expression?
`void` `explain(ExpressionPresenter destination)` Diagnostic print of expression structure.
`int` `getIntrinsicDependencies()` Determine which aspects of the context the expression depends on.
`ItemType` `getItemType(TypeHierarchy th)` Determine the data type of the items returned by this expression
`NodeInfo` `getNode(XPathContext context)` Return the first element selected by this Expression
`int` `hashCode()` get HashCode for comparing two expressions
`java.lang.String` `toString()` The toString() method for an expression attempts to give a representation of the expression in an XPath-like form, but there is no guarantee that the syntax will actually be true XPath.

Methods inherited from class net.sf.saxon.expr.SingleNodeExpression
`computeSpecialProperties, effectiveBooleanValue, evaluateItem, iterate, optimize, typeCheck`

Methods inherited from class net.sf.saxon.expr.Expression

`adoptChildExpression, checkForUpdatingSubexpressions, checkPermittedContents, computeDependencies, computeStaticProperties, display, doPromotion, dynamicError, evaluateAsString, evaluatePendingUpdates, explain, findParentOf, getCardinality, getColumnNumber, getColumnNumber, getConstructType, getContainer, getDependencies, getExecutable, getHostLanguage, getImplementationMethod, getLineNumber, getLineNumber, getLocationId, getLocationProvider, getObjectName, getProperties, getProperty, getPublicId, getSlotsUsed, getSpecialProperties, getSystemId, getSystemId, hasLoopingSubexpression, implementsStaticTypeCheck, isUpdatingExpression, iterateEvents, iterateSubExpressions, markTailFunctionCalls, process, promote, replaceSubExpression, resetLocalStaticProperties, setContainer, setFiltered, setFlattened, setLocationId, simplify, staticTypeCheck, suppressValidation, typeError`

Methods inherited from class java.lang.Object
`clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

Constructor Detail

### RootExpression

    public RootExpression()

Method Detail

### equals

    public boolean equals(java.lang.Object other)

  Is this expression the same as another expression?

  Overrides:
    `equals` in class `java.lang.Object`

### computeCardinality

    public final int computeCardinality()

  Specify that the expression returns a singleton

  Overrides:
    `computeCardinality` in class `SingleNodeExpression`
  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`

### getItemType

    public ItemType getItemType(TypeHierarchy th)

  Determine the data type of the items returned by this expression

  Overrides:
    `getItemType` in class `SingleNodeExpression`
  Parameters:
    `th` - the type hierarchy cache
  Returns:
    Type.NODE

### hashCode

    public int hashCode()

  get HashCode for comparing two expressions

  Overrides:
    `hashCode` in class `java.lang.Object`

### getNode

    public NodeInfo getNode(XPathContext context)
                     throws XPathException

  Return the first element selected by this Expression

  Specified by:
    `getNode` in class `SingleNodeExpression`
  Parameters:
    `context` - The evaluation context
  Returns:
    the NodeInfo of the first selected element, or null if no element is selected
  Throws:
    `XPathException`

### getIntrinsicDependencies

    public int getIntrinsicDependencies()

  Determine which aspects of the context the expression depends on. The result is a bitwise-or'ed value composed from constants such as StaticProperty.VARIABLES and StaticProperty.CURRENT_NODE

  Overrides:
    `getIntrinsicDependencies` in class `SingleNodeExpression`
  Returns:
    a set of bit-significant flags identifying the "intrinsic" dependencies. The flags are documented in class net.sf.saxon.value.StaticProperty

### copy

    public Expression copy()

  Copy an expression. This makes a deep copy.

  Specified by:
    `copy` in class `Expression`
  Returns:
    the copy of the original 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

### toString

    public java.lang.String toString()

  The toString() method for an expression attempts to give a representation of the expression in an XPath-like form, but there is no guarantee that the syntax will actually be true XPath. In the case of XSLT instructions, the toString() method gives an abstracted view of the syntax

  Overrides:
    `toString` in class `Expression`

### explain

    public void explain(ExpressionPresenter destination)

  Diagnostic print of expression structure. The abstract expression tree is written to the supplied output destination.

  Specified by:
    `explain` in class `Expression`
  Parameters:
    `destination` - the expression presenter used to display the structure

Copyright (c) Saxonica Limited. All rights reserved.