net.sf.saxon.expr.flwor
Class WhereClause

java.lang.Object
  extended by net.sf.saxon.expr.flwor.Clause
      extended by net.sf.saxon.expr.flwor.WhereClause

public class WhereClause
extends Clause

A "where" clause in a FLWOR expression


Field Summary
 
Fields inherited from class net.sf.saxon.expr.flwor.Clause
COUNT, FOR, GROUPBYCLAUSE, LET, ORDERBYCLAUSE, WHERE, WINDOW
 
Constructor Summary
WhereClause(Expression predicate)
           
 
Method Summary
 WhereClause copy()
           
 void explain(ExpressionPresenter out)
          Diagnostic print of expression structure.
 void gatherVariableReferences(ExpressionVisitor visitor, Binding binding, List<VariableReference> references)
          Build a list of all references to a variables declared in this clause
 Expression getBaseExpression()
           
 int getClauseKey()
          Get a keyword identifying what kind of clause this is
 Expression getPredicate()
           
 TuplePull getPullStream(TuplePull base, XPathContext context)
          Get a tuple stream that implements the functionality of this clause, taking its input from another tuple stream which this clause modifies
 TuplePush getPushStream(TuplePush destination, XPathContext context)
          Get a push-mode tuple stream that implements the functionality of this clause, supplying its output to another tuple stream
 void processSubExpressions(ExpressionProcessor processor)
          Process the subexpressions of this clause
 void refineVariableType(ExpressionVisitor visitor, List<VariableReference> references, Expression returnExpr)
          Supply improved type information to the expressions that contain references to the variables declared in this clause
 void setPredicate(Expression predicate)
           
 String toString()
           
 void typeCheck(ExpressionVisitor visitor)
          Type-check the expression
 
Methods inherited from class net.sf.saxon.expr.flwor.Clause
getRangeVariables, optimize
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

WhereClause

public WhereClause(Expression predicate)
Method Detail

getClauseKey

public int getClauseKey()
Description copied from class: Clause
Get a keyword identifying what kind of clause this is

Specified by:
getClauseKey in class Clause
Returns:
the kind of clause

getPredicate

public Expression getPredicate()

setPredicate

public void setPredicate(Expression predicate)

copy

public WhereClause copy()
Specified by:
copy in class Clause

typeCheck

public void typeCheck(ExpressionVisitor visitor)
               throws XPathException
Type-check the expression

Overrides:
typeCheck in class Clause
Parameters:
visitor - the ExpressionVisitor, providing access to static context information
Throws:
XPathException - if any error is detected

getPullStream

public TuplePull getPullStream(TuplePull base,
                               XPathContext context)
Get a tuple stream that implements the functionality of this clause, taking its input from another tuple stream which this clause modifies

Specified by:
getPullStream in class Clause
Parameters:
base - the input tuple stream
context - the dynamic evaluation context
Returns:
the output tuple stream

gatherVariableReferences

public void gatherVariableReferences(ExpressionVisitor visitor,
                                     Binding binding,
                                     List<VariableReference> references)
Description copied from class: Clause
Build a list of all references to a variables declared in this clause

Overrides:
gatherVariableReferences in class Clause
Parameters:
visitor - the expression visitor
binding - a variable declared in this clause
references - the list of variable references, initially empty, to which the method will append

refineVariableType

public void refineVariableType(ExpressionVisitor visitor,
                               List<VariableReference> references,
                               Expression returnExpr)
Description copied from class: Clause
Supply improved type information to the expressions that contain references to the variables declared in this clause

Overrides:
refineVariableType in class Clause
Parameters:
visitor - the expression visitor
references - the list of variable references
returnExpr - the expression in the return clause

getPushStream

public TuplePush getPushStream(TuplePush destination,
                               XPathContext context)
Get a push-mode tuple stream that implements the functionality of this clause, supplying its output to another tuple stream

Specified by:
getPushStream in class Clause
Parameters:
destination - the output tuple stream
context - the dynamic evaluation context
Returns:
the push tuple stream that implements the functionality of this clause of the FLWOR expression

processSubExpressions

public void processSubExpressions(ExpressionProcessor processor)
                           throws XPathException
Process the subexpressions of this clause

Specified by:
processSubExpressions in class Clause
Parameters:
processor - the expression processor used to process the subexpressions
Throws:
XPathException - if any error is detected

getBaseExpression

public Expression getBaseExpression()

explain

public void explain(ExpressionPresenter out)
Diagnostic print of expression structure. The abstract expression tree is written to the supplied output destination.

Specified by:
explain in class Clause
Parameters:
out - the expression presenter used to display the structure

toString

public String toString()
Overrides:
toString in class Object


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