org.basex.query.ft
Class FTDistance

java.lang.Object
  extended by org.basex.data.ExprInfo
      extended by org.basex.query.expr.Expr
          extended by org.basex.query.expr.ParseExpr
              extended by org.basex.query.ft.FTExpr
                  extended by org.basex.query.ft.FTFilter
                      extended by org.basex.query.ft.FTDistance

public final class FTDistance
extends FTFilter

FTDistance expression.

Author:
BaseX Team 2005-12, BSD License, Christian Gruen

Nested Class Summary
 
Nested classes/interfaces inherited from class org.basex.query.expr.Expr
Expr.Flag
 
Field Summary
 
Fields inherited from class org.basex.query.ft.FTExpr
expr
 
Fields inherited from class org.basex.query.expr.ParseExpr
info, size, type
 
Constructor Summary
FTDistance(InputInfo ii, FTExpr e, Expr[] d, FTUnit u)
          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.
 FTExpr compile(QueryContext ctx, VarScope scp)
          Compiles and optimizes the expression, assigns data types and cardinalities.
 FTExpr 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.
protected  boolean filter(QueryContext ctx, FTMatch mtc, FTLexer lex)
          Evaluates the filter expression.
 boolean has(Expr.Flag flag)
          Indicates if an expression has the specified compiler property.
 FTExpr inline(QueryContext ctx, VarScope scp, Var v, Expr e)
          Inlines an expression into this one, replacing all references to the given variable.
 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.ft.FTFilter
indexAccessible, item, iter
 
Methods inherited from class org.basex.query.ft.FTExpr
indexEquivalent, optimize
 
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, optPre, preEval, size, test, type, value
 
Methods inherited from class org.basex.query.expr.Expr
addText, compEbv, copy, hasFreeVars, inlineAll, isEmpty, isFunction, isItem, isVacuous, isValue, iterable, markTailCalls, 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

FTDistance

public FTDistance(InputInfo ii,
                  FTExpr e,
                  Expr[] d,
                  FTUnit u)
Constructor.

Parameters:
ii - input info
e - expression
d - distances
u - unit
Method Detail

checkUp

public void checkUp()
             throws QueryException
Description copied from class: Expr
Checks if all updating expressions are correctly placed. This function is only called if any updating expression was found in the query.

Overrides:
checkUp in class FTExpr
Throws:
QueryException - query exception

compile

public FTExpr compile(QueryContext ctx,
                      VarScope scp)
               throws QueryException
Description copied from class: Expr
Compiles and optimizes the expression, assigns data types and cardinalities.

Overrides:
compile in class FTExpr
Parameters:
ctx - query context
scp - variable scope
Returns:
optimized expression
Throws:
QueryException - query exception

filter

protected boolean filter(QueryContext ctx,
                         FTMatch mtc,
                         FTLexer lex)
                  throws QueryException
Description copied from class: FTFilter
Evaluates the filter expression.

Specified by:
filter in class FTFilter
Parameters:
ctx - query context
mtc - full-text match
lex - tokenizer
Returns:
result of check
Throws:
QueryException - query exception

has

public boolean has(Expr.Flag flag)
Description copied from class: Expr
Indicates if an expression has the specified compiler property. This method is called by numerous 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.

Overrides:
has in class FTExpr
Parameters:
flag - flag to be found
Returns:
result of check

removable

public boolean removable(Var v)
Description copied from class: Expr
Checks if the specified variable is replaceable by a context item. The following tests might return false: This method is called by GFLWOR.compile(org.basex.query.QueryContext, org.basex.query.var.VarScope) to rewrite where clauses into predicates.

Overrides:
removable in class FTExpr
Parameters:
v - variable to be replaced
Returns:
result of check

count

public VarUsage count(Var v)
Description copied from class: Expr
Checks how often a variable is used in this expression.

Overrides:
count in class FTExpr
Parameters:
v - variable to look for
Returns:
how often the variable is used, see VarUsage

inline

public FTExpr inline(QueryContext ctx,
                     VarScope scp,
                     Var v,
                     Expr e)
              throws QueryException
Description copied from class: Expr
Inlines an expression into this one, replacing all references to the given variable.

Overrides:
inline in class FTExpr
Parameters:
ctx - query context for recompilation
scp - variable scope for recompilation
v - variable to replace
e - expression to inline
Returns:
resulting expression in something changed, null otherwise
Throws:
QueryException - query exception

copy

public FTExpr copy(QueryContext ctx,
                   VarScope scp,
                   IntObjMap<Var> vs)
Description copied from class: Expr
Copies an expression. Will be useful for inlining functions, or for copying static queries.

Specified by:
copy in class FTExpr
Parameters:
ctx - query context
scp - variable scope for creating new variables
vs - mapping from old variable IDs to new variable copies
Returns:
copied expression

plan

public void plan(FElem plan)
Description copied from class: ExprInfo
Creates an expression tree.

Overrides:
plan in class FTExpr
Parameters:
plan - root element

toString

public java.lang.String toString()
Overrides:
toString in class FTFilter

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.

Overrides:
accept in class FTExpr
Parameters:
visitor - visitor
Returns:
if the walk should be continued

exprSize

public int exprSize()
Description copied from class: Expr
Counts the number of expressions in this expression's sub-tree.

Overrides:
exprSize in class FTExpr
Returns:
number of expressions