Class StringJoin

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

public class StringJoin extends SystemFunction
xf:string-join(string* $sequence, string $separator)
See Also:
  • Constructor Details

    • StringJoin

      public StringJoin()
  • Method Details

    • setReturnEmptyIfEmpty

      public void setReturnEmptyIfEmpty(boolean option)
      Indicate that when the input sequence (first argument) is empty, the function should return an empty sequence rather than an empty string
      Parameters:
      option - true if an empty sequence should be returned when the input is an empty sequence.
    • isReturnEmptyIfEmpty

      public boolean isReturnEmptyIfEmpty()
    • copy

      public Expression copy()
      Description copied from class: SystemFunction
      Copy an expression. This makes a deep copy.
      Overrides:
      copy in class SystemFunction
      Returns:
      the copy of the original expression
    • equals

      public boolean equals(Object o)
      Determine whether two expressions are equivalent
      Overrides:
      equals in class SystemFunction
    • getImplementationMethod

      public int getImplementationMethod()
      Description copied from class: SystemFunction
      An implementation of Expression must provide at least one of the methods evaluateItem(), iterate(), or process(). This method indicates which of these methods is provided directly. The other methods will always be available indirectly, using an implementation that relies on one of the other methods.
      Overrides:
      getImplementationMethod in class SystemFunction
      Returns:
      the implementation method, for example Expression.ITERATE_METHOD or Expression.EVALUATE_METHOD or Expression.PROCESS_METHOD
    • optimize

      public Expression optimize(ExpressionVisitor visitor, ExpressionVisitor.ContextItemType contextItemType) throws XPathException
      Description copied from class: SystemFunction
      Perform optimisation of an expression and its subexpressions.

      This method is called after all references to functions and variables have been resolved to the declaration of the function or variable, and after all type checking has been done.

      Overrides:
      optimize in class SystemFunction
      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 if appropriate to optimize execution
      Throws:
      XPathException - if an error is discovered during this phase (typically a type error)
    • evaluateItem

      public Item evaluateItem(XPathContext c) throws XPathException
      Description copied from class: Expression
      Evaluate an expression as a single item. This always returns either a single Item or null (denoting the empty sequence). No conversion is done. This method should not be used unless the static type of the expression is a subtype of "item" or "item?": that is, it should not be called if the expression may return a sequence. There is no guarantee that this condition will be detected.
      Overrides:
      evaluateItem in class Expression
      Parameters:
      c - The context in which the expression is to be evaluated
      Returns:
      the node or atomic value that results from evaluating the expression; or null to indicate that the result is an empty sequence
      Throws:
      XPathException - if any dynamic error occurs evaluating the expression
    • process

      public void process(XPathContext context) throws XPathException
      Process the instruction in push mode. This avoids constructing the concatenated string in memory, instead its parts can be sent straight to the serializer.
      Overrides:
      process in class Expression
      Parameters:
      context - The dynamic context, giving access to the current node, the current variables, etc.
      Throws:
      XPathException - if a dynamic error occurs