public final class UntypedAtomicConverter extends UnaryExpression
operandEVALUATE_METHOD, EVENT_FEED_METHOD, ITEM_FEED_METHOD, ITERATE_METHOD, locationId, PROCESS_METHOD, PUSH_SELECTION, staticProperties, WATCH_METHOD| Constructor and Description |
|---|
UntypedAtomicConverter(Expression sequence,
AtomicType requiredItemType,
boolean allConverted,
RoleLocator role)
Constructor
|
| Modifier and Type | Method and Description |
|---|---|
boolean |
areAllItemsConverted()
Determine whether all items are to be converted, or only the subset that are untypedAtomic
|
int |
computeCardinality()
Determine the static cardinality.
|
int |
computeSpecialProperties()
Determine the special properties of this expression
|
Expression |
copy()
Copy an expression.
|
protected java.lang.String |
displayOperator(Configuration config)
Give a string representation of the operator for use in diagnostics
|
Item |
evaluateItem(XPathContext context)
Evaluate as an Item.
|
void |
explain(ExpressionPresenter out)
Diagnostic print of expression structure.
|
java.lang.String |
getExpressionName()
Get a name identifying the kind of expression, in terms meaningful to a user.
|
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
|
ItemMappingFunction |
getMappingFunction(XPathContext context)
Get the mapping function that converts untyped atomic values to the required type
|
ItemType |
getRequiredItemType()
Get the item type to which untyped atomic items must be converted
|
SequenceIterator |
iterate(XPathContext context)
Iterate over the sequence of values
|
Expression |
optimize(ExpressionVisitor visitor,
ItemType contextItemType)
Perform optimisation of an expression and its subexpressions.
|
Expression |
typeCheck(ExpressionVisitor visitor,
ItemType contextItemType)
Type-check the expression
|
equals, getBaseExpression, hashCode, iterateSubExpressions, promote, replaceSubExpression, simplify, toStringaddToPathMap, adoptChildExpression, checkForUpdatingSubexpressions, checkPermittedContents, computeDependencies, computeStaticProperties, doPromotion, dynamicError, effectiveBooleanValue, evaluateAsString, evaluatePendingUpdates, explain, getCardinality, getColumnNumber, getColumnNumber, getConstructType, getContainer, getDependencies, getEvaluationMethod, getExecutable, getHostLanguage, getIntrinsicDependencies, getLineNumber, getLineNumber, getLocationId, getLocationProvider, getObjectName, getProperties, getProperty, getPublicId, getSlotsUsed, getSpecialProperties, getSystemId, getSystemId, hasLoopingSubexpression, implementsStaticTypeCheck, isSubtreeExpression, isUpdatingExpression, isVacuousExpression, iterateEvents, iterateSameFocusSubExpressions, markTailFunctionCalls, process, resetLocalStaticProperties, setContainer, setEvaluationMethod, setFiltered, setFlattened, setLocationId, staticTypeCheck, suppressValidation, typeErrorpublic UntypedAtomicConverter(Expression sequence, AtomicType requiredItemType, boolean allConverted, RoleLocator role)
sequence - this must be a sequence of atomic values. This is not checked; a ClassCastException
will occur if the precondition is not satisfied.requiredItemType - the item type to which untypedAtomic items in the sequence should be converted,
using the rules for "cast as".allConverted - true if the result of this expression is a sequence in which all items
belong to the required typerole - Diagnostic information for use if conversion failspublic ItemType getRequiredItemType()
public int getImplementationMethod()
getImplementationMethod in class ExpressionExpression.ITERATE_METHOD or Expression.EVALUATE_METHOD or
Expression.PROCESS_METHODpublic boolean areAllItemsConverted()
public ItemType getItemType(TypeHierarchy th)
getItemType in class UnaryExpressionth - the type hierarchy cachepublic int computeCardinality()
UnaryExpressioncomputeCardinality in class UnaryExpressionStaticProperty.ALLOWS_ZERO_OR_ONE,
StaticProperty.EXACTLY_ONE, StaticProperty.ALLOWS_ONE_OR_MORE,
StaticProperty.ALLOWS_ZERO_OR_MOREpublic Expression typeCheck(ExpressionVisitor visitor, ItemType contextItemType) throws XPathException
typeCheck in class UnaryExpressionvisitor - an expression visitorcontextItemType - 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
Type.ITEM_TYPEXPathException - if an error is discovered during this phase
(typically a type error)public Expression optimize(ExpressionVisitor visitor, ItemType contextItemType) throws XPathException
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.
optimize in class UnaryExpressionvisitor - an expression visitorcontextItemType - 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
Type.ITEM_TYPEXPathException - if an error is discovered during this phase
(typically a type error)public int computeSpecialProperties()
computeSpecialProperties in class UnaryExpressionStaticProperty.NON_CREATIVE.public Expression copy()
copy in class Expressionpublic SequenceIterator iterate(XPathContext context) throws XPathException
iterate in interface SequenceIterableiterate in class Expressioncontext - supplies the context for evaluationXPathException - if any dynamic error occurs evaluating the
expressionpublic ItemMappingFunction getMappingFunction(XPathContext context)
context - the dynamic evaluation context for the conversionpublic Item evaluateItem(XPathContext context) throws XPathException
evaluateItem in interface EvaluableItemevaluateItem in class Expressioncontext - The context in which the expression is to be evaluatedXPathException - if any dynamic error occurs evaluating the
expressionpublic void explain(ExpressionPresenter out)
explain in class UnaryExpressionout - the expression presenter used to display the structureprotected java.lang.String displayOperator(Configuration config)
UnaryExpressiondisplayOperator in class UnaryExpressionpublic java.lang.String getExpressionName()
getExpressionName in class Expression