org.basex.query.expr
Class CmpV

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.expr.Arr
                  extended by org.basex.query.expr.Cmp
                      extended by org.basex.query.expr.CmpV

public final class CmpV
extends Cmp

Value comparison.

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

Nested Class Summary
static class CmpV.OpV
          Comparators.
 
Nested classes/interfaces inherited from class org.basex.query.expr.Expr
Expr.Flag
 
Field Summary
 
Fields inherited from class org.basex.query.expr.Arr
expr
 
Fields inherited from class org.basex.query.expr.ParseExpr
info, size, type
 
Constructor Summary
CmpV(Expr e1, Expr e2, CmpV.OpV o, InputInfo ii)
          Constructor.
 
Method Summary
 Expr compEbv(QueryContext ctx)
          This method is overwritten by CmpG, CmpV and FNSimple.
 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.
 java.lang.String description()
          Returns a string description of the expression.
 CmpV invert()
          If possible, inverts the operands of the expression.
 Bln item(QueryContext ctx, InputInfo ii)
          Evaluates the expression and returns the resulting item or a null reference, if the expression yields an empty sequence.
 void plan(FElem plan)
          Creates an expression tree.
 java.lang.String toString()
           
 
Methods inherited from class org.basex.query.expr.Arr
accept, allAreValues, checkNoUp, checkUp, copyAll, count, exprSize, has, indexEquivalent, inline, removable, 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, iter, optPre, preEval, size, test, type, value
 
Methods inherited from class org.basex.query.expr.Expr
addText, copy, hasFreeVars, indexAccessible, inlineAll, isEmpty, isFunction, isItem, isVacuous, isValue, iterable, markTailCalls, optimize, sameAs, uses, visitAll
 
Methods inherited from class org.basex.data.ExprInfo
addPlan, addPlan, info, planAttr, planElem
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

CmpV

public CmpV(Expr e1,
            Expr e2,
            CmpV.OpV o,
            InputInfo ii)
Constructor.

Parameters:
e1 - first expression
e2 - second expression
o - operator
ii - input info
Method Detail

compile

public Expr 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 Arr
Parameters:
ctx - query context
scp - variable scope
Returns:
optimized expression
Throws:
QueryException - query exception

compEbv

public Expr compEbv(QueryContext ctx)
Description copied from class: Expr

This method is overwritten by CmpG, CmpV and FNSimple. It is called at compile time by expressions that perform effective boolean value tests (e.g. If or Preds). If the arguments of the called expression return a boolean anyway, the expression will be simplified.

Example in CmpV: if($x eq true()) is rewritten to if($x), if $x is known to return a single boolean.

Overrides:
compEbv in class Expr
Parameters:
ctx - query context
Returns:
optimized expression

item

public Bln item(QueryContext ctx,
                InputInfo ii)
         throws QueryException
Description copied from class: Expr
Evaluates the expression and returns the resulting item or a null reference, if the expression yields an empty sequence. If this method is not overwritten, Expr.iter(org.basex.query.QueryContext) must be implemented by an expression, as it may be called by this method.

Overrides:
item in class ParseExpr
Parameters:
ctx - query context
ii - input info
Returns:
iterator
Throws:
QueryException - query exception

invert

public CmpV invert()
Description copied from class: Cmp
If possible, inverts the operands of the expression.

Specified by:
invert in class Cmp
Returns:
original or modified expression

copy

public Expr 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 Expr
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 Arr
Parameters:
plan - root element

description

public java.lang.String description()
Description copied from class: ExprInfo
Returns a string description of the expression. This method is only called by error messages. Contrary to the ExprInfo.toString() method, arguments are not included in the output.

Overrides:
description in class ExprInfo
Returns:
result of check

toString

public java.lang.String toString()
Specified by:
toString in class ExprInfo