net.sf.saxon.expr
Class CastExpression
- EvaluableItem, InstructionInfoProvider, SequenceIterable, Serializable, SourceLocator
public final class CastExpression
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.
computeCardinality , computeSpecialProperties , displayExpressionName , displayOperator , equals , explain , getBaseExpression , getItemType , hashCode , iterateSubExpressions , optimize , promote , replaceSubExpression , simplify , toString , typeCheck |
addToPathMap , adoptChildExpression , checkPermittedContents , computeCardinality , computeDependencies , computeSpecialProperties , computeStaticProperties , copy , display , doPromotion , dynamicError , effectiveBooleanValue , evaluateAsString , evaluateItem , explain , explain , findParentOf , getCardinality , getColumnNumber , getConstructType , getContainer , getDependencies , getExecutable , getHostLanguage , getImplementationMethod , getInstructionInfo , getIntrinsicDependencies , getItemType , getLineNumber , getLocationId , getLocationProvider , getPublicId , getSlotsUsed , getSpecialProperties , getSystemId , hasLoopingSubexpression , implementsStaticTypeCheck , iterate , iterateEvents , iterateSubExpressions , markTailFunctionCalls , optimize , process , promote , replaceSubExpression , resetLocalStaticProperties , setContainer , setFiltered , setFlattened , setLocationId , simplify , staticTypeCheck , suppressValidation , toString , typeCheck , typeError |
CastExpression
public CastExpression(Expression source,
AtomicType target,
boolean allowEmpty)
Create a cast expression
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.
allowsEmpty
public boolean allowsEmpty()
Ask whether the expression accepts an empty sequence as input (producing an empty sequence as output)
- true if an empty sequence is accepted
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
operand
- the value to be convertedtargetType
- the type to which it is to be convertedenv
- the static context
- the QName or NOTATION value that results from casting the string to a QName.
This will either be a QNameValue or a derived AtomicValue derived from QName or NOTATION
copy
public Expression copy()
Copy an expression. This makes a deep copy.
- copy in interface Expression
- the copy of the original expression
equals
public boolean equals(Object other)
Is this expression the same as another expression?
- equals in interface UnaryExpression
explain
public void explain(ExpressionPresenter out)
Diagnostic print of expression structure. The abstract expression tree
is written to the supplied output destination.
- explain in interface UnaryExpression
getTargetPrimitiveType
public AtomicType getTargetPrimitiveType()
Get the primitive base type of the target type of the cast
- the primitive type of the target type
getTargetType
public AtomicType getTargetType()
Get the target type (the result type)
isPossibleCast
public static boolean isPossibleCast(int source,
int target)
Determine whether casting from a source type to a target type is possible
source
- a primitive type (one that has an entry in the casting table)target
- another primitive type
- true if the entry in the casting table is either "Y" (casting always succeeds)
or "M" (casting allowed but may fail for some values)
isUpCast
public boolean isUpCast()
Ask whether this is a cast to a supertype of the original type
- true if this is an upcast. This means the value stays unchanged and only the
type label changes
targetIsDerived
public boolean targetIsDerived()
Ask whether the target type is a derived type (not a primitive type)
- true if the target type is a derived type
toString
public String toString()
The toString() method for an expression attempts to give a representation of the expression
in an XPath-like form, but there is no guarantee that the syntax will actually be true XPath.
In the case of XSLT instructions, the toString() method gives an abstracted view of the syntax
- toString in interface UnaryExpression