Class OuterForExpression

All Implemented Interfaces:
Binding, ExportAgent, LocalBinding, Locatable, IdentityComparable, Traceable

public class OuterForExpression extends ForExpression
Expression class that implements the "outer for" clause of XQuery 3.0
  • Constructor Details

    • OuterForExpression

      public OuterForExpression()
  • Method Details

    • getRangeVariableCardinality

      protected int getRangeVariableCardinality()
      Get the cardinality of the range variable
      Overrides:
      getRangeVariableCardinality in class ForExpression
      Returns:
      the cardinality of the range variable (StaticProperty.EXACTLY_ONE). in a subclass
    • optimize

      public Expression optimize(ExpressionVisitor visitor, ContextItemStaticInfo contextItemType) throws XPathException
      Optimize the expression
      Overrides:
      optimize in class ForExpression
      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)
    • copy

      public Expression copy(RebindingMap rebindings)
      Copy an expression. This makes a deep copy.
      Overrides:
      copy in class ForExpression
      Parameters:
      rebindings - the rebinding map
      Returns:
      the copy of the original expression
    • iterate

      public SequenceIterator iterate(XPathContext context) throws XPathException
      Iterate over the result of the expression
      Overrides:
      iterate in class ForExpression
      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
    • process

      public void process(Outputter output, XPathContext context) throws XPathException
      Process this expression as an instruction, writing results to the current outputter
      Overrides:
      process in class ForExpression
      Parameters:
      output - the destination for the result
      context - The dynamic context, giving access to the current node, the current variables, etc.
      Throws:
      XPathException - if a dynamic error occurs
    • getExpressionName

      public String getExpressionName()
      Get a name identifying the kind of expression, in terms meaningful to a user.
      Overrides:
      getExpressionName in class ForExpression
      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.
    • allowingEmptyString

      protected String allowingEmptyString()
      Overrides:
      allowingEmptyString in class ForExpression
    • explainSpecializedAttributes

      protected void explainSpecializedAttributes(ExpressionPresenter out)
      Overrides:
      explainSpecializedAttributes in class ForExpression
    • getElaborator

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