org.basex.query.expr
Class Context

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.Simple
                  extended by org.basex.query.expr.Context

public final class Context
extends Simple

Context item.

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.expr.ParseExpr
info, size, type
 
Constructor Summary
Context(InputInfo ii)
          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.
 Expr addText(QueryContext ctx)
          Optionally adds a text node to an expression for potential index rewriting.
 Context 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.
 boolean has(Expr.Flag flag)
          Indicates if an expression has the specified compiler property.
 Item item(QueryContext ctx, InputInfo ii)
          Evaluates the expression and returns the resulting item or a null reference, if the expression yields an empty sequence.
 Iter iter(QueryContext ctx)
          Evaluates the expression and returns an iterator on the resulting items.
 boolean removable(Var v)
          Checks if the specified variable is replaceable by a context item.
 boolean sameAs(Expr cmp)
          Compares the current and specified expression for equality.
 java.lang.String toString()
           
 Value value(QueryContext ctx)
          Evaluates the expression and returns the resulting value.
 
Methods inherited from class org.basex.query.expr.Simple
checkUp, count, exprSize, inline, plan
 
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
 
Methods inherited from class org.basex.query.expr.Expr
compEbv, copy, hasFreeVars, indexAccessible, indexEquivalent, inlineAll, isEmpty, isFunction, isItem, isVacuous, isValue, iterable, markTailCalls, optimize, 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

Context

public Context(InputInfo ii)
Constructor.

Parameters:
ii - input info
Method Detail

compile

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

Overrides:
compile in class Simple
Parameters:
ctx - query context
scp - variable scope
Returns:
optimized expression

iter

public Iter 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.item(org.basex.query.QueryContext, org.basex.util.InputInfo) must be implemented by an expression, as it may be called by this method.

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

value

public Value value(QueryContext ctx)
            throws QueryException
Description copied from class: Expr
Evaluates the expression and returns the resulting value.

Overrides:
value in class ParseExpr
Parameters:
ctx - query context
Returns:
iterator
Throws:
QueryException - query exception

item

public Item 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

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 Simple
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 Simple
Parameters:
v - variable to be replaced
Returns:
result of check

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

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 Simple
Parameters:
visitor - visitor
Returns:
if the walk should be continued

addText

public Expr addText(QueryContext ctx)
Description copied from class: Expr
Optionally adds a text node to an expression for potential index rewriting.

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

sameAs

public boolean sameAs(Expr cmp)
Description copied from class: Expr
Compares the current and specified expression for equality.

Overrides:
sameAs in class Expr
Parameters:
cmp - expression to be compared
Returns:
result of check

toString

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