net.sf.saxon.expr
Class RootExpression

java.lang.Object
  extended by net.sf.saxon.expr.Expression
      extended by net.sf.saxon.expr.SingleNodeExpression
          extended by net.sf.saxon.expr.RootExpression
All Implemented Interfaces:
Serializable, SourceLocator, EvaluableItem, SequenceIterable, InstructionInfoProvider

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, PROCESS_METHOD
 
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(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
 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, checkPermittedContents, computeDependencies, computeStaticProperties, display, doPromotion, evaluateAsString, explain, findParentOf, getCardinality, getColumnNumber, getContainer, getDependencies, getExecutable, getHostLanguage, getImplementationMethod, getInstructionInfo, getLineNumber, getLocationId, getLocationProvider, getPublicId, getSlotsUsed, getSpecialProperties, getSystemId, hasLoopingSubexpression, implementsStaticTypeCheck, iterateEvents, iterateSubExpressions, markTailFunctionCalls, process, promote, replaceSubExpression, setContainer, setFiltered, setFlattened, setLocationId, simplify, staticTypeCheck, suppressValidation
 
Methods inherited from class java.lang.Object
getClass, notify, notifyAll, wait, wait, wait
 

Constructor Detail

RootExpression

public RootExpression()
Method Detail

equals

public boolean equals(Object other)
Is this expression the same as another expression?

Overrides:
equals in class 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 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 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) Michael H. Kay. All rights reserved.