net.sf.saxon.expr
public final class CardinalityChecker extends UnaryExpression implements MappingExpression
Method Summary | |
---|---|
int | computeCardinality()
Determine the static cardinality of the expression |
int | computeSpecialProperties()
Get the static properties of this expression (other than its type). |
Expression | copy()
Copy an expression. |
static String | depictSequenceStart(SequenceIterator seq, int max)
Show the first couple of items in a sequence in an error message |
boolean | equals(Object other)
Is this expression the same as another expression? |
Item | evaluateItem(XPathContext context)
Evaluate as an Item. |
void | explain(ExpressionPresenter out)
Diagnostic print of expression structure. |
int | getImplementationMethod()
An implementation of Expression must provide at least one of the methods evaluateItem(), iterate(), or process().
|
ItemType | getItemType(TypeHierarchy th)
Determine the data type of the items returned by the expression, if possible |
SequenceIterator | getMappingIterator(SequenceIterator base, XPathContext context) |
int | getRequiredCardinality()
Get the required cardinality |
RoleLocator | getRoleLocator()
Get the RoleLocator, which contains diagnostic information for use if the cardinality check fails |
SequenceIterator | iterate(XPathContext context)
Iterate over the sequence of values |
static Expression | makeCardinalityChecker(Expression sequence, int cardinality, RoleLocator role)
Factory method to construct a CardinalityChecker. |
Expression | optimize(ExpressionVisitor visitor, ItemType contextItemType)
Perform optimisation of an expression and its subexpressions.
|
void | process(XPathContext context)
Process the instruction, without returning any tail calls
|
void | setErrorCode(String code)
Set the error code to be returned (this is used when evaluating the functions such
as exactly-one() which have their own error codes) |
Expression | typeCheck(ExpressionVisitor visitor, ItemType contextItemType)
Type-check the expression |
Returns: the copy of the original expression
Parameters: seq iterator over the sequence max maximum number of items to be shown
Returns: a message display of the contents of the sequence
Parameters: th the type hierarchy cache
Returns: a value such as Type.STRING, Type.BOOLEAN, Type.NUMBER, Type.NODE, or Type.ITEM (meaning not known in advance)
Returns: the cardinality required by this checker
Returns: the diagnostic information
Parameters: sequence the base sequence whose cardinality is to be checked cardinality the required cardinality role information to be used in error reporting
Returns: a new Expression that does the CardinalityChecking (not necessarily a CardinalityChecker)
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)
Parameters: context The dynamic context, giving access to the current node, the current variables, etc.
Parameters: code the error code to be used