public final class CastExpression extends UnaryExpression
| Modifier and Type | Field and Description |
|---|---|
(package private) static IntHashMap |
castingTable |
operandlocationId, staticPropertiesEVALUATE_METHOD, ITERATE_METHOD, PROCESS_METHOD| Constructor and Description |
|---|
CastExpression(Expression source,
AtomicType target,
boolean allowEmpty) |
| Modifier and Type | Method and Description |
|---|---|
(package private) static void |
addAllowedCasts(int source,
int[] target) |
static AtomicValue |
castStringToQName(java.lang.CharSequence operand,
AtomicType targetType,
StaticContext env)
Evaluate the "pseudo-cast" of a string literal to a QName or NOTATION value.
|
int |
computeCardinality()
Get the static cardinality of the expression
|
int |
computeSpecialProperties()
Determine the special properties of this expression
|
protected java.lang.String |
displayOperator(Configuration config)
Give a string representation of the operator for use in diagnostics
|
boolean |
equals(java.lang.Object other)
Is this expression the same as another expression?
|
Item |
evaluateItem(XPathContext context)
Evaluate the expression
|
ItemType |
getItemType(TypeHierarchy th)
Get the static type of the expression
|
static boolean |
isPossibleCast(int source,
int target)
Determine whether casting from a source type to a target type is possible
|
Expression |
simplify(StaticContext env)
Simplify the expression
|
Expression |
typeCheck(StaticContext env,
ItemType contextItemType)
Type-check the expression
|
display, getBaseExpression, hashCode, iterateSubExpressions, optimize, promote, replaceSubExpressionadoptChildExpression, checkPermittedContents, computeDependencies, computeStaticProperties, doPromotion, dynamicError, effectiveBooleanValue, evaluateAsString, getCardinality, getColumnNumber, getConstructType, getDependencies, getExecutable, getHostLanguage, getImplementationMethod, getInstructionInfo, getIntrinsicDependencies, getLineNumber, getLocationId, getLocationProvider, getParentExpression, getPublicId, getSlotsUsed, getSpecialProperties, getSystemId, hasBadParentPointer, iterate, markTailFunctionCalls, process, resetStaticProperties, setLocationId, setParentExpression, setParentExpression, suppressValidation, typeErrorstatic IntHashMap castingTable
public CastExpression(Expression source, AtomicType target, boolean allowEmpty)
static void addAllowedCasts(int source,
int[] target)
public static boolean isPossibleCast(int source,
int target)
source - a primitive type (one that has an entry in the casting table)target - another primitive typepublic Expression simplify(StaticContext env) throws XPathException
simplify in interface Expressionsimplify in class UnaryExpressionenv - the static contextXPathException - if an error is discovered during expression
rewritingpublic Expression typeCheck(StaticContext env, ItemType contextItemType) throws XPathException
typeCheck in interface ExpressiontypeCheck in class UnaryExpressionenv - the static context of the expressioncontextItemType - 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_TYPEStaticError - if an error is discovered during this phase
(typically a type error)XPathExceptionpublic int computeCardinality()
computeCardinality in class UnaryExpressionpublic ItemType getItemType(TypeHierarchy th)
getItemType in interface ExpressiongetItemType in class UnaryExpressionth - public int computeSpecialProperties()
computeSpecialProperties in class UnaryExpressionStaticProperty.NON_CREATIVE.public Item evaluateItem(XPathContext context) throws XPathException
evaluateItem in interface ExpressionevaluateItem in class ComputedExpressioncontext - The context in which the expression is to be evaluatedXPathException - if any dynamic error occurs evaluating the
expressionpublic boolean equals(java.lang.Object other)
equals in class UnaryExpressionprotected java.lang.String displayOperator(Configuration config)
displayOperator in class UnaryExpressionconfig - public static AtomicValue castStringToQName(java.lang.CharSequence operand, AtomicType targetType, StaticContext env) throws XPathException
XPathException