Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## net.sf.saxon.expr
Class CastingExpression

    java.lang.Object
      net.sf.saxon.expr.Expression
          net.sf.saxon.expr.UnaryExpression
              net.sf.saxon.expr.CastingExpression

All Implemented Interfaces:
  Serializable, SourceLocator, LocationProvider, SaxonLocator, InstructionInfo, Locator

Direct Known Subclasses:
  CastableExpression, CastExpression

    public abstract class CastingExpression

extends UnaryExpression

Casting Expression: abstract superclass for "cast as X" and "castable as X", which share a good deal of logic

See Also:
  Serialized Form

Field Summary
`protected Converter` | `converter`
`protected NamespaceResolver` | `nsResolver`

Fields inherited from class net.sf.saxon.expr.UnaryExpression
`operand`

Fields inherited from class net.sf.saxon.expr.Expression
`EFFECTIVE_BOOLEAN_VALUE, EVALUATE_METHOD, EVENT_FEED_METHOD, ITEM_FEED_METHOD, ITERATE_METHOD, locationId, MAX_SEQUENCE_LENGTH, MAX_STRING_LENGTH, PROCESS_METHOD, PUSH_SELECTION, staticProperties, UNBOUNDED_LOWER, UNBOUNDED_UPPER, WATCH_METHOD`

Constructor Summary
`CastingExpression(Expression source, AtomicType target, boolean allowEmpty)` Create a cast expression

Method Summary
`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
`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

Methods inherited from class net.sf.saxon.expr.UnaryExpression
`computeCardinality, displayOperator, equals, explain, getBaseExpression, getItemType, hashCode, iterateSubExpressions, optimize, promote, replaceSubExpression, toString, typeCheck`

Methods inherited from class net.sf.saxon.expr.Expression
`addToPathMap, adoptChildExpression, checkForUpdatingSubexpressions, checkPermittedContents, computeDependencies, computeStaticProperties, copy, doPromotion, dynamicError, effectiveBooleanValue, evaluateAsString, evaluateItem, evaluatePendingUpdates, explain, getCardinality, getColumnNumber, getColumnNumber, getConstructType, getContainer, getDependencies, getEvaluationMethod, getExecutable, getExpressionName, getHostLanguage, getImplementationMethod, getIntegerBounds, getIntrinsicDependencies, getLineNumber, getLineNumber, getLocationId, getLocationProvider, getObjectName, getProperties, getProperty, getPublicId, getSlotsUsed, getSpecialProperties, getSystemId, getSystemId, hasLoopingSubexpression, hasVariableBinding, implementsStaticTypeCheck, isSubtreeExpression, isUpdatingExpression, isVacuousExpression, iterate, iterateEvents, iterateSameFocusSubExpressions, markTailFunctionCalls, process, resetLocalStaticProperties, setContainer, setEvaluationMethod, setFiltered, setFlattened, setLocationId, staticTypeCheck, suppressValidation, typeError`

Methods inherited from class java.lang.Object
`clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

Field Detail

### converter

    protected Converter converter

### nsResolver

    protected NamespaceResolver nsResolver

Constructor Detail

### CastingExpression

    public CastingExpression(Expression source,
                             AtomicType target,
                             boolean allowEmpty)

  Create a cast expression

  Parameters:
    `source` - expression giving the value to be converted
    `target` - the type to which the value is to be converted
    `allowEmpty` - 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.

Method Detail

### getTargetPrimitiveType

    public AtomicType getTargetPrimitiveType()

  Get the primitive base type of the target type of the cast

  Returns:
    the primitive type of the target type

### setTargetType

    public void setTargetType(AtomicType type)

  Set the target type

  Parameters:
    `type` - the target type for the cast

### getTargetType

    public AtomicType getTargetType()

  Get the target type (the result type)

  Returns:
    the target type

### setAllowEmpty

    public void setAllowEmpty(boolean allow)

  Say whether the expression accepts an empty sequence as input (producing an empty sequence as output)

  Parameters:
    `allow` - true if an empty sequence is accepted

### allowsEmpty

    public boolean allowsEmpty()

  Ask whether the expression accepts an empty sequence as input (producing an empty sequence as output)

  Returns:
    true if an empty sequence is accepted

### setOperandIsStringLiteral

    public void setOperandIsStringLiteral(boolean option)

  Say whether the operand to the cast expression was supplied in the form of a string literal. This is relevant only for XPath 2.0 / XQuery 1.0, and then only when the target type is a QName or NOTATION.

  Parameters:
    `option` - true if the operand was supplied as a string literal

### isOperandIsStringLiteral

    public boolean isOperandIsStringLiteral()

  Ask whether the operand to the cast expression was supplied in the form of a string literal. This is relevant only for XPath 2.0 / XQuery 1.0, and then only when the target type is a QName or NOTATION.

  Returns:
    true if the operand was supplied as a string literal

### getConverter

    public Converter getConverter()

  Get the Converter allocated to implement this cast expression, if any

  Returns:
    the Converter if one has been statically allocated, or null if not

### setNamespaceResolver

    public void setNamespaceResolver(NamespaceResolver resolver)

  Set the namespace resolver, if any

  Parameters:
    `resolver` - the namespace resolver to be used if the target type is namespace-sensitive

### getNamespaceResolver

    public NamespaceResolver getNamespaceResolver()

  Get the namespace resolver, if any

  Returns:
    the namespace resolver that was statically allocated if the target type is namespace-sensitive

### simplify

    public Expression simplify(ExpressionVisitor visitor)
                        throws XPathException

  Simplify the expression

  Overrides:
    `simplify` in class `UnaryExpression`
  Parameters:
    `visitor` - an expression visitor
  Returns:
    the simplified expression
  Throws:
    `XPathException` - if an error is discovered during expression rewriting

### computeSpecialProperties

    public int computeSpecialProperties()

  Determine the special properties of this expression

  Overrides:
    `computeSpecialProperties` in class `UnaryExpression`
  Returns:
    `StaticProperty.NON_CREATIVE`.

Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright (c) 2004-2011 Saxonica Limited. All rights reserved.