public abstract class CastingExpression extends UnaryExpression
| Modifier and Type | Field and Description |
|---|---|
protected Converter |
converter |
protected NamespaceResolver |
nsResolver |
operandEFFECTIVE_BOOLEAN_VALUE, EVALUATE_METHOD, ITEM_FEED_METHOD, ITERATE_METHOD, locationId, MAX_SEQUENCE_LENGTH, MAX_STRING_LENGTH, PROCESS_METHOD, staticProperties, UNBOUNDED_LOWER, UNBOUNDED_UPPER, WATCH_METHOD| Constructor and Description |
|---|
CastingExpression(Expression source,
AtomicType target,
boolean allowEmpty)
Create a cast expression
|
| Modifier and Type | Method and Description |
|---|---|
boolean |
allowsEmpty()
Ask whether the expression accepts an empty sequence as input (producing an empty sequence as output)
|
int |
computeSpecialProperties()
Determine the special properties of this expression
|
Converter |
getConverter()
Get the Converter allocated to implement this cast expression, if any
|
NamespaceResolver |
getNamespaceResolver()
Get the namespace resolver, if any
|
protected OperandRole |
getOperandRole()
Get the usage (in terms of streamability analysis) of the single operand
|
AtomicType |
getTargetPrimitiveType()
Get the primitive base type of the target type of the cast
|
AtomicType |
getTargetType()
Get the target type (the result type)
|
boolean |
isOperandIsStringLiteral()
Ask whether the operand to the cast expression was supplied in the form of a string literal.
|
void |
setAllowEmpty(boolean allow)
Say whether the expression accepts an empty sequence as input (producing an empty sequence as output)
|
void |
setNamespaceResolver(NamespaceResolver resolver)
Set the namespace resolver, if any
|
void |
setOperandIsStringLiteral(boolean option)
Say whether the operand to the cast expression was supplied in the form of a string literal.
|
void |
setTargetType(AtomicType type)
Set the target type
|
Expression |
simplify(ExpressionVisitor visitor)
Simplify the expression
|
computeCardinality, displayOperator, equals, explain, getBaseExpression, getItemType, hashCode, operands, optimize, promote, replaceOperand, toShortString, toString, typeCheckaddToPathMap, adoptChildExpression, checkForUpdatingSubexpressions, checkPermittedContents, clearStreamabilityData, computeDependencies, computeStaticProperties, copy, doPromotion, dynamicError, effectiveBooleanValue, evaluateAsString, evaluateItem, evaluatePendingUpdates, explain, getCardinality, getColumnNumber, getConfiguration, getConstructType, getContainer, getDependencies, getEvaluationMethod, getExpressionCompiler, getExpressionName, getHostLanguage, getImplementationMethod, getIntegerBounds, getIntrinsicDependencies, getLineNumber, getLocationId, getObjectName, getPosture, getProperties, getProperty, getPublicId, getSlotsUsed, getSpecialProperties, getStreamability, getStreamingAdjunct, getSweep, getSystemId, hasVariableBinding, identityHashCode, implementsStaticTypeCheck, isIdentical, isSubtreeExpression, isUpdatingExpression, isVacuousExpression, iterate, iterateEvents, makeStreamingAdjunct, markTailFunctionCalls, operandList, process, resetLocalStaticProperties, setContainer, setEvaluationMethod, setFiltered, setFlattened, setLocationId, setPostureAndSweep, staticTypeCheck, suppressValidation, toPattern, toStreamingPattern, typeError, unorderedprotected Converter converter
protected NamespaceResolver nsResolver
public CastingExpression(Expression source, AtomicType target, boolean allowEmpty)
source - expression giving the value to be convertedtarget - the type to which the value is to be convertedallowEmpty - true if the expression allows an empty sequence as input, producing
an empty sequence as output. If false, an empty sequence is a type error.public AtomicType getTargetPrimitiveType()
public void setTargetType(AtomicType type)
type - the target type for the castpublic AtomicType getTargetType()
protected OperandRole getOperandRole()
UnaryExpressiongetOperandRole in class UnaryExpressionpublic void setAllowEmpty(boolean allow)
allow - true if an empty sequence is acceptedpublic boolean allowsEmpty()
public void setOperandIsStringLiteral(boolean option)
option - true if the operand was supplied as a string literalpublic boolean isOperandIsStringLiteral()
public Converter getConverter()
public void setNamespaceResolver(NamespaceResolver resolver)
resolver - the namespace resolver to be used if the target type is namespace-sensitivepublic NamespaceResolver getNamespaceResolver()
public Expression simplify(ExpressionVisitor visitor) throws XPathException
simplify in class Expressionvisitor - an expression visitorXPathException - if an error is discovered during expression
rewritingpublic int computeSpecialProperties()
computeSpecialProperties in class UnaryExpressionStaticProperty.NON_CREATIVE.Copyright (c) 2004-2014 Saxonica Limited. All rights reserved.