## net.sf.saxon.expr
Class AtomicMappingExpression

    java.lang.Object
      net.sf.saxon.expr.Expression
          net.sf.saxon.expr.SlashExpression
              net.sf.saxon.expr.AtomicMappingExpression

All Implemented Interfaces:
  java.io.Serializable, javax.xml.transform.SourceLocator, LocationProvider, SaxonLocator, ContextMappingFunction, EvaluableItem, SequenceIterable, InstructionInfo, org.xml.sax.Locator

    public final class AtomicMappingExpression

extends SlashExpression
implements ContextMappingFunction

An atomic mapping expression is a slash expression A/B where B has a static type that is an atomic type. For example, * / name().

See Also:
  Serialized Form

Field Summary

Fields inherited from class net.sf.saxon.expr.Expression
`EVALUATE_METHOD, ITERATE_METHOD, locationId, PROCESS_METHOD, staticProperties`

Constructor Summary
`AtomicMappingExpression(Expression start, Expression step)` Constructor

Method Summary
`Expression` `copy()` Copy an expression.
`void` `explain(ExpressionPresenter destination)` Diagnostic print of expression structure.
`boolean` `isHybrid()` Determine whether this expression is capable (as far as static analysis is concerned) of returning a mixture of nodes and atomic values.
`SequenceIterator` `iterate(XPathContext context)` Iterate the path-expression in a given context
`Expression` `typeCheck(ExpressionVisitor visitor, ItemType contextItemType)` Type-check the expression

Methods inherited from class net.sf.saxon.expr.SlashExpression
`computeCardinality, computeDependencies, computeSpecialProperties, equals, getItemType, getStartExpression, getStepExpression, hashCode, hasLoopingSubexpression, iterateSubExpressions, makeSlashExpression, map, optimize, promote, promoteFocusIndependentSubexpressions, replaceSubExpression, setStartExpression, setStepExpression, simplify`

Methods inherited from class net.sf.saxon.expr.Expression

`addToPathMap, adoptChildExpression, checkForUpdatingSubexpressions, checkPermittedContents, computeStaticProperties, display, doPromotion, dynamicError, effectiveBooleanValue, evaluateAsString, evaluateItem, evaluatePendingUpdates, explain, findParentOf, getCardinality, getColumnNumber, getColumnNumber, getConstructType, getContainer, getDependencies, getExecutable, getHostLanguage, getImplementationMethod, getIntrinsicDependencies, getLineNumber, getLineNumber, getLocationId, getLocationProvider, getObjectName, getProperties, getProperty, getPublicId, getSlotsUsed, getSpecialProperties, getSystemId, getSystemId, implementsStaticTypeCheck, isUpdatingExpression, iterateEvents, markTailFunctionCalls, process, resetLocalStaticProperties, setContainer, setFiltered, setFlattened, setLocationId, staticTypeCheck, suppressValidation, toString, typeError`

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

Methods inherited from interface net.sf.saxon.expr.ContextMappingFunction
`map`

Constructor Detail

### AtomicMappingExpression

    public AtomicMappingExpression(Expression start,
                                   Expression step)

  Constructor

  Parameters:
    `start` - A node-set expression denoting the absolute or relative set of nodes from which the navigation path should start.
    `step` - The step to be followed from each node in the start expression to yield a new node-set

Method Detail

### isHybrid

    public boolean isHybrid()

  Determine whether this expression is capable (as far as static analysis is concerned) of returning a mixture of nodes and atomic values. If so, this needs to be prevented at run time

  Overrides:
    `isHybrid` in class `SlashExpression`
  Returns:
    true if the static type allows both nodes and atomic values

### typeCheck

    public Expression typeCheck(ExpressionVisitor visitor,
                                ItemType contextItemType)

  Type-check the expression

  Overrides:
    `typeCheck` in class `SlashExpression`
  Parameters:
    `visitor` - an expression visitor
    `contextItemType` - 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_TYPE`
  Returns:
    the original expression, rewritten to perform necessary run-time type checks, and to perform other type-related optimizations

### copy

    public Expression copy()

  Copy an expression. This makes a deep copy.

  Overrides:
    `copy` in class `SlashExpression`
  Returns:
    the copy of the original expression

### iterate

    public SequenceIterator iterate(XPathContext context)
                             throws XPathException

  Iterate the path-expression in a given context

  Specified by:
    `iterate` in interface `SequenceIterable`
  Overrides:
    `iterate` in class `SlashExpression`
  Parameters:
    `context` - the evaluation context
  Returns:
    a SequenceIterator that can be used to iterate over the result of the expression
  Throws:
    `XPathException` - if any dynamic error occurs evaluating the expression

### explain

    public void explain(ExpressionPresenter destination)

  Diagnostic print of expression structure. The abstract expression tree is written to the supplied output destination.

  Overrides:
    `explain` in class `SlashExpression`
  Parameters:
    `destination` - the expression presenter used to display the structure

Copyright (c) Saxonica Limited. All rights reserved.