net.sf.saxon.expr

Class FirstItemExpression

public final class FirstItemExpression extends UnaryExpression

A FirstItemExpression returns the first item in the sequence returned by a given base expression
Constructor Summary
FirstItemExpression(Expression base)
Constructor
Method Summary
intcomputeCardinality()
Get the static cardinality
StringdisplayOperator(NamePool pool)
Diagnostic print of expression structure
ItemevaluateItem(XPathContext context)
Evaluate the expression
Expressionoptimize(Optimizer opt, StaticContext env, ItemType contextItemType)
Perform optimisation of an expression and its subexpressions.
Expressionpromote(PromotionOffer offer)
Promote this expression if possible

Constructor Detail

FirstItemExpression

public FirstItemExpression(Expression base)
Constructor

Parameters: base A sequence expression denoting sequence whose first item is to be returned

Method Detail

computeCardinality

public int computeCardinality()
Get the static cardinality

displayOperator

public String displayOperator(NamePool pool)
Diagnostic print of expression structure

evaluateItem

public Item evaluateItem(XPathContext context)
Evaluate the expression

optimize

public Expression optimize(Optimizer opt, StaticContext env, ItemType contextItemType)
Perform optimisation of an expression and its subexpressions.

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: opt the optimizer in use. This provides access to supporting functions; it also allows different optimization strategies to be used in different circumstances. env the static context of the expression 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: net.sf.saxon.trans.StaticError if an error is discovered during this phase (typically a type error)

promote

public Expression promote(PromotionOffer offer)
Promote this expression if possible