Class AdjacentTextNodeMerger

All Implemented Interfaces:
ExportAgent, Locatable, IdentityComparable, Traceable

public class AdjacentTextNodeMerger extends UnaryExpression
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
  • Constructor Details Link icon

    • AdjacentTextNodeMerger Link icon

      public AdjacentTextNodeMerger(Expression p0)
  • Method Details Link icon

    • makeAdjacentTextNodeMerger Link icon

      public static Expression makeAdjacentTextNodeMerger(Expression base)
      Make an AdjacentTextNodeMerger expression with a given operand, or a simpler equivalent expression if appropriate
      Parameters:
      base - the operand expression
      Returns:
      an AdjacentTextNodeMerger or equivalent expression
    • getOperandRole Link icon

      protected OperandRole getOperandRole()
      Description copied from class: UnaryExpression
      Get the usage (in terms of streamability analysis) of the single operand
      Specified by:
      getOperandRole in class UnaryExpression
      Returns:
      the operand usage
    • simplify Link icon

      public Expression simplify() throws XPathException
      Description copied from class: Expression
      Simplify an expression. This performs any static optimization (by rewriting the expression as a different expression). The default implementation simplifies its operands.
      Overrides:
      simplify in class Expression
      Returns:
      the simplified expression (or the original if unchanged, or if modified in-situ)
      Throws:
      XPathException - if an error is discovered during expression rewriting
    • typeCheck Link icon

      public Expression typeCheck(ExpressionVisitor visitor, ContextItemStaticInfo contextInfo) throws XPathException
      Description copied from class: UnaryExpression
      Type-check the expression. Default implementation for unary operators that accept any kind of operand
      Overrides:
      typeCheck in class UnaryExpression
      Parameters:
      visitor - an expression visitor
      contextInfo - Information available statically about the context item: whether it is (possibly) absent; its static type; its streaming posture.
      Returns:
      the original expression, rewritten to perform necessary run-time type checks, and to perform other type-related optimizations
      Throws:
      XPathException - if an error is discovered during this phase (typically a type error)
    • getItemType Link icon

      public ItemType getItemType()
      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
      Returns:
      the item type of the items in the result sequence, insofar as this is known statically.
    • getStaticUType Link icon

      public UType getStaticUType(UType contextItemType)
      Get the static type of the expression as a UType, following precisely the type inference rules defined in the XSLT 3.0 specification.
      Overrides:
      getStaticUType in class Expression
      Parameters:
      contextItemType - the static type of the context item
      Returns:
      the static item type of the expression according to the XSLT 3.0 defined rules
    • computeCardinality Link icon

      protected 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. May also return StaticProperty.ALLOWS_ZERO if the result is known to be an empty sequence, or StaticProperty.ALLOWS_MANY if if is known to return a sequence of length two or more.
    • copy Link icon

      public Expression copy(RebindingMap rebindings)
      Copy an expression. This makes a deep copy.
      Specified by:
      copy in class Expression
      Parameters:
      rebindings - variables that need to be rebound
      Returns:
      the copy of the original expression
    • getImplementationMethod Link icon

      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.
      Specified by:
      getImplementationMethod in class Expression
      Returns:
      the implementation method, for example Expression.ITERATE_METHOD or Expression.EVALUATE_METHOD or Expression.PROCESS_METHOD
    • getStreamerName Link icon

      public String getStreamerName()
      Get the (partial) name of a class that supports streaming of this kind of expression
      Overrides:
      getStreamerName in class Expression
      Returns:
      the partial name of a class that can be instantiated to provide streaming support in Saxon-EE, or null if there is no such class
    • iterate Link icon

      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
    • getExpressionName Link icon

      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 export() output displaying the expression.
    • isTextNode Link icon

      public static boolean isTextNode(Item item)
      Ask whether an item is a text node
      Parameters:
      item - the item in question
      Returns:
      true if the item is a node of kind text
    • getElaborator Link icon

      public Elaborator getElaborator()
      Make an elaborator for this expression
      Overrides:
      getElaborator in class Expression
      Returns:
      a suitable elaborator