net.sf.saxon.expr

## Class EmptyTextNodeRemover

- java.lang.Object
- - net.sf.saxon.expr.Expression
  - - net.sf.saxon.expr.UnaryExpression
    - - net.sf.saxon.expr.EmptyTextNodeRemover

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

      public class EmptyTextNodeRemover
      extends UnaryExpression
      implements ItemMappingFunction

  This class performs the first phase of processing in "constructing simple content": it takes an input sequence, eliminates empty text nodes, and combines adjacent text nodes into one.
  Since:
    9.3
  See Also:
    Serialized Form

- - ### Field Summary

    - ### 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, INHERITED_CONTEXT, INSPECTION_CONTEXT, ITEM_FEED_METHOD, ITERATE_METHOD, locationId, MAX_SEQUENCE_LENGTH, MAX_STRING_LENGTH, NAVIGATION_CONTEXT, NODE_VALUE_CONTEXT, PROCESS_METHOD, PUSH_SELECTION, staticProperties, UNBOUNDED_LOWER, UNBOUNDED_UPPER, W3C_CONSUMING, W3C_FREE_RANGING, W3C_GROUP_CONSUMING, W3C_MOTIONLESS, WATCH_METHOD`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `EmptyTextNodeRemover(Expression p0)`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `int` | `computeCardinality()` Determine the static cardinality.
    `Expression` | `copy()` Copy an expression.
    `ExpressionCompiler` | `getExpressionCompiler()` Return the compiler of the EmptyTextNodeRemover expression
    `String` | `getExpressionName()` Get a name identifying the kind of expression, in terms meaningful to a user.
    `int` | `getImplementationMethod()` An implementation of Expression must provide at least one of the methods evaluateItem(), iterate(), or process().
    `ItemType` | `getItemType(TypeHierarchy th)` Determine the data type of the expression, if possible.
    `EmptyTextNodeRemoverAdjunct` | `getStreamingAdjunct()` Get a class that supports streamed evaluation of this expression
    `SequenceIterator` | `iterate(XPathContext context)` Return an Iterator to iterate over the values of a sequence.
    `Iterator<SubExpressionInfo>` | `iterateSubExpressionInfo()` Get the immediate sub-expressions of this expression, with information about the relationship of each expression to its parent expression.
    `Item` | `mapItem(Item item)` Map an item to another item

    - ### Methods inherited from class net.sf.saxon.expr.UnaryExpression

      `computeSpecialProperties, displayOperator, equals, explain, getBaseExpression, hashCode, iterateSubExpressions, optimize, promote, replaceSubExpression, simplify, toString, typeCheck`

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

      `addToPathMap, adoptChildExpression, checkForUpdatingSubexpressions, checkPermittedContents, computeDependencies, computeStaticProperties, doPromotion, dynamicError, effectiveBooleanValue, evaluateAsString, evaluateItem, evaluatePendingUpdates, explain, getCardinality, getColumnNumber, getColumnNumber, getConstructType, getContainer, getDependencies, getEvaluationMethod, getExecutable, getHostLanguage, getIntegerBounds, getIntrinsicDependencies, getLineNumber, getLineNumber, getLocationId, getLocationProvider, getObjectName, getProperties, getProperty, getPublicId, getSlotsUsed, getSpecialProperties, getStreamability, getSystemId, getSystemId, hasVariableBinding, implementsStaticTypeCheck, isSubtreeExpression, isUpdatingExpression, isVacuousExpression, iterateEvents, markTailFunctionCalls, process, resetLocalStaticProperties, setContainer, setEvaluationMethod, setFiltered, setFlattened, setLocationId, staticTypeCheck, suppressValidation, toPattern, toStreamingPattern, typeError`

    - ### Methods inherited from class java.lang.Object

      `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

- - ### Constructor Detail

    - #### EmptyTextNodeRemover

          public EmptyTextNodeRemover(Expression p0)

  - ### Method Detail

    - #### getItemType

          public ItemType getItemType(TypeHierarchy th)

      Determine the data type of the expression, if possible. The default implementation for unary expressions returns the item type of the operand
      Overrides:
        `getItemType` in class `UnaryExpression`
      Parameters:
        `th` - the type hierarchy cache
      Returns:
        the item type of the items in the result sequence, insofar as this is known statically.

    - #### computeCardinality

          public int computeCardinality()

      Description copied from class: `UnaryExpression`
      Determine the static cardinality. Default implementation returns the cardinality of the operand
      Overrides:
        `computeCardinality` in class `UnaryExpression`
      Returns:
        the computed cardinality, as one of the values `StaticProperty.ALLOWS_ZERO_OR_ONE`, `StaticProperty.EXACTLY_ONE`, `StaticProperty.ALLOWS_ONE_OR_MORE`, `StaticProperty.ALLOWS_ZERO_OR_MORE`

    - #### copy

          public Expression copy()

      Copy an expression. This makes a deep copy.
      Specified by:
        `copy` in class `Expression`
      Returns:
        the copy of the original expression

    - #### iterateSubExpressionInfo

          public Iterator<SubExpressionInfo> iterateSubExpressionInfo()

      Get the immediate sub-expressions of this expression, with information about the relationship of each expression to its parent expression. Default implementation returns a zero-length array, appropriate for an expression that has no sub-expressions.
      Overrides:
        `iterateSubExpressionInfo` in class `Expression`
      Returns:
        an iterator containing the sub-expressions of this expression

    - #### getImplementationMethod

          public int getImplementationMethod()

      An implementation of Expression must provide at least one of the methods evaluateItem(), iterate(), or process(). This method indicates which of these methods is prefered.
      Overrides:
        `getImplementationMethod` in class `Expression`
      Returns:
        the implementation method, for example `Expression.ITERATE_METHOD` or `Expression.EVALUATE_METHOD` or `Expression.PROCESS_METHOD`

    - #### iterate

          public SequenceIterator iterate(XPathContext context)
                                   throws XPathException

      Return an Iterator to iterate over the values of a sequence. The value of every expression can be regarded as a sequence, so this method is supported for all expressions. This default implementation handles iteration for expressions that return singleton values: for non-singleton expressions, the subclass must provide its own implementation.
      Overrides:
        `iterate` in class `Expression`
      Parameters:
        `context` - supplies the context for evaluation
      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

    - #### mapItem

          public Item mapItem(Item item)
                       throws XPathException

      Map an item to another item
      Specified by:
        `mapItem` in interface `ItemMappingFunction`
      Parameters:
        `item` - The input item to be mapped.
      Returns:
        the result of the mapping: maybe null
      Throws:
        `XPathException`

    - #### getExpressionCompiler

          public ExpressionCompiler getExpressionCompiler()

      Return the compiler of the EmptyTextNodeRemover expression
      Overrides:
        `getExpressionCompiler` in class `Expression`
      Returns:
        the relevant ExpressionCompiler

    - #### getStreamingAdjunct

          public EmptyTextNodeRemoverAdjunct getStreamingAdjunct()

      Get a class that supports streamed evaluation of this expression
      Overrides:
        `getStreamingAdjunct` in class `Expression`
      Returns:
        the relevant StreamingAdjunct, or null if none is available

    - #### getExpressionName

          public String getExpressionName()

      Description copied from class: `Expression`
      Get a name identifying the kind of expression, in terms meaningful to a user.
      Overrides:
        `getExpressionName` in class `Expression`
      Returns:
        a name identifying the kind of expression, in terms meaningful to a user. The name will always be in the form of a lexical XML QName, and should match the name used in explain() output displaying the expression.

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