Package org.basex.query.expr.ft
Class FTWindow
- java.lang.Object
-
- org.basex.query.expr.ExprInfo
-
- org.basex.query.expr.Expr
-
- org.basex.query.expr.ParseExpr
-
- org.basex.query.expr.ft.FTExpr
-
- org.basex.query.expr.ft.FTFilter
-
- org.basex.query.expr.ft.FTWindow
-
public final class FTWindow extends FTFilter
FTWindow expression.- Author:
- BaseX Team 2005-24, BSD License, Christian Gruen
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description 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 the updating semantics are satisfied.FTExpr
compile(CompileContext cc)
Compiles and optimizes the expression, assigns types and cardinalities.FTExpr
copy(CompileContext cc, IntObjMap<Var> vm)
Copies an expression.VarUsage
count(Var var)
Checks how often a variable or context reference is used in this expression.int
exprSize()
Counts the number of expressions in this expression's subtree.protected boolean
filter(QueryContext qc, FTMatch match, FTLexer lexer)
Evaluates the filter expression.boolean
has(Flag... flags)
Indicates if an expression has one of the specified compiler properties.FTExpr
inline(InlineContext ic)
Inlines an expression into this one, replacing all variable or context references.boolean
inlineable(InlineContext ic)
Checks if inlining is possible.FTExpr
optimize(CompileContext cc)
Optimizes an already compiled expression without recompiling its sub-expressions.void
toString(QueryString qs)
Creates a query string.void
toXml(QueryPlan plan)
Creates a query plan.-
Methods inherited from class org.basex.query.expr.ft.FTFilter
equals, indexAccessible, item, iter
-
Methods inherited from class org.basex.query.expr.ft.FTExpr
usesExclude, value
-
Methods inherited from class org.basex.query.expr.ParseExpr
adoptType, atomValue, checkAllUp, checkNoneUp, checkNoUp, checkType, checkType, checkUp, copyType, ctxValue, data, info, refineType, sc, seqType, size, test, toArray, toArray, toAtomItem, toBin, toBin, toBinOrNull, toBoolean, toBoolean, toBooleanOrFalse, toBytes, toBytes, toDouble, toDouble, toElem, toElem, toEnum, toFloat, toFunction, toLong, toLong, toLong, toMap, toMap, toNode, toNode, toNodeOrNull, toNumber, toNumber, toNumberOrNull, toQNm, toQNmOrNull, toRecord, toString, toString, toStringOrNull, toToken, toToken, toTokenOrNull, toZeroToken
-
Methods inherited from class org.basex.query.expr.Expr
arg, args, atomItem, atomIter, ddo, funcType, hasFreeVars, info, isSimple, markTailCalls, mergeEbv, optimizePos, simplify, simplifyFor, typeCheck, uses, vacuous, visitAll
-
Methods inherited from class org.basex.query.expr.ExprInfo
description, toErrorString, toString
-
-
-
-
Method Detail
-
checkUp
public void checkUp() throws QueryException
Description copied from class:Expr
Checks if the updating semantics are satisfied. This function is only called if any updating expression was found in the query.- Overrides:
checkUp
in classFTExpr
- Throws:
QueryException
- query exception
-
compile
public FTExpr compile(CompileContext cc) throws QueryException
Description copied from class:Expr
Compiles and optimizes the expression, assigns types and cardinalities.- Overrides:
compile
in classFTExpr
- Parameters:
cc
- compilation context- Returns:
- optimized expression
- Throws:
QueryException
- query exception
-
optimize
public FTExpr optimize(CompileContext cc) throws QueryException
Description copied from class:Expr
Optimizes an already compiled expression without recompiling its sub-expressions.- Overrides:
optimize
in classFTExpr
- Parameters:
cc
- compilation context- Returns:
- optimized expression
- Throws:
QueryException
- query exception
-
filter
protected boolean filter(QueryContext qc, FTMatch match, FTLexer lexer) throws QueryException
Description copied from class:FTFilter
Evaluates the filter expression.- Specified by:
filter
in classFTFilter
- Parameters:
qc
- query contextmatch
- full-text matchlexer
- lexer (can benull
)- Returns:
- result of check
- Throws:
QueryException
- query exception
-
has
public boolean has(Flag... flags)
Description copied from class:Expr
Indicates if an expression has one of the specified compiler properties. This method must only be called at compile time. It is invoked to test properties of sub-expressions. It returnstrue
if at least flag matches an expression.
-
inlineable
public boolean inlineable(InlineContext ic)
Description copied from class:Expr
Checks if inlining is possible. This function is called byInlineContext.inlineable(org.basex.query.expr.Expr...)
and:CNode.inlineable(org.basex.query.InlineContext)
returns false if the new expression construct new nodes. The following tests might reject inlining if the expression is a context reference:- Overrides:
inlineable
in classFTExpr
- Parameters:
ic
- inlining context- Returns:
- result of check
-
count
public VarUsage count(Var var)
Description copied from class:Expr
Checks how often a variable or context reference is used in this expression. This function is called by:-
Closure.optimize(org.basex.query.CompileContext)
-
GFLWOR.inlineForLet(org.basex.query.CompileContext)
-
GFLWOR.optimizePos(org.basex.query.CompileContext)
-
GFLWOR.simplify(org.basex.query.CompileContext)
-
GFLWOR.unusedVars(org.basex.query.CompileContext)
-
SimpleMap.optimize(org.basex.query.CompileContext)
-
TypeswitchGroup.optimize(org.basex.query.CompileContext)
-
-
inline
public FTExpr inline(InlineContext ic) throws QueryException
Description copied from class:Expr
Inlines an expression into this one, replacing all variable or context references. This function is called byInlineContext.inline(Expr)
(see invocations of these functions for further inlinings). The variable reference is replaced in: The context is replaced in:- Overrides:
inline
in classFTExpr
- Parameters:
ic
- inlining context- Returns:
- resulting expression if something has changed,
null
otherwise - Throws:
QueryException
- query exception
-
copy
public FTExpr copy(CompileContext cc, IntObjMap<Var> vm)
Description copied from class:Expr
Copies an expression. Used for inlining functions, or for copying static queries. It is utilized byVarRef.inline(org.basex.query.InlineContext)
,FuncItem.inline(org.basex.query.expr.Expr[], org.basex.query.CompileContext)
,Closure.inline(org.basex.query.InlineContext)
andStaticFunc.inline(org.basex.query.expr.Expr[], org.basex.query.CompileContext)
.- Specified by:
copy
in classFTExpr
- Parameters:
cc
- compilation contextvm
- mapping from old variable IDs to new variable copies. Required byClosure.copy(org.basex.query.CompileContext, org.basex.util.hash.IntObjMap<org.basex.query.var.Var>)
andVarRef.copy(org.basex.query.CompileContext, org.basex.util.hash.IntObjMap<org.basex.query.var.Var>)
- Returns:
- copied expression
-
accept
public boolean accept(ASTVisitor visitor)
Description copied from class:Expr
Traverses this expression, notifying the visitor of declared and used variables, and checking the tree for other recursive properties.
-
exprSize
public int exprSize()
Description copied from class:Expr
Counts the number of expressions in this expression's subtree. This method is e.g. called byStaticFunc.inline(org.basex.query.expr.Expr[], org.basex.query.CompileContext)
to check if an expression is small enough to be inlined.
-
toXml
public void toXml(QueryPlan plan)
Description copied from class:ExprInfo
Creates a query plan.
-
toString
public void toString(QueryString qs)
Description copied from class:ExprInfo
Creates a query string.
-
-