org.basex.query.ft
Class FTExpr

java.lang.Object
  extended by org.basex.query.ExprInfo
      extended by org.basex.query.expr.Expr
          extended by org.basex.query.ft.FTExpr
Direct Known Subclasses:
FTAnd, FTIndex, FTMildNot, FTMildNotIndex, FTNot, FTNotIndex, FTOptions, FTOr, FTPos, FTPosIndex, FTWords

public abstract class FTExpr
extends Expr

This class defines is an abstract class for full-text expressions.

Author:
Workgroup DBIS, University of Konstanz 2005-09, ISC License, Christian Gruen

Field Summary
 FTExpr[] expr
          Expression list.
 
Method Summary
 java.lang.String color()
          Returns a string description of the expression.
 FTExpr comp(QueryContext ctx)
          Optimizes and compiles the expression.
 FTExpr indexEquivalent(QueryContext ctx, IndexContext ic)
          Returns an equivalent expression which accesses an index structure.
abstract  FTNodeIter iter(QueryContext ctx)
          Evaluates the expression and returns an iterator on the resulting items.
 void plan(Serializer ser)
          Recursively sends the abstract syntax of this expression to the specified serializer.
 FTExpr remove(Var v)
          Removes the specified variable in a sub expression.
 Return returned(QueryContext ctx)
          Indicates the return type of an expression.
 boolean uses(Expr.Use use, QueryContext ctx)
          Indicates if an expression uses the specified type.
 
Methods inherited from class org.basex.query.expr.Expr
addText, atomic, checkCtx, checkDbl, checkItr, duplicates, e, ebv, i, indexAccessible, removable, sameAs, size, test
 
Methods inherited from class org.basex.query.ExprInfo
info, name, toString
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

expr

public FTExpr[] expr
Expression list.

Method Detail

comp

public FTExpr comp(QueryContext ctx)
            throws QueryException
Description copied from class: Expr
Optimizes and compiles the expression.

Specified by:
comp in class Expr
Parameters:
ctx - query context
Returns:
optimized Expression
Throws:
QueryException - evaluation exception

iter

public abstract FTNodeIter iter(QueryContext ctx)
                         throws QueryException
Description copied from class: Expr
Evaluates the expression and returns an iterator on the resulting items. If this method is not overwritten, Expr.atomic(org.basex.query.QueryContext) must be implemented.

Overrides:
iter in class Expr
Parameters:
ctx - query context
Returns:
resulting item
Throws:
QueryException - evaluation exception

uses

public boolean uses(Expr.Use use,
                    QueryContext ctx)
Description copied from class: Expr
Indicates if an expression uses the specified type. Called by the compiler to perform certain optimizations. true is returned by default and thus assumed as "worst-case".

Overrides:
uses in class Expr
Parameters:
use - use type to be checked
ctx - query context
Returns:
result of check

remove

public final FTExpr remove(Var v)
Description copied from class: Expr
Removes the specified variable in a sub expression.

Overrides:
remove in class Expr
Parameters:
v - variable to be removed
Returns:
expression with removed variable

returned

public Return returned(QueryContext ctx)
Description copied from class: Expr
Indicates the return type of an expression. Called by the compiler to check if expressions can be reformulated. null is returned by default.

Overrides:
returned in class Expr
Parameters:
ctx - query context
Returns:
result of check

indexEquivalent

public FTExpr indexEquivalent(QueryContext ctx,
                              IndexContext ic)
                       throws QueryException
Description copied from class: Expr
Returns an equivalent expression which accesses an index structure. Must be called if Expr.indexAccessible(org.basex.query.QueryContext, org.basex.query.IndexContext) is implemented for an expression.

Overrides:
indexEquivalent in class Expr
Parameters:
ctx - query context
ic - index context
Returns:
Equivalent index-expression or null
Throws:
QueryException - Exception

color

public final java.lang.String color()
Description copied from class: ExprInfo
Returns a string description of the expression. Contrary to the ExprInfo.toString() method, the current expressions aren't included in the output.

Overrides:
color in class ExprInfo
Returns:
result of check

plan

public void plan(Serializer ser)
          throws java.io.IOException
Description copied from class: ExprInfo
Recursively sends the abstract syntax of this expression to the specified serializer.

Specified by:
plan in class ExprInfo
Parameters:
ser - serializer
Throws:
java.io.IOException - exception