net.sf.saxon.expr
public abstract class Assignation extends ComputedExpression implements Binding
Field Summary | |
---|---|
protected Expression | action |
protected RangeVariableDeclaration | declaration |
protected int | nameCode |
protected Expression | sequence |
protected int | slotNumber |
protected String | variableName |
Method Summary | |
---|---|
ValueRepresentation | evaluateVariable(XPathContext context)
Get the value of the range variable |
protected Binding[] | extendBindingList(Binding[] in)
Extend an array of variable bindings to include the binding(s) defined in this expression |
Expression | getAction()
Get the action expression |
int | getLocalSlotNumber()
If this is a local variable held on the local stack frame, return the corresponding slot number.
|
int | getRequiredSlots()
Get the number of slots required. |
RangeVariableDeclaration | getVariableDeclaration()
Get the variable declaration |
int | getVariableFingerprint() |
String | getVariableName(NamePool pool)
Get the display name of the range variable, for diagnostics only |
int | getVariableNameCode() |
boolean | isAssignable()
Test whether it is permitted to assign to the variable using the saxon:assign
extension element. |
boolean | isGlobal()
Indicate whether the binding is local or global. |
Iterator | iterateSubExpressions()
Get the immediate subexpressions of this expression |
Expression | promote(PromotionOffer offer)
Promote this expression if possible |
protected Expression | promoteWhereClause(Binding positionBinding)
Promote a WHERE clause whose condition doesn't depend on the variable being bound.
|
void | setAction(Expression action)
Add the "return" or "satisfies" expression, and fix up all references to the
range variable that occur within that expression |
void | setSequence(Expression sequence)
Set the "sequence" expression - the one to which the variable is bound |
void | setSlotNumber(int nr)
Set the slot number for the range variable |
void | setVariableDeclaration(RangeVariableDeclaration decl)
Set the reference to the variable declaration |
Expression | simplify(StaticContext env)
Simplify the expression |
void | suppressValidation(int validationMode)
Suppress validation on contained element constructors, on the grounds that the parent element
is already performing validation. |
let $i := SEQ return if (C) then R else ()
to the form:
if (C) then (let $i := SEQ return R) else ()
Parameters: action the expression that occurs after the "return" keyword of a "for"
expression, the "satisfies" keyword of "some/every", or the ":=" operator of
a "let" expression.
This method must be called after calling setVariableDeclaration()