|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.basex.data.ExprInfo
org.basex.query.expr.Expr
org.basex.query.expr.ParseExpr
org.basex.query.gflwor.GFLWOR
public final class GFLWOR
General FLWOR expression.
Nested Class Summary | |
---|---|
static class |
GFLWOR.Clause
A FLWOR clause. |
Nested classes/interfaces inherited from class org.basex.query.expr.Expr |
---|
Expr.Flag |
Field Summary |
---|
Fields inherited from class org.basex.query.expr.ParseExpr |
---|
info, size, type |
Constructor Summary | |
---|---|
GFLWOR(InputInfo ii,
java.util.LinkedList<GFLWOR.Clause> cls,
Expr rt)
Constructor. |
Method Summary | |
---|---|
boolean |
accept(ASTVisitor visitor)
Traverses this expression, notifying the visitor of declared and used variables, and checking the tree for other recursive properties. |
void |
checkUp()
Checks if all updating expressions are correctly placed. |
Expr |
compile(QueryContext ctx,
VarScope scp)
Compiles and optimizes the expression, assigns data types and cardinalities. |
Expr |
copy(QueryContext ctx,
VarScope scp,
IntObjMap<Var> vs)
Copies an expression. |
VarUsage |
count(Var v)
Checks how often a variable is used in this expression. |
int |
exprSize()
Counts the number of expressions in this expression's sub-tree. |
boolean |
has(Expr.Flag flag)
Indicates if an expression has the specified compiler property. |
Expr |
inline(QueryContext ctx,
VarScope scp,
Var v,
Expr e)
Inlines an expression into this one, replacing all references to the given variable. |
boolean |
isVacuous()
Tests if this is a vacuous expression (empty sequence or error function). |
Iter |
iter(QueryContext ctx)
Evaluates the expression and returns an iterator on the resulting items. |
Expr |
markTailCalls()
Finds and marks tail calls, enabling TCO. |
Expr |
optimize(QueryContext ctx,
VarScope scp)
Optimizes an already compiled expression without recompiling its sub-expressions. |
void |
plan(FElem plan)
Creates an expression tree. |
boolean |
removable(Var v)
Checks if the specified variable is replaceable by a context item. |
java.lang.String |
toString()
|
Methods inherited from class org.basex.query.expr.ParseExpr |
---|
checkAdmin, checkAllUp, checkBinary, checkBln, checkColl, checkCreate, checkCtx, checkDbl, checkDBNode, checkEStr, checkEStr, checkFunc, checkItem, checkItr, checkItr, checkMap, checkNode, checkNode, checkNode, checkNoEmpty, checkNoneUp, checkNoUp, checkQNm, checkStr, checkStr, checkStrBin, checkType, checkWrite, compBln, copyType, ebv, item, optPre, preEval, size, test, type, value |
Methods inherited from class org.basex.query.expr.Expr |
---|
addText, compEbv, copy, hasFreeVars, indexAccessible, indexEquivalent, inlineAll, isEmpty, isFunction, isItem, isValue, iterable, sameAs, uses, visitAll |
Methods inherited from class org.basex.data.ExprInfo |
---|
addPlan, addPlan, description, info, planAttr, planElem |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Constructor Detail |
---|
public GFLWOR(InputInfo ii, java.util.LinkedList<GFLWOR.Clause> cls, Expr rt)
ii
- input infocls
- FLWOR clausesrt
- return expressionMethod Detail |
---|
public Iter iter(QueryContext ctx) throws QueryException
Expr
Expr.item(org.basex.query.QueryContext, org.basex.util.InputInfo)
must be implemented
by an expression, as it may be called by this method.
iter
in class ParseExpr
ctx
- query context
QueryException
- query exceptionpublic Expr compile(QueryContext ctx, VarScope scp) throws QueryException
Expr
compile
in class Expr
ctx
- query contextscp
- variable scope
QueryException
- query exceptionpublic Expr optimize(QueryContext ctx, VarScope scp) throws QueryException
Expr
optimize
in class Expr
ctx
- query contextscp
- variable scope
QueryException
- query exceptionpublic boolean isVacuous()
Expr
isVacuous
in class Expr
public boolean has(Expr.Flag flag)
Expr
Expr.compile(org.basex.query.QueryContext, org.basex.query.var.VarScope)
methods to test properties of sub-expressions.
It returns true
if at least one test is successful.
has
in class Expr
flag
- flag to be found
public boolean removable(Var v)
Expr
Preds.removable(org.basex.query.var.Var)
, if one of the variables is used within a predicate.MixedPath.removable(org.basex.query.var.Var)
, if the variable occurs within the path.compile(org.basex.query.QueryContext, org.basex.query.var.VarScope)
to rewrite where clauses
into predicates.
removable
in class Expr
v
- variable to be replaced
public VarUsage count(Var v)
Expr
count
in class Expr
v
- variable to look for
VarUsage
public Expr inline(QueryContext ctx, VarScope scp, Var v, Expr e) throws QueryException
Expr
inline
in class Expr
ctx
- query context for recompilationscp
- variable scope for recompilationv
- variable to replacee
- expression to inline
null
otherwise
QueryException
- query exceptionpublic Expr copy(QueryContext ctx, VarScope scp, IntObjMap<Var> vs)
Expr
copy
in class Expr
ctx
- query contextscp
- variable scope for creating new variablesvs
- mapping from old variable IDs to new variable copies
public boolean accept(ASTVisitor visitor)
Expr
accept
in class Expr
visitor
- visitor
public void plan(FElem plan)
ExprInfo
plan
in class ExprInfo
plan
- root elementpublic java.lang.String toString()
toString
in class ExprInfo
public void checkUp() throws QueryException
Expr
checkUp
in class Expr
QueryException
- query exceptionpublic Expr markTailCalls()
Expr
markTailCalls
in class Expr
public int exprSize()
Expr
exprSize
in class Expr
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |