Class CastExpression
java.lang.Object
net.sf.saxon.expr.ComputedExpression
net.sf.saxon.expr.UnaryExpression
net.sf.saxon.expr.CastExpression
- All Implemented Interfaces:
Serializable, SourceLocator, Container, Expression, InstructionInfoProvider
Cast Expression: implements "cast as data-type ( expression )". It also allows an internal
cast, which has the same semantics as a user-requested cast, but maps an empty sequence to
an empty sequence.
- See Also:
-
Field Summary
FieldsFields inherited from class UnaryExpression
operandFields inherited from class ComputedExpression
locationId, staticPropertiesFields inherited from interface Expression
EVALUATE_METHOD, ITERATE_METHOD, PROCESS_METHOD -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescription(package private) static voidaddAllowedCasts(int source, int[] target) static AtomicValuecastStringToQName(CharSequence operand, AtomicType targetType, StaticContext env) Evaluate the "pseudo-cast" of a string literal to a QName or NOTATION value.intGet the static cardinality of the expressionintDetermine the special properties of this expressionprotected StringdisplayOperator(Configuration config) Give a string representation of the operator for use in diagnosticsbooleanIs this expression the same as another expression?evaluateItem(XPathContext context) Evaluate the expressionGet the static type of the expressionstatic booleanisPossibleCast(int source, int target) Determine whether casting from a source type to a target type is possiblesimplify(StaticContext env) Simplify the expressiontypeCheck(StaticContext env, ItemType contextItemType) Type-check the expressionMethods inherited from class UnaryExpression
display, getBaseExpression, hashCode, iterateSubExpressions, optimize, promote, replaceSubExpressionMethods inherited from class ComputedExpression
adoptChildExpression, 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, typeError
-
Field Details
-
castingTable
-
-
Constructor Details
-
CastExpression
-
-
Method Details
-
addAllowedCasts
static void addAllowedCasts(int source, int[] target) -
isPossibleCast
public static boolean isPossibleCast(int source, int target) Determine whether casting from a source type to a target type is possible- Parameters:
source- a primitive type (one that has an entry in the casting table)target- another primitive type- Returns:
- true if the entry in the casting table is either "Y" (casting always succeeds) or "M" (casting allowed but may fail for some values)
-
simplify
Simplify the expression- Specified by:
simplifyin interfaceExpression- Overrides:
simplifyin classUnaryExpression- Parameters:
env- the static context- Returns:
- the simplified expression
- Throws:
XPathException- if an error is discovered during expression rewriting
-
typeCheck
Type-check the expression- Specified by:
typeCheckin interfaceExpression- Overrides:
typeCheckin classUnaryExpression- Parameters:
env- 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 toType.ITEM_TYPE- Returns:
- the original expression, rewritten to perform necessary run-time type checks, and to perform other type-related optimizations
- Throws:
XPathException
-
computeCardinality
public int computeCardinality()Get the static cardinality of the expression- Overrides:
computeCardinalityin classUnaryExpression
-
getItemType
Get the static type of the expression- Specified by:
getItemTypein interfaceExpression- Overrides:
getItemTypein classUnaryExpression- Parameters:
th-- Returns:
- the item type of the items in the result sequence, insofar as this is known statically.
-
computeSpecialProperties
public int computeSpecialProperties()Determine the special properties of this expression- Overrides:
computeSpecialPropertiesin classUnaryExpression- Returns:
StaticProperty.NON_CREATIVE.
-
evaluateItem
Evaluate the expression- Specified by:
evaluateItemin interfaceExpression- Overrides:
evaluateItemin classComputedExpression- Parameters:
context- The context in which the expression is to be evaluated- Returns:
- the node or atomic value that results from evaluating the expression; or null to indicate that the result is an empty sequence
- Throws:
XPathException- if any dynamic error occurs evaluating the expression
-
equals
Is this expression the same as another expression?- Overrides:
equalsin classUnaryExpression
-
displayOperator
Give a string representation of the operator for use in diagnostics- Specified by:
displayOperatorin classUnaryExpression- Parameters:
config-- Returns:
- the operator, as a string
-
castStringToQName
public static AtomicValue castStringToQName(CharSequence operand, AtomicType targetType, StaticContext env) throws XPathException Evaluate the "pseudo-cast" of a string literal to a QName or NOTATION value. This can only happen at compile time- Returns:
- the QName or NOTATION value that results from casting the string to a QName. This will either be a QNameValue or a DerivedAtomicValue derived from QName or NOTATION
- Throws:
XPathException
-