net.sf.saxon.expr
public class ContextItemExpression extends Expression
Field Summary | |
---|---|
ItemType | itemType |
Constructor Summary | |
---|---|
ContextItemExpression()
Create the expression |
Method Summary | |
---|---|
PathMap.PathMapNodeSet | addToPathMap(PathMap pathMap, PathMap.PathMapNodeSet pathMapNodeSet)
Add a representation of this expression to a PathMap. |
int | computeCardinality()
Get the static cardinality |
int | computeSpecialProperties()
Determine the special properties of this expression |
Expression | copy()
Create a clone copy of this expression |
boolean | equals(Object other)
Is this expression the same as another expression? |
Item | evaluateItem(XPathContext context)
Evaluate the expression |
void | explain(ExpressionPresenter destination)
Diagnostic print of expression structure. |
protected String | getErrorCodeForUndefinedContext() |
int | getIntrinsicDependencies() |
ItemType | getItemType(TypeHierarchy th)
Determine the item type |
int | hashCode()
get HashCode for comparing two expressions |
boolean | isSubtreeExpression()
Determine whether the expression can be evaluated without reference to the part of the context
document outside the subtree rooted at the context node. |
SequenceIterator | iterate(XPathContext context)
Iterate over the value of the expression |
Expression | optimize(ExpressionVisitor visitor, ItemType contextItemType)
Perform optimisation of an expression and its subexpressions.
|
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.
|
Expression | typeCheck(ExpressionVisitor visitor, ItemType contextItemType)
Type-check the expression. |
The default implementation of this method assumes that an expression does no navigation other than the navigation done by evaluating its subexpressions, and that the subexpressions are evaluated in the same context as the containing expression. The method must be overridden for any expression where these assumptions do not hold. For example, implementations exist for AxisExpression, ParentExpression, and RootExpression (because they perform navigation), and for the doc(), document(), and collection() functions because they create a new navigation root. Implementations also exist for PathExpression and FilterExpression because they have subexpressions that are evaluated in a different context from the calling 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 pathMapNodeSet representing the points in the source document that are both reachable by this expression, and that represent possible results of this expression. For an expression that does navigation, it represents the end of the arc in the path map that describes the navigation route. For other expressions, it is the same as the input pathMapNode.
Returns: the value NON_CREATIVE
Returns: a copy of this expression
Parameters: th the type hierarchy cache
Returns: true if the expression has no dependencies on the context node, or if the only dependencies on the context node are downward selections using the self, child, descendant, attribute, and namespace axes.
This method is called after all references to functions and variables have been resolved to the declaration of the function or variable, and after all type checking has been done.
Parameters: visitor an expression visitor contextItemType the static type of "." at the point where this expression is invoked. The parameter is set to null if it is known statically that the context item will be undefined. If the type of the context item is not known statically, the argument is set to ITEM_TYPE
Returns: the original expression, rewritten if appropriate to optimize execution
Throws: XPathException if an error is discovered during this phase (typically a type error)