public class PromotionOffer
extends java.lang.Object
Modifier and Type | Field and Description |
---|---|
boolean |
accepted
Flag that is set if the offer has been accepted, that is, if the expression has changed
|
int |
action
action is one of the possible promotion actions, FOCUS_INDEPENDENT, RANGE_INDEPENDENT,
INLINE_VARIABLE_REFERENCES, ANY_ORDER, ANY_ORDER_UNIQUE
|
Binding[] |
bindingList
In the case of RANGE_INDEPENDENT and WHERE_CLAUSE, "binding" identifies the range variables whose dependencies
we are looking for.
|
Expression |
containingExpression
When a promotion offer is made, containingExpression identifies the level to which the promotion
should occur.
|
static int |
FOCUS_INDEPENDENT
FOCUS_INDEPENDENT requests promotion of all non-trivial subexpressions that don't depend on the
focus.
|
static int |
INLINE_VARIABLE_REFERENCES
Inline variable references causes all references to a variable V to be replaced by the
expression E.
|
boolean |
mustEliminateDuplicates
In the case of UNORDERED, "mustEliminateDuplicates" is a boolean that is set to
true if the nodes can be delivered in any order so long as there are no duplicates
(for example, as required by the count() function).
|
boolean |
promoteDocumentDependent
In the case of FOCUS_INDEPENDENT, "promoteDocumentDependent" is a boolean that, when set to
true, indicates that it is safe to promote a subexpression that depends on the context document
but not on other aspects of the focus.
|
boolean |
promoteXSLTFunctions
In the case of FOCUS_INDEPENDENT, "promoteXSLTFunctions" is a boolean that, when set to true, indicates
that it is safe to promote XSLT functions such as current().
|
static int |
RANGE_INDEPENDENT
RANGE_INDEPENDENT requests promotion of all non-trivial subexpressions that don't depend on a
specified range variable.
|
static int |
REPLACE_CURRENT
REPLACE_CURRENT causes calls to the XSLT current() function to be replaced by
reference to a variable.
|
static int |
UNORDERED
UNORDERED indicates that the containing expression does not require the results
to be delivered in any particular order.
|
Constructor and Description |
---|
PromotionOffer(Optimizer optimizer)
Create a PromotionOffer for use with a particular Optimizer
|
Modifier and Type | Method and Description |
---|---|
Expression |
accept(Expression child)
Method to test whether a subexpression qualifies for promotion, and if so, to
accept the promotion.
|
Optimizer |
getOptimizer()
Get the optimizer in use
|
public static final int FOCUS_INDEPENDENT
public static final int RANGE_INDEPENDENT
public static final int INLINE_VARIABLE_REFERENCES
public static final int UNORDERED
public static final int REPLACE_CURRENT
public int action
public boolean promoteDocumentDependent
public boolean promoteXSLTFunctions
public boolean mustEliminateDuplicates
public Binding[] bindingList
public Expression containingExpression
public boolean accepted
public PromotionOffer(Optimizer optimizer)
public Optimizer getOptimizer()
public Expression accept(Expression child) throws XPathException
XPathException