Class 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:
  • Constructor Details

    • EmptyTextNodeRemover

      public EmptyTextNodeRemover(Expression p0)
  • Method Details

    • 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
    • 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
    • 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.